基本的な紹介
概要
データリンク層で使用されるチャネルには主に 2 つのタイプがあります
- ポイントツーポイント チャネル。1 対 1 のポイントツーポイント通信を使用するチャネル。
- 放送チャンネル。1 対多のブロードキャスト通信を使用するチャネル。ブロードキャスト チャネルには多数のホストが接続されているため、これらのホストのデータ送信を調整するには専用の共有チャネル プロトコルを使用する必要があり、通信プロセスが複雑になります。
異なるリンク層は異なるデータリンク層プロトコルを使用する場合があります
フレームは、データリンク層のプロトコル データ単位です。フレームはヘッダー、データ部、トレーラーで構成されます。ヘッダーにはフレームの制御情報(アドレス、コントロールなど)が含まれ、末尾にはフレーム チェック シーケンスが含まれ、データ部分はIPデータグラムを格納するためのデータ フィールドとして機能します。
物理リンクとデータリンク
物理リンク (リンク) は、間に他のスイッチング ノードが存在しない、2 つの隣接するノード間のパッシブな物理回線セグメントを指します。
2 台のコンピュータが通信する場合、パスは直列に接続された複数のリンクで構成されます。つまり、リンクはパスのコンポーネントにすぎません。
データ リンク(データリンク、論理リンク) は、物理回線と、通信プロトコルを実装するハードウェアおよびソフトウェアで構成されます。データリンク層プロトコル(つまり、リンク制御手順)は、信頼性の低い物理リンク上で信頼性の高いデータ送信を行うために不可欠です。
ネットワーク アダプタ (つまり、ネットワーク カード)は、これらのプロトコルを実装するハードウェアおよびソフトウェアであり、通常はデータ リンク層と物理層の機能を備えています。
関数
デジタル パイプは通常、2 つのピア データ リンク層の間に描画され、このデジタル パイプ上で送信されるデータの単位はフレームです。
初期のデータ通信プロトコルは通信手順と呼ばれていました。したがって、データリンク層では、手順とプロトコルは同義です。
データリンク層は、物理層が提供するサービスに基づいて、ネットワーク層にサービスを提供する。その基本的なタスクは、ネットワーク層から送信された IP データグラムをフレームにカプセル化して物理層に渡し、物理層で受信したエラーのないフレームから IP データグラムを抽出してネットワーク層に渡します。それらをエラーフレームに送信して破棄します。
データリンク層の主な機能
- リンク管理: データ リンクの確立、維持、解放。
- フレーム区切り 受信機は、受信したビット ストリームからフレームの始まりと終わりを正確に区別する、つまりフレーム境界位置を決定する必要があります。
- 任意のビットの組み合わせデータを透過的に伝送できます。
- フロー制御 の本質は、送信側が送信するデータ レートを制御することであり、受信側の容量を超えないようにする必要があります。
- エラー検出で は、通常、送信側で送信ビット ストリームにエラー検出コードを付加し、受信側で検出コードを再計算し、両者を比較してエラーが存在するかどうかを判断します。
3 つの基本的な質問
ポイントツーポイント チャネルのデータ リンク層プロトコルは、次の 3 つの基本的な問題を解決する必要があります。
- フレーム区切り
- 透明な伝送
- エラー検出
フレーム区切り
フレーム区切りは、送信されたビット ストリームからフレームの境界を正確に区別することです。
フレームの区切りにはいくつかの方法が使用されます。
バイト スタッフィングで は、特定の制御文字を使用してフレームの始まりと終わりを区切ります。
PPP が非同期伝送を使用する場合、エスケープ文字として0x7D (01111101)を使用します。エスケープ規則は次のとおりです。
-
情報フィールドに表示される各 0x7E バイトを 2 バイトのシーケンス (0x7D、0x5E) に変換します。
-
0x7D バイトが情報フィールドに出現する場合 (つまり、エスケープ文字と同じビットの組み合わせが出現する場合)、エスケープ文字 0x7D は 2 バイト シーケンス (0x7D、0x5D) に変換されます。
-
ASCII コード制御文字が情報フィールドに表示される場合 (つまり、0x20 未満の値を持つ文字)、その文字の前に 0x7D バイトを追加し、文字のエンコーディングを変更する必要があります。たとえば、0x03 (制御文字の「送信終了」ETX) が表示された場合は、2 バイト シーケンス (0x7D、0x31) に変換する必要があります。
バイトスタッフィング方式では、バイトスタッフィング技術が使用される。埋められるバイトはエスケープ バイト (ESC) です。
ビット スタッフィング方式は、 特定のビットの組み合わせ01111110を使用してフレームの先頭と末尾を区切ります。これは、現在最も一般的に使用されている方式です。
「ゼロビット挿入および削除」技術は、送信されるデータ情報内の特定のビットの組み合わせの問題を解決するために使用されます。
ゼロビット パディングはバイト パディングよりもはるかに簡単です。0x7E のバイナリ表現は 01111110 であるため、5 つの 1 ごとに 0 が挿入されている限り、データ内で 0x7E を回避できます。
バイト カウント方式では、 特定の文字を使用してフレームの先頭を示し、バイト カウント フィールドを使用してフレーム内で送信する必要があるバイト数を示します。
この方式はDDCMPプロトコルでのみ採用されており、送信処理中のバイトカウント値が間違っているとフレームの終了境界が判断できないという問題があります。
イリーガルビットコーディング方式では、 イリーガルコーディングをフレーム境界として利用します。
この方法は、物理メディアで特定のビット エンコーディングが使用されている場合にのみ適用されます。たとえば、バイフェーズ コード送信がローカル エリア ネットワークで使用される場合、各シンボルの中間点でレベル ジャンプが発生します。当然のことながら、シンボルの途中でレベルホッピングを起こさないビットコーディングは不正なビットコーディングであり、この不正なビットコーディングはフレームの区切りとして使用することができる。
透明な伝送
透過的な送信とは、どのような形式のビットの組み合わせがリンク上で送信されても、データ送信の通常の進行に影響を与えないことを意味します。
- バイトスタッフィング方式では、バイトスタッフィング技術が使用される。埋められるバイトはエスケープ バイト (ESC) です。
- ビットスタッフィング方式では、「ゼロビット挿入・削除」技術が使用されます。たとえば、特定のビットの組み合わせ「01111110」を挿入します。
- バイト カウント方式では、バイト カウント フィールドは、送信されるバイト数を示すために使用されます。
バイトスタッフィング技術を用いた透過伝送の例
送信データに制御文字が含まれる場合は、エスケープ文字「ESC 」( 1BH )を挿入すると問題が解決します。データ内にエスケープ文字も出現する場合は、そのエスケープ文字の前に別のエスケープ文字を挿入する必要があります。挿入されたエスケープ文字は受信側で削除する必要があります
エラー制御
データ信号には送信中にエラーが発生する可能性があります。1 が 0になったり、0 が1になったりすることがあります。
BER (ビット誤り率)は、伝送エラーを測定する指標です。このメトリクスは、一定期間における送信ビットの総数に対する誤って送信されたビットの比率を表します。
ビット誤り率は信号対雑音比と大きな関係があります。データ伝送の信頼性を確保するために、コンピュータ ネットワーク上でデータを伝送する際には、さまざまなエラー検出手段を使用する必要があります。巡回冗長検査 CRC は、データリンク層で広く使用されているエラー検出技術です。
知らせ
- フレームチェックシーケンスFCSとCRCは意味が異なります。CRC はエラー検出方法を指し、FCSはエラー検出のためにデータフィールドの後に追加される冗長コードです。
- 巡回冗長検査CRCエラー検出テクノロジーは、エラーのない受け入れのみを達成できます。「エラーなしの受け入れ」とは、「すべての受信フレーム(つまり、破棄されたフレームを除く)について、これらのフレームの送信中に1に非常に近い確率でエラーが発生していないと信じることができる」ことを意味します。言い換えれば、受信側のデータリンク層によって受け入れられたすべてのフレームには送信エラーがありません(エラーのあるフレームは破棄され、受け入れられません)。
- 「信頼性の高い送信」(つまり、送信したものを受信する)を実現するには、確認応答および再送信メカニズムを追加する必要があります。
演習の説明
データリンク層プロトコルは、次の文字エンコーディングを使用します: A:01000111 B:11100011 FLAG:01111110 ESC:11100000。AB ESC FLAG の 4 文字を含むフレームを送信する場合、次のフレーミング方式のどれを使用する場合に送信されるビット シーケンス (バイナリ表現) は何ですか? (1) バイト数 (2) バイト詰めのフラグバイト (3) ビット詰めのフラグバイト
- (1) バイトカウント方式ではフレーム長情報が必要なため、合計 5 バイトを送信する必要があります。送信シーケンスは次のとおりです。 00000100 (4 を表す) 01000111 (A) 11100011 (B) 11100000 (ESC) 01111110 (FLAG)。
バイト カウント方法ではフレーム長情報が必要です。つまり、対応する合計バイト数を表現するには同じ長さとバイナリを使用する必要があるため、4 バイトなので、合計 5 バイトを送信する必要があります。
- (2) FLAG は開始フラグと終了フラグです。したがって、送信シーケンスは次のようになります: 01111110 (FLAG) 01000111 (A) 11100011 (B) 11100000 (ESC) 11100000 (ESC) 11100000 (ESC) 01111110 (FLAG) 01111110 (FLAG)
FLAG は開始フラグと終了フラグです。つまり、対応するエスケープ記号を最初と最後に追加する必要があり、その後、すでにエスケープ記号であるものについては、追加のエスケープ記号を前に追加する必要があるため、合計 2 つの Esc と 2 つのフラグが必要になります。
- (3) データ内に 1 が 5 つ連続する場合、その後ろに 0 が追加されます。したがって、送信シーケンスは次のようになります: 01111110 (FLAG) 01000111 (A) 110100011 (B) 111000000 (ESC) 011111010 (FLAG) 01111110 (FLAG)
ビット充填方法は、データ内の 5 つの連続する 1 の後に 0 を追加し、その後、フラグ自体の終わりと始まりを含める必要があります。