Wireshark是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。
通过Wireshark的抓包数据可以获取那些信息呢?
Frame: 物理层的数据帧概况
Ethernet II: 数据链路层以太网帧头部信息
Internet Protocol Version 4: 互联网层IP包头部信息
Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP
Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议


小写的ack表示ACK number
一个TCP三次握手的实例

观察第一个TCP报文段:客户端想服务器发送的请求连接包

重要的数据,SYN=1, seq=0 (sequence number),表示连接请求
第二个TCP报文段:服务器向客户端发送的确认报文段

重要数据,SYN=1,seq=0,ACK=1(并不是ACK number,值为1时,表示确认号 字段 有效),ACK number=1(这个才是确认号,表示期望收到对方 下一段报文段的 第一个 数据字节 的 序号sequence number,也就是说希望下一段的seq=1,这个也表示1之前的数据包已经接受了)
第三个TCP报文段:客户端向服务器发送的确认报文段

重要数据,ACK=1, seq=1, ACK number=1
注意区分ACK和ACK number
这样就完成了TCP三次握手,连接建立完成
网友评论