三次握手分析 及 syn seq ack
我画了图:

三次握手过程:

CLOSE: client 关闭状态
LISTEN: server监听状态
SYN-SENT:client 同步已发送
SYN-RCVD:server 同步已发送
ESTABLISHED:连接以确立
三次握手 数据包:
①
②
③
前两次首部数据有32位 (首部20字节+option(12字节)) 看图可以看到
因为前两次交换了相关数据,为可靠传输提供服务
④ 真正开始发送http请求

四次挥手
偷了张图

FIN-WAIT-1:表示想主动关闭连接
- 向对方发送了FIN报文,此时进入到FIN-WAIT-1状态
CLOSE-WAIT:表示在等待关闭
当对方发送FIN给自己,自己会回应一个ACK报文给对方,此时则进入到CLOSE-WAIT状态
+在此状态下,需要考虑自己是否还有数据要发送给对方,如果没有,发送FIN报文给对方
FIN-WAIT-2:只要对方发送ACK确认后,主动方就会处于FIN-WAIT-2状态,然后等待对方发送FIN报文
CLOSING:一种比较罕见的例外状态
- 表示你发送FIN报文后,并没有收到对方的ACK报文,反而却也收到了对方的FIN报文
- 如果双方几乎在同时准备关闭连接的话,那么就出现了双方同时发送FIN报文的情况,也即会出现CLOSING状态
- 表示双方都正在关闭连接
LAST-ACK:被动关闭一方在发送FIN报文后,最后等待对方的ACK报文
- 当收到ACK报文后,即可进入CLOSED状态了
TIME-WAIT:表示收到了对方的FIN报文,并发送出了ACK报文,就等2MSL后即可进入CLOSED状态了
- 如果FIN-WAIT-1状态下,收到了对方同时带FIN标志和ACK标志的报文时可以直接进入到TIME-WAIT状态,而无须经过FIN-WAIT-2状态
CLOSED:关闭状态
由于有些状态的时间比较短暂,所以很难用netstat命令看到,比如SYN-RCVD、FIN-WAIT-1等
抓包分析
预览:

①

②

③

