TCP:傳輸控制協議(Transmission Control Protocol)
1.Tcp是面向連接的運輸層協議,這就是說,應用程序在使用TCP提供的服務傳送數據之前,必須先建立TCP連接。建立連接的目的是通信雙方為接下來的數據傳輸傳做好裝備,初始化各種狀態變量,分配資源等等,在傳輸數據完畢后,必須釋放以建立的TCP連接,即釋放變量和資源。這個過程與打電話類似:通話前先撥號建立連接,童話結束后要釋放連接
2.TCP提供可靠交付的服務,也就是說,通過TCP連接傳送的數據是無差錯,不丟失,不重復,並且按序到達的
3.TCP為了保證報文傳輸的可靠,就給每個包一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然后接收端實體對已成功收到的字節發回一個相應的確認(ACK);如果發送端實體在合理的往返時延(RTT)內未收到確認,那么對應的數據(假設丟失了)將會被重傳
4.TCP提供全雙工通信。就是允許通信雙方的應用程序在任何時候都能放送數據。
5.TCP是面向字節流的。其中的“流”值的是流入到進程或進程流出的字節序列
6.每一條TCP連接只能是點對點的,即一對一。每條TCP連接只能由兩端點,這兩端點由IP地址和端口號來唯一標識。
UDP:用戶數據報協議(User Datagram Protocol)
1.UDP只是在IP協議服務的基礎上,添加了端口的功能。有了端口,運輸層就可以進行復用和分用和差錯檢測的功能
2.UDP是無連接的,即發送數據前不需要建立連接(當然發送數據結束后也不沒有連接來釋放),因此減少了開銷和發送數據的時延。即速度快,但不安全
3.UDP是盡最大努力交付,即不保證可靠交付,當然同時也不使用流量控制和擁塞控制。
4.由於UDP沒有擁塞控制,因此網絡出現的擁塞不會使源主機的發送速率變慢,這就對某些實時的軟件應用和重要。很多的實時應用入如IP電話,實時視頻會議等都要求源主機能夠以幾乎恆定的速率來發送數據,但允許在網絡擁塞時丟失一些數據,但卻不允許數據有太大的時延,不然就容易造成卡頓
5.UDP是面向報文的,意思就是說,應用交付一個報文給UDP,UDP就發送這個報文了,不會再對報文進行切分成分組了
TCP與UDP區別:
1.最大的區別就是TCP是面向連接的,而UDP是無連接的
2.TCP是可靠的,安全的;UDP是不可靠的,不安全的,但是傳輸數據的速率快
3.TCP比UDP更復雜,它具有流量控制和擁塞控制機制
4.TCP面向字節流;UDP是面向報文的
5.TCP對系統資源要求較多,UDP對系統資源要求較少。TCP首部有20個字節,UDP的首部只有8個字節的首部開銷。
6.TCP連接只能是一對一的;而UDP支持一對一,一對多和多對多的交互通信
7.UDP協議不使用確認信息對報文的到達進行確認,它不能保證報文到達的順序,也不能向源端反饋信息來進行流量控制,因而會出現報文丟失等現象。
8.TCP肯定將數據傳送出去,並且在目的主機上的應用程序能以正確的順序接收數據。
如該文章能對你有所幫助,請幫忙點個推薦和關注!謝謝!0.0