码迷,mamicode.com
首页 > 其他好文 > 详细

TCP协议

时间:2017-12-02 17:47:45      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:src   sed   tis   number   logs   arp   lin   port   .com   

TCP在网络OSI的七层模型中的第四层-Transport层,IP在第三层--Network层,ARP在第二层--DataLink层,在第二层上的数据我们将Frame,在第三层上的数据叫Packet,第四层的数据叫Segment。

首先,我们需要知道,我们程序的数据首先会打到TCP的Segment中,然后TCP的Segment会打到IP的Packet中,然后再打到以太网的Ethernet的Frame中,传到对端后,各个层解析自己的协议,然后把数据交给更高层的协议处理。

TCP头格式

技术分享图片

注意:

  • TCP的包是没有IP地址的,那是IP层上的事。但是有源端口和目标端口。
  • 一个TCP连接需要四个元祖来表示是同一个连接(src_ip,src_port,dst_ip,dst_port)准确来说是五元组,还有一个是协议,但因为这里只是说TCP协议,所以只说四元组。
  • Sequence Number是包的序号,用来解决网络包乱序(reordering)问题。
  • Acknowledgement Number就是ACK--用于确认收到,用来解决不丢包的问题。
  • Window又叫Advertised-Window,也就是著名的滑动窗口,用于解决流控的。
  • TCP Flag,也就是包的类型,主要用于操控TCP的状态机的。

TCP状态机

网络上的传输是没有连接的,包括TCP也是一样的。而TCP所谓的“连接”,其实只不过是在通讯的双方维护一个“连接状态”,让它看上去好像有连接一样。所以,TCP的状态变换是非常重要的。

下面是:“TCP协议的状态机”和"TCP建连接",“TCP断连接”,“传数据”的对照图:

技术分享图片                       技术分享图片

 

TCP协议

标签:src   sed   tis   number   logs   arp   lin   port   .com   

原文地址:http://www.cnblogs.com/fangpengchengbupter/p/7954673.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!