【问题标题】:Removing padding from UDP packets in python (Linux)在 python (Linux) 中从 UDP 数据包中删除填充
【发布时间】:2014-11-24 15:27:25
【问题描述】:

我正在尝试从 Linux 计算机发送的 UDP 数据包中删除空填充。目前它将数据包的大小填充到 60 字节

我正在使用AF_PACKETSOCK_RAW 构建一个原始套接字。我从以太网帧头、ip 头(我在其中指定小于 60 的数据包大小)和 udp 数据包本身创建了所有内容。

我通过本地网络发送,wireshark 中观察到的数据包有空填充。 有关如何克服此问题的任何建议?

【问题讨论】:

  • 您是否尝试发送格式错误的数据包?以太网帧的最小大小是内存中的 60 字节,linux 设备驱动程序会将较小的帧填充到这个大小。
  • 64 字节,包括根据en.wikipedia.org/wiki/Ethernet_frame#Structure的校验和
  • 是的,尝试发送格式错误的数据包,有没有办法避免 linux 设备驱动程序将其填充到那个大小?

标签: python sockets udp padding


【解决方案1】:

如果不使用 Linux 驱动程序,这几乎是不可能的。这不是最好的答案,但它应该可以指导其他任何希望朝着正确方向这样做的人。3

类型 sudo ethtool -d eth0 查看您的驱动程序是否启用了填充短数据包。

【讨论】:

    猜你喜欢
    • 2020-03-03
    • 2019-01-18
    • 1970-01-01
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    • 2020-11-08
    相关资源
    最近更新 更多