Java 如何配置/减少tcp段大小

Java 如何配置/减少tcp段大小,java,linux,tcp,mss,Java,Linux,Tcp,Mss,我需要通过tcp将数据从我的机器发送到远程服务器,并且需要对数据进行分段(这是一个测试)。这就解释了为什么我正在寻找一种方法来将段大小更改为一个较小的数字 我在谷歌上搜索了一下,发现我们可以使用iptables设置MSS iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss some-number 然而,在更多的谷歌搜索之后,这个解决方案似乎是用来告诉服务器我的机器可以接受的TCP段大小,而不是在我的机器发

我需要通过tcp将数据从我的机器发送到远程服务器,并且需要对数据进行分段(这是一个测试)。这就解释了为什么我正在寻找一种方法来将段大小更改为一个较小的数字

我在谷歌上搜索了一下,发现我们可以使用iptables设置MSS

iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss some-number
然而,在更多的谷歌搜索之后,这个解决方案似乎是用来告诉服务器我的机器可以接受的TCP段大小,而不是在我的机器发送到服务器的TCP数据包/段上设置段大小

我还了解了MTU以及如何更改它,但这似乎不是我想要的,因为我需要/想要在更高的级别(在传输级别)剪切数据。我的问题是1)如何为我的机器正在发送的TCP段设置MSS?2) 可以用Java实现吗


很抱歉出现这些新问题。

在C中,您可以通过设置TCP_MAXSEG socket选项来实现这一点;请参见
man 7 tcp


在Java中,标准中没有公开相关的套接字选项。但是,该页面中有一个提示,如果实现了非标准的SocketImpl类,您可能可以设置其他选项。

只要设置一个小的socket发送缓冲区大小,如果可以的话