サーバとクライアントのための基本ソケットプログラムを書いています。サーバからクライアントへのデータ転送方法を知りたいjavaと、クライアントバッファがオーバーフローした場合にサーバがデータを送信している間に、送信レートを低下させる必要があります(輻輳はtcp/ipのECNビットで示されます)。ソケットクライアント/サーバのJavaプログラムでECN(明示的輻輳通知)ビットを設定する方法
2
A
答えて
2
ECNフィールドは、IPおよびTransport layerのプロパティです。したがって、私は普通のアプリケーションから設定することはできないと思います。これを行う1つの方法は、RAW Socketを作成し、TCP/IPヘッダーに適切なフィールド(自分の場合はECN)を設定してパケットを作成することです。
また、すべてのルータと参加エンドホストがECNをサポートする必要があることにも注意してください。さもなければ、ルータはちょうどパケットを落とすか、任意にECN値をゼロに設定するかもしれません。
GoogleはrawソケットサポートのあるJavaライブラリを見つけました。このライブラリはhereです。
0
あなたはcmdのコマンドを使用してECN機能を有効または無効にすることができます - netshインターフェイスのTCPは、グローバルecncapabilityを設定する=あなたはECN機能のTCPヘッダを有効にすると、自動的にECNとCWRフラグを設定
を可能にしました。
https://www.saotn.org/explicit-congestion-notification-ecn-slows-outbound-connections/