傳輸層 2 —— TCP /UDP

目錄

UDP

UDP的主要特點

UDP的首部格式

TCP

TCP 概述

TCP的首部格式

TCP的連接

TCP的主要特點

    TCP如何實現可靠傳輸?

    TCP 如何實現流量控制?

    TCP 如何避免網絡擁塞?

 TCP的傳輸連接管理      

建立連接

TCP的連接釋放


UDP

UDP的主要特點

  1. UDP 是無連接的
  2. UDP 使用最多交付,即不保證可靠交付,同時也不使用擁塞控制
  3. UDP 是面向報文的。UDP沒有擁塞控制,很適合多媒體的要求
  4. UDP 支持1對1、1對多、多對1和多對多的交互通信
  5. UDP 的頭部開銷小,只有 8個字節。

UDP的首部格式

UDP 的首部共20個字節,其中12個是僞首部(網絡層的的一些數據)

檢驗和:需要僞首部和數據的校驗。

TCP

傳輸控制協議 TCP

TCP 概述

  1. TCP是面向連接的傳輸協議
  2. 每條TCP連接只能有兩個端點(endpoint),每條TCP連接只能是點對點的(1對1的)
  3. TCP提供可靠交付的服務
  4. TCP提供全雙工通信
  5. 面向字節流 把文件從一個計算機傳遞到另一個計算機。(文件分成多段,先讀到TCP緩存,然後從緩存裏在分段讀取發送。目標計算機拿到後先在緩存,然後從緩存拿到數據再進行組裝成文件。每次讀取都是面向字節的,讀,存,取 ,發的數據大小沒有關係。)

TCP的首部格式

序號: seq 指發送的數據段的第一個字節在整個文件裏的字節的位置。eg: 1234 爲一個數據段序號爲1;56爲一個數據段序號爲5;……

確認號:ack 指收到數據包後給發送的計算機確認信息,確認下一個應該發送的數據包在文件裏的字節;eg :1234收到後會給發送者下次該發5,確認號爲5;56收到後會給發送者下次該發7,確認號爲7;

數據偏移: 1個字節。中的一個1代表4個字節。最多15*4 = 60 ;60 - 20 = 40 ;選項中的可變長度最多爲40字節。

保留 :無用

URG:優先標記位。發送的緩存裏的優先級的指令,可以不在緩存裏排隊。

ACK:確認標記位。用於標記確認號有無效。1有效

SYN:同步時用到。發起會話的數據包。(發送和同意發送)1時爲主動發起連接是數據包

PSH:同 URG 標記位。接收緩存裏的優先級的指令,可以不在緩存裏排隊。

RST:異常中斷。需重新連接

FIN:釋放連接。

窗口:得到對方發送和接收時的緩存大小,進行同步

檢驗和:校驗範圍首部和數據兩部分。同UDP的校驗,協議號爲7;

緊急指針:標記緊急數據的尾部位置。(從0 到標記)

 

TCP的連接

 TCP 是點到點的通信(iP地址+端口 叫套接字socket)。

套接字socket = iP地址+端口 。

每條TCP連接唯一的被通信兩端的兩個端點(即兩個套接字所確定) 即:TCP連接   = {socket1 ,socket2} = { (IP1:port1),(IP2:port2) }

TCP的主要特點

    TCP如何實現可靠傳輸?

        停止等待協議。沒有收到回覆就會再次發送重複數據。ARQ(自動重傳機請求)。

        優點:簡單。缺點:信道利用率太低。

        如和提高信道利用:

       1、 流水線傳輸。發送方連續發送多個數據包,不等待收到回覆後在發送後面的數據。利用發送窗口發送數據。

       2、累計確認:確定連續收到包的最後一個數據加1(應該發送那個數據了)。

 一 、以字節爲單位的滑動窗口

         丟失時會選擇性確認,只發送丟失的數據段。     

         超時重傳時間的選擇。取平均往返時間,因爲受到網速帶寬的影響。

    TCP 如何實現流量控制?

          通過接收端告訴發送端發送窗口的大小來控制。

          當接收端收到的數據快要充滿緩存是,接收端會告訴發送方減緩發送。當處理完全時也會處理,告知快速發送。

    TCP 如何避免網絡擁塞?

        發送方維護一個擁塞窗口。(開始慢的計算原則)

        慢開始和擁塞避免算法(先是值數增長達到16後,在線性增長,丟包後回減少發包,減少到丟失前的一半)

        快速重傳:發現丟包後立即確認(發送三次),重傳丟失的數據包。

        快恢復:出現擁塞後不回覆到指數增長前,回到線性增長位置

 TCP的傳輸連接管理      

傳輸的三個階段: 建立連接、數據傳輸和連接釋放。

TCP連接的建立都是採用客戶服務方式。(客戶端Client 主動連接服務器 server)

建立連接

 三次握手

 

第三次確認:非同步信息了。爲了防止服務器等待時間過長而造成的資源浪費。

三次握手建立TCP連接的狀態

1、客戶端發送請求連接後的狀態爲:SYN - SENT

2、服務接收到連接請求後然後發送收到的確認,然後的狀態變更爲SYN-RCVD。 (由LISTEN轉變過來的).

3、客戶端收到服務的請求後的狀態後,再發送確認(非同步信息了),客戶端的狀態變爲ESTAB -LISHED .

4、服務接收到客戶端的再次請求後狀態變更爲ESTAB -LISHE;

都變成ESTAB -LISHE狀態後,然後進行數據傳輸。

TCP的連接釋放

客戶端最後等待2MSL(4分鐘):原因是如果最後一個包丟失,服務會一直處於LAST-ACK的狀態。延遲等待後,當包丟失後服務再次發送是還可以響應。

 

參考 :《韓立剛老師主講 計算機網絡》視頻筆記。僅供自己複習參考使用,如有問題歡迎指出

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章