TCP(Transmission Control Protocol):傳輸控制協議
UDP(User Datagram Protocol):用戶數據報協議
主要從鏈接性(Connectivity)、可靠性(Reliability)、有序性(Ordering)、有界性(Boundary)、擁塞控制(Congestion or Flow control)、傳輸速度(Speed)、量級(Heavy/Light weight)、頭部大小(Header size)等8個方面來說:
1. TCP是面向鏈接(Connection oriented)的協議,UDP是無鏈接(Connection less)協議;
TCP用三次握手創建鏈接:1) Client向server發送SYN;2) Server接收到SYN,回覆Client一個SYN-ACK;3) Client接收到SYN_ACK,回覆Server一個ACK。到此,鏈接建成。UDP發送數據前不須要創建鏈接。
2. TCP可靠,UDP不可靠;
TCP丟包會自動重傳,UDP不會。
3. TCP有序,UDP無序;
消息在傳輸過程當中可能會亂序,後發送的消息可能會先到達,TCP會對其進行重排序,UDP不會。
4. TCP無界,UDP有界;
TCP經過字節流傳輸,UDP中每個包都是單獨的。
5. TCP有流量控制(擁塞控制),UDP沒有;
主要靠三次握手實現。以及慢開始、擁塞避免、快重傳、快恢復
6. TCP傳輸慢,UDP傳輸快;
由於TCP須要創建鏈接、保證可靠性和有序性,因此比較耗時。這就是爲何視頻流、廣播電視、在線多媒體遊戲等選擇使用UDP。
7. TCP是重量級的,UDP是輕量級的;
TCP要創建鏈接、保證可靠性和有序性,就會傳輸更多的信息,如TCP的包頭比較大。
8. TCP須要更多資源,UDP則要好上不少
9. 應用場合不一樣:TCP通常應用在對可靠性要求比較高的場合,例如http,ftp等等。而UDP通常應用在對實時性要求較高場合,例如視頻直播,大文件傳輸等等
小結:
TCP是面向鏈接的、可靠的、有序的、速度慢的協議;UDP是無鏈接的、不可靠的、無序的、速度快的協議。
TCP開銷比UDP大,TCP頭部須要20字節,UDP頭部只要8個字節。
TCP無界有擁塞控制,TCP有界無擁塞控制。
僅供學習參考,侵權刪,原文連接:https://www.cnblogs.com/-wang-cheng/p/5421988.html