TCP抓包分析

92 52006  >  2001 [PSH, ACK] Seq=1 Ack=1 Win=1460 Len=26  :网关给服务器26个字节的数据,序号(Seq)为1

66 2001  >  52006 [ACK] Seq=1 Ack=27 Win=227 Len=0  :服务器发送一个确认包,确认号:27(Seq + 数据长度(Len))

89 2001  >  52006 [PSH, ACK] Seq=1 Ack=27 Win=227 Len=23  :服务器发送23个字节的查询指令,序号为1

66 52006  >  2001 [ACK] Seq=27 Ack=24 Win=1460 Len=0  :网关发送一个确认包,确认号:24

92 52006  >  2001 [PSH, ACK] Seq=27 Ack=24 Win=1460 Len=26  :网关回复服务器设备数据26个字节,序号27

66 2001  >  52006 [ACK] Seq=24 Ack=53 Win=227 Len=0  :服务器发送确认包,确认号:53

win:本端当前缓存大小,Len=0:说明不带数据,Len=**说明数据长度是**字节

以上是从网关抓的包,92是代表这个报文的总长度,其中有数据部长度Len=26,其余的66个字节是以太网的首部+ip首部+tcp首部的总长度。

三次握手中seq和ack的值:tcp建立连接的三次握手如下:客户机为A,服务器为B

(1)A -> [SYN] -> B

A要和B通讯时,A首先向B发送一个SYN标记的包,告诉B建立连接;

注意:一个SYN包就是仅SYN标记设为1的TCP包,只有B收到A发来的SYN包时才可建立连接。

(2)B -> [SYN/ACK] -> A

B收到后会发送一个对SYN包确认的[SYN/ACK]回去,表示对第一个SYN包的确认,并继续握手操作。

注意: SYN/ACK包是仅SYN 和 ACK 标记为1的包.

(3)A -> [ACK] -> B

A收到[SYN/ACK]包后A发送一个[ACK]确认包通知B连接以建立。到此三次握手完成,一个TCP连接建立。

注意:ACK包就仅ACK标记为1的TCP包,需要注意的是,当三次握手完成,连接建立以后,TCP连接的每个包都会设置ACK位握手阶段,就如上面的包一样,每个发送的包都会接受一个ACK确认包。

三次握手与四次挥手参考:https://blog.csdn.net/happyrocking/article/details/78198776

你可能感兴趣的:(tcp连接机制)