使用wireshark抓包工具深入理解TCP连接的三次握手。

TCP的三次握手

TCP的三次握手大家都不陌生,下面用wireshark这个工具抓包,进一步的说明三次握手的细节。
使用wireshark抓包工具深入理解TCP连接的三次握手。

1.由客户端发起tcp连接的请求,此时客户端发送一条报文,其中包含SYN标志位,将SYN设置为1; 以及seq位。设seq = x ; 该报文段成为SYN报文段

2.服务器收到这条报文后,返回给客户端一条报文,包含Ack位,SYN,以及seq位。 其中ack = x+1; SYN = 1; seq = y。该报文段称为SYNACK报文段

3.当客户端收到SYNACK报文段之后,客户端需要再给服务器发送另外一个报文段,进行确认。该报文段的SYN = 0, seq = x +1, ack = y+1;

使用wireshark工具

在浏览器中键入:http://39.108.171.57/ 我的个人主页。

打开wireshark工具,在过滤器中输入http。使用wireshark抓包工具深入理解TCP连接的三次握手。

我们需要的是ip.src == 192.168.1.145 and ip.dst ==39.108.171.57。右键第一栏的 GET /HTTP/1.1 选择追踪TCP流。
使用wireshark抓包工具深入理解TCP连接的三次握手。

可以看到在http上方有三条tcp报文,就是tcp三次握手的具体过程。仔细看tcp报文中的信息。

第一条TCP报文:
使用wireshark抓包工具深入理解TCP连接的三次握手。
使用wireshark抓包工具深入理解TCP连接的三次握手。
其中将seq设置为0 , SYN = 1 , ack = 0;

第二条TCP报文:
使用wireshark抓包工具深入理解TCP连接的三次握手。
使用wireshark抓包工具深入理解TCP连接的三次握手。
其中ack = 1(第一条报文中的seq+1) , SYN = 1 , 再将seq设置为1;

第三条TCP报文:
使用wireshark抓包工具深入理解TCP连接的三次握手。
使用wireshark抓包工具深入理解TCP连接的三次握手。

可以很明显的看到 ack = 1第二条报文中seq+1) ; seq =1(第一条报文中seq+1) ; SYN=0;

用wireshark工具抓包就可以很清晰的了解tcp三次握手的过程。 在测试的过程中会经常碰到,TCP segment of a reassembled PDU的info。目前还没有理解是什么意思。可以参考一下博客:TCP segment of a reassembled PDU