TCP&UDP

1. 傳輸層協(xié)議

  • TCP:傳輸控制協(xié)議
  • UDP:用戶數(shù)據(jù)報協(xié)議

2. UDP特點

  • 無連接: 不用在數(shù)據(jù)傳輸之前連接和釋放連接
  • 盡最大努力交付
  • 面向報文: 既不合并,也不拆分
  • 應(yīng)用報文會原封不動作為傳輸層UDP數(shù)據(jù)報的數(shù)據(jù)部分和UDP首部組成運輸層的UDP數(shù)據(jù)報


3. UDP功能

  • 復(fù)用:多個端口可以共用一個傳輸層UDP的數(shù)據(jù)報, 再經(jīng)由IP層傳輸出去
  • 分用: IP數(shù)據(jù)報拆分成UDP數(shù)據(jù)包, 每個報文格式中有原有端口和目的端口的標(biāo)識, 可以根據(jù)目的端口進(jìn)行分發(fā)
  • 差錯檢測

    差錯檢測
TCP傳輸協(xié)議

4.TCP特點

  • 面向連接
  • 可靠傳輸
  • 面向字節(jié)流
  • 流量控制
  • 擁塞控制
4.1 面向連接

數(shù)據(jù)開始傳輸之前,需要建立連接三次握手, 數(shù)據(jù)傳輸完成后,需要釋放連接,四次揮手

三次握手

三次握手??
  • 為應(yīng)對網(wǎng)絡(luò)中存在的延遲: 如果1.SYN同步報文延遲發(fā)送到服務(wù)端,
  • 客戶端超時連接機(jī)制會再次發(fā)送1.SYN同步報文,
  • 服務(wù)端發(fā)送同步確認(rèn)報文2.SYN,ACK; 客戶端發(fā)送3.ACK確認(rèn)報文;
  • 如果此時服務(wù)端收到延遲的1SYN同步報文, 服務(wù)端會以為客戶端要在進(jìn)行一次TCP連接, 會發(fā)送同步確認(rèn)報文到客戶端,
  • 但此時客戶端因為已連接, 是不會再次發(fā)送3ACK確認(rèn)連接報文的. >- 這樣服務(wù)端在一段時間后會認(rèn)為 是超時報文, 客戶端不想建立連接.

四次揮手

  • 為什么要四次揮手, 而不是兩次?
    因為一條通道客戶端和服務(wù)端都可以接收和發(fā)送, 所以要雙向斷開
4.2 TCP可靠傳輸
  • 無差錯
  • 不丟失
  • 不重復(fù)
  • 按序到達(dá)

停止等待協(xié)議

  • 無差錯情況


    無差錯情況
  • 超時重傳


    超時重傳
  • 確認(rèn)丟失


    確認(rèn)丟失
  • 確認(rèn)遲到


    確認(rèn)遲到
4.3. TCP面向字節(jié)流
面向字節(jié)流
  • 發(fā)送方有一個緩沖區(qū)
  • 接收方也有一個緩沖區(qū)
  • 無論發(fā)送方一次給TCP緩沖區(qū)傳遞多少字節(jié), 對TCP本身來說, 會根據(jù)實際情況進(jìn)行劃分一次傳遞多少字節(jié), 并不是把發(fā)送方所有字節(jié)一次傳遞給接收方[和UDP不同]
4.4. TCP流量控制

基于滑動窗口協(xié)議






4.5. TCP擁塞控制



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

友情鏈接更多精彩內(nèi)容