0

クライアントがアプリケーションを介して多数のデータグラムをサーバーに送信するとします。サーバー側のアプリケーションが動作を停止し、データグラムを受信できない場合、クライアントは引き続き UDP プロトコルを介してサーバーにデータグラムを送信し続けます。これらのデータグラムはどこに行くのでしょうか? それらはサーバーのOSデータバッファに残りますか(または何か?)

クライアントが 1000 個のデータグラム (それぞれ 1K) をインターネット経由で PC に送信した場合、それらの 1000 個のデータグラムは、誰もそれらのデータを聞いていなくてもインターネットを通過する (帯域幅を消費する) ことを知りたいので、この質問をしますか?

答えが「はい」の場合、これを止めるにはどうすればよいですか? サーバーが機能しなくなった場合、UDP を使用してその事実を知り、それ以上の送信を停止するにはどうすればよいでしょうか?

ありがとう

4

3 に答える 3

1

クライアントが 1000 個のデータグラム (それぞれ 1K) をインターネット経由で PC に送信した場合、誰もそれらのデータを聞いていなくても、それらの 1000 個のデータグラムがインターネットを通過する (帯域幅を消費する) ことを知りたいので、この質問をします。

はい

答えが「はい」の場合、これを止めるにはどうすればよいですか? サーバーが機能しなくなった場合、UDP を使用してその事実を知り、それ以上の送信を停止するにはどうすればよいでしょうか?

プロトコル レベルの制御ループが必要です。つまり、この状況に対処するためのプロトコルを実装する必要があります。UDP は接続指向ではないため、UDP を使用してこの障害モードを説明するのは「アプリケーション」次第です。

于 2010-02-22T14:33:14.240 に答える
0

UDP 自体は、クライアントがメッセージを正常に受信したかどうかを判断する機能を提供しません。信頼できる接続を確立し、UDP 経由でデータを送信した後、TCP が必要です。

于 2010-02-22T14:35:51.020 に答える
0

オーバーヘッドが最も低いソリューションは、jdupont が提案したようなキープアライブ タイプのものです。この機能を提供する tcp を使用するように変更することもできます。

于 2010-02-22T14:36:57.423 に答える