hwenyi

hwenyi

データリンク層 - 湖南科学技術大学計算機ネットワーク

データリンク層の基本概念#

image
データリンクは簡単な通信で、異なるプロトコルを使用することがあります。

リンク#

とは、あるノードから隣接ノードへの物理回線(有線または無線)の一部を指し、その間に他の交換ノードが存在しないことを意味します。
image

データリンク#

リンク上でデータを送信する際(物理的な性質において)、必要なリンク自体に加えて、データの送信を制御するためのいくつかの必要な通信プロトコルが必要です。これらのプロトコルを実現するハードウェアとソフトウェアがリンクに追加され(物理的実装)、データリンクが構成されます。

例えば、ネットワークカード、ネットワークアダプタ、およびそれに関連するソフトウェアドライバがこれらのプロトコルを実現しています。一般的なネットワークアダプタは、データリンク層と物理層の 2 つの機能を含んでいます。

ネットワークカード(データリンク)={データリンク層物理層ネットワークカード(データリンク)= \left\{ \begin{align} &データリンク層 \\ &物理層 \end{align} \right.

フレーム#

データリンク層の対等なエンティティ間で水平方向に論理通信を行うプロトコルデータユニット PDU
image

WAN と LAN#

WAN(広域ネットワーク)はポイントツーポイントリンク(PPP、HDLC)を使用します。

  • 帯域幅が大きく、距離が遠い(遅延が大きい)帯域幅遅延が大きい

LAN(ローカルエリアネットワーク)はマルチポイント接続(イーサネット、無線 LAN、VLAN)を使用します。

  • 接続ノードが非常に便利です。
  • 共有メディア(またはネットワークスイッチ)に接続すると、他のすべてのノードに接続できます。
  • マルチポイントアクセスは、各ノードの共有メディアへのアクセスと使用を調整し、衝突後の調整を考慮します。

データリンク層が提供するサービス#

解決すべき 3 つの問題:フレーム境界、透明伝送、エラー検出

フロー制御:隣接する送信者と受信者ノードの速度を一致させる

エラー検出:エラーは信号の減衰とノイズによって引き起こされ、受信者はエラーを検出し、送信者に再送信を通知するか、フレームを破棄する必要があります。

フレームへのカプセル化と透明伝送、エラー検出、信頼性のある伝送#

フレームへのカプセル化#

データリンク層が上位層に渡すもの、プロトコルデータユニット PDUにフレームヘッダとフレームテールを追加してフレームにします。
image

  • フレームヘッダとフレームテールには重要な制御情報が含まれています
  • フレームヘッダとフレームテールの役割の 1 つはフレーム境界です。(すべてのデータリンク層プロトコルのフレームにフレーム境界マークが含まれているわけではありません。MAC アドレスはフレーム間隔方式でフレームを定義します)
  • ==データリンク層のフレーム伝送効率を向上させるために、フレームのデータペイロードの長さはヘッダとテールの長さよりもできるだけ大きくする必要があります。==
  • キャッシュスペースの要求やエラー制御などの多くの要因を考慮して、各データリンク層プロトコルはフレームのデータペイロードの長さの上限、すなわち ** 最大伝送単位(Maximum Transfer Unit、MTU)** を規定しています。例えば、イーサネットの MTU は 1500 バイトです。

フレームへのカプセル化と MAC アドレス#

image

FCS フィールド
フレーム開始境界マーカー
前同期コード

PPP フレーム#

image

フレームの識別とチェック#

01m38s
前導コード間のフレーム間隔:96 ビット

透明伝送#

フレーム境界エラー:フレームのデータペイロードフィールドに同じフレームヘッダまたはテールの同じフィールドが出現した場合、他の手段を講じない限り、受信者のリンク層でフレーム境界エラーが発生します。

image

透明伝送とは、データリンク層が上位層に渡すプロトコルデータユニット PDU に対して何の制限もなく、データリンク層が存在しないかのように扱うことを指します。

透明伝送を実現する方法#

05m36s

バイトパディング - エスケープキャラクターの利用 - バイト指向の物理リンク#

送信者は物理層で送信するビットストリームを最初にスキャンします。
フレームを物理層に渡す前に、フレームのデータペイロードをスキャンし、フレーム境界マーカーが出現するたびに、その前にエスケープキャラクターを挿入します。受信者は最初のフレーム境界マーカーに遭遇すると、それがフレームの開始であることを知り、エスケープキャラクターに遭遇すると、その後の 1 バイトの内容がデータであることを知ります(フレーム境界マーカーと同じであっても)、エスケープキャラクターを除去した後、その後の内容をデータとして引き続き抽出します。再びフレーム境界マーカーに遭遇したとき、データを受信します。

  • フレーム自体にエスケープキャラクターがある場合は、エスケープキャラクターの前にさらにエスケープキャラクターを追加します。
  • エスケープキャラクターは特別な制御文字で、長さは 1 バイト、十進法の値は 27 で、ESC の 3 文字ではありません。

image

ビットパディング - ビット指向の物理リンク#

連続する 5 つの 1 の後に 0 を追加します。

0 ビットパディングの練習

image

エラー検出#

受信者はどのように誤りを知るのか

  • ビットエラー:実際の通信リンクは理想的ではなく、ビットの送信中にエラーが発生することがあります。1 は 0 に変わる可能性があり、0 も 1 に変わる可能性があります。(ノイズ干渉、伝送メディアの品質などの要因の影響を受けます)
  • 誤り率 BER(Bit Error Rate):一定の時間内に伝送エラーのビットが伝送されたビットの総数に対する比率を誤り率と呼びます。
    • リンクの信号対雑音比を向上させることで、誤り率を低下させることができます。しかし、実際の通信リンクでは、誤り率をゼロにすることは不可能です。
  • エラー検出はビットエラーを検出します。
    1. 受信者と送信者は同じエラーチェック技術を使用し、エラーチェックコードでエラーを検出します。
    2. フレームのテール部分にはエラーチェックコードを格納するフィールドがあり、これをフレームチェックシーケンス(FCS:Frame Check Sequence)と呼びます。
    3. エラーチェックコードは、フレームが伝送中にエラーが発生したことを検出することができますが、エラーの位置を特定することはできないため、エラーを修正することはできません。== ただエラーが発生したことは分かりますが、どこが間違っているかは分かりません。==
    4. より進んで == エラー訂正 == を行うためには、冗長情報が多いエラー訂正コード(例えばハミングコード)を使用して前方エラー訂正を行うことができます。しかし、エラー訂正コードのオーバーヘッドは比較的大きいため、コンピュータネットワークではあまり使用されません。
    5. 伝送中のエラーを修正するために、エラー訂正再送信方式を使用するか、単にエラーが検出されたフレームを破棄することができます。
      1. 再送信は、信頼性のある伝送サービスと呼ばれます。
      2. 破棄は、信頼性のない伝送サービスです。

奇数パリティ#

02m18s
image
奇数パリティは、送信するデータの後に 1 つのパリティビットを追加し、そのパリティビットを追加した後の全データ中のビット 1 の個数が奇数になるようにします。
偶数パリティは、送信するデータの後に 1 つのパリティビットを追加し、そのパリティビットを追加した後の全データ中のビット 1 の個数が偶数になるようにします。

  • 送信されたデータ中に奇数個のビットが誤りが発生した場合、含まれるビット 1 の数の奇偶性が変わり、誤りを検出できます
  • 送信されたデータ中に偶数個のビットが誤りが発生した場合、含まれるビット 1 の数の奇偶性は変わらず、誤りを検出できません(見逃し)
  • 実際の使用時には、奇数パリティは垂直奇数パリティ、水平奇数パリティ、水平垂直奇数パリティに分けられます。

循環冗長検査#

05m43s
データリンク層では、見逃し率が非常に低い循環冗長検査(Cyclic Redundancy Check、CRC)エラーチェック技術が広く使用されており、ハードウェアでの実装が非常に容易であるため、データリンク層で広く利用されています。

  • 送信者は生成多項式 **G (X)** を事前に合意します。
  • 送信者は送信するデータと生成多項式 G (X) に基づいて、** エラーチェックコード(冗長コード)** を計算し、冗長コードを送信するデータの後に追加して一緒に送信します。
  • 受信者はデータと冗長コードを受け取った後、生成多項式 G (X) を使用して受信したデータと冗長コードにエラーが発生したかどうかを計算します。

image

image

生成多項式#

image

余りについて#

image
余りが除数と同じビット数になると、割り切れると呼ばれ、その場合は上に 1 がマークされます。
割り切れない場合は、割り切れないと呼ばれ、その場合は上に 0 がマークされます。
10m03s

信頼性のある伝送#

image
有線リンクと無線リンクが提供するサービスは異なります。

  • 有線リンク:誤り率が低く、リンク層に信頼性のある伝送を要求せず、上位層で誤り処理を行います。

  • 一般的に、有線リンクの誤り率は比較的低いです。コストを削減するため、データリンク層が上位層に信頼性のある伝送サービスを提供することは要求されません。たとえ誤りが発生しても、信頼性のある伝送の問題は上位層が処理します。

  • 低誤りリンク(リンク自体が非常に信頼性が高い)ではほとんど使用されません(光ファイバー、一部のツイストペアケーブル):イーサネット
    image

  • 無線リンク:誤り率が高く、リンク層は信頼性のある伝送を提供する必要があります。

  • 干渉を受けやすく、誤り率が比較的高いため、データリンク層は上位層に信頼性のある伝送サービスを提供する必要があります。

  • 高誤りリンクでは信頼性のあるデータ送信が必要です:無線 LAN
    image

ARQ プロトコル#

自動再送信プロトコル
OSI モデルのデータリンク層とトランスポート層のエラー訂正プロトコルの 1 つです。

  • 分類
  • 停止待機 ARQ プロトコル:停止待機プロトコル
  • 連続 ARQ プロトコル(ウィンドウメカニズムを組み合わせた):バックアップ N ステッププロトコルと選択再送信プロトコル

image

ARQ はどの層で動作するのか?

  1. ==ARQ は信頼性のないデータチャネル上でデータを信頼性を持って送信するための手段 == であるため、実際にはリンク層とトランスポート層の両方で ARQ が使用されており、特定の層に専属ではありません。
  2. 接続が 1 つの層で ARQ を使用している場合、その上位層の通信が信頼性があるとは限りません。なぜなら ARQ はそれを使用するポイントツーポイントの信頼性を保証するだけだからです。たとえば、データリンク層はあなたとルーター間の通信の信頼性を保証しますが、ルーターから地区のルーター間の通信も信頼性がありますが、ルーター自体が故障したり、混雑してパケットを失ったりする可能性があるため、ポイント自体に問題が発生します。
  3. したがって、トランスポート層またはアプリケーション層で再度 ARQ を追加して、全体のデータチャネルの信頼性を保証する必要があります。たとえば、自分でプログラムを書いてアプリケーション層で通信する場合、トランスポート層で TCP を使用せず UDP を使用することもできますが、プログラム内で ARQ プロトコルを使用して信頼性を実現できます。

伝送エラーの種類#

image

各層の伝送の信頼性#

image
信頼性のある伝送サービスはデータリンク層に限定されず、他の各層でも信頼性のある伝送を実現することができます
信頼性のある伝送の実現は比較的複雑で、オーバーヘッドが大きいため、信頼性のある伝送を使用するかどうかはアプリケーションの要求によります

信頼性のある伝送のメカニズム(3 種類)#

停止 - 待機プロトコル(Stop-and-Wait)SW---ARQ の一種#

01m08s
image
メカニズム:確認と否認、再送信、タイムアウト再送信、データパケットに番号を付ける、確認パケットに番号を付ける

送信者は受信者にデータパケットを送信し、受信者は受信後にエラーチェックを行い、エラーが検出されなければそのデータパケットを受け入れ、送信者に確認パケットを送信します。略して ACK。送信者は送信したデータパケットの確認パケット番号を受け取ってから、次のデータパケットを送信することができます。このデータパケットが伝送中にエラーが発生したと仮定すると、受信者は受信後にエラーチェックを行い、エラーが発生した場合はそのデータパケットを破棄し、送信者に否認パケットを送信します。略して NAK。
送信者は送信したデータパケットに対する否認パケットを受け取ると自分が以前に送信したデータパケットがエラーで受信者に破棄されたことを知り、すぐにそのデータパケットを再送信します。受信者は受信後にエラーチェックを行い、エラーが検出されなければそのデータパケットを受け入れ、送信者に確認パケットを送信します。== したがって、送信者はデータパケットを送信した後、すぐにそのデータパケットを送信キャッシュから削除することはできません。なぜなら、その後再送信が必要になる可能性があるからです。== そのデータパケットに対する確認パケットを受け取った後にのみ、送信キャッシュから削除できます。

より複雑な SW

04m48s
送信者が送信時にパケットロスが発生しました。
ポイントツーポイントのデータリンク層では、実際にはパケットロスが発生することはあまりありません。
しかし、複雑なトポロジーの相互接続ネットワークでは、ルーター間で発生する可能性があります。

image

送信者は、各データパケットを送信するたびにタイムアウトタイマーを起動します。タイムアウトタイマーが設定されたタイムアウト再送信時間 RTO に達しても、送信者が受信者の確認パケットまたは否認パケットを受け取らなかった場合、以前に送信したデータパケットを再送信します。図に示すように、== この時間は送信者と受信者間の平均往復時間 RTT== であり、一般的にタイムアウト再送信時間 RTO は送信者と受信者の平均往復時間 RTT よりもわずかに大きく設定されます。送信者のタイムアウトタイマーがタイムアウトすると、以前に送信したデータパケットをすぐに再送信します。受信者が再送信されたデータパケットを正しく受信すると、送信者に対応する確認パケットを送信し、送信者は受信後に次のデータパケットを送信できます。受信者がそのデータパケットを正しく受信すると、送信者に対応する確認パケットを送信します。この時点で、確認、否認、再送信の 2 つのメカニズムに基づいて、停止待機プロトコルにタイムアウト再送信メカニズムが追加されました。

==確認パケットのロス==
確認パケットが伝送中にロスした場合、必然的に == 送信者のタイムアウト再送信 == が発生し、== 受信者は 2 つの同じデータパケットを受信することになります ==。受信者が受信したデータパケットが前回受信したデータパケットと重複していることを == 識別できない場合 ==、== パケットの重複という伝送エラーが発生します ==。== パケットの重複という伝送エラーを回避するためには、== 各パケットに番号を付ける必要があります ==。図に示すように、停止待機プロトコルでは、==** 各データパケットを送信するたびに停止待機を行うため、== 各データパケットを送信する際には、前回送信したデータパケットの番号と異なる番号を付ける必要があります。== したがって、1 ビットで番号を付けるだけで十分であり、0 または 1 の番号を持ちます。受信者が連続して同じ番号のデータパケットを受信した場合、パケットの重複という伝送エラーを識別できます。この時、受信者は重複したデータパケットを破棄し、送信者に再度確認パケットを送信する必要があります。送信者は受信後、次のデータパケットを送信できますが、その番号は前のデータパケットの番号とは異なります。受信者がそのデータパケットを正しく受信すると、送信者に対応する確認パケットを送信します。この時点で、確認、否認、再送信、タイムアウト再送信の 3 つのメカニズムに基づいて、停止待機プロトコルにデータパケットに番号を付けるメカニズムが追加されました。

  • 各パケットに番号を付け、識別を持たせ、再送信によって 2 回受信することはありません。

==確認パケットの番号の問題==
送信者が 0 番データパケットを送信し、受信者が正しく受信した後、送信者に確認パケットを送信しますが、何らかの理由でその確認パケットが遅延した場合、必然的に送信者は 0 番データパケットのタイムアウト再送信を行うことになります。0 番データパケットの再送信中に、送信者は遅延した確認パケットを受信し、1 番データパケットを送信します。受信者は再送信された 0 番データパケットを受信し、番号からこれは重複したデータパケットであることを知り、破棄し、0 番データパケットに対して再度確認パケットを送信します。このように、送信者は 0 番データパケットに対して 2 つの確認を受け取ることになります。しかし、送信者は 2 番目の 0 番データパケットの確認を 1 番データパケットの確認と誤解するでしょう。確認パケットにも番号を付けることで、送信者はこれが 0 番データパケットの重複確認であることを知り、無視することができます。受信者が 1 番データパケットを正しく受信した後、送信者に 1 番データパケットの確認を送信し、確認番号は 1 です。送信者は受信後、次のデータパケットを送信し、その番号は 0 です。注意してください。この 0 番データパケットは以前の 0 番データパケットとは異なるデータパケットであり、受信者は正しく受信し、送信者に対応する確認パケットを送信し、確認番号は 0 です。
image

注意事項、まとめ:
image

image

SW のチャネル利用率

11m33s

image

image

image

横軸は時間です。簡単のために、送信者と受信者の間は直通のチャネルであると仮定し、送信者はデータパケットを送信した後、送信を停止し、受信者からそのデータパケットの確認を待ちます。確認パケットを受け取った後、次のデータパケットを送信できます。この時間は、送信者がデータパケットを送信するのにかかる送信遅延であり、TD と呼ばれます。この時間は、信号が送信者と受信者の間を往復するのにかかる時間で、RTT と呼ばれます。
この時間は、受信者が確認パケットを送信するのにかかる送信遅延で、TA と呼ばれます。これは、停止待機プロトコルの送信者がデータパケットを送信してから次のデータパケットを送信できるまでに経過する総時間です。データパケットを送信するのは TD の時間内だけであり、つまりデータパケットだけです。したがって、チャネル利用率は優れています。以下の式で計算できます。TA は一般に TD よりもはるかに小さいです。これは確認パケットの長さが一般にデータパケットの長さよりもはるかに小さいため、TA は無視できます。
信号が送信者と受信者の間を往復するのにかかる時間 RTT がデータパケットの送信時間 TD よりもはるかに大きい場合、例えば、地球同期衛星リンクの RTT は非常に大きいです。このようなリンクを使用し、送信するデータパケットが非常に小さく、送信速度が非常に大きい場合、チャネル利用率は非常に低くなります。RTT がデータパケットの送信時間 TD よりもはるかに小さい場合、例えば、無線 LAN の RTT は一般に TD よりもはるかに小さいため、この時のチャネル利用率は比較的高いです。なお、上記の導出はタイムアウト再送信が発生する場合を考慮していません。タイムアウト再送信が発生した場合、有用なデータ情報の伝送に関しては、チャネル利用率はさらに低下します。
以上のことから、== 往復時間 RTT が比較的大きい場合、チャネル利用率を向上させるために、送信者と受信者は停止待機プロトコルを採用するのが適切ではなく、バックアップ n ステッププロトコルまたは選択再送信プロトコルを使用することができます。==

例題
14m13s
image

まとめ
image

バックアップ N フレームプロトコル GBN#

00m37s
SW プロトコルでは、1 回の送信で 1 回の受信を待つ必要があり、各操作は 1 対 1 で行われるため、効率が悪いです。GBN は複数のパケットを一度に送信したいと考えています。これらの複数のパケットは一括して確認されるため、何度も往復する必要はありません。

image

  • パイプライン伝送方式を使用する場合、送信者はデータパケットを無制限に連続して送信することはできません。そうしないと、ネットワーク内のルーターや受信者がこれらのデータパケットを処理しきれず、データパケットのロスを引き起こす可能性があります。これは実際にはネットワークリソースの浪費です。(送信数を制限する)
  • バックアップ N フレームプロトコルはパイプライン伝送方式を採用し、送信ウィンドウを利用して送信者が連続して送信できるデータパケットの数を制限します。これは連続 ARQ プロトコルに属します。

n ビットでパケットに番号を付け、範囲は 0-2^n-1 です。この例では、3 ビットでパケットに番号を付けると仮定し、番号の範囲は 0-7 です。番号が 7 に達すると、次の番号は再び 0 から始まります。
image

image
送信者の送信ウィンドウと受信者の受信ウィンドウは、上記のルールに従って前方にスライドし続けるため、この種のプロトコルはスライディングウィンドウプロトコルとも呼ばれます。

伝送エラーなし
image
06m03s

伝送エラー、バックアップ N フレーム
07m33s
受信したものは緑に変わり、どこがロスしたかがわかり、受信した数に応じて青いウィンドウが何マス動きます。
image

エラーが発生した場合、以前に送信した N 個のデータパケットを再送信する必要があります。

image
12m17s 例を示します。

image

送信ウィンドウと受信ウィンドウ
image

image

image

送信ウィンドウ Wt が値の範囲を超えた場合
image

例題
18m04s
image

選択再送信プロトコル SR#

前の 2 つと比較
image

  • 送信者がエラーのあるデータパケットのみを再送信するようにするため、受信者は ==累積確認を採用しない== 必要があり、正しく受信したデータパケットを 1 つずつ確認する必要があります。
  • Wr はもはや 1 ではなく、== 受信者は順序が乱れて到着したがエラーがなく、受信ウィンドウ内に番号があるデータパケットを先に受け取ることができ、欠落したパケットがすべて揃った後に一緒に上位層に送信します。==

例を示します
03m47s
論理的な鍵は、この方法では少し待つことになり、受信していない確認を単独で再送信し、偶発的なエラーの問題を犠牲にして全体の安定性を保証します。

例題:
09m48s
受信していないものを返すだけです。

ポイントツーポイントプロトコル PPP#

ポイントツーポイントプロトコル(Point-to-Point Protocol、PPP)は、現在使用されている ==最も広く== 使用されているポイントツーポイント == データリンク層プロトコル == です。

アプリケーションの現状

  • 個人ユーザーのコンピュータが PPP を介して ISP に接続し、インターネットにアクセスします。個人ユーザーと ISP の通信は、データリンク層では一般的に PPP です(PPPoE はイーサネット上で動作するプロトコルで、ISP がデジタルユーザールートモデムやイーサネットなどのブロードバンド接続技術を介してユーザーにインターフェースサービスを提供できるようにします)。
  • 広域ルーター間の専用回線
    image

PPP の構成#

  • 各種プロトコルデータグラムのカプセル化方法(フレームへのカプセル化)
  • リンク制御プロトコル LCP
    • データリンクの接続を確立、構成、およびテストするために使用されます。
  • 一連のネットワーク制御プロトコル NCPs
    • それぞれのプロトコルは異なるネットワーク層プロトコルをサポートしています。

image

PPP フレームのフォーマット#

image

image

PPP は透明伝送の問題を解決し、データ部分にフレームの識別を持たせます#

  • バイト指向の非同期リンク(バイトが基本情報単位)
    • バイトパディング法を使用し、エスケープキャラクターを挿入します。
  • ビット指向の同期リンク(ビットが基本情報単位)
    • ビットパディング法を使用し、0 を挿入します。

バイト指向の非同期リンクの透明伝送#

image

ビット指向の同期リンク#

ビットパディング、0 を挿入します。以前も同様に行われました。
image

PPP フレームのエラー検出#

テールの FCS フィールドでフレームチェックを行います。
循環冗長検査を使用します。
image
受信者は PPP フレームを受信するたびにCRC チェックを行います。

CRC チェックが正しい場合、そのフレームを受け入れます。そうでない場合、そのフレームを破棄します。

PPP を使用するデータリンク層は、上位に信頼性のないデータ伝送サービスを提供します。

ダイヤルアップ接続の例としての PPP#

10:15
開始と終了は静止状態です。
image

image

イーサネット#

データ通信の 3 つの方法#

  • [[ユニキャスト]]:1 対 1 の通信
  • [[ブロードキャスト]]:1 対全の通信、送信された情報はすべての人に届けられます。
    • == ローカルエリアネットワークは主に共有チャネル == の方式で通信を行い、主に採用される方式はブロードキャストです。
    • イーサネット、無線 LAN
  • [[マルチキャスト]]:1 対特定のグループの通信、特定のグループのユーザーに情報を送信します。

LAN と WAN のデータリンク層の違い#

メディアアクセス制御:データがチャネルを伝送する過程での衝突問題を解決します。

  • ローカルエリアネットワークでは、すべてのノードが共有チャネルを使用します。
  • 広域ネットワークでは、ポイントツーポイントでチャネルを共有せず、衝突がなく、メディアアクセス制御は必要ありません。

ポイントツーポイントデータリンク(広域ネットワーク)制御(ダイヤルアップリンク)

  • メディアアクセス制御は不要です。
  • 明示的な MAC アドレス指定は不要です。
  • 一般的なプロトコル:HDLC、PPP

チャネルの割り当て方法#

チャネルの静的割り当て#

何らかの方法で、事前に各ユーザーに割り当てられ、異なるユーザーの使用状況は異なります。

  • 例:周波数分割多重、時間分割多重
  • 1 人のユーザーが自分のものを得れば、他の人と衝突することはありません。

チャネルの動的割り当て#

複数のユーザーが 1 つの回線を共有し、チャネルは需要に応じて動的にユーザーに割り当てられます(多重アクセスプロトコルを採用)。チャネルは事前に割り当てる必要はなく、オープンです。

  • ランダムアクセス
  • 特徴:サイトまたはユーザーがチャネルを争奪し、衝突が発生する可能性があります。
  • 典型的なランダムアクセスプロトコル:ALOHA プロトコル、CSMA プロトコル、CSMA/CD プロトコル(共有イーサネットで採用)
  • (秩序ある)制御アクセスプロトコル —— 順次アクセス
  • 特徴:サイトが明示的に割り当てられ、衝突が発生しません。
    • 例:トークン方式

特殊な場合のデータリンク層のチャネル処理#

ブロードキャスト多重アクセスリンク(ローカルエリアネットワーク):メディアの競合が存在する可能性があるため
さらに細分化される可能性があります。

  • メディアアクセス制御サブレイヤー
    • メディアアクセス制御(MAC)サブレイヤーは、メディアアクセスの競合と衝突問題を専門に処理します。
  • 論理リンク制御サブレイヤー

データリンク層の主要プロトコル#

  1. ポイントツーポイントプロトコル(Point-to-Point Protocol)
  2. イーサネット(Ethernet)
  3. 高度なデータリンクプロトコル(High-Level Data Link Protocol)HDLC プロトコル
  4. フレームリレー(Frame Relay)
  5. 非同期転送モード(Asynchronous Transfer Mode)

ローカルエリアネットワークの一般的な標準(イーサネットは有限ローカルエリアネットワーク)#

  • IEEE 802.1 は一連のプロトコルの集合です:
  • IEEE 802.1q は VLAN タグプロトコルを定義します。IEEE 802.1s は多生成木プロトコルを定義します。
  • 802.2LLC:基本的に使用されません。
  • DIX イーサネット V2 イーサネット:LLC サブレイヤーは不要です。なぜなら、接続のないデータパケット伝送サービスを実現しているからです。
  • 802.3 ローカルエリアネットワーク:略してイーサネット(CSMA/CD アクセス制御方式を採用)
  • 802.5 トークンリングネットワーク
  • 802.4 トークンバスネットワークなど
  • 802.11 無線 LAN:動作方式は DCF(分散制御)と PCF(中央制御)を採用します。

イーサネット#

  • イーサネットの MAC 層にはフロー制御、ARQ、エラー訂正コード機能がありません。(これにより、イーサネットハードウェアを非常に簡単かつ効率的に実現し、コストを大幅に削減できます。安価で十分なため、イーサネットは非常に普及しています。)
  • このような設計が合理的であるための重要な前提は、有線であり、LAN であることです。この物理環境は、誤り率が非常に低いことを決定します。単一のホップ伝送ではほとんどエラーが発生せず、エラーが発生した場合、イーサネットはパケットを直接破棄し、上位層がパケットロスを検出して再送信します。
  • もちろん、上位層での再送信のオーバーヘッドは、データリンク層での再送信のオーバーヘッドよりもはるかに大きいです。たとえば、TCP に再送信を行わせると、エンドツーエンドの再送信は明らかにネットワーク容量をより多く消費します。なぜなら、多くのホップを経由するからです。さらに、TCP の検出タイミングはデータリンク層のタイミングよりも遅いため、再送信のトリガーが遅れることが多く、伝送性能に影響を与えます。
  • WAN や無線ネットワークに目を向けると、データリンク層ははるかに複雑になります。この場合、長距離通信や無線チャネルが誤り率を急激に上昇させるため、データリンク層が信頼性のある伝送を行わなければ、上位層が非常に非効率的になります。たとえば、802.11 にはフロー制御があります。3G や 4G のようなモバイル通信では、さらに複雑になります。

共有イーサネット#

イーサネットは最初に無源ケーブル(電源線を含まない)を共有バスとして使用してフレームを伝送し、ベースバンドバスローカルエリアネットワークに属し、伝送速度は 2.94Mb/s です。(共有バスを使用する共有イーサネットとハブを使用する共有イーサネットがあります)

  • イーサネットは現在、従来の共有イーサネットからスイッチングイーサネットに進化し、伝送速度は 10Mb/s から 100Mb/s、1Gb/s、さらには 10Gb/s に向上しています。

  • イーサネットは現在、最も一般的に使用されているローカルエリアネットワーク技術であり、トークンリング、FDDI、ARCNET などの他のローカルエリアネットワーク技術に取って代わりました。(イーサネットはローカルエリアネットワーク技術の一種に過ぎません。)

    ネットワークアダプタ#

    image

  • ネットワークカードと CPU の間の通信は、マザーボード上の I/O バスを介して行われ、並列伝送方式で行われます。
  • ネットワークカードと外部イーサネット(ローカルエリアネットワーク)との間の通信は、一般的に == 伝送メディア ==(同軸ケーブル、ツイストペアケーブル、光ファイバー)== を介して == シリアル方式で行われます。
  • 物理層とデータリンク層の機能を実現するだけでなく、以下のことも行います。
    • 並列伝送とシリアル伝送の変換
    • ネットワークの伝送速度とコンピュータ内部のバス上の伝送速度が異なるため、ネットワークカードのコアチップにはデータをキャッシュするためのメモリが含まれています。
  • ネットワークカードドライバ == はネットワークカードがフレームを送信および受信するのを制御します。==
    image

image

MAC アドレス#

image

  • 複数のホストが同じブロードキャストチャネルに接続されている場合、2 つのホスト間で通信を実現するためには、== 各ホストが一意の識別子、すなわちデータリンク層アドレスを持っている必要があります ==。(コンピュータのネットワークカードがデータフレームが自分に送信されるかどうかを判別できるようにするため)
  • 各ホストが送信するフレームのヘッダには、送信ホスト(ソースホスト)と受信ホスト(デスティネーションホスト)のデータリンク層アドレスが含まれています。この種のアドレスはメディアアクセス制御(Medium Access Control、MAC)に使用されるため、MAC アドレスと呼ばれます。

image

  • MAC アドレスは一般にネットワークカードの電気的に消去可能なプログラム可能な読み取り専用メモリ EEPROM に固化されているため、MAC アドレスはハードウェアアドレスとも呼ばれます。
  • MAC アドレスは時には物理アドレスとも呼ばれます。(ipconfig/ip コマンドで TCP/IP 設定情報を確認できます)
  • 物理アドレスの「物理」という言葉に惑わされて、物理アドレスがネットワークアーキテクチャの物理層に属すると誤解しないでください。(物理アドレスはデータリンク層に属します。)

image

image

image
==MAC アドレスはインターフェースの一意の識別子です==

MAC アドレスのフォーマット#

image

image

image

Bluetooth も MAC アドレスを占有します。
image

IEEE 802 ローカルエリアネットワークの MAC アドレス送信順序#

image

ユニキャストブロードキャスト MAC アドレスの例#

17:31
受信と受け入れの違いに注意してください。

ネットワークカードはネットワーク上でフレームを受信するたびに、フレームヘッダ内の宛先 MAC アドレスをチェックし、以下の状況に応じて処理します:
(1)宛先 MAC アドレスがブロードキャストアドレス(FF-FF-FF-FF-FF-FF)の場合、そのフレームを受け入れます。
(2)宛先 MAC アドレスがネットワークカードに固化されたグローバルユニキャスト MAC アドレスと同じ場合、そのフレームを受け入れます。

  • グローバルユニキャスト MAC アドレスは、身分証明書の番号のように一意性を持ち、通常はユーザーの個人情報にバインドされています。したがって、ユーザーは自分が持っているグローバルユニキャスト MAC アドレスが漏洩しないようにする必要があります。
  • ユーザーのデバイスが Wi-Fi ホットスポットに接続する際の MAC アドレス漏洩のセキュリティ問題を回避するために、現在ほとんどのモバイルデバイスはランダム MAC アドレス技術を採用しています。

(3)宛先 MAC アドレスがネットワークカードがサポートするマルチキャストアドレスの場合、そのフレームを受け入れます。

(4)上記の(1)、(2)、(3)以外の場合、そのフレームを破棄します

image

image

image

image

CSMA/CD プロトコルの基本原理#

目的は、バス上に多くの情報が同時に流通する場合、すべての人が一緒に歩くと衝突の問題に遭遇しやすくなることです。

  • 共有バスイーサネットは本質的に == ブロードキャスト特性 == を持ち、バス上の == あるステーションが別のステーションにユニキャストフレームを送信しても、フレームの == 信号はバス上の他の各ステーションに沿って伝播します。
  • あるステーションがバス上でフレームを送信すると、== バスリソースはそのステーションによって独占されます ==。この時、バス上の == 他のステーションもフレームを送信しようとすると、信号 == の衝突が発生します。
  • 2 つ以上のステーションが同時にバスを使用してフレームを送信すると、信号の衝突が発生します。

image

各ステーションがバスを争奪する問題を解決するために、共有バスイーサネットは専用プロトコル **CSMA/CD(Carrier Sense Multiple Access Collision Detection)** を使用します。

  • キャリアセンスは、バスが空いていることを検出しますが、バスが必ずしも空いているわけではありません
  • CSMA/CD プロトコルを使用する共有バスイーサネット上の各ステーションは、衝突を回避し、衝突が発生した場合にはバックオフして再送信する処理を行いますが、衝突を完全に回避することはできません
  • CSMA/CD プロトコルを使用する場合、送信中のステーションは「フレームを送信しながら衝突を検出する」必要があるため、== ステーションは送信と受信を同時に行うことはできず ==、全二重通信は不可能であり、半二重通信(双方向交互通信)のみが可能です。

image

image

image

image

image

CDMA(Code Division Multiplex Access)はコード分割多重アクセスの略です。CDMA の各ユーザーは、同じ時間に同じ周波数帯域を使用して通信できます。

TDMA(Time Division Multiplex Access)は時分割多重アクセスの略です。

時分割多重のすべてのユーザーは、異なる時間に同じ周波数帯域を占有します。

FDMA(Frequency Division Multiplex Access)は周波数分割多重アクセスの略です。周波数分割多重のすべてのユーザーは、同時に異なる周波数帯域リソースを占有します。

CSMA は競合型メディアアクセス制御プロトコルに属し、同じメディアに接続された複数のステーションがこのプロトコルを使用して競争的にデータフレームを送信し、衝突(衝突とも呼ばれる)が発生する可能性があります。

TDMA、FDMA、CDMA は一般的な物理層チャネル多重化技術であり、静的にチャネルを分割し、多ユーザーがチャネルを共有するために使用され、衝突は発生しません

共有イーサネットの占有期間#

CSMA/CD プロトコルを使用する共有バスイーサネット上の任意のステーションがフレームを送信する過程で衝突に遭遇する可能性があります。あるステーションがフレームの送信を開始してから、最長でどのくらいの時間が経過すれば、自分が送信したフレームが他のステーションが送信したフレームと衝突したことを検出できるでしょうか?

A:共有バスイーサネットの両端に位置する 2 つのステーションが送信するフレームが衝突する場合を考慮する必要があります。

image

image

image

例題:

image

共有イーサネットの最小フレーム長と最大フレーム長#

最小フレーム長:64 B

最小フレーム長 = バスの伝播遅延 * データ伝送速度 * 2(最短フレーム長は 64 B で、到達しない場合はパディング)

image

最大フレーム長:1518 B

フレームが長すぎると、バスが常に忙しくなり、受信者ホストのバッファサイズに要求があります。

image

例題:

image

共有イーサネットのバックオフアルゴリズム#

https://www.bilibili.com/video/BV1rd4y1P7Zh?t=3.6
CSMA/CD プロトコルを使用する共有バスイーサネットでは、フレームを送信しているステーションはフレームを送信しながら衝突を検出し、衝突が検出されるとすぐに送信を停止し、ランダムな時間をバックオフした後に再送信します。

  • 共有バスイーサネットの各ステーションは切り捨て二進指数バックオフ(Truncated Binary Exponential Backoff)アルゴリズムを使用して、バックオフのランダムな時間を選択します。
  • 連続して多くの衝突が発生した場合、同時に送信しようとするステーションが多すぎることを示しています。しかし、上記のバックオフアルゴリズムを使用することで、再送信に必要な平均時間が再送信回数に応じて増加し(すなわち動的バックオフ)、衝突が発生する確率を減少させます。
  • 16 回再送信しても成功しない場合、同時にフレームを送信しようとするステーションが多すぎて連続して衝突が発生していることを示しており、その場合は再送信を放棄し、上位層に報告します。
  • A. 再送信回数 k <= 10 の場合、k と 10 の最小値を選択します。k> 10 の場合、k = 10 を選択します。
  • B. 0、1、2、3... 2^k - 1 の中からランダムに数 n を選択し、再送信時間は n 倍の基本バックオフ時間、すなわち 2τn です。
  • C. 16 回再送信した時点で、そのフレームを放棄し、高層にエラーを報告します。

image

共有イーサネットのチャネル利用率#

image

image

image

image

ハブを使用した共有イーサネット#

image

  • イーサネットは、バスを置き換え、非常に高い信頼性を持つデバイスである ** ハブ(Hub)** を使用するように進化しました。
  • ステーションはハブに接続され、伝送メディアはより安価で柔軟なツイストペアケーブルを使用します。

image

共有バス型イーサネットとスター型トポロジーイーサネット#

物理的なトポロジー構造は異なりますが、本質的には同じで、動作ロジックは同じで、CSMA/CD プロトコルを使用して(競争的に)ネットワークリソースを共有します。
![](ipfs://QmcH693Q1DWe4jTaDXKP9PbhQfJ53QxMtFdr3EL33Z9hAq

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。