TCP は再送信と確認メカニズムを提供する信頼できるプロトコルですが、100% 信頼できるとは思えません。カーネルバッファ。
データが宛先に正常に到達したかどうかをアプリケーションが知るためのメカニズムはありますか?
考えられる解決策の 1 つは、アプリケーション層に確認応答メカニズムを構築することでしょうか?
TCPは、送信されるメッセージが次のいずれかになるという意味で信頼性があります
TCPを使用すると、受信したメッセージの順序が乱れたり、中間メッセージが欠落したりすることはありません。
ケース1と2を区別するには、確認応答メカニズムを実装する必要があります。また、CRCよりも優れたメッセージの整合性を確保するための良いアイデアは、着信メッセージのMD5またはその他のハッシュを送り返すことです。
独自のアプリを作成し、受信者が送信者に成功メッセージを返信し、成功メッセージが受信されない場合は必要に応じて再送信できます。
Java では、JMS がこの作業を行います。既存のライブラリが C で同じことを行う必要があると思います。
もちろん、TCP は信頼できるプロトコルです。ネットワーク ポートを介して送受信されるデータを知りたい場合は、wireshark ソフトウェアを使用して、送受信されるデータをキャプチャします。Wireshark を使用すると、パケットを追跡できます。