http://blog.csdn.net/yipiankongbai/article/details/24435977
2014
TCP和UDP是OSI模型中的運輸層中的協(xié)議。TCP提供可靠的通信傳輸,而UDP則常被用于讓廣播和細節控制交給應用的通信傳輸。
UDP(User Datagram Protocol)
UDP不提供復雜的控制機制,利用IP提供面向無(wú)連接的通信服務(wù)。并且它是將應用程序發(fā)來(lái)的數據在收到的那一刻,立刻按照原樣發(fā)送到網(wǎng)絡(luò )上的一種機制。
即使是出現網(wǎng)絡(luò )擁堵的情況下,UDP也無(wú)法進(jìn)行流量控制等避免網(wǎng)絡(luò )擁塞的行為。此外,傳輸途中如果出現了丟包,UDO也不負責重發(fā)。甚至當出現包的到達順序亂掉時(shí)也沒(méi)有糾正的功能。如果需要這些細節控制,那么不得不交給由采用UDO的應用程序去處理。換句話(huà)說(shuō),UDP將部分控制轉移到應用程序去處理,自己卻只提供作為傳輸層協(xié)議的最基本功能。UDP有點(diǎn)類(lèi)似于用戶(hù)說(shuō)什么聽(tīng)什么的機制,但是需要用戶(hù)充分考慮好上層協(xié)議類(lèi)型并制作相應的應用程序。
TCP(Transmission Control Protocol)
TCP充分實(shí)現愛(ài)呢了數據傳輸時(shí)各種控制功能,可以進(jìn)行丟包的重發(fā)控制,還可以對次序亂掉的分包進(jìn)行順序控制。而這些在UDP中都沒(méi)有。此外,TCP作為一種面向有連接的協(xié)議,只有在確認通信對端存在時(shí)才會(huì )發(fā)送數據,從而可以控制通信流量的浪費。
TCP通過(guò)檢驗和、序列號、確認應答、重發(fā)控制、連接管理以及窗口控制等機制實(shí)現可靠性傳輸。此處不一一敘述。
TCP與UDP如何加以區分使用?
TCP用于在傳輸層有必要實(shí)現可靠性傳輸的情況。由于它是面向有連接并具備順序控制、重發(fā)控制等機制的。所以它可以為應用提供可靠傳輸。
另一方面,UDP主要用于那些對高速傳輸和實(shí)時(shí)性有較高要求的通信或廣播通信。舉一個(gè)IP電話(huà)進(jìn)行通話(huà)的例子。如果使用TCP,數據在傳送途中如果丟失會(huì )被重發(fā),但是這樣無(wú)法流暢地傳輸通話(huà)人的聲音,會(huì )導致無(wú)法進(jìn)行正常交流。而采用UDP,它不會(huì )進(jìn)行重發(fā)處理。從而也就不會(huì )有聲音大幅度延遲到達的問(wèn)題。即使有部分數據丟失,也只是影響某一小部分的通話(huà)。此外,在多播與廣播通信中也使用UDP而不是UDP。RIP、DHCP等基于廣播的協(xié)議也要依賴(lài)于UDP。
TCP與UDP區別總結:
1、TCP面向連接(如打電話(huà)要先撥號建立連接);UDP是無(wú)連接的,即發(fā)送數據之前不需要建立連接
2、TCP提供可靠的服務(wù)。也就是說(shuō),通過(guò)TCP連接傳送的數據,無(wú)差錯,不丟失,不重復,且按序到達;UDP盡最大努力交付,即不保證可靠交付6、TCP的邏輯通信信道是全雙工的可靠信道,UDP則是不可靠信道
參考文獻《圖解TCP/IP》《計算機網(wǎng)絡(luò )第五版》--謝希仁
聯(lián)系客服