- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我使用支持 MPTCP 的修改内核在 pcap 文件中捕获了多路径 TCP 流量。该流量中带有 Scapy
的数据包的第 2 层 header 给出了类似下面的内容,我无法理解,因为它不像以太网 header 。
>>> 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 的建议。
最佳答案
使用的 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')]
Options 的最后一部分包含 Kind=30
,表示这是一个 MPTCP 数据包。
关于python - 无法使用 Scapy sendp() 发送 MPTCP 数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27120703/
有没有在用户模式而不是内核模式下实现 MPTCP 的?如果不是,是否有任何建议可以在用户模式下重用内核模式源代码? http://www.multipath-tcp.org https://githu
我知道 MPTCP 有自己的拥塞控制,比如“Coupled”。但是,MPTCP 位于 TCP 层。 TCP 已经有了原始的。这些是一起重复工作,还是只有 MPTCP 独立工作? 在together的情
我使用支持 MPTCP 的修改内核在 pcap 文件中捕获了多路径 TCP 流量。该流量中带有 Scapy 的数据包的第 2 层 header 给出了类似下面的内容,我无法理解,因为它不像以太网 he
我是一名优秀的程序员,十分优秀!