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