我在pcap文件中捕获了多路径TCP流量,其中包含支持MPTCP的修改内核 . 带有 Scapy
的流量中的数据包的第2层报头给出了类似下面的内容,我不像以太网报头那样 .
>>> p = sniff(offline="my.pcap", count=1)[0]
>>> p.show()
###[ cooked linux ]###
pkttype = sent-by-us
lladdrtype= 0x1
lladdrlen = 6
src = '4@\xb5\x8e\x15\x92'
proto = IPv4
###[ IP ]###
version = 4L
ihl = 5L
...
...
...
当我尝试使用 sendp()
发送上述数据包时,我无法在转储中看到任何内容(包括tcpdump和Wireshark) . 我想,由于没有目标mac地址, sendp()
无法发送 . 但目的地IP地址就在那里 . 当我尝试使用send()发送时,它会显示警告: "WARNING: Mac address to reach destination not found. Using broadcast."
但是从那以后,我使用 tcpdump
从实时流量中捕获了该数据包,它是如何仅使用目标IP地址发送的?在Scapy / Python中是否有任何解决方法?
我还想在Python中使用MPTCP的一些建议 .
1 回答
使用的pcap文件包含错误的数据包 . 使用启用了MPTCP的内核启动并进行了新的测试 . 这是我从包含有效以太网地址的MPTCP数据包中获得的 .
选项的最后一部分包含
Kind=30
,表示这是一个MPTCP数据包 .