一、前置说明:
抓包工具采用wireshark
127为主机A
126为主机B
二、报文及对应的包头信息:
1.tcp连接建立:三次握手
报文抓包
交互流程
第一次握手:主机A---SYN---->主机B
主机A发送连接请求。主机A想要与主机B进行TCP通信,首先他需要向B发送一个syn同步序列编号syncsynchronized squsequence number用来标记保持同步。
作用:主机A希望知道自己是否可以发送数据。
第二次握手:主机B---SYN,ACK---->主机A
主机B发回确认包(ACK)应答。主机B向A发送一个syn同步序列号和ack确认号。确认号为A主机发送的syn号+1。
作用:证明主机B可以收到数据,主机B希望知道自己是否可以发送数据。
第三次握手:主机A---ACK---->主机B
主机A再次发送确认包(ACK)。主机A向主机B发送ack确认码为主机B的syn号+1,到此为止三次握手结束进入ESTABLISHED状态,开始进行数据传输。
作用:证明主机A可以收到数据,且可以发送数据。(主机B收到该报文,证明主机B可以接收数据和发送数据。)。即:证明双方可以收发数据。
2 发送报文:报文内容“abcdefg”
报文抓包
发送数据:主机A---PSH,ACK---->主机B
发送响应:主机B---ACK---->主机A
3 客户端断开连接:四次挥手
报文抓包
报文交互
主机A想要断开与主机B之间的TCP连接,即主机A是主动方,主机B是被动方。
第一次挥手:主动方----FIN,ACK--->被动方
发送FIN请求断开连接。
第二次挥手:被动方----ACK--->主动方
被动方向主动方发送确认码,为FIN号+1。
第三次握手:被动方---FIN---->主动方
被动方向主动方发送FIN请求断开连接。
第四次挥手:主动方---ACK---->被动方
主动方向被动方发送ACK号为FIN+1,这时tcp连接完成断开。