TCP和UDP

TCP(Transmission Control Protocol)) 是面向連接的傳輸層協(xié)議,所謂面向連接就是真正的數(shù)據(jù)傳輸開始前要建立連接的過程,否則不會進入真正的數(shù)據(jù)傳輸階段。

三次握手(過程):請求端(客戶端)發(fā)送一個SYN段指明客戶打算連接服務器端口,以及初始序號(ISN)。SYN 段為報文段1。

服務器發(fā)回包含服務器的初始序號的SYN 報文段(報文段2)作為應答。同時,將確認序號設置為客戶端的ISN加1以對客戶的SYN 報文段進行確認。一個syn將占用一個序號。

客戶必須將確認序號設置為服務器的ISN加1以對服務器的SYN報文段(報文段3)進行確認

自此,這三個報文段完成連接的建立

如下圖所示:

發(fā)送第一個SYN的一端將執(zhí)行主動打開(active open)。接收這個SYN并發(fā)回下一個SYN的另一端執(zhí)行被動打開(passive open)

當一端為建立連接而發(fā)送它的SYN時,它為連接選擇一個初始序號。ISN隨時間而變化,因此每個連接都將具有不同的ISN。


一個TCP連接是全雙工(即數(shù)據(jù)在兩個方向上能同時傳遞)的,因此每個方向必須單獨進行關閉,當一方完成它的數(shù)據(jù)發(fā)送任務后就發(fā)送一個FIN來終止這個方向連接。當一端收到一個FIN,它必須通知應用層另一段已終止了那個方向的數(shù)據(jù)傳送。所以TCP終止連接的過程需要四次握手

四次握手釋放TCP連接

UDP(User Datagram Protocol,用戶數(shù)據(jù)報協(xié)議)是一個簡單的無連接的傳輸層協(xié)議,UDP 不提供可靠性,它把應用層傳給IP層數(shù)據(jù)發(fā)送出去,但是并不保證數(shù)據(jù)能否到達目的地和傳說過程是否有數(shù)據(jù)丟失。

UDP和TCP 首部中有校驗和,UDP的校驗和是可選的,而TCP的校驗和是必須的

TCP 與 UDP有什么優(yōu)點和缺點:

1、TCP面向連接(如打電話要先撥號建立連接);UDP是無連接的,即發(fā)送數(shù)據(jù)之前不需要建立連接

2、TCP提供可靠的服務。也就是說,通過TCP連接傳送的數(shù)據(jù),無差錯,不丟失,不重復,且按序到達;UDP盡最大努力交付,即不保證可靠交付

3、TCP面向字節(jié)流,實際上是TCP把數(shù)據(jù)看成一連串無結構的字節(jié)流;UDP是面向報文的

UDP沒有擁塞控制,因此網(wǎng)絡出現(xiàn)擁塞不會使源主機的發(fā)送速率降低(對實時應用很有用,如IP電話,實時視頻會議等)

4、每一條TCP連接只能是點到點的;UDP支持一對一,一對多,多對一和多對多的交互通信

5、TCP首部開銷20字節(jié);UDP的首部開銷小,只有8個字節(jié)

6、TCP的邏輯通信信道是全雙工的可靠信道,UDP則是不可靠信道










最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容