我有一个由碎片包引起的错误。我想通过在测试中创建一个碎片数据包并将其发送到包含该错误的软件来测试此错误。
我将如何做到这一点?
感谢任何指导或替代方法,谢谢。
答案 0 :(得分:3)
如果您正在谈论TCP片段,那么在接收时OS应该隐藏(重新组装)这些片段,除非您使用低级别数据包捕获工具,例如: Ethereal
要强制发送TCP片段,请减少某些路由器上的最大数据包/段大小,和/或将发送操作系统配置为使用比适合的更大的MSS。
答案 1 :(得分:1)
在Windows中,您可以更改注册表中的MTU大小。不了解其他平台。
答案 2 :(得分:0)
frags是否需要成为TCP流的一部分?或者任何IP碎片会吗?只需使数据报大于MTU,就可以轻松地为UDP生成它们。通常情况下,2k会很好,但如果您的局域网启用了巨型帧,则10k或20k仍会产生碎片。
答案 3 :(得分:0)
使用UDP分割数据包很容易。如果发送的UDP数据报大于MTU,则会将其分段。使用TCP并不是那么容易,操作系统不会故意破坏数据包。更改主机或路由器MTU也没有帮助,因为大多数操作系统将执行MTU发现并找到最小的。
您应该使用Packet Generator之类的东西来模拟碎片化的TCP数据包。