3

TCP は再送信と確認メカニズムを提供する信頼できるプロトコルですが、100% 信頼できるとは思えません。カーネルバッファ。

データが宛先に正常に到達したかどうかをアプリケーションが知るためのメカニズムはありますか?

考えられる解決策の 1 つは、アプリケーション層に確認応答メカニズムを構築することでしょうか?

4

3 に答える 3

3

TCPは、送信されるメッセージが次のいずれかになるという意味で信頼性があります

  1. 送信されたとおりに受信されます(同じ順序、同じ内容)。組み込みのチェックサムがたまたま失敗しないと仮定すると、16ビットであるため失敗する可能性があります
  2. まったく受け取られない

TCPを使用すると、受信したメッセージの順序が乱れたり、中間メッセージが欠落したりすることはありません。

ケース1と2を区別するには、確認応答メカニズムを実装する必要があります。また、CRCよりも優れたメッセージの整合性を確保するための良いアイデアは、着信メッセージのMD5またはその他のハッシュを送り返すことです。

于 2013-01-13T12:06:19.337 に答える
1

独自のアプリを作成し、受信者が送信者に成功メッセージを返信し、成功メッセージが受信されない場合は必要に応じて再送信できます。

Java では、JMS がこの作業を行います。既存のライブラリが C で同じことを行う必要があると思います。

于 2013-01-13T12:03:43.927 に答える
-1

もちろん、TCP は信頼できるプロトコルです。ネットワーク ポートを介して送受信されるデータを知りたい場合は、wireshark ソフトウェアを使用して、送受信されるデータをキャプチャします。Wireshark を使用すると、パケットを追跡できます。

于 2013-01-13T12:02:33.700 に答える