さて、私はネットワーキングコースのプログラミングをしていて、UDPを使用してJavaでプロジェクトを実装する必要があります。指定された確率でパケットを破損する「gremlin」関数とともに、HTTPサーバーとクライアントを実装しています。HTTPサーバーは、UDPを介してクライアントに送信するために、アプリケーション層で大きなファイルを複数のセグメントに分割する必要があります。クライアントは、受信したセグメントをアプリケーション層で再構築する必要があります。しかし、私が疑問に思っているのは、UDPが定義上信頼できない場合、なぜここで信頼性の欠如をシミュレートする必要があるのでしょうか。
私の最初の考えは、おそらく私のインストラクターが私たちの場合を考えているからだと思います。クライアントとサーバーの両方が同じマシンで実行され、ファイルはUDPを介しても100%確実に1つのプロセスから別のプロセスに転送されます。同じコンピューター上の2つのプロセスの間にあります。
これにより、サーバーとクライアントが同じ物理マシン上の2つのプロセスであり、厳密にルーティングされることが保証されている場合、UDPが実際にパケットを失ったり、パケットを破損したり、パケットを順不同で配信したりする可能性があるかどうかを最初に疑問視しました。 localhostを介してのみ、ネットワークを介して送信されないようにします。
また、一般的に、特定のパケットについて、かなり地理的に離れた2つのホスト間のオープンインターネットを介した通信を容易にするために使用されているときに、UDPがパケットをドロップ/破損/または順序どおりに配信しないおおよその確率を知りたいと思います。互いに離れている(米国の平均的なブロードバンドユーザーからGoogleのCDNの1つまでのルートに匹敵するものを言う)?私は主に、UDPを介して通信するときに発生する状態の概要を把握しようとしています。それは、パケットの25%程度の何かをドロップ/破損/誤順序付けするのでしょうか、それとも0.001%程度の何かのようなものですか。パケット?
私のためにこれらの質問のいずれかに光を当てることができる人に感謝します。