Wireshark抓包TCP报文理解三次握手四次挥手(详解)

计算机网络 TOMORROW 5个月前 (06-08) 300次浏览 0个评论 扫描二维码

  

学计算网络协议的一个重要方法就是通过抓取相关协议的实际报文来分析解读。通过分析解读实际的交互报文可以帮助学习者非常深刻理解该协议。

 

Wireshark就是一个专门用来抓取并分析网络封包的软件。本文所展示的报文就是用Wireshark工具抓取的,TCP协议连接建立和终止的报文,也就是TCP协议的三次握手四次挥手的报文。

 

所抓取的TCP报文实际是通过应用层的 HTTP 协议来产生的,因为,HTTP 协议本身就是基于TCP协议的,产生报文的过程如下:

  • 建立 HTTP 连接到 www.baidu.com 的主机(此过程实际包含了TCP连接的建立过程,三次握手
  • 然后用 HTTP 协议随便发送几个字节数据(此过程包含TCP数据的发送和接收)
  • 因为第二步发送的数据是随便发送的,并不符合 HTTP 协议,所以百度网站的主机就会返回错误,然后终止该 HTTP 连接(此过程也就包含了 TCP 连接的终止,四次挥手

 

具体的报文如下:

+---------+---------------+----------+
00:55:53,587,017   ETHER
|0   |a4|93|4c|e3|22|7f|00|23|24|44|9f|67|08|00|45|00|00|34|38|92|40|00|40|06|00|00|c0|a8|0d|56|0e|d7|b1|27|c6|39|00|50|2f|b1|fe|8e|00|00|00|00|80|02|20|00|8e|23|00|00|02|04|05|b4|01|03|03|08|01|01|04|02|

+---------+---------------+----------+
00:55:53,592,447   ETHER
|0   |00|23|24|44|9f|67|a4|93|4c|e3|22|7f|08|00|45|00|00|34|38|92|40|00|37|06|7d|35|0e|d7|b1|27|c0|a8|0d|56|00|50|c6|39|94|f7|f4|70|2f|b1|fe|8f|80|12|20|00|42|db|00|00|02|04|05|ac|01|03|03|05|01|01|04|02|

+---------+---------------+----------+
00:55:53,592,489   ETHER
|0   |a4|93|4c|e3|22|7f|00|23|24|44|9f|67|08|00|45|00|00|28|38|93|40|00|40|06|00|00|c0|a8|0d|56|0e|d7|b1|27|c6|39|00|50|2f|b1|fe|8f|94|f7|f4|71|50|10|01|04|8e|17|00|00|

+---------+---------------+----------+
00:55:59,943,958   ETHER
|0   |a4|93|4c|e3|22|7f|00|23|24|44|9f|67|08|00|45|00|00|2f|38|f1|40|00|40|06|00|00|c0|a8|0d|56|0e|d7|b1|27|c6|39|00|50|2f|b1|fe|8f|94|f7|f4|71|50|18|01|04|8e|1e|00|00|68|65|6c|6c|6f|0d|0a|

+---------+---------------+----------+
00:55:59,949,537   ETHER
|0   |00|23|24|44|9f|67|a4|93|4c|e3|22|7f|08|00|45|00|00|28|05|55|40|00|34|06|b3|7e|0e|d7|b1|27|c0|a8|0d|56|00|50|c6|39|94|f7|f4|71|2f|b1|fe|96|50|10|03|08|a0|94|00|00|00|00|00|00|00|00|

+---------+---------------+----------+
00:55:59,950,378   ETHER
|0   |00|23|24|44|9f|67|a4|93|4c|e3|22|7f|08|00|45|00|00|44|05|56|40|00|34|06|b3|61|0e|d7|b1|27|c0|a8|0d|56|00|50|c6|39|94|f7|f4|71|2f|b1|fe|96|50|18|03|08|4b|ad|00|00|48|54|54|50|2f|31|2e|31|20|34|30|30|20|42|61|64|20|52|65|71|75|65|73|74|0d|0a|0d|0a|

+---------+---------------+----------+
00:55:59,950,409   ETHER
|0   |00|23|24|44|9f|67|a4|93|4c|e3|22|7f|08|00|45|00|00|28|05|57|40|00|34|06|b3|7c|0e|d7|b1|27|c0|a8|0d|56|00|50|c6|39|94|f7|f4|8d|2f|b1|fe|96|50|11|03|08|a0|77|00|00|00|00|00|00|00|00|

+---------+---------------+----------+
00:55:59,950,439   ETHER
|0   |a4|93|4c|e3|22|7f|00|23|24|44|9f|67|08|00|45|00|00|28|38|f2|40|00|40|06|00|00|c0|a8|0d|56|0e|d7|b1|27|c6|39|00|50|2f|b1|fe|96|94|f7|f4|8e|50|10|01|04|8e|17|00|00|

+---------+---------------+----------+
00:55:59,956,398   ETHER
|0   |a4|93|4c|e3|22|7f|00|23|24|44|9f|67|08|00|45|00|00|28|38|f3|40|00|40|06|00|00|c0|a8|0d|56|0e|d7|b1|27|c6|39|00|50|2f|b1|fe|96|94|f7|f4|8e|50|11|01|04|8e|17|00|00|

+---------+---------------+----------+
00:55:59,961,449   ETHER
|0   |00|23|24|44|9f|67|a4|93|4c|e3|22|7f|08|00|45|00|00|28|00|00|40|00|34|06|b8|d3|0e|d7|b1|27|c0|a8|0d|56|00|50|c6|39|94|f7|f4|8e|2f|b1|fe|97|50|10|03|08|a0|76|00|00|00|00|00|00|00|00|

 

上面的报文就是包含了 TCP 协议连接建立和终止(三次挥手和四次握手)的一个报文实例。通过按照 TCP 协议的报文格式逐帧分析,可以加深对 TCP 协议的理解。

 

下面根据以上报文画了一个图来帮助理解:

Wireshark 抓包 TCP 报文理解三次握手四次挥手(详解)

 

  • ①②都是 SYN 报文(不可携带数据),各自消耗一个序号,所以③⑤的 seq=1;而③只是 ACK 空报文,不消耗序号,因此④的 seq=1
  • ④是 PSH 报文,带 7 个字节有效数据,因此需要消耗 7 个序号,所以⑧的 seq=8;⑤是 ACK 空报文;⑥是 PSH 报文,带 28 个字节有效数据
  • ⑦⑨都是 FIN 空报文(可携带数据),都各自消耗 1 个序号,所以⑧⑩的 ack 都等于⑦⑨的 seq+1;
  • 从应用层来看,在 TCP 数据通信过程中,所传输的报文是 HTTP 协议

 

 

 


TOMORROW 星辰 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Wireshark 抓包 TCP 报文理解三次握手四次挥手(详解)
喜欢 (1)
TOMORROW
关于作者:
一个从石头坑掉到泥坑里的攻城狮。
专一的发箍发表我的评论  请填写正确的 个人信息
取消评论
表情 加粗 斜体 签到