トランスポート層がエラー制御を提供する場合、データリンク層でのエラー制御の必要性は何ですか? 2 つのエラー コントロールの違いは何ですか?
6 に答える
トランスポート層のデータは、多くのデータリンク層のフレーム/パケットに分解される可能性があります。
そのため、データ リンク エラーがなくても、トランスポート層のストリーム/パケットが破損している可能性があります。編集:これは、通常、トランスポート層のパスが多くのデータリンク層のホップで構成されているためです。たとえば、次のようになります。
Host1 <----> switch1 <----> switch2 <----> Host2
switch1
と の間でパケットが失われた場合switch2
、リンクにエラーは記録されませんswitch2
Host2
が、対応するトランスポート層ストリームは破損します。
一方、データリンク エラーが発生すると、リソースを浪費することなく、トランスポート層の送信をドロップ/再開することができます。
これは、データ リンク層がビット レベルのエラー訂正のみを扱うためです。受信側のコンピューターが既に所有しているパケットを取得し、送信中にエラーが発生したかどうか、およびデータが無傷か破損しているかを判断します。ただし、すべてのパケットが到着していることをシステムが認識できるようにするには、追加の制御が必要です。これはエンドツーエンドのエラー制御と呼ばれ、トランスポート層の責任です。トランスポート層は、ペイロード内のデータが良いか悪いかをあまり気にしませんでした。それがデータリンクの仕事です。トランスポートは、想定されているすべてのパケットを取得しているかどうか、および正しい順序で到着しているかどうかのみを気にします。
詳細については、次を参照してください。
それは実際にはレイヤーではなくプロトコルに依存しますが、TCPを意味すると仮定します...
TCPのエラー検出は最小限であり、信頼できるエラー検出よりも整合性チェックとして設計されています。これが見られない理由は、イーサネット、PPP、FrameRelayなどのデータリンク層がはるかに堅牢なエラー検出アルゴリズムを備えているため、TCPプロトコルが検出する伝送エラーが事実上ないためです。
堅牢なエラー検出を備えた別のトランスポート層プロトコルがある場合は、下位レベルで厳密に必要になることはありません。スタックのできるだけ低い位置でエラーを破棄することには、主にパフォーマンスとリソースの使用に関連する利点があります。
ラムグリッチなどが原因でエラーがトランスポート層の上に忍び寄る可能性があることに注意してください。データが本当に非常に重要である場合は、アプリケーションにエラーチェックを含める必要があります。
チェックサムが正しいと仮定すると、この結果はデータが転送中に破損したことを意味します。さらに、損傷は伝送リンク (CRC によってキャッチされる場所) ではなく、中間システム (ルーターとブリッジ) のいずれか、または送信側または受信側ホストで発生したに違いありません。
http://conferences.sigcomm.org/sigcomm/2000/conf/paper/sigcomm2000-9-1.pdf