ソケットプログラミングジョブに問題があります。ソケット/ネットワークストリームを介してコマンドを送信するTCPクライアントを作成しました。私はWiresharkを使用して、ワイヤーを通過する生データを調べています。「コマンド」(つまり、ネットワークストリームをFlush()する)を送信するたびに、WiresharkアプリケーションはTCPヘッダーのチェックサムが正しくないことを通知します(「0x2440である必要がありますが、0x0000である必要があります)。ACKが返されます。 。アプリケーション層でTCPヘッダーを気にする必要がある理由がわかりません。それは正しくありません。なぜこの「エラー」が発生するのか誰かが知っていますか。私が知らない設定はありますか。 ?Tcpで.NET2.0ソケットを使用しています。ありがとうございます。
1 に答える
8
データを送信しているマシンからの Wireshark ダンプを見ていますか? その場合、Wireshark が確認しているスタック内のポイントでチェックサムが計算されていない可能性があります。最近の多くのネットワーク カードには、チェックサムがハードウェアによって行われる TCP チェックサム オフロードがあり、そのためチェックサム フィールドは途中でゼロになります (Wireshark はハードウェアに送信される直前にパケットを取得します)。ACK を取得しているので、受信側は明らかにクールです。また、ローカルホストと通信している場合、スタックはチェックサムをまったく気にしていない可能性があります (ホストが自分自身と通信する場合、チェックサムは厳密には必要ありません)。
于 2010-02-03T07:03:46.280 に答える