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

TCP/IP

时间:2017-10-06 18:37:19      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:协议   9.png   sha   mission   ber   建立   img   mis   挥手   

TCP协议:传输控制协议--- Transmission Control Protocol

建立连接:

   三次握手:

  1. 给对方拨号 (客户端发送SYN包至服务器,并进入SYN_SENT状态,等待服务器确认)

  2. 喂,你好,请问你哪位 (服务器收到客户端的SYN包,发送一个ACK, 同时发送自己的SYN, 此时服务器进入SYN_RECV状态)

  3. 我是海  (客户端接收到服务器发送的SYN+ACK后,进入Established状态,并发送服务器SYN包的确认ACK, 服务器接收到客户端ACK后, 进入Established状态)

  当客户端和服务器都进入到Established状态后,客户端和服务器之间就开始双向传递数据了

 

wireshark与对应的OSI七层模型

技术分享

 

TCP包的具体内容

 从下图可以看到wireshark捕获到的TCP包中的每个字段。

 

 技术分享

 

实例分析TCP三次握手过程

三次握手过程为

技术分享

 

 

这图我都看过很多遍了, 这次我们用wireshark实际分析下三次握手的过程。

打开wireshark, 打开浏览器输入 http://www.cnblogs.com/tankxiao

在wireshark中输入http过滤, 然后选中GET /tankxiao HTTP/1.1的那条记录,右键然后点击"Follow TCP Stream",

这样做的目的是为了得到与浏览器打开网站相关的数据包,将得到如下图

 技术分享

图中可以看到wireshark截获到了三次握手的三个数据包。第四个包才是HTTP的, 这说明HTTP的确是使用TCP建立连接的。

 

第一次握手数据包

客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。 如下图

技术分享

第二次握手的数据包

服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1, 如下图

技术分享

第三次握手的数据包

客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1, 如下图:

技术分享

 就这样通过了TCP三次握手,建立了连接

关闭连接:

  四次挥手:

    

 

控制手段: 保证可靠性

TCP/IP

标签:协议   9.png   sha   mission   ber   建立   img   mis   挥手   

原文地址:http://www.cnblogs.com/wanghaihong200/p/7631901.html

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