我已经为服务器和客户端编写了基本的套接字程序。我想知道如何使用Java将数据从服务器传输到客户端,并且在服务器发送数据时,如果客户端缓冲区溢出,服务器应降低其发送速率(拥塞应该由tcp/ip中的ECN位指示)...谢谢您的帮助。

最佳答案

ECN字段是IPTransport layer的属性。因此,我认为您不能在普通应用程序中进行设置。一种方法是创建RAW Socket并在TCP/IP header 中使用适当的字段集(在您的情况下为ECN)自己制作数据包。

您还应该注意,所有路由器和参与的最终主机都必须具有ECN支持。否则,路由器可能只是丢弃数据包或将ECN值任意设置为零。

Google能够找到一些带有原始套接字支持的Java库,您可以找到here

10-06 16:03