wireshark抓包分析tcp的三次握手详细过程
下载安装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
如果想要关闭相对***/确认号,可以选择Wireshark菜单栏中的 Edit -> Preferences ->protocols ->TCP,去掉Relative sequence number后面勾选框中的√即可
然后就会看到