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

http://www.joysin.net/network/protocol/wireshark-capture-tcp-establishment-and-disconnect.html


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

一、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断开连接

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

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

抓包验证:

第一次握手:

第二、三次握手:

第四次握手:

实验完毕!!!!!!!!!!!!!

                                                                                           Joysin

                                                                                       2010.11.30

你可能感兴趣的:(常用debug,Tool)