TCP digest

weixin_33831673發表於2014-06-11

TCP在網路OSI的七層模型中的第四層——Transport層,IP在第三層——Network層,ARP在第二層——Data Link層,在第二層上的資料,我們叫Frame,在第三層上的資料叫Packet,第四層的資料叫Segment。   首先,我們需要知道,我們程式的資料首先會打到TCP的Segment中,然後TCP的Segment會打到IP的Packet中,然後再打到乙太網Ethernet的Frame中,傳到對端後,各個層解析自己的協議,然後把資料交給更高層的協議處理。

 

你需要注意這麼幾點:

  • TCP的包是沒有IP地址的,那是IP層上的事。但是有源埠和目標埠。
  • 一個TCP連線需要四個元組來表示是同一個連線(src_ip, src_port, dst_ip, dst_port)準確說是五元組,還有一個是協議。但因為這裡只是說TCP協議,所以,這裡我只說四元組。
  • 注意上圖中的四個非常重要的東西:
    • Sequence Number是包的序號,用來解決網路包亂序(reordering)問題。
    • Acknowledgement Number就是ACK——用於確認收到,用來解決不丟包的問題
    • Window又叫Advertised-Window,也就是著名的滑動視窗(Sliding Window),用於解決流控的
    • TCP Flag ,也就是包的型別,主要是用於操控TCP的狀態機的

http://kb.cnblogs.com/page/209100/

相關文章