下载安装wireshark
下载安装教程:wireshark的安装
抓包分析详细过程
- 打开wireshark, 打开浏览器输入 http://blog.jetwong.cn/
- 在wireshark中输入http过滤, 然后选中一条http记录,如下图:
右键点击选中 追踪流 > tcp流,如下:
会看到下图所示:
可以发现,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三次握手,建立了连接
有人可能对三次握手过程中的 +1可能有疑问,说明如下:
TCP会话的每一端都包含一个32位(bit)的序列号,该序列号被用来跟踪该端发送的数据量。每一个包中都包含序列号,在接收端则通过确认号用来通知发送端数据成功接收
当某个主机开启一个TCP会话时,他的初始序列号是随机的,可能是0和4,294,967,295之间的任意值,然而,像Wireshark这种工具,通常显示的都是相对序列号/确认号,而不是实际序列号/确认号,相对序列号/确认号是和TCP会话的初始序列号相关联的。这是很方便的,因为比起真实序列号/确认号,跟踪更小的相对序列号/确认号会相对容易一些
比如,在“包1”中,最初的相对序列号的值是0,但是最下方面板中的ASCII码显示真实序列号的值是0xf61c6cbe,转化为10进制为4129057982
然后就会看到
关于tcp三次握手和四次释放连接更为详细的资料,可以参考一下:
https://blog.csdn.net/wz947324/article/details/79917486
https://blog.csdn.net/wz947324/article/details/79917623
https://blog.csdn.net/liubaoxyz/article/details/49949439