现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

Wireshark抓包分析TCP的建立与断开过程分析

2013-06-02 22:00 工业·编程 ⁄ 共 634字 ⁄ 字号 暂无评论

一、TCP建立连接

说明:在此图中HostA充当客户端角色,HostB充当服务器角色。

TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN,ACK。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。

第一次握手:建立连接时,HostA发送SYN包(SEQ=a)到HostB,并进入SYN_SEND状态,等待HostB确认。

第二次握手:HostB收到SYN包后,必须确认HostA的SYN(ACK=a+1),同时自己也送一个SYN包(SEQ=b),即SYN+ACK包,此时HostB进入SYN_RECV状态。

第三次握手:HostA收到HostB的SYN+ACK包,向HostB发送确认包ACK(ACK=b+1),此包发送完毕,HostA和HostB进入入Established状态,完成三次握手。

TCP建立连接

抓包验证:

第一次握手

01.SYN

第二次握手

02.ACK+SYN

第三次握手

03.ACK

二、TCP断开连接

TCP断开连接

当数据传输完毕后,需要经过四次握手来断开TCP连接,其步骤如下:

  1. HostA要终止连接,发送序列号为p的段,FIN置位,同时确认此前收到的段;
  2. HostB收到HostA发送的段后,发送ACK段,确认号为p+1,同时关闭连接。
  3. 同时HostB发送序列号为q的段,FIN置位,通知连接关闭;
  4. HostA收到HostB发送的段后,发送ACK段,确认号为q+1,同时关闭连接。

抓包验证:

第一次握手:

04.FIN

第二、三次握手:

05.ACK+FIN

第四次握手:

06.ACK

实验完毕!

给我留言

留言无头像?