首页 新闻 会员 周边

scapy发送TCP报文时为何指定seq号无效?

0
悬赏园豆:10 [已解决问题] 解决于 2016-03-21 10:48

两台主机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抓包的内容如下:

我想知道这是什么原因?还是说我的使用方式有问题?

请懂这一方面的朋友给予回答,谢谢!

飞鸟_Asuka的主页 飞鸟_Asuka | 菜鸟二级 | 园豆:209
提问于:2016-03-16 22:12
< >
分享
最佳答案
0

已解决。需要在wireshark中关闭relative sequence number选项。

飞鸟_Asuka | 菜鸟二级 |园豆:209 | 2016-03-21 10:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册