17.TCP:傳輸控制協議

介紹

TCP和UDP使用同一網絡層(IP),但TCP提供了面向鏈接、可靠的傳輸層服務網絡

TCP傳輸給IP層的信息單位稱爲報文段或段指針

TCP經過以下方式保證可靠性:code

  • 應用數據被分割成TCP認爲最合適發送的數據塊
  • TCP發送一個段後,會啓動一個定時器等待目的端確認收到該段,不然重發
  • 當TCP接收端收到數據,會發送一個確認
  • TCP保持首部和數據校驗和,接收端發現校驗和有差錯就丟棄報文段
  • TCP將對收到的數據重排序,保證順序交給應用層
  • TCP接收端必須丟棄重複數據
  • TCP提供了流量控制,避免「快」主機壓垮「慢」主機

TCP提供字節流傳輸服務,它交換的數據都是由字節(8位)構成blog

TCP不解釋字節流內容,也就說它不知道傳輸的是二進制仍是字符,這個內容由應用層解釋排序

TCP首部

image_1ciu72du5f0t1pb61j6a1g2loab9.png-52.4kB

image_1ciu73n43111o8bolff15il1rh9m.png-100.5kB

由圖可知,TCP首部最少5*4=20字節ci

  • 端口:經過TCP首部的源、目的端口,和IP首部的源、目的IP,能夠惟一肯定一個鏈接
  • 序號:下一字節數據的序號。每發送一字節數據,序號+1,到達2^31-1後置0
  • 確認序號:確認端指望接收下一字節的序號,值爲上次成功接收數據序號+1
  • 首部長度:表明首部佔了多少個32位,4位表明最多2^4=16個32位word,也就是64字節
  • 標誌位:6個標誌位
    • URG:緊急指針有效
    • ACK:確認序號有效
    • PSH:接收方應該儘快將這個報文段交給應用層
    • RST:重建鏈接
    • SYN:同步序號用來發起一個鏈接
    • FIN:發送端完成發送任務
  • 窗口大小:接收端指望接收的字節數,TCP基於該窗口大小進行流量控制
  • 校驗和:覆蓋TCP首部和TCP數據,發送端計算和存儲,接收端驗證
  • 緊急指針:表明一個正偏移,表示緊急數據的序號到哪結束。當URG=1該值纔有意義,該偏移加上序號字段的值等於緊急數據最後一字節的序號
  • 選項:最多見選項爲MSS,表明最長報文段大小
相關文章
相關標籤/搜索