2011-01-29 9 views
14

さまざまなレイヤーでチェックサムを使用する必要はありますか?例えば、TCP層にはチェックサムがあり、IP層にはチェックサムがあり、イーサネット層にもチェックサムがあります。 1つのレイヤーでチェックサムを持つだけでは不十分ですか?TCPヘッダーとIPヘッダーに別々のチェックサムがあるのはなぜですか?

+0

"トランスポート層"、 "ネットワーク層"、 "データリンク層"は実際の名前です。 – TheTrowser

答えて

0

多分異なるデータをカバーするので、

15

すべての3つの層は、複数の理由のために、必要とされています。常にイーサネット上で実行されません

  • IPは、(すべてのシスコとUnixボックスを行うことができ、RS-232シリアル、何かの上にIPを想像)

  • IPチェックサムデータが

  • TCPパケットは、それぞれが完璧なチェックサム

  • を持つIPパケットおよびフラグメントから、誤って再組み立てすることができていません
  • 正しく再組み立て、ソフトウェアまたはその他のエラーが正しくでも、すべてのソフトウェア機能あればIPおよびTCP

  • 間の層に導入することができ、およびTCP/IPは、イーサネット上で、チェックサムの限られたサイズは、できたとしても永続的なエラーに直面して誤って正しい(とになります。十分なパケットがあれば)、複数のチェックサムを持つと便利です。

  • 新しいヘッダーが導入されるたびに、チェックサムが増え、新しいレイヤーは下のレイヤーのヘッダービットを見ることができません。

+0

入力いただきありがとうございます。 – sasian

+3

RFCでは、TCPチェックサムはセグメント全体をカバーしていますが、IPチェックサムはエラーのIPヘッダーのみを対象としています。 – sasian

+0

+1非常に有益で、最後の理由は最も説得力のあるものだと思います。 –

6

イーサネットチェックサムはホップツーホップチェックサムです。つまり、イーサネットヘッダーフィールドが変更されるたびに再計算されます。 TCP/UDPチェックサムはエンドツーエンドのチェックサムで、送信者によって計算され、受信者によって検証されます。 TCP/UDPチェックサムはセグメント全体をカバーします。 IPチェックサムはヘッダーのみをカバーします。イーサネットCRCはフレーム全体をカバーします。

0

IPv6の設計者は、これらのレイヤすべてで必要ではないと判断し、他のレイヤのチェックサム(例:前述のようなもの)を優先して削除しました。

関連する問題