网络协议之TCP和UDP
?
?
應用層向TCP層發送用于網間傳輸的、用8位字節表示的數據流,然后TCP把數據流分割成適當長度的報文段(通常受該計算機連接的網絡的數據鏈路層的最大傳送單元(MTU)的限制)。之后TCP把結果包傳給IP層,由它來通過網絡將包傳送給接收端實體的TCP層。TCP為了保證不發生丟包,就給每個字節一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然后接收端實體對已成功收到的字節發回一個相應的確認(ACK);如果發送端實體在合理的往返時延(RTT)內未收到確認,那么對應的數據(假設丟失了)將會被重傳。TCP用一個校驗和函數來檢驗數據是否有錯誤;在發送和接收時都要計算和校驗。
首先,TCP建立連接之后,通信雙方都同時可以進行數據的傳輸,其次,它是全雙工的;在保證可靠性上,采用超時重傳和捎帶確認機制。
在流量控制上,采用滑動窗口協議,協議中規定,對于窗口內未經確認的分組需要重傳。
在擁塞控制上,采用廣受好評的TCP擁塞控制算法(也稱AIMD算法),該算法主要包括三個主要部分:1,加性增、乘性減;2,慢啟動;3,對超時事件做出反應。
在一個TCP連接中,僅有兩方進行彼此通信。廣播和多播不能用于TCP。
1.應用數據被分割成TCP認為最適合發送的數據塊。這和UDP完全不同,應用程序產生的數據報長度將保持不變。由TCP傳遞給IP的信息單位稱為報文段或段(segment)TCP如何確定報文段的長度。
2.當TCP發出一個段后,它啟動一個定時器,等待目的端確認收到這個報文段。如果不能及時收到一個確認,將重發這個報文段。當TCP收到發自TCP連接另一端的數據,它將發送一個確認。這個確認不是立即發送,通常將推遲幾分之一秒
3.TCP將保持它首部和數據的檢驗和。這是一個端到端的檢驗和,目的是檢測數據在傳輸過程中的任何變化。如果收到段的檢驗和有差錯,TCP將丟棄這個報文段和不確認收到此報文段(希望發端超時并重發)。
4.既然TCP報文段作為IP數據報來傳輸,而IP數據報的到達可能會失序,因此TCP報文段的到達也可能會失序。如果必要,TCP將對收到的數據進行重新排序,將收到的數據以正確的順序交給應用層。
5.既然IP數據報會發生重復,TCP的接收端必須丟棄重復的數據。
6.TCP還能提供流量控制。TCP連接的每一方都有固定大小的緩沖空間。TCP的接收端只允許另一端發送接收端緩沖區所能接納的數據。這將防止較快主機致使較慢主機的緩沖區溢出。
?
1.面向連接的傳輸;
2.端到端的通信;
3.高可靠性,確保傳輸數據的正確性,不出現丟失或亂序;
4.全雙工方式傳輸;
5.采用字節流方式,即以字節為單位傳輸字節序列;
6.緊急數據傳送功能。
?
TCP段結構中端口地址都是16比特,可以有在0~65535范圍內的端口號。對于這65536個端口號有以下的使用規定:
1.端口號小于256的定義為常用端口,服務器一般都是通過常用端口號來識別的。任何TCP/IP實現所提供的服務都用1~1023之間的端口號,是由IANA來管理的;
2.客戶端只需保證該端口號在本機上是惟一的就可以了。客戶端口號因存在時間很短暫又稱臨時端口號;
3.大多數TCP/IP實現給臨時端口號分配1024~5000之間的端口號。大于5000的端口號是為其他服務器預留的。
?
TCP協議和UDP協議的區別
1,TCP協議面向連接,UDP協議面向非連接
2,TCP協議傳輸速度慢,UDP協議傳輸速度快
3,TCP協議保證數據順序,UDP協議不保證
4,TCP協議保證數據正確性,UDP協議可能丟包
5,TCP協議對系統資源要求多,UDP協議要求少
TCP = Transmission Control Protocol 傳輸控制協議
?
地址解析協議(Address Resolution Protocol,ARP)是在僅知道主機的IP地址時確定其物理地址的一種協議。因IPv4和以太網的廣泛應用,其主要作用是通過已知IP地址,獲取對應物理地址的一種協議。但其也能在ATM(異步傳輸模式)和FDDIIP(Fiber Distributed Data Interface光纖分布式數據接口)網絡中使用。從IP地址到物理地址的映射有兩種方式:表格方式和非表格方式。ARP具體說來就是將網絡層(IP層,也就是相當于OSI的第三層)地址解析為數據鏈路層(MAC層,也就是相當于OSI的第二層)的MAC地址。
總結
以上是生活随笔為你收集整理的网络协议之TCP和UDP的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Chrome Extension Con
- 下一篇: 停车场管理链表c语言实现,怎么用C语言写