筆記分享:網絡基礎篇之傳輸控制協議TCP報文解析

圖片來源自網絡

  • 面向連接的、可靠地、基於字節流的傳輸層通信協議
  • 將應用層的數據流分割成報文段併發送給目標節點的TCP層
  • 數據表都有序號,對方收到則發送ACK確認,未收到則重傳
  • 使用校驗和來檢驗數據在傳輸過程中是否有誤

 

TCP報文頭:

  • 第一層:源端口與目標端口,各佔兩個字節,一共四個字節
  • 第二層:報文段序號,每一個字節都會有對應的序號,佔四個字節
    • 接受了第一段報文段的第一個字節序號爲100,報文段一個20個字節
    • 那麼下一次接受的報文段的第一個字節序號應該爲121
  • 第三層:期望收到下一段報文的第一個字節的序號,也就是上面例子的121
  • 第四層:
    • offset表示數據偏移,是長度不固定的,用於指出TCP報文數據距離TCP報文的起始處有多遠。
    • Reserved保留段
    • TCP Flags:
      • URG:緊急指針標誌
      • ACK:確認序號標誌
      • PSH:push標誌
      • RST:重置連接標誌
      • SYN:同步序號,用於建立連接過程
      • FIN:finish標誌,用於釋放連接
    • Window指的是滑動窗口的大小,用於告訴發送端,接收端的緩存大小,以此用來控制發送端的發送速率。根據RTT與RTO做流量控制與亂序重排。
      • RTT:發送一個數據包到收到對應的ACK,所花費的時間
      • RTO:重傳時間間隔,TCP在傳送數據時會開啓一個重傳時間定時器,只有對方回覆了ACK纔會停止,不然就會觸發重傳。RTO是由RTT計算出來的。
      • 滑動窗口主要保證TCP的可靠性、流控特性
  • 第五層
    • Checksum:校驗和:
      • 校驗和(checksum)是指傳輸位數的累加,當傳輸結束時,接收者可以根據這個數值判斷是否接到了所有的數據。如果數值匹配,那麼說明傳送已經完成。通常是以十六進制表示。
    • Urgent Pointer:緊急指針,只有當TCP Flags爲URG纔有
    • TCP Options:可變長度,可選項
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章