天天看點

[計算機網絡筆記]第三部分——傳輸層之TCP 封包結構 第三部分——傳輸層層協定

第三部分——傳輸層層協定

TCP協定:

      TCP的連接配接狀态之在端系統存在,在網絡鍊路上和交換機上是不知道的,因為鍊路上和交換機上沒有到傳輸層的處理能力

      TCP是點對點連接配接的,一個連接配接隻有兩個端系統

      為了避免頻繁發送TCP封包,TCP設有緩存,每次取出緩存發送,取出的緩存大小受限于MSS(最大封包段長度)

      TCP封包結構

源端口号 目标端口号
序号
确認号
首部長度(機關:4位元組) 保留 URG ACK PSH RST SYN FIN 接收視窗
網際網路校驗和 緊急資料指針
選項
應用層資料

一行為32比特,第一行和第五行是等分的(各16比特)第四行接收視窗占16比特,黃色表示TCP首部,灰色表示TCP真實資料部分

      TCP封包結構解釋:

  1. 源端口号、目标端口号:用于多路分解
  2. 序号:為了TCP可靠傳輸而設計的,用于辨別一個TCP封包,表示本TCP是從哪一個位元組開始傳輸的
  3. 确認号:本意為确認己方已接受的位元組數(在此序号之前的位元組己方已經全部接受),在規律上,A對B發送的封包的确認号總是等于下一次B對A發送的序号。
  4. 首部長度:4比特,機關是4位元組,也就是最多可以表示最多((2^4)-1)*4=60個位元組的首部。

之是以要有首部長度,是因為TCP的首部長度是不固定的,有可選的選項字段可以加入,一般情況下可選選項為空,這時TCP首部長度是20個位元組同時可以看出,因為首部長度機關是4位元組,選項隻能加入4位元組的倍數,如果不夠4位元組則填充滿。

  1. 保留:現在沒有用到的位,有6比特
  2. URG辨別:1比特,緊急指針,置1表示目前TCP封包要盡快傳輸,無需按照序列發送,需要配合後面2個位元組的緊急資料指針使用
  3. ACK辨別:1比特,确認辨別,置1表明發送的是一條ACK确認封包,這時确認号才有意義
  4. PSH辨別:1比特,PUSH辨別,置1表示本次TCP封包要盡快推送到上層應用層,無需等待接收緩存
  5. RST辨別:1比特,用于重新開機連接配接,置1表示要斷開重建立立TCP連接配接
  6. SYN辨別:1比特,用于建立連接配接,置1表示目前TCP封包是建立連接配接的封包,TCP三向交握的前兩次封包中SYN都是1
  7. FIN辨別:1比特,用于拆除連接配接,置1表示發送方要斷開TCP連接配接,TCP四次揮手中,每一方的揮手過程(兩方都要揮手)的第一個TCP封包FIN為1
  8. 接收視窗:用于協調發送方和接收方的發送速率,防止接收緩存溢出,本字段可以告知接收方發送方還可以接受多少封包(位元組計算)
  9. 網際網路校驗和:同UDP的校驗和,計算時需要計算整個TCP封包(首部+資料)的長度,16比特,相加回卷

繼續閱讀