Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中是否可以强制对数据包进行分段?_Java_Sockets_Tcp - Fatal编程技术网

在Java中是否可以强制对数据包进行分段?

在Java中是否可以强制对数据包进行分段?,java,sockets,tcp,Java,Sockets,Tcp,我有一个错误,它是由碎片数据包引起的。我想通过在测试中创建一个碎片数据包并将其发送到包含错误的软件来测试这个错误 我该怎么做呢 感谢您提供任何指导或替代方法。如果您正在谈论TCP片段,则操作系统应在收到后隐藏(重新组装)这些片段,除非您使用低级数据包捕获工具,例如 若要强制发送TCP片段,请减小某些路由器上的最大数据包/段大小,和/或将发送操作系统配置为使用比适合的更大的MSS。如果您谈论的是TCP片段,则在收到后,操作系统应隐藏(重新组装)这些片段,除非您使用低级别的数据包捕获工具,例如 要强

我有一个错误,它是由碎片数据包引起的。我想通过在测试中创建一个碎片数据包并将其发送到包含错误的软件来测试这个错误

我该怎么做呢


感谢您提供任何指导或替代方法。

如果您正在谈论TCP片段,则操作系统应在收到后隐藏(重新组装)这些片段,除非您使用低级数据包捕获工具,例如


若要强制发送TCP片段,请减小某些路由器上的最大数据包/段大小,和/或将发送操作系统配置为使用比适合的更大的MSS。

如果您谈论的是TCP片段,则在收到后,操作系统应隐藏(重新组装)这些片段,除非您使用低级别的数据包捕获工具,例如


要强制发送TCP片段,请减小某些路由器上的最大数据包/段大小,和/或将发送操作系统配置为使用比适合的更大的MSS。

在windows中,您可以在注册表中更改MTU大小。不知道其他平台。

在windows中,您可以在注册表中更改MTU大小。不知道其他平台。

帧是否需要成为TCP流的一部分?或者任何IP碎片都可以吗?只需使数据报大于MTU,就可以轻松地为UDP生成它们。通常,2k也可以,但如果您的局域网启用了巨型帧,10k或20k仍会产生碎片。

碎片是否需要成为TCP流的一部分?或者任何IP碎片都可以吗?只需使数据报大于MTU,就可以轻松地为UDP生成它们。通常,2k也可以,但如果您的局域网启用了巨型帧,10k或20k仍将产生碎片。

使用UDP很容易将数据包碎片化。如果发送的UDP数据报大于MTU,它将被分段。使用TCP并不容易,操作系统不会故意将数据包分割成碎片。更改主机或路由器MTU也无济于事,因为大多数操作系统都会进行MTU发现并找到最小的MTU


您应该使用类似的东西来模拟分段的TCP数据包。

使用UDP对数据包进行分段很容易。如果发送的UDP数据报大于MTU,它将被分段。使用TCP并不容易,操作系统不会故意将数据包分割成碎片。更改主机或路由器MTU也无济于事,因为大多数操作系统都会进行MTU发现并找到最小的MTU


您应该使用类似的东西来模拟零碎的TCP数据包。

这难道不意味着错误就在数据包重新组装代码中吗?假设不可能有那么多代码,也许是时候仔细观察一下了?这难道不意味着错误就在包重新组装的代码中吗?假设它不可能是那么多代码,也许是时候去关注它了?