3

私はrawソケットを使用して独自のソケットを作成しています。tcp_checksumを設定する必要があります。
多くのリファレンスを試しましたが、すべてが機能していません(テストにwiresharkを使用しています)。
私を手伝ってくれますか。
ちなみに、tcp_checksum=0に設定するとどこかで読んだことがあります。その後、ハードウェアがチェックサムを自動的に計算します。これは本当ですか?私はそれを試しましたが、wiresharkではtcp_checksumは0X000の値を与え、tcpoffloadと言います。tcpオフロードについても読みましたが、理解できませんでした。wiresharkがオフロードされたtcpチェックサムをチェックできないというだけですが、正しいチェックサムはありますか?

編集:tcpChecksumを0に設定すると、オペレーティングシステムではなく、ネットワークカードが設定することに気付きました。私はwiresharkと仮想マシンを使用してテストしていたので、チェックサムが0x000である理由を説明しています(パケットがネットワークカードに渡されていないため)
が、tcp_checksumを手動で計算することに興味があります...ヘルプやリンクはありますか?

4

1 に答える 1

3

この記事では、それがどのように行われるかを説明しようとしています。

確認する価値のあるもう1つの場所は、Linuxカーネルソースの場合です。ファイルから開始します。net/ipv4/tcp__ipv4.c

于 2010-03-23T07:03:51.533 に答える