我在一个支持MPTCP的修改内核的pcap中捕获了一个多路径TCP流量。Scapy流量中数据包的第二层报头提供了类似于下面的内容,我无法理解,因为它不像以太网报头。
>>> 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提供一些建议。
发布于 2014-12-05 04:56:58
使用的pcap有错误的数据包。使用启用MPTCP的内核引导并执行新的测试。这就是我从包含有效以太网地址的MPTCP数据包中得到的信息。
>>> ack_pkt = sniff(offline="../mptcp/mptcpdemo.pcap", count=14)[0]
>>> ack_pkt.show()
###[ Ethernet ]###
dst = 00:**:**:**:**:44
src = 34:**:**:**:**:92
type = IPv4
###[ IP ]###
version = 4L
ihl = 5L
tos = 0x0
len = 72
...
...
...
###[ TCP ]###
...
...
...
options = [('MSS', 1460), ('SAckOK', ''), ('Timestamp', (523099492, 0)),
('NOP', None), ('WScale', 7), (30, '\x00\x81\x8bxb\xdfZ\xbdS\t')]选项的最后一部分包含Kind=30,它说这是一个MPTCP数据包。
https://stackoverflow.com/questions/27120703
复制相似问题