两台主机A和B,IP地址分别是192.168.10.132和192.168.10.138,现在A上用scapy构造一个seq=1的TCP SYN报文给B,B再构造一个seq=2,ack=1的报文给A,A再返回一个ack=2,seq=3的报文完成三次握手过程。
代码如下:
from scapy.all import * send(IP(src='192.168.10.132',dst='192.168.10.138')/TCP(sport=54321,dport=32145,seq=1,flags='S')) # 以上是A的第一个包 send(IP(src='192.168.10.138',dst='192.168.10.132')/TCP(sport=32145,dport=54321,seq=2,ack=1,flags='SA')) # 以上是B的返回包
但是在实际实验过程中,用wireshark抓包时发现B收到第一个包时TCP的seq字段的值为0!而且B自动返回了一个TCP RST报文。也就是说B并没有受到A构造的seq=1的报文。
wireshark抓包的内容如下:
我想知道这是什么原因?还是说我的使用方式有问题?
请懂这一方面的朋友给予回答,谢谢!
已解决。需要在wireshark中关闭relative sequence number选项。