- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用以下 python 代码将原始以太网帧发送到环回接口(interface) (Linux ubuntu 4.15.0-34-generic):
from scapy.all import *
pkt = Ether(dst="aa:aa:aa:aa:aa:aa", src="00:ff:00:ff:00:ff", type=0x6666) / ("A"*50)
sendp(pkt, iface="lo")
(我们使用自定义以太网类型 0x6666,但使用以太网 II 帧格式指定的数据包长度 (50) 具有相同的结果)
我希望在接收器(或 Wireshark)上看到一个长度为 14+50=64 字节的数据包。相反,我看到一个 14+50+14=78 字节的数据包。添加的 14 个字节的内容看似随机(或者可能是来自未清零的重用缓冲区的数据)。
例如,以下 Wireshark 输出来自两次连续调用上述代码:
0000 aa aa aa aa aa aa 00 ff 00 ff 00 ff 66 66 41 41 .....................ffAA
0010 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA
0020 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA
0030 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA
0040 00 00 00 00 00 00 10 00 00 00 00 00 00 00 ..................
0000 aa aa aa aa aa aa 00 ff 00 ff 00 ff 66 66 41 41 .....................ffAA
0010 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA
0020 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA
0030 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 AAAAAAAAAAAAAAAA
0040 22 20 68 6f 73 74 6e 61 6d 65 3d 3f 20 61 "主机名=?a
我很好奇为什么要添加 14 个字节(因为数据包比以太网数据包所需的 64 个字节长,所以这不是填充问题)?在这个例子中如何去掉额外的 14 个字节?
最佳答案
以下对内核的提交是导致原始发布者提到的回归的原因。
说明:packet:在packet_snd中链路层分配处开始写入
Git SHA: c6026847a0a1198e4d0b200da6666cb1056b12fe
https://lore.kernel.org/patchwork/patch/899678/
解决方案有几个选项。
1) 降级到 4.15.0-32-generic 或之前
2) 下载当前内核的源代码并删除该补丁并在没有它的情况下进行编译。
3) 向 lkml 报告并等待他们修复它。
上面的补丁提到它也适用于 RAW 数据包,但它在附加更多字节之前不检查大小以查看是否需要附加任何字节。最小总数据包大小应为 64 字节。
表明上面的补丁不再存在于当前内核和kernel.org中,这是一个ubuntu问题。
EDIT2:git 树中的 ubuntu 4.15.0-36.39 不再有 33 中出现的补丁。所以 ubuntu 应该在某个时候解决这个问题。
关于python - 为什么将 14 个字节的随机数据附加到原始以太网帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52435788/
我正在寻找的服务器是: 轻量级, 非 buggy , 支持.NET, 在客户端上运行以进行测试, 在Windows上运行 Cassinni太过马车,IIS太昂贵,Apache很难安装,XSP仅是lin
所以我有大约10个短的css文件,可以与mvc应用程序一起使用。 有像 error.css login.css 等等... 仅有一些非常短的CSS文件,这些文件使更新和编辑变得容易(至少对我而言)。我
我正在编写程序来自动化 win32 表单。我正在使用 Microsoft UI 自动化库。我不知道如何获取和调用该表单上的预定义快捷键。现在我只需获取 MenuItem 的 AutomationEle
我有一个在后台线程上运行的及时操作。运行时,我当前将光标置于等待状态: Mouse.OverrideCursor = Cursors.Wait 我刚刚实现了一项功能,允许用户在厌倦等待时单击“取消”按
如何找到所有可能直接或间接调用给定方法的单元测试?当我更改方法时,我希望知道要运行的最佳测试;必须有一个工具! 因为我们有很多接口(interface),所以我对所有调用接口(interface)方法
我想知道,一个类会被装箱吗?我一直假设每个类都有一个虚拟表,可以用来标识类,所以它需要装箱吗? 最佳答案 只有值类型(结构)被装箱。类实例不会被装箱。 关于.net - 类是盒装的吗? 。网,我们在S
所以接下来有一个按钮调用(页面)。它的 href 链接是 site/blah/#。所以我知道它真正运行的 javascript 代码。在我解析完第一页后,我想解析下一页。我如何模拟鼠标点击,以便我可以
我想知道是否有人对解决以下设计问题有好的建议/模式。我有一个命令类的层次结构。在最抽象的层面上,我有一个 ICommand 接口(interface)。执行 ICommand 的 RunCommand
我在资源(xsd 文件)中有几个文件可用于验证收到的 xml 消息。我使用的资源文件名为 AppResources.resx,它包含一个名为 clientModels.xsd 的文件。当我尝试使用这样
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预
(最后的简短版本) 我目前正在开发的软件需要跟踪任意数量的 MS Office 文件,现在需要提供将所有这些文件一起打印的功能,以及一些应用程序数据(可能会发送到打印机作为 .xps、.html 或
我想在不指定命名空间或程序集的情况下按名称(字符串)实例化一个类。像这样(Unity 语法): var processor = container.Resolve("SpecialProcessor"
我有一些代码可以对 64 位整数进行大量比较,但是它必须考虑数字的长度,就好像它被格式化为字符串一样。我无法更改调用代码,只能更改函数。 最简单的方法(除了 .ToString().Length 之外
使用遗留代码,我发现我有很多这样的语句(超过 500 个) bool isAEqualsB = (a == b) ? true : false; 这样重写有意义吗? bool isAEqualsB =
我有这个: AudioPlayer player = new AudioPlayer(); player.Directory = vc.Directory; player.StartTime = vc
我已经阅读了很多关于双重检查锁定的危险的文章,我会努力远离它,但话虽如此,我认为他们的阅读非常有趣。 我正在阅读 Joe Duffy 的这篇关于使用双重检查锁定实现单例的文章: http://www.
对于可变类型,值类型和引用类型之间的行为差异很明显: // Mutable value type PointMutStruct pms1 = new PointMutStruct(1, 2); P
关闭。这个问题需要更多 focused .它目前不接受答案。 想要改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 6 年前。 Improve this q
我有一个 Cordova pp 我在 Controller 中调用post方法 它可以在浏览器中工作,但是在构建和调试apk时出现错误 ionic.bundle.js:23826 POST http:
我们正在尝试将时间戳附加到某些 URL 以让内容缓存但在它们发生更改时更新它们。我们有代码可以归结为: DateTime ts = File.GetLastWriteTime(absPath); 其中
我是一名优秀的程序员,十分优秀!