技術講座
[技術講座(データ通信―1)] (2002/11/12作成)
データ通信の技術進歩は著しく、知識習得が追いつかないほどめまぐるしく変化し続けています。ここでは、それらの新技術を理解するうえで必要なデータ通信の基礎技術についてまとめることにしました。
1.通信制御
データ通信(ディジタル)は、変復調装置(モデム)を利用し、公衆電話網(アナログ)を介してデータ伝送を行うことから始まりました。その後、高速モデムの開発によって、電話網の帯域幅に基づく伝送速度の制限も克服されました。ディジタル伝送ではシンボル間の干渉を防ぐために、位相特性(群遅延)に対して比較的厳しい規準が課せられます。そのため、NTT等のコモンキャリアは、ディジタル伝送用の専用線をサービスしています。
一方、電話回線の帯域3kHz内で位相特性を修正する技術も進歩し、位相ひずみを自動的に補正する自動等化器では一連のトレーニング信号のやり取りを行い、回線特性を計測して受信側モデムの等化回路が調整されます。ダイヤル接続のときは個々の呼ごとにトレーニングが行われます。このような通信信号を制御することをデータリンク制御(DLC)といいます。
1.1 HDLC(ハイレベルデータリンク制御手順)
HDLCは国際標準化機構(ISO)が制定した規格です。ハイレベルデータリンク(HDLC:High level
Data Link Control)制御手順といわれ、それまでのベーシック手順を発展させた伝送手順です。SDLC手順は米IBMが開発した手順で、HDLCはこれを基に作られました。ここではまず手順の約束事(プロトコル)から説明します。HDLC手順は端末間で符号上制約なしにデータを同期伝送するための手順で、ISDNやPHSなどの制御にも、この手順、定義が採用されています。HDLC手順では伝送制御用の情報は全てフレームを通して一定の位置に収められています。図1にフレームフォーマットを示します。情報部(情報フィールド)は制御用の部分とは独立しており、ファクシミリ等用の上位の制御手順を入れることができ、階層構造を形成することが容易になっています。

図1 HDLCのフレーム構成
HDLCはフラグ同期で、フラグコード"01111110"
(7E)hで同期をとります。また、フレームの開始と終わりを示すものです。データ転送において、数フレームに対してOKの応答(伝送確認を1個)とすることができます。これは同時監視方式と呼ばれ、ブロック単位で個々に応答確認するベーシックのような交互監視(ストップアンドスタート方式)に比較し、伝送効率を上げることができます。図1(b)はフラグシーケンスを除いたフレーム長についての規定を示します。誤り検出はCRCを用い、生成多項式にはX16+X12+X5+1を使用しています。図2に誤り検査対象を示します。生成多項式により作成されたフレーム検査シーケンス(FCS)は16ビットで、図2に示す位置にあります。
図2 フレームの構成と誤り検査の範囲
(1)データリンク(DLC)の機能
HDLC手順はOSI 7階層レベルのデータリンク層に機能分類されています。HDLCはこの層(レイヤ)の標準の考えより前から存在し、データリンク手順(DLC)の1つと分類されていました。通信システムには通信誤りが存在し、データ保証するためにある対策を講じます。それはエラーを検出することと、当該メッセージを再送するか、または受信側のみでエラー訂正することです。メッセージはある区切り(ブロック単位)で送られ、ブロックごとにエラー発生を検出します。伝送制御では、テキスト(text)はメッセージと同じ意味で使われています。データは設定されたデータリンクを通して、誤り制御や同期コードなどのために分割されたテキスト(メッセージ単位)で送られます。フレーム(frame)は伝送するデータ情報のテキスト分割と、テキストの制御を示す情報を付けることであり、リンクレベルの伝送制御の機能です。
基本ベーシック手順では、文字単位のパリティチェックを基に分割するテキストが作られています。従って、テキスト自体の中に制御用のコード、例えばテキストの先頭を示すSTXが存在することができません。もしSTXが出現すると、そこがテキストの先頭と間違えて識別してしまいます。このため拡張ベーシック手順が用意され、工夫がなされています。HDLCのフラグは、特別のビットパターンでデータブロックの区切りを識別するために用いられ、これをユーザデータの一部としてテキストの中に入れて送出してはなりません。誤って挿入されることを防ぐために、図3に示すようにゼロインサート(挿入)と呼ぶ手法を使っています。"1"が5ビット連続したらその直後に"0"を挿入することです。
図3 ゼロインサートの必要性
これによりデータの保障ができるが欠点もあります。第1にビット挿入のための送信元のデータに遅延が生じます。このため音声データのように実時間性を重視する用途にはジッタと呼ばれる到着時間の揺らぎを生じさせ、対策が必要になります。第2にビット挿入はユーザのデータが持つキャラクタ構造を壊してしまい、8ビットで文字を示す関係がなくなってしまいます。キャラクタ単位の構造ではビット挿入の手法をとりません。しかし、あるキャラクタが送れないとか、キャラクタの内部に制約が生じてしまうなどで、完全な透過性(トランスペアレンシー)は望めません。
HDLCはビットベースで、キャラクタについては完全な透過性が保障されています。ベーシック手順はキャラクタベースで、伝送制御符号をテキスト内に入れて伝送する際には、その前にDLEキャラクタを付けて透過性を持たせています。HDLCはアポートと呼ばれる処理を採用しています。これは、伝送の途中で送信を打ち切った場合にフラグの代わりに送出するもので、"1"の連続です。受信側では"1"が連続して8個以上続くことでアポートを検出します。フラグで開始されていても、アポートを検出した場合には、そのフレームは不正として取り扱います。
<3つの動作モード>
リンクレベルの回線制御方式は、次の3つの動作モードに分類されました。この概念はベーシックでも存在しましたが、HDLCとともに明確になりました。
(a) DLCの動作モード
@ 非平衡型(1次局/2次局)
A 平衡型(コンテンションタイプ:Contention)
B 非平衡型と平衡型の組み合わせ
@、Aの違いはデータリンクの制御、つまり発信権の調整をある特定の局が責任を持って行うか、それとも互いの局が対等の立場で責任を持つかです。ポーリング/セレクションは非平衡型の中でよく使われており、様々な変形があります。ベーシックに比較しHDLCのほうが論議が尽くされ、種々のバリエーションに対応できる用意があります。
(b) HDLCの動作モード
HDLCの動作モードも3つあり、データリンク確立に先立って動作設定コマンドでこの中の1つを決定します。
@ 正規応答モード(NRM:Normal Response Mode)
A 非同期応答モード(ARM:Asynchronous Response Mode)
B 非同期平衡モード(ABM:Asynchronous Balanced Mode)
@の正規応答モードでは伝送制御は完全に1次局が管理し、2次局は1次局からの送信許可のコマンドを受け取ったときだけ1次局にレスポンスを送信することができます。Aの非同期応答モードも伝送制御権は1次局のみが持っていますが、2次局は1次局からの送信許可がなくてもレスポンスを送り返すことができます。Bの非同期平衡モードは制御権が対等な平衡モードです。このモードのとき1次局、2次局の区別なく複合局と呼ばれます。複合局は相手の許可がなくてもレスポンスだけでなくコマンドも送ることができます。表1に各モードの内容をまとめて示します。
表1 HDLCのクラスとモード
| 手順クラス |
モ ー ド |
内 容 |
| 非(不)平衡型 |
動作モード |
正規応答モード
(NRM) |
2次局は1次局からのコマンドによりすべて制御される |
非同期応答モード
(ARM) |
2次局は1次局からのコマンドの受信がなくてもレスポンスの送信が始められる |
| 平 衡 型 |
非同期平衡モード
(ABM) |
相手複合局の許可がなくてもコマンドまたはレスポンスの送信が始められる |
平 衡 型
および
非(不)平衡型 |
非動作モード |
初期モード
(IM) |
データリンクの制御機能を初期化するモードで、データリンク制御プログラムなどは1次局や複合相手局からの操作によって初期化される |
切断モード
(DCM) |
データリンクから論理的に切断されたモードで、2次局または複合局がとり得る |
(2)コマンド/レスポンス
HDLCの伝送単位をフレームと呼び、フレームはコマンドとレスポンスに分かれます。1次局はコマンドのみを送出でき、2次局はレスポンスのみを送出できます。複合局はコマンド/レスポンスの双方を送出できます。図1に示したフレームフォーマットの制御部8ビットの組み合わせにより、フレームの種類、送受信順序番号およびP(ポール)ビット/F(ファイナル)ビットを表しています。図4にフレーム構成と内容を示します。
フラグシーケンス (F)
一つのフレームの開始と終了を知らせる8ビットの特定パターンで、同期をとる役目も果たす。ビットの構成は常に「01111110」であり、これと同じビットパターンをフレーム中に発見すると、DTEはこれを終結フラグと判断する。このため、フレーム中のフラグシーケンス以外のフィールドにこのビットパターンがあれば、転送の前に1のビットが5個連続すると送信側DTEでは強制的に0を6ビット目に挿入する。
アドレスフィールド (A)
送信するフレームの宛先または自局のアドレスを示す。そのフレームがコマンドである場合は、受信すべき2次局(複合局)のアドレス、レスポンスである場合は、どの2次局(複合局)から送られたかを示すアドレスである。
制御フィールド (C)
相手局に対して動作の指令や応答を示す。コマンドやレスポンスの種類、連続転送を誤りなく行うためのシーケンス番号、送信要求や送信終了を表すポール/ファイナルビット(P/F)が、ビット単位でこのフィールドに設定される。
情報フィールド (I)
転送すべき情報を入れる部分であり、長さは自由であるが、DTEの持つ特性や通信回線の品質などを考慮して最適なビット長を決める。
フレームチェックシーケンス (FCS)
伝送上の誤りを発見するためのビットシーケンスで、アドレスフィールド、制御フィールド、情報フィールドが正しく送られたかをチェックするためにある。
図4 HDLCフレーム構成
コマンドとレスポンスとして組合せ使用するとき、手順クラスによって差異があり、標準的な組合せが勧告に含められています。また、手順クラスに分けず共通に使用されるモードがあります。データリンクの制御機能の初期化、およびデータリンクを論理的に切り離している状態を表すモードで、次の2つです。
@ 初期モード
A 切断モード
HDLCの制御フィールド(C)には、フレームの種別など伝送制御情報が集められています。アドレスフィールド(A)では、コマンドは送信相手のアドレスを、レスポンスは送信元のアドレスを表示します。情報フィールド(I)には、送受信装置相互間で実際に転送される情報メッセージが格納されます。制御フィールドのb1、b2ビットはフレームの種別を表しています。b1
= "0" のとき、情報フレーム(Iフレーム)であることを示します。b1b2
= "10" は監視フレーム(Sフレーム)、b1b2
= "11" は非番号制フレーム(Uフレーム)を示します。
表2に制御部のフレームの種類とビット構成を示します。この表で
"0"、"1" と固定された以外の箇所でのビットの組合せにより、さらに細部の内容を示すようになっています。b5
のP/Fは、コマンドの場合P(poll)ビット、レスポンスの場合F(final)ビットとなることを意味しています。送受信順序番号は、情報を転送するためのIフレームの送信順序番号N(S)と、次に受信するIフレームに期待する番号、即ち受信順序番号N(R)を指しています。IフレームにはN(S)とN(R)の両方がありますが、Sフレームは受信順序番号のみです。
表2 制御部のフレームの種類とビット構成
| フレームの種類 |
制御部のビット構成 |
略 称 |
| b1 |
b2 b3 b4 |
b5 |
b6 b7 b8 |
| 情報フレーム |
0 |
N(S) |
P/F |
N(R) |
Iフレーム |
| 監視フレーム |
1 |
0 |
S |
P/F |
N(R) |
Sフレーム |
| 非番号制フレーム |
1 |
1 |
M |
P/F |
M |
Uフレーム |
(a) 情報フレーム
b1 = "0" のフレームは情報フレームで、Iフレームとも呼ばれます。送信側ではb2〜b4のN(S)に、自分が送信する情報フレームの順序番号を付けて送出します。この番号は誤り制御において、ブロック抜けと二重取り込み防止の役を果たします。番号は3ビットで0から始まり7までの8通りで、モジュロ8の循環式となっています。情報フレームのb6〜b8には受信順序番号N(R)を付けて送出します。N(R)の相手側への送信によって、受信番号の1つ前の送信番号のIフレームまでを誤りなく受信したことを通知しています。
(b) 監視フレーム
b1b2 = "10"のときは監視フレームで、Sフレームともいわれます。この用途は、情報フレームに対する返事(レスポンス)と伝送制御用のコマンドで、表3に内容を示します。Sフレームは受信順序番号のみで、機能はb1〜b4によって区分されます。RRコマンド/レスポンスは、相手(1次局、2次局いずれでもよい)からきたN(S)
= i のフレームに対する返事として用います。N(S) = i に対し、N(R) = i + 1でRRを返すと、「N(S) = i までのフレームは正しく受け入れたのでi
+ 1番目のフレームを受け入れる準備ができている」という意味を持ちます。
表3 監視フレーム(Sフレーム)の分類
| 種 類 |
制 御 部 の ビット 構 成 |
機 能 概 要 |
| b1 |
b2 |
b3 |
b4 |
b5 |
b6 |
b7 |
b8 |
| RRコマンド/レスポンス |
1 |
0 |
0 |
0 |
P/F |
N(R) |
情報フレームの受信可能を示す
情報フレームを正しく受信したことを通知する |
| REJコマンド/レスポンス |
1 |
0 |
0 |
1 |
P/F |
N(R) |
情報フレームの受入拒否
指定した情報フレーム以降の再送要求 |
| RNRコマンド/レスポンス |
1 |
0 |
1 |
0 |
P/F |
N(R) |
情報フレームの受信不可能を通知
busy状態を通知する |
| SREJコマンド/レスポンス |
1 |
0 |
1 |
1 |
P/F |
N(R) |
指定した1つの情報フレームの再送要求
|
(c) 非番号制フレーム
b1b2 = "11"は非番号制フレームまたはUフレームとも言われ、順序番号は付きません。これにはモード設定の要求やその応答、異常状態の通報など多くの種類があります。
b5のP/Fビットは、送信権の管理や順序番号のチェック要求に使用するためのビットです。コマンドではPビット、レスポンスではFビットと名づけ、Pビットの"1"のコマンドとFビット"1"が1対1で対応します。Pビッを"1"にすると、1次局(複合局)は2次局(相手複合局)に対してレスポンスの送信を勧誘することを意味します。一方、FビットはP
= "1"のコマンドに対してレスポンスを送りますが、その最後のフレームにおいてF = "1" としなければなりません。
半二重モードと正規応答モード(NRM)では、送信権の管理のためにP/Fビットを使用します。1次局(複合局)は、最後に送るコマンドのPビットを"1"にし、2次局(相手複合局)はPビットがON("1")となったこのコマンドを受信したときに、レスポンスフレームを1次局に送信できます。2次局はフレームの連続送信ができますが、最後のフレームのFビットは"1"にし、送信権を1次局(複合局)に返します。その後のフレーム送信には、再び1次局からの許可を必要とします。NRMでは1次局と2次局の関係であり、ARMとABMでも、半二重ではデータリンクレベルの伝送制御手順はNRMと同じになります。
ARMとABMの全二重モードでは、順序番号のチェックの要求のためにもP/Fビットを使用します。P =
"1" のコマンドは1次局(複合局)が相手局に対して、最も早く送信するレスポンスフレームのFビットを"1"にするように勧誘します。また両方向同時伝送の場合は、P
= "1"のコマンドを受けると、2次局(相手複合局)は最も早い時期にF = "1"のレスポンスを送らなければなりません。このときはレスポンスフレームの送信の終わりを意味せず、引き続いて後続のレスポンスフレームを送ってよいことになっています。P/Fビットが"1"であるフレームを受け取るごとに、互いに管理している情報メッセージフレームの順序番号が抜けていないか、受け取った番号と自局で管理している番号が異なるかどうかを調べます。そして必要であれば再送を要求します。このようにP/Fビットが"1"であるフレームを受信した時点で、順序番号の誤りを検査することをチェックポインティング(check
pointing)と呼びます。
衛星回線など送達確認なしに伝送するフレーム数を大きくする必要がある場合、送受信番号を7ビットに拡張できます。この拡張モードを用いると、0から最大127までとることができます。このような大きな伝播遅延のためにHDLCがタイムアウトを繰り返し、通信不能(ハングアップ)になるのを避ける手法にスライディングウィンドウがあります。順序番号抜けの誤りはフレーム再送により回復する手順が普通です。フレーム再送によって回復できないときは、データリンク再設定からやり直すのを基本としています。
(3)NRM(正規応答モード)の手順
非平衡型手順クラスとして、NRM(正規応答モード)の手順をモードの確立から切断まで示します。
@ 正規応答モードでのデータリンクを確立するために、1次局はUフレームの中のSNRMコマンドを2次局に送ります。SNRMはset
normal response mode の略で、NRMの設定コマンドです。このフレームには情報部はなく、フラグ、アドレス、SNRMの制御部、FCS、フラグの順で送出されます。
1次局から2個、2次局から3個の情報フレームを交互に送信し、両者ともに正しく受信された場合の手順を図5に示します。この図では9個のフレームが示されています。フラグ、アドレス、FCSは除いてあります。1次局のみがコマンドを送出でき、2次局はレスポンスを送出します。
@のSNRMコマンドフレームの制御フィールドのP/FはP1 = "1" となっていて、2次局にレスポンスを勧誘(要求)しています。

図5 情報フレームの送受信の手順
Aは2次局のレスポンスでRRを返しています。RRは表3に示すように、受信準備ができて受け入れ可能であることを示します。2次局から送出するフレームは全てレスポンスで、P/FはFビットの方を使い、ここではF1
= "1"となっています。次に受け入れる予定の情報フレームの番号は0なので、N(R) = "0" としてレスポンスフレームに入れます。
Bは1次局が連続して2個のフレームを送出することを示しています。これはコマンドフレームなのでPビットであり、P2
= "0"、P3 = "1" です。P3
= "1" にして2次局にレスポンスを勧誘します。このようにして会話型の手順が成立します。
Cは2次局が送出する情報フレームのレスポンスで、連続して3個送り出しています。レスポンスなのでFビットであり、F2
= "0"、F3 = "0"、F4 =
"1"です。F4 = "1" はこれで2次局が送出する情報が終わりであることを示しています。この3個とも1次局から情報フレーム2個を正しく受け取っているので、N(R)
= "2" となっています。
Dのフレームは、1次局がデータリンクを終結させるべくDISCコマンドを送っています。Eは2次局が終結を受け取ったことを回答する返事のレスポンスで、これで切断の動作に入ります。
図6はA局、B局間でデータリンクが確立された後、互いに情報フレームの転送を行う場合、両局において送信順序番号N(S)の確認のために、この送信順序番号及び受信順序番号N(R)を、状態変数V(S)およびV(R)で付与管理する手順を概念的に示したフローです。ここでは全てのフレームは正常に受信されるものとし、順序誤りによる再送手順は示していません。

図6 情報フレームの転送フロー
図7は同じ正規応答モード(NRM)で1次局から情報フレーム3個を送出し、2次局でこれを受信するとき、2番目のフレームを正しく受信できなかった場合を示しています。ここには11個のフレームがあり、正規応答モードの確立から誤り検出による再送出をし、2次局から1個の情報フレームを送出して終了する手順を示しています。

図7 正規応答モード(NRM)
@では1次局は2次局をアドレスで指定し、正規応答モード確立のSNRMを送出します。
Aはレスポンスフレームで、アドレスで指定された2次局からのUAレスポンスによる応答です。UAフレームのFビットは、2次局から2つ以上のフレームを続けて送る意思がないので、フレームを最終とするF1
= "1" とします。これでデータリンクが設定されました。
Bは情報フレームで3個連続して送出されます。送信順序番号N(S)は0、1、2と増加します。受信順序番号は次に自局で受信を期待する情報フレームの順序番号を表しており、3フレームともN(R)
= "0"が付けられます。Bの情報フレームのP/Fは1次局から送出されるコマンドなのでPビットになり、2次局からの応答を求めるために3番目のフレームのP4ビットのみ"1"となります。
Cは2次局が送信番号"1"のフレームを正しく受信できなかったので、REJレスポンスを送り返し再送を要求します。REJレスポンスのビット構成は、表3にしめすように"1001P/FN(R)"であり、N(R)の番号でどのフレーム以降が正しく受け取れなかったかを表します。ここではN(R)
= "1"として、最初の0番目の情報フレームは正しく受け取ったことを表しています。次に自局(2次局)が受信を期待する情報フレームは"1"の順序番号であることを示します。Cの情報フレームを受け取った1次局は、Dで順序番号"1"および"2"の情報フレームを再送します。
Dは連続した2個の情報フレームで、N(S) = "1"およびN(S) = "2"を持つBフレームの2番目、3番目と同じものです。
Eは2次局からの情報フレームです。これはこの局からの初めての情報フレームの発信であるので、N(S)は"0"です。また、1次局から順序番号"2"まで正しく受け取っていりことを示すN(R)
= "3"を受信順序番号とします。EはFビットは"1"にして、この1個で終わりfinalであることを1次局に知らせます。
Fのフレームは1次局がデータリンクを終結させるDISCコマンドであり、2次局はGのUAレスポンスで応答しています。これで2次局も切断モードになります。
図8は2次局も直ちに情報フレームを送信し、同時に両方向伝送が行われる正規応答モード(NRM)を示します。ここではCDが同時に伝送路にある全二重伝送です。このほかに非同期応答モード、非同期平衡モードがあり、またそれぞれに拡張モードがあるので、全部で6種となります。表4にこれらをまとめて示します。

図8 正規応答モード(NRM)
表4 HDLCのモード
| 正規応答モード |
normal response mode (NRM) |
| 非同期応答モード |
asynchronous response mode (ARM) |
| 非同期平衡モード |
asynchronous balanced mode (ABM) |
| 拡張正規応答モード |
normal response mode extended (NRME) |
| 拡張非同期応答モード |
asynchronous response mode extended (ARME) |
| 拡張非同期平衡モード |
asynchronous balanced mode extended (ABME) |
<基本手順クラス>
例に挙げた正規応答モード(NRM)の手順の中でも、そのコマンドとレスポンスの種類の組み合わせが色々考えられます。これらを個々に約束として決めてHDLCの手順をそれぞれ設定することも考えられますが、通常はこれらの組み合わせに標準を用意してあり、これを採用します。基本手順クラスとそのモード指定として用意してあるのは次の3つです。
@ 非平衡正規応答モード(UN:unbalanced operation NRM)クラス
A 非平衡非同期応答モード(UA:unbalanced operation ARM)クラス
B 平衡形非同期平衡モード(BA:balanced operation ABM)クラス
この基本クラスにある付加、修飾をすれば、目的にかなう手順の組み合わせを設定することができます。この標準タイプのコマンド/レスポンスを表5に示します。HDLC手順には、データリンクレベルの回線制御方式としての機能が全て含まれています。ベーシック手順は、HDLCより先に作成され広く使われていますが、種々の変形はこの基本手順クラスを基に作られ、主流となっています。HDLCは、IBM社が開発したSDLC(NRMと同等)を基に、ANSI、ISO、CCITTなどが協力して作成したもので、世界標準となりました。
表5 標準タイプのコマンド/レスポンス
| 手順クラス |
非(不)平衡型手順クラス
UB
|
平衡型手順クラス
BA
|
| 二次局等の
モード
|
正規応答モード
NRM
|
非同期応答モード
ARM
|
非同期平衡モード
ABM
|
発信できる コマンド/レスポンス
|
一次局 |
二次局 |
一次局 |
二次局 |
複合局 |
| コマンド |
レスポンス |
コマンド |
レスポンス |
コマンド |
レスポンス |
| I |
I |
I |
I |
I |
I |
| RR |
RR |
RR |
RR |
RR |
RR |
| RNR |
RNR |
RNR |
RNR |
RNR |
RNR |
| SNRM |
FRMR |
SARM |
FRMR |
SARM |
FRMR |
| DISC |
UA |
DISC |
UA |
DISC |
UA |
| |
DM |
|
DM |
|
DM |
1.2 ベーシック手順
電話回線では交換機が回線の利用権を決めています。一方、分岐する専用線では利用権の決定にベーシック手順が使用されていました。これがデータ通信用に検討され、JIS規格の基本型データ伝送制御手順(旧JIS
C6362、新JIS X 5002)となりました。通称、規格化されたベーシック手順のことで基本型伝送手順とも呼ばれ、国際標準のISO規格のいくつかを基に、国内標準として作成されました。表6にJIS規格で規定しているデータリンク手順の5つのフェーズ(段階)を示します。フェーズ1と5は交換網に対するステップで、フェーズ2から4がデータリンク手順の主要部となります。フェーズ2のデータリンク確立は回線制御の種別を決める段階で、ベーシックではポーリング/セレクティング(コンテンション)といわれます。HDLCでの@非平衡型(1次局/2次局)、A平衡型(コンテンションタイプ)、B非平衡型と平衡型の組み合わせ、に対応します。図9に伝送制御の5つのフェーズを示します。
表6 伝送制御の基本手順
| フェーズ |
データ通信の動作 |
概 要 |
| 1 |
回線の接続 |
交換網を利用する場合のみ必要で、相手をダイヤルで接続する |
| 2 |
データリンクの確立 |
回線やDTEが正しい相手とつながり、データの送受信を可能な状態にする |
| 3 |
情報の伝達
(データの送受信) |
実際にデータの送受信が行われる段階で、正確な伝送を行うために、何らかの誤り制御を行いながら伝送される |
| 4 |
終 結
(データリンクの解放) |
データの伝送が終了して、互いに終了を確認し、データリンクを解く。これによりデータリンク確立以前の初期状態に戻る |
| 5 |
回線の切断 |
交換網で接続された場合のみ必要で、回線との接続を断つ |

図9 伝送制御の5つのフェーズ
(1)ポーリング/セレクション
ポーリング/セレクション(polling/selection)は非平衡型(unbalanced data
link)のことで、最もよく使用されています。平衡型(balanced data link)はコンテンション(contention)といわれます。違いはデータリンクの制御、つまり発信権の調整をある特定の局が責任を持つか、対等で早い者勝ちとするかの区別です。ポーリングは制御局が1つの従属局にデータの送信を問い合わせる方式で、セレクティングは制御局が1つの従属局を選んでデータの受信を勧誘する方式です。ベーシック手順では図10に示すように、制御局(親局)を1次局、従属局(子局)を2次局の代わりに用います。ポーリング/セレクティングはデータリンクレベルのみでなく、無線TDMAなどでも使用されています。

図10 集中制御と分散制御
フェーズ3は情報の転送の段階で、データを送るときのブロック化、つまり誤り制御や同期コード付与のために、伝送する情報をあるフォーマットのブロックにするフレーム化(frame)も含んでいます。JIS規格の基本型データ伝送制御手順の基本モードは半二重通信で、使用する伝送符号は表7に示すように、JIS7単位符号の伝送制御キャラクタ(TCC:Transmission
Control Character)です。
表7 ベーシック手順の伝送制御キャラクタの定義
| 符 号 |
名 称 |
定 義 |
| SOH |
start of heading |
(ヘディング開始) |
情報メッセージのヘディングの開始用 |
| STX |
start of text |
(テキスト開始) |
テキストに先行し、ヘディングを終結するのに用いられる |
| ETX |
end of text |
(テキスト終了) |
テキストを終結する伝送制御キャラクタ |
| EOT |
end of transmission |
(伝送終了) |
全データブロックの伝送の終了を示す |
| ENQ |
enquiry |
(問合せ) |
相手局からの応答を要求する |
| ACK |
acknowledge |
(肯定応答) |
送信側に対する肯定的応答として受信側から送られる |
| DLE |
data link escape |
(伝送制御拡張) |
後に続く一定数の連続したキャラクタの意味を変える |
| NAK |
negative acknowledge |
(否定応答) |
送信側に対する否定的応答として受信側から送られる |
| SYN |
synchronous idle |
(同期信号) |
同期伝送システムの場合、他に全く符合のない(アイドル)状態に端末装置間の同期をとり、それを維持するための信号を与える |
| ETB |
end of transmission block |
(伝送ブロック終結) |
伝送上の目的で、データが幾つかのブロックに分けられるとき、そのデータの伝送ブロックの終わりを示すために用いられる |
<同期式伝送・非同期式伝送>
基本モードでも伝送回線のタイミング方式、つまり同期方式は同期式、非同期式いずれにも適用可能です。伝送上の時間基準の設定で、非同期伝送はビットや文字をグループ化し、グループ内で個々の信号に規定された時間間隔が関係付けられますが、他のグループに対しては関係を持ちません。従って、受信側では個々のグループごとにサンプルブロックの設定を取り直します。これに対して同期伝送はグループ間の関係が保たれ、一定の速度で連続的に送出されるので、受信側は入力データに同期されたサンプルブロックを保持することになります。
非同期伝送方式の1つとして調歩同期があります。調歩同期は、スタートビットとストプビットで区切られた各文字ごとに、スタートビットによりタイミング設定します。ベーシック手順で同期伝送により送信する場合は、各フレームの先頭に伝送制御文字のSYNを1個または2個挿入します。また、フレーム内の各ブロックを識別するために、SOH、STX、ETB、ETXなどの制御文字が使用されます。図11にブロックを作る際のフレーム分割法を示します。ベーシック手順の基本型では、テキスト内への伝送制御文字の挿入が禁止されています。
図11 分割法の形態
フレームの構成は伝送情報データであるテキストとヘディング(heading)、ヘディングを識別するSOH、テキストの初めと終わりを識別するSTXおよびETXからなっています。図11に示す分割法のうち適切なものを選定してブロック化します。ブロックごとにエラーをチェックし、誤りがあればそのブロックの再送を要求する手続きとなっており、エラー率が一定とすると、ブロック長によって伝送効率が変化します。通常のエラー率では100キャラクタ前後が適正で、エラー率が低い回線では長い方が効率が良くなります。
ブロックに付けられるBCC(Block Check Character)の例を図12に示します。これは同期伝送の例で、SYNキャラクタ2個によるキャラクタ同期です。BCCは水平パリティで、フレームまたはブロックの最後に付加されます。BCCの検査対象はSOHコード(ヘディングがない場合はSTXコード)の直後からETXコードを含むまでであり、SYNコードは対象からはずすことになっています。また、ETX(またはETBコード)とBCCコードの間にはSYNを挿入できません。

図12 BCC(水平パリティ)の例
フェーズ4はデータリンク終結で、情報データの転送が終了したことを互いに確認して次のフェーズに進みます。フェーズ5は回線切断で、通信回線の断のことです。電話でのフックオン(受話器を元の位置に置くこと)にあたります。
伝送制御文字SYN(0110100、16進表示で16h)は、このビット列が受信されるタイミングでサンプリングブロックとブロックの開始をみています。この文字により基準時間を設定するのでキャラクタ同期といわれています。HDLC手順でのフラグシーケンス(01111110)による同期設定手段はフラグ同期といわれ、同期伝送です。HDLCは同期伝送のみですが、ベーシック手順では非同期伝送、同期伝送の両方式に対応しています。同期伝送の基本型ベーシック手順ではSYNを2個(bi-sync)付けますが、1個(mono-sync)の変形もあります。連続して送信されたデータストリームは、同期が取られたらそのまま保持され、そのグループ内で同期を取り直すことはありません。連続して送信するために空白を埋めたいときは、多くの場合SYN符号が使われますが、同期を取るSYNと区別してタイムフィラ(time-filler)と呼んでいます。図13に基本モードのフレームでのやり取りの例を示します。

図13 監視フレームの種別
(2)ベーシック手順のフレーム
ベーシック手順ではフレームは次の2種に分けられます。
(a) 監視フレーム
(b) 情報メッセージフレーム
さらに監視フレームは方向別に次の2つに分けられます。
・ 順方向フレーム
・ 逆方向フレーム
図13において、やり取りは制御局がアドレス番号8の従属局へ情報をセレクティングによって送っています。データリンクの確立および開放は2方向別の監視フレームにより行われます。順方向フレーム@はSYN、SYNの同期確立用コード、セレクティングアドレス(sa)およびENQコードから成っています。これは表8に示す順方向監視フレームのセレクティングにおける局選択のフレームです。セレクティングアドレス(sa)は、従属局(従局)を指定するアドレスで、"S08"と3バイト送っています。この番号はシステム構築時に自由に決められます。ENQで終わりとなります。
表8 順方向監視フレーム
| 種 類 |
フレーム構成 |
| ポーリング |
[EOT] (pa) ENQ |
| セレクティング |
局選択 |
[EOT] (sa) ENQ |
識別・状態問合せ
初期状態からの脱出 |
[(px)] ENQ |
| 終 結 |
正常終結 |
[(px)] EOT |
| 異常終結 |
EOT |
| 回線切断 |
DLE EOT |
| 応答督促 |
[(px)] ENQ |
| 放 棄 |
ブロック放棄 |
[(px)] ENQ |
| 局放棄 |
EOT |
@による受信可否の問い合わせに対して、Aで応答しています。この従属局(従局)が制御局(主局)に送り返す制御フレームを逆方向監視フレームと呼びます。フレームAでは先頭に同期用のSYNコードが2つ、その後にプレフィックス(px)、終わりにACKコードがあります。表9に逆方向監視フレームの構成を示します。この表の肯定応答、セレクティング、非番号制にAフレームが該当します。
表9 逆方向監視フレーム
| 種 類 |
フレーム構成 |
| 非番号制 |
番号制 |
| 肯定応答 |
セレクティング |
[(px)] ACK |
|
| 情報メッセージ |
EOT |
DLEαとDLEβの交互応答 |
| 否定応答 |
ポーリング |
[(px)] EOT |
| セレクティング |
[(px)] NAK |
NAKまたはDLEβ |
| 情報メッセージ |
[(px)] NAK |
NAK |
| 回線切断 |
EOT |
| 中断 |
ブロック中断 |
EOT |
| 局中断 |
DLE< |
(px):プレフィックス(入出力機器を示す)
αとβ:0(30)hと1(31)hまたはACK(06)hとNAK(15)hのどちらかの組合せにする
"<"の記号は(3C)hである
逆方向監視フレームはブロック別の誤りチェックにおいて、正しければOKを伝え次のブロックを勧誘し、誤りなら否定応答で再送を要求します。番号制は、ブロックの順序を奇偶で伝えて、相手が確認する手段を含んだもので、そうでないものが非番号制です。
Bは情報フレームで、従属局(従局)にメッセージを送っています。ヘディング(hdg)とテキストを1つのブロックにして伝送しています。CはAと同じ逆方向監視フレームで、誤りチェックの結果正しいと回答するフレームです。2個のSYNとEOTで構成され、表9に示すように、情報メッセージへの非番号制肯定応答です。Dは主局が従局に送信するデータが最早ないことを表すフレームで、表8の順方向監視フレームの中の正常終結です。データリンクの終結と回線断は別のフェーズとして取り扱われており、このための監視フレームは、表8,表9に示す回線切断のDLE
EOT、EOTです。
<拡張モード>
基本型データ伝送手順には基本モードの他に拡張モードがあり、複雑な手順に対応できるようにしています。JIS規格におけるモードの規定は次のとおりです。
(1) 基本モード・・・JISで定める10個の伝送制御キャラクタを用い、7単位符号を伝送す半二重通信であり、同期方式は調歩式、同期式を問わず、またデータ信号速度に制限がない。
(2) 拡張モード
(a) 会話モード
コンピュータと端末間で主局と従局を入れ替えながら会話的に情報を交換し合う。
(b) 両方向同時伝送モード
ポイントツーポイント接続の2局間で、同時に両方向のデータが転送される。通信回線としては全二重通信回線が必要である。同時監視方式である。
(c) 複数従局セレクティングモード
コンピュータから同時に複数の端末装置に同じデータを送る同報通信が可能である。
(d) コードインデペンデントモード
JIS7単位以外のビット構成の符号を伝送できる。伝送制御キャラクタを伝送できる透過性モードにする。DLEコード付加。
<透過性(トランスペアレント)>
ブロック化して情報データを送るのに、ベーシック手順ではブロックの始め、終わりの識別に伝送制御キャラクタ(TCC)を使用しています。また通信の始め、終了やデータリンク確立などにもこの伝送制御キャラクタが使用されています。基本モードでは情報メッセージのフレームのヘディング、テキスト部分にSYNコードを除いて伝送制御キャラクタがあってはなりません。これらは禁止されたコードであり、挿入する場合は拡張モードのコードインデペンデントモードにします。この禁止された文字、コードを挿入できるようにすることを透過性(トランスペアレント)にするといいます。これに対して基本モードは非透過性であるといわれます。
図14(b)にコードインデペンデントモードを示します。受信側ではDLEを伴ったSOH、またはDLEを伴ったSTXコードを受け取ると、コードインデペンデントモードになったと判断して、DLEコードを伴わないSOH、STXとして取り扱います。また、2つ続いたDLEコードは1つのDLEコードとして解釈します。
図14 基本モードとコードインデペンデントモードの差
(3)HDLCとベーシックの比較
基本型データ伝送制御手順(規格化されたベーシック手順)といわれるJIS X 5002とHDLC手順を比較し、主な特徴や機能をまとめたものを表10に示します。
表10 ベーシック手順とHDLC手順の比較
| 項目 |
ベーシック手順 |
HDLC手順 |
| |
TCC:伝送制御キャラクタ
BCC:ブロックチェックキャラクタ
|
F:フラグ(01111110)
A:アドレス
C:制御
FCS:フレームチェックシーケンス |
| 方 式 |
通信方式
応答監視方式
誤り検出方式
ブロック長
データの透過性
|
全二重/半二重
交互監視
パリティチェック/CRC
キャラクタの倍数
データに表れたDLEの次のDLEを挿入・除去 |
全二重/半二重
同時監視/交互監視
CRC
任意のビット数
フラグ間の5個連続した"1"の次に"0"を挿入・除去 |
| 性 能 |
伝送効率 |
低い
・1ブロックごとに必ず送信確認する |
高い
・フレームの連送可
・ダブルナンバリング |
| 信頼性 |
低い
・データの重複が発生することがある
・テキストのみチェックフィールドを持つ |
高い
・データの抜け、重複が発生しない
・すべての伝送単位(フレーム)にチェックフィールドを持つ |
| 汎用性 |
小さい
・業務処理、端末特性への依存性が大きい |
大きい
・通信プロトコルは、上位プロトコルと完全に分離している |
(a) 回線制御方式、つまり送信権はポーリング/セレクティングとコンテンションの2つの方式がベーシックにあります。HDLCは3種で、@非平衡型、A平衡型、B非平衡型と平衡型の組み合わせに分類され、その中でのモードがこれらに対応して3種あります。
(b) 通信方式としては、ベーシック手順で半二重片方向通信、半二重片方の交互伝送方向切替、全二重同時両方向ができます。基本モードでは半二重のみですが、拡張モードでそれ以外も可能としています。HDLCは全て対応しています。
(c) ベーシックでは送信側は受信側の応答を待って次のブロクを送るという逐次応答によるACK、NAKを基にしています。最初に出現したこの応答監視方式から改良して、応答を待たずに次のブロックを次々と送信する同時監視方式も可能としています。HDLCは、当初から同時監視方式です。
(d) ベーシック手順ではJIS 7単位符号であり、HDLCはビットの列であって符号に関係しません。
<端末の入出力機器(デバイス)>
ベーシックではポーリング/セレクション(polling/selection)が最もよく使われます。これはHDLCの非平衡型(unbalanced
data link)に対応し、同じ機能動作を行うことができます。ポーリング/セレクティングは種々の変形があります。図15と図16に手順の一例を示します。図15に示すポーリングでのデータ無を示す逆方向監視フレームはEOTのみ返し、プレフィックス(px)は送っていません。図16のセレクティングでもプレフィックスは省略されています。ACK、EOTは2個連続して同じ符号を送ることがよくあります。また、最後に送出する情報データメッセージの中にEOTを組み込んで送り、順方向監視フレームのやり取りを省くものがあります。
図15 ポーリング方式
図16 セレクティング方式
ベーシックでは中央の制御局で端末の入出力機器まで見ていることが多いです。中央で端末のデバイスまで監視するのが慣例で、これがHDLCと異なる点です。図15と図16にデバイスアドレスを示すDAが記されています。ベーシックが作成された時期の回線制御プログラムの考え、つまり一元的に中央局で制御するという思想に沿ったものです。一元的制御は便利ですがかなりのオーバヘッドを生じることになります。
<タイムアウト>
時間監視をあるステップ間、あるポイント間で行い、所定の時間以上かかるときタイムアウトとします。タイムアウトが発生すると、制御局は異常状態として回復プログラムを走行させるのが通例です。これを「無応答タイマが制御局(1次局)の回復処理を行わせた」と表現します。この時間監視は制御局で次の要素を考慮して、個々のシステムで決めています。これらはベーシックとHDLCで共通しています。
@ ポーリング/セレクティングあるいは非平衡型での相手局(2次局)との信号伝播時間
A 相手局(2次局)の処理実行時間
B 半二重の場合には通信方向を切り替えるのに要する時間
HDLC等でタイマとして規定されているものを以下に示します。
(1) 応答確認用タイマT1
P = 1のコマンド送出でスタートし、F = 1のレスポンス受信でストップするレスポンス待ちタイマで、タイムアウトにより適切なコマンドを送出し、再送制御の契機に用いられます。
(2) 応答送信用タイマT2
正常に受信したP = 0のIフレームに対して、Sレスポンスフレームを遅延させるためのタイマで、P =
0のIフレーム受信でスタートし、タイムアウトでF = 0のSレスポンスフレームを送信します。タイマ動作時P = 0のIフレームを受信してもタイマストップはせず、P
= 1のコマンドフレームを受信したときストップします。
(3) 相手局受信ビジー監視タイマT3
相手局受信ビジーを監視するためのタイマで、RNRフレーム受信でスタートし、タイムアウトでSコマンドフレームを送信して相手の状態を問い合わせます。タイマ動作中RNRフレームを受信するとタイマを再スタートし、RRフレームを受信するとタイマをストップします。
(4) リンク監視タイマT4
マルチフレーム確認動作モードにおいて、フレームの送受信が一定時間以上ないとき、データリンクの正常性を監視するタイマでT1と排他的に動作し、F
= 1のレスポンス受信でスタートし、P = 1のコマンド送信でストップし、F = 0のレスポンス受信で再スタートします。タイムアウトでリンクの確認動作(Sフレームの送受信)を行います。
1.3 データリンク層とスライディングウインドウ
データリンク層間でやり取りするデータブロック単位をフレーム(frame)、ネットワーク層間での単位をパケット(packet)と呼ぶことにします。図17にこれらの関係を示します。データリンク層(第2層)では、送信側が高速で送り出し受信側がそれより低速のマシンで受け入れるとき、受信側がフレームを受け取るために送信側の制御を行う処理をしており、これをフロー制御といいます。制御方式としては一方向伝送で用いられる応答監視方式(ストップアンドスタート方式)と、両方向同時伝送の全二重伝送で用いられる同時監視方式があります。物理層(第1層)からはビットの流れそのものがデータリンク層に渡されます。データリンク層ではこれをある単位でバッファリングしてデータフレーム単位にします。これを上の層であるネットワーク層(第3層)に渡し、ネットワーク層ではさらに多量の単位であるパケットにして取り扱います。
図17 データリンク層関係のモデル
<ウインドウサイズ1>
スライディングウインドウのプロトコルでは、伝送されるすべてのフレームに順序番号(sequence number)が付与されます。"0"から最大値までの巡回式で、通常2n−1が最大値に設定され、nビットに適合したものとなります。応答監視方式はn
= 1を使用しているものと考えられます。スライディングウインドウのプロトコルを考える上で、送信側はいつでも相手が受け取りを確認していないフレームを保有できる用意があるとしています。送信用のバッファに蓄積されているもので、この状態を送信用ウインドウ(sending
window)にフレームを入れるといいます。同様に受信側は、受信したフレームを入れる容器(バッファ)を用意しています。これを受信用ウインドウ(receiving
window)といいます。
図18にウインドウサイズが1の動作状況を示します。(a)は初期状態を示します。(b)は最初のフレームが送出された直後の状態を示します。ウインドウが1つだけ時計回りに回っています。(c)は最初のフレームを受信側が受け、受信用ウインドウが回転した状態を示します。(d)は最初のフレームの受け入れが確認され、ウインドウが1つ回転した状態を示します。ウインドウサイズ1は停止待機プロトコル(ストップアンドスタート方式)に相当します。送信用ウインドウは、伝送でフレームが失われたりエラーが発生したりするのに備えて、受け入れ確認されない状態のフレーム(アウトスタンディング)を再送用に保有しています。受信用ウインドウは受けられるフレームだけ受け入れて、それ以上は捨て去ります。このため、サイズ1では必然的に順序番号どおりでの伝送となります。
図18 スライディングウインドウの動作
図19にウインドウサイズ1におけるパケットの伝送、つまりネットワーク層の交信状況を示します。(a)ではAの方が先にデータリンク層を作動させた場合を示しています。Aのネットワーク層から最初にパケットA0が取り出され、これからフレームが作られ、送出されます。これをA送(0、1、A0)で示しています。Bの受信側はデータリンク層でチェックし、このフレームが期待しているとおりならネットワーク層に渡します。これをB受(0、1、A0)で表し、ネットワーク層に届けられたものとして○印を付けています。ACKは確認用(Acknowledgement)の情報で、ウインドウサイズ1では"0"または"1"の2通りだけに限られます。(b)では同時にパケットが送り出され、データリンク層がほぼ同時にフレームを出し、Aのフレームの方が先にBに到着した場合を示します。

図19 パケットの伝送動作
初期状態で次に送るフレーム送信状態変数、順序番号変数V(S) = 0、次に受信するフレームを示す受信状態変数V(R)
= 0です。ここで、A側のT1タイマ(応答確認用タイマ)が短く設定してあると仮定します。最初にA側はA0のフレームをBに、B側はB0のフレームをAにほとんど同時に送出します。このA0、B0ともネットワーク層にまで受け取られます。ここでA0のみを受けたB側はV(R)を歩進しV(R)
= 1とします。もしA側がタイムアウトにより最初のフレームと同一のものを再送すると、再送は同じA送(0、1、A0)であり、受け入れを拒否されます。A側は最初のB0を受けて、相乗りしてきた応答確認を見ますが、B0はAに対する応答ではないので、確認応答の情報はありません。そのためA側はA送(0、0、A0)としてA0を送出します。このフレームはB側でB受(0、0、A0)となりますが、破棄されます。これは無駄なフレーム伝送になっています。このように、ウインドウサイズ1のときはA、Bの両側のタイミング合わせ(同期)が重要になります。
<ウインドウサイズ n>
フレームが受信側に到着するまでの時間と、その応答確認が戻ってくるまでの合計の往復時間を考える必要があります。例えば人工衛星を利用する回線で500msの往復伝播遅延があり、50kbpsのバンド帯であるとします。この回線で1000ビットのフレームを伝送することを想定します。
t = 0で送信側が最初のフレームを送信し始める
t = 20msでフレームは完全に送信しきる
t = 270msで受信側にフレームが完全に到着し終わる
t = 520ms経過して応答確認の情報が送信側に戻ってくる
今までのストップアンドスタート、つまりウインドウサイズ1のとき、全体に対する送信比率として500/520もの割合で無駄であり、送信はほんの4%しか行っていません。長い伝播時間で、ごく短い応答確認の信号では回線使用効率は悪くなります。これを改善する手段としては、ウインドウサイズを大きくすることです。送信側が連続して、往復時間の間送信を続けられるようにします。この例ではt
=520msの往復時間の間に当たる26フレームを連続して送り続けられるようにします。これはウインドウサイズを26にすることに相当します。26フレームをt
= 520msで送り終わると、フレーム0番の応答確認(ACK)が到着します。この例では、送信側は20msごとに応答確認情報を受けます。従って、20msごとに新たにフレームを送出できるので、連続の番号順に次々と送信できます。この間の最大アウトスタンディング数は26です。
チャネル容量をb [bit/s]とし、フレーム長l [bit]、往復伝播時間R [s]とすると、1フレームを送信しきる時間はl/b [s]となります。データフレームの最後のビットが送出し終わってから、そのビットが受信側に着くのはR/2
[s]かかります。そして応答確認(ACK)が戻るまでに少なくともこれと同じR/2 [s]かかるので、合計R [s]の遅延があります。停止待機プロトコルで行う場合、送信している時間はl/bで、回線をデータ伝送のために使用している時間です。そしてRが使用していない時間つまり空時間です。従って、回線効率は次式で求められます。
(l/b)/(1/b+R) = l/(l+bR)
往復時間Rの間もデータ送出し、回線効率を上げる手法をパイプライン方式(pipelining)と呼びます。パイプライン方式におけるエラー処理として、「n逆戻り(go
back n)」「選択繰返し(selective repeat)」「一括プロトコル(blast
protocol)の3通りの方法があります。図20にパイプラインの処理方法を示します。(a)のn逆戻りは、エラーがあったらその後のフレームを全て廃棄する方法です。これは受信用ウインドウが1に該当するもので、廃棄したフレームに対しては確認応答情報(ACK)を返しません。データリンク側はどんなフレームも受け取らず、送信側はパイプラインを空にするまで送り続け、T1タイムアウトでエラーフレーム以降を再送します。(b)の選択繰返しは、悪いフレームの次の正しいフレームを受け取り蓄積し、パイプラインの終わりのフレームを受け取った後で、エラーフレームのみを送信側が送出します。(c)の一括プロトコルは、全フレームを一括してみており、パケット送出間隔を監視してタイムアウトしたら強制的に最初からフレームを再送出します。これはネットワーク層とデータリンク層の間のやり取りに関するルールです。
図20 パイプラインの処理方式
<相乗り方式>
ある方向に幾つかのブロック、データフレームを連続して送り、方向を切り替えてから幾つかのデータフレームを連続して送信します。1つのフレームだけで応答フレーム(ACK)を送るために方向を切り替えるのではなく、応答情報を逆方向のデータフレームに相乗りして送ります。AからBへのデータ伝送において、AからBへの応答情報もそのデータフレームに相乗りさせて伝送されます。これを相乗り方式(ピギーバック:piggybacking)といいます。混ぜ合わされた中からデータ情報と応答情報を分離するには、ヘッダの分析によっています。つまり、ヘッダに応答(ACK)の情報を組み込んで送出します。1つのフレームだけを見て応答フレーム(ACK)を返している分離型のACKフレームは、応答(ACK)フレームのためにヘッダが付きます。相乗り方式では応答情報のためのヘッダはなく、伝送効率を上げることができます。
[出典]
(1) 電気通信研究会:データ通信テキスト,日本理工出版会(1999-6)
以上、通信制御についてまとめました。次回はパケット交換網についてまとめる予定です。
[技術講座(データ通信―2)] (2002/12/08作成)
前回の通信制御に引き続き、パケット交換網についてまとめました。
2.パケット交換網
パケット交換網はコモンキャリアと呼ばれる通信業者側から推進され、データ通信回線を既存のディジタル電話網を使ってさらに効率的に利用する必要性から生み出されました。一方、データ処理の通信アプリケーションが各メーカでそれぞれ個別に開発され、利用者側で混乱するようになりました。パケットが統一を期待された1970年頃はまだARPANETのパケット技術が開発中であり、HDLCもなく、用語やネットワークも独自のものでした。この頃の問題点は、データ通信のハードウエアとソフトウエアの標準的なインタフェースでした。米国のエレクトロニクス産業協会(EIA)でのRS-232C規格およびITU(旧CCITT)のVシリーズ勧告などがこの努力の結果でした。
CCITT勧告X.25は、その当時としての標準リンクアクセスプロトコルとして出されました。各メーカがこの規格(標準インタフェース)をサポートすれば、それぞれのメーカの機器が混在しても、どのアプリケーションでも使用できるようになるものを実現しました。X.25勧告はデータリンクレベル等の規定をも含んでいます。この規格でデータ処理側から見て通信回線の内容が全く分からなくてもよいもの(バーチャルサーキット)がインタフェースとして取り入れられました。バーチャルサーキットは、通信している端末または端末の入出力機器から見て、通信回線の制御はこのバーチャルサーキットを満足すれば十分であるという拡大した意味になりました。通信しているデバイス間で通信網はトランスペアレントであると呼んでいる機能です。
パケットは単一のプロトコル、例えばHDLCあるいはベーシックにいずれかという唯一のインタフェースではなく、多様なインタフェースを包含しています。種々のデータリンクレベルの手順の上にあるものとして階層構成を明確にした点でも、当時としては新しいものでした。
2.1 パケット交換方式
パケット交換は端末とネットワーク間を、DTEとDCEを結ぶ標準インタフェース(X.25)で動いているものがほとんどです。パケット交換方式は、データをある長さのブロックに分割し、そのブロックごとに宛先符号、シーケンス番号などを含むヘッダを付け、蓄積交換技術を用いて転送する方式です。このデータブロックをパケット(packet)と呼びます。パケットはフレーム(frame)とも呼ばれ、HDLC等で使われているのと同じです。交換網内を転送されたパケットは、最終目的地の交換機に集められ、シーケンス番号に従ってパケットの順序をそろえて着信端末へ送出されます。
パケット交換方式では、伝送パケットが存在する時間だけチャネルを割り当て、その他の時間はチャネルを他の通信に開放するので、回線の使用効率は著しく向上します。パケット交換網におけるパケットのフォーマットは、ネットワークによって全く違ったものになりますが、標準的なパケットフレームフォーマットを図21に示します。
図21 典型的なパケットフォーマット
<メッセージ交換>
パケット交換が導入される前に、データ通信の要求を満たすためにATT、NTTなどのコモンキャリアからの専用線を用いて、これに交換機能を追加し、利用に供されたシステムがあり、付加価値網と呼ばれています。この代表的なものは米国のTELENETおよびTYMNETです。これらの付加価値事業者の出現がパケットサービスの導入に影響しました。日本では付加価値事業者は第二種通信事業者として認められています。
公衆ディジタル網(Public Digital Network:PDN)はX.25規格で始められ、やがてISDNも含まれることになりました。しかし、この前身にメッセージ交換と呼ばれるサービスがありました。これはコンピュータのメモリ(ディスクファイル)に入力メッセージを蓄積し、適当な出力線が利用可能になったときに自動的に送出するものです。各メッセージにはパケットフォーマットと同様のヘッダが含まれていて、これに宛先やルート選択情報が与えられているものです。ネットワーク側がメッセージ交換よりパケット交換を利用した理由は以下のとおりです。
@ パケットでは遅延が比較的短く、会話型のやり取りでもあたかも専用線が設定されたかのように、同等のサービスができる。
A インタフェースの標準化とともに、速度変換、符号変換もサービスとして提供できる。
(1)バーチャルコール(VC)
公衆パケット交換サービスとしては、バーチャルコールサービスとデータダイヤグラムサービスがあります。NTT等のコモンキャリアはバーチャルコール(Virtual
Call)サービスを推進しました。このバーチャルサーキット網は回線交換とパケット交換の両方の機能を持っています。コール(呼)の要求、トラフィックに対して回線容量が動的に割り当てられる接続交換ですが、複数パケットメッセージは網内の同じルートを通るグループにまとめられます。会話型の通信が始まる前に、網を通じて1つのルートが設定され、それに係わるすべてのノードがコネクション(接続:connection)されたことを知り、すべてのノードはどのルートに送り出すかを知っていて、バッファに蓄積したデータをそこへ送り出します。コネクションは各ノードのポインタの鎖です。
バーチャルコールは、通信を開始してから終了するまでを1つのコール(呼:Call)とよばれ、物理的に接続された電話での呼と違い、論理的に接続された仮想的な呼であることから仮想呼、すなわちバーチャルコールという名称が付けられました。バーチャルサーキト(仮想回線)は、網のノードにあるアドレスとポインタを含む1つの論理的な概念で、専用の伝送装置は持ちません。セッション(session)でバーチャルサーキットは作られ、網内に流れる呼開放(call
clear)情報によって開放されます。ここでセッションとは、端末の使用開始から終了までの間におけるDTEとDCEの一連のやり取りを意味しています。
端末間でやり取りされる各パケットのセッションは、網内で必ずしも同じパス(path)を使用するとは限りません。バーチャルサーキトは各時点でのトラフィック状況に応じて、この設定フェーズが決められます。これは従来の回線交換と類似の技術です。呼設定のセッションは、呼設定のメッセージがネットワーク内を伝送し、各ノードはどの出リンクを選択すべきかの決定を行うもので、電話回線の接続交換と同じです。
バーチャルサーキットでは、順序(シーケンス:sequence)どおりにパケットの伝送を行うことができます。各ノードはあるパケットを確認し、そのコネクションに関係するパケットと分かれば、順序どおりに送出します。従って、バーチャルサーキットでは個々のパケットのアドレスを付ける必要がありません。セッションで一度バーチャルサーキットが設定されてしまえば、完全な宛先アドレスの代わりに各リンクに関するバーチャルサーキット識別子(VCI)を用いることができます。バーチャルサーキット識別子は、本質的にはパケット交換機(ノード)の呼のプロセッサにあるメモリアドレスに対するポインタのことです。指定されたメモリアドレスには実際の最終目的のみでなく、パケットのルート選定に関する情報が与えられるように仕組まれています。
(2)公衆パケット網アクセスプロトコル
公衆パケット交換サービス、具体的にはNTTのDDXやKDDのVENUS-Pでは、利用する端末(DTE)に対して伝送手順(プロトコル)を定めることになりました。これは物理レイヤ、データリンクレイヤ、パケットレイヤの3つの機能群別の層(レイヤ)に分けられています。ここでは物理レイヤを除き、その上位のデータリンクレベルとパケットレイヤの機能を取り上げます。
網アクセスプロトコルは、公衆パケット交換網が開始された当時の状況から2種に分類されました。1つは網を提供するコモンキャリアのNTTやKDDがX.25勧告を満足するプロトコル(含ハードウエア)を装着していると認めるDTEに対する約束事と、X.25プロトコルを持たないDTEに対するものです。前者を実装する端末、コンピュータをパケット(モード)端末(PT)といい、後者を非パケット(モード)端末(NPT)と呼びます。NPTは当時の一般のデータ端末です。この非パケット端末を公衆パケット交換網に収容するためにPAD(Packet
Assembly/Disassembly)が用意されました。PADは公衆パケット交換網を介して調歩式端末などの一般の端末が通信できるようにコモンキャリアが準備しました。この状況を図22(a)に示します。PADの基本機能はX.3勧告にあり、パケットの組立/分解、パケット転送、バーチャルコールの管理などです。その他のXシリーズ勧告の概要を表11にまとめて示します。
図22 公衆パケット交換網プロトコル
表11 Xシリーズ勧告
| プロトコルの勧告 |
勧告の内容 |
| X.3 |
PADの基本機能とユーザが選択するPADパラメータを規定している勧告 |
| X.25 |
パケット(モード)端末と公衆パケット交換網の間のプロトコルを規定し、公衆パケット網を利用するユーザが守るべき網アクセスプロトコルを規定する勧告 |
| X.28 |
調歩式端末とPADの間のプロトコルを規定する勧告 |
| X.29 |
PADとパケット(モード)端末の間のプロトコルを規定する勧告 |
| X.32 |
電話網をアクセスラインとし、パケットモードでデータを転送する端末用網アクセスプロトコルを規定する勧告 |
| X.75 |
公衆パケット交換網が他の網と相互接続するためのプロトコルを規定する勧告 |
<LAPB>
データリンクレベルはLAPB(Link Access Procedure B)と呼ばれています。X.25勧告が出されたときはまだHDLCがなかったのですが、後にHDLC勧告が出されたとき、LAPBは平衡型の一種であることが分かったので、Balanced
modeのBを付けました。X.25ではHDLCのコマンドSABMまたはその拡張モードSABMEによるリンク設定がなされます。現在、パケットフレームのみでなく、FAX等の情報もHDLCを利用して伝送されています。この状況を図23に示します。HDLCの情報部(Iフレーム)に伝送目的のパケットフレームやFAXの情報を入れます。パケット端末はLAPBが装着されています。
図23 FAXとパケットをHDLCを利用して伝送
公衆ディジタル網(PDN)の場合の概念を図24に示します。利用者側から見ると、X.25を満足するPTと一般のNPTいずれも網アクセスプロトコルのみで、ネットワークの構成、機能は隠蔽されています。公衆ディジタル網として始められたパケットサービスでは、アナログ回線用の変復調装置に代えて回線接続装置(DSU)が導入され、網との接続に使用されることになりました。
図24 公衆ディジタル網の概念図
<回線設定手段>
パケット交換網導入の回線設定で論議された基本的な手段は次の3つです。
@ ダイナミック(動的)経路設定:ダイナミック(動的)ルーチング
A バーチャルサーキット(仮想回線)
B 固定パス:スタティック(固定)ルーチング
この技術はルーチングといわれ、データ通信のみでなく一般のネットワークに共通のものです。図25(a)はダイナミックルーチング、(b)はバーチャルサーキットと固定パスでのパケット転送状況を示します。
図25 回線設定(ルーチング)の手段
ダイナミックルーチングは、パケット転送の都度適切な経路を選択するもので、障害やトラフィックの急激な変化に順応できます。一方、1つのメッセージが網内の異なるルートを通るので、目的地にバラバラに到着し、順番どおりに組み立てる必要があります。さらに欠落したパケットが単なる遅延か、全く失われたのか不明で、複雑な処理になります。固定パスは2点間で常に決まったルートにするので、恒久的なバーチャルサーキットを割り付けることに相当します。活動していないバーチャルサーキットを網内に保有しないようにし、必要に応じて設定する固定パス方式は、固定VC(PVC)としてサービス提供されています。パケット交換といえばバーチャルサーキットを指し、X.25はこの経路設定手段によっています。世界中のコモンキャリアがエンドツーエンドで、確実な通信を保障することを主眼にしたからです。ダイナミックルーチングによるデータダイヤグラムサービスは無視されました。
<VCとPVCの呼設定>
X.25ではユーザセッションを確立するとき(DTEがパケット通信を開始するとき)VCとPVCの2種があります。図26に交換型バーチャルコール(Virtual
Call:VC)を示します。発信側のDTEはセッションの設定要求(call-request:CR)を送ります。ネットワーク側DCEに到着し、通常は受け取られます。時に拒否されることもあります。設定要求が受け付けられると呼受付(call-accepted:CA)が相手側DTEから戻され、要求側まで返送されます。この2つはX.25のコントロールパケットといわれ、どちらにもセッションまたは呼設定のための識別情報が含まれています。X.25では同時に行われるユーザセッション数の制限があり、受付を拒否されることもあります。呼設定がなされた後ユーザデータを格納したパケット(データパケット)が交換されます。このときX.25はパケットのフロー制御をウインドウ方式で行っています。すべてのユーザデータの転送が終われば、発信側が呼解放のためにclear-request(復旧要求)パケットを送ります。相手の受信側が確認のclear-confirmation(復旧確認)パケットを送ると、セッションは終了します。
図26 交換型バーチャルコール(VC)
この交換型VCはDDX-P(パケット交換サービス)としてNTTが提供しています。このほかDDX-C(回線交換サービス)といわれるVCを常時保持の固定VC(Permanent
VC:PVC)で提供しています。これは電話網での回線接続と似ていますが、あくまで仮想呼(Virtual
Call)です。図27に固定VCのセッションを示します。これは、両方の端末がPVCとして設定されることに合意している場合のみ設定されます。送信側DTEがパケット網DCEにパケットを送ったとき、パケットに含まれる識別情報によってPVCの要求であり、DCEと両側のDTEが合意していることが分かると、送信側DTEと受信側DTEはVCにて接続されます。セッションによる確認動作は行われず、VCにより常にデータ転送が可能になります。また、PVCでは呼設定のみでなく呼解放でも手続きによるやり取りは不要です。
図27 固定VC(PVC)の設定
VCは専用線と同じように固定の相手とのデータ転送に便利です。ディジタル伝送路と接続する端末は、モデムではなくDSU(Digital
Service Unit)を用います。電話網を通して端末をパケット網に収容するサービスもあり、このときのアナログ回線の伝送にはモデムが用いられます。
<パケット多重>
パケット通信ではブロック化したパケットにアドレスを持ち、これにより各パケットの識別を行うので、同一の物理回線上に異なる宛先のパケットを乗せることができます。これをパケットの多重化といいます。アドレスをラベルと見てラベル多重ということもあります。この場合、音声の時分割多重の回線交換方式とは異なり、伝送路上のパケット相互の間隔や長さを調整するための同期が不要なので、パケット通信は非同期型の転送といえます。時分割多重では各チャネルにタイムスロットを同期的に割り当て、チャネルが時間を割り当てたスロット内で送信します。対応するソースに送るべきものがあるか否かにかかわらず割り当てられます。これに対してパケット多重では、データストリームのブロックにタイミングを合わせ、ソースが活動を始めたときのみタイムスロットを割り当てます。それ故これをブロック同期あるいはパケット同期と呼びます。ここでの同期・非同期は、伝送リンク上のタイミングとは関係ありません。パケットは同期式のHDLCで包まれて伝送されるし、調歩式の非同期式でも伝送されます。非同期のパケットは、統一したタイミング同期によるSDH網で伝送されています。
日本ではデータグラムサービスのパケット交換はありません。これはコネクションレス型といわれ、相手端末のデータパケット受信を待たずに、パケット交換機が正常受信した応答を返す方式です。これをローカル方式といいます。これに対して、相手までのVC接続を確認してからデータパケットを送出するのを、エンドツーエンド方式といいます。この両者を図28に示します。
図28 エンドツーエンド方式とローカル方式
<パケット網への端末の収容>
公衆パケット交換網は一般の端末、いわゆる非パケット(モード)端末(NPT)を接続できるようにPADを用意し、各種の伝送手順に対応できるようにしています。PADはベーシック手順のヘッダや伝送制御文字を除いて、通常ベーシックのブロック長のままパケットに組み立てます。逆にDCEからのパケットは、通常そのままの長さで1ブロックとし、ベーシック手順にのせて送出されます。調歩式端末がパケット網に収容される場合には、ネットワークを通してPADを制御する信号がパケット端末側(PT)から送られます。このとき、PTがパケットの組立/分解機能を制御し、処理するために参照するパラメータをPADパラメータと呼びます。PADに関するXシリーズ勧告は3つあり、X.3はPADの機能自体を規定し、X.28は端末とPADの間のプロトコル、X.29はパケット端末(PT)とPADの間のプロトコルを規定しています。図29にこれらの関係を示します。
図29 X.3,X.28,X.29,X.25勧告の関係
<LAPBの手順>
LAPB(Link Access Procedure Balanced)は、DTEがネットワーク(DCE)にアクセスするデータリンクレベルの手順の標準タイプです。LAPBはHDLC手順のサブセットで、オプションを付けてパケット交換用としています。HDLCは階層構成を成していて、図30に示すようにパケットレベルフォーマットを包み込んでいます。HDLCのフレームの種類は、制御フレームCによって識別されます。HDLCは標準の基本的な手順クラスを用意しており、このなかの平衡型非同期平衡モード(BA)クラスをX.25は採用しました。
図30 HDLCとパケットフォーマットの関係
表12にLAPBで使用するコマンド/レスポンスを示します。LAPBでは基本手順クラスのBAよりREJ(reject)のみが多いだけで、これは回線使用効率を向上させるためのものです。LAPBは拡張モードもとることができます。モジュラス128を使用する拡張順序番号を付けることができます。これは衛星回線のように、遅延の大きい回線に使用すると有効とみられています。
表12 LAPBのコマンド/レスポンス
(a) 基本(モジュロ8)動作
|
フォー マット
|
コマンド |
レスポンス |
符 号 |
| 情報伝達 |
I(情報) |
|
0 | N(S) |
P |
N(R) |
| 監 視 |
RR(受信可) |
RR(受信可) |
1 0 0 0 |
P/F |
N(R) |
| RNR(受信不可) |
RNR(受信不可) |
1 0 1 0 |
P/F |
N(R) |
| REJ(リジェクト) |
REJ(リジェクト) |
1 0 0 1 |
P/F |
N(R) |
| 非番号制 |
SABM(非同期平衡モード設定) |
|
1 1 1 1 |
P |
1 0 0 |
| DISC(切断) |
|
1 1 0 0 |
P |
0 1 0 |
| |
DM(切断モード) |
1 1 1 1 |
F |
0 0 0 |
| UA(非番号制確認) |
1 1 0 0 |
F |
1 1 0 |
| FRMR(フレームリジェクト) |
1 1 1 0 |
F |
0 0 1 |
(b) 拡張(モジュロ128)動作
|
フォー マット
|
コマンド |
レスポンス |
符 号 |
| 情報伝達 |
I(情報) |
|
0 | N(S) |
P |
N(R) |
| 監 視 |
RR(受信可) |
RR(受信可) |
1 0 0 0 0 0 0 0 |
P/F |
N(R) |
| RNR(受信不可) |
RNR(受信不可) |
1 0 1 0 0 0 0 0 |
P/F |
N(R) |
| REJ(リジェクト) |
REJ(リジェクト) |
1 0 0 1 0 0 0 0 |
P/F |
N(R) |
| 非番号制 |
SABME(拡張非同期平衡モード設定) |
|
1 1 1 1 |
P |
1 1 0 |
|
|
| DISC(切断) |
|
1 1 0 0 |
P |
0 1 0 |
|
|
| |
DM(切断モード) |
1 1 1 1 |
F |
0 0 0 |
|
|
| UA(非番号制確認) |
1 1 0 0 |
F |
1 1 0 |
|
|
| FRMR(フレームリジェクト) |
1 1 1 0 |
F |
0 0 1 |
|
|
制御フィールドCによって、フォーマットフレームは3種類に分類されます。情報(転送)はIフレーム、監視はSフレーム、非番号制はUフレームといわれ、P/F(poll/final)やN(S)、N(R)の送信あるいは受信順序番号など全くHDLC手順と同じです。リンク設定は、SABMフレームあるいはSABMEフレーム(モジュラス128)を、DTEあるいはDCEが送信することにより開始されます。この状況を図31に示します。
データリンクレベルのやりとりは、このようにHDLCそのものです。情報Iフレームでパケットデータが転送されます。X.25はIフレームのみでパケットレベルの情報を転送することを規定しています。
図31 LAPBの手順
データリンクレイヤでの誤り制御は、フレーム再送による回復ができない場合はフレームリジェクト状態となり、リンク再設定つまりSABMフレームからのやり直しで、HDLCと同じです。X.25データリンクレイヤで複数の物理回線を使用するMLP(Multi-Link
Procedure)手順を規定しています。各回線上では単一のLAPBを用い、これを1つにまとめて単一リンクとして制御します。この状況を図32に示します。MLPに対して、1本の物理回線で単一のリンクを設定するものをSLP(Single
Link Procedure)といいます。物理回線(伝送路レベル)のチャネル間の同期で、SLPの上位にリンクレイヤサブエンティティを作り、これを実現しています。
図32 MLPの原理
パケットデータはIフレームの情報フィールドに1個入れられます。Iフレームに複数のパケットをつめることはありません。HDLCのIフレームで、個々にCRCによるエラー検出をされることからほとんどエラーは発生しません。これはパケットレイヤレベル、つまりネットワーク内でも同じです。
(3)ルーチング/フロー制御とデータ保証
フロー制御には主としてウインドウ制御とバッファ制御の2種があります。バッファ制御は、X.25のパケット交換では端末制御に使用しており、端末のバッファ不足のとき、一時的に入力規制をするのに使用されます。ウインドウ制御はネットワークで用いられます。ルーチングでは、個々の呼接続要求に対する網内の伝送路や経路の割り当てを行い、直通ルートあるいは代替ルートを決定することになります。パケット交換ではノード(交換機)の障害を回避する代替ルートや、近隣ノードの待ち行列状況による出リンク選択などの判断が、蓄積交換のためさらに加えられます。
フロー制御はネットワークを流れるトラフィック量の管理です。代替ルーティングの制御がネットワーク内の伝送路を如何に利用するかという観点であるのに対し、フロー制御はトラフィックをさばく観点からのコントロールです。都市の自動車の交通(トラフィック)によくたとえられます。ある交叉点で1つの方向に車が流れると、道路が空いているにもかかわらず車の進行が妨げられることがあります。つまり、ある方向における過度なトラフィック通過は、他の方向における障害になります。電話網で、ネットワークに加えるトラフィック量(呼設定要求)を増加していくと、接続完了し運べるトラフィック量は順次増加しますが、ある点から接続不可の呼が急増し、運べるトラフィック量が減少し始めます。さらに加える呼接続要求を増すと全く接続できなくなり、運べる呼が皆無となるネットワークも現れます。これは網内の共通の処理設備(伝送路や交換機)を呼接続のため競合して求め合い、呼が拒絶されて放棄されるために起こります。フロー制御は円滑にトラフィックが運べるように共通設備を制御することです。
パケット交換のみでなく一般の交換網において、ルーチングとフロー制御は密接に関係した運用上の必要事項です。パケット網の特徴はフロー制御でのバッファ管理です。蓄積してその宛先を見て出ルートを決定しており、バッファがいっぱいのときはそれ以上のパケットを受信できないことです。パケット交換ノードは、データ送信しても直ちに蓄積しているバッファを解放しません。バッファは相手先の受信ノードから受け取りの肯定応答があってから解放されます。つまりローカル方式ではなく、エンドツーエンド方式です。コネクション(指向)型といわれ、データ保証あり(guarantee
reliable delivery)です。フロー制御は、パケット交換網のインタフェースノード(ネットワークノード)のすべての過負荷の状態を知り、呼(コール)の遅延を少なくすることと、新たな呼を拒否することです。
X.25のフロー制御の考え方は、データリンクのウインドウの考え方と似ています。フローは各論理チャネルごと各通信出線ごとにDTE-DCE間のインタフェースで制御されます。フローは受信側のバッファで制御されており、P(S)およびP(R)フィールドはウインドウを調整するのに用いられます。第2層データリンクレベルと第3層パケットレベルの両層でフロー制御にウインドウを使っています。X.25ではウインドウの大きさを特別に大きくできます。
あるパケット網サービスでは、トランザクションタイプの呼(1個または2個のパケット)しか送らないアプリケーションで、たとえばクレジットの問い合わせ、口座などの転送などに適した特別な手順と、単純化したファーストセレクト(fast-select)と呼ばれる転送のサービスがあります。これはデータ保障のための面倒な手順を簡略化したものです。
2.2 X.25のパケットレベルプロトコル
(1)X.25パケットフォーマット
X.25のパケットフォーマットはパケットのタイプ、VCおよびPVCに対するサービスの種類により異なります。呼設定、データ転送などのタイプの別です。ファシリティ(facility)がついているパケットは、ユーザがファーストセレクトなどの付加的機能を要求したときのためのものです。X.25パケットレベルでデータ転送に用いられるパケットフォーマットを図33(a)に、VC設定に用いる制御パケットフォーマットを(b)、(c)に示します。表13にX.25VCおよびPVCサービス別に対するパケットタイプの一覧を示します。
表13 サービス別のパケットタイプ一覧
| パケットタイプ |
サービス |
| DCEからDTEへ |
DTEからDCEへ |
VC |
PVC |
| 呼設定および解放 |
|
|
着呼
接続完了
切断指示
DCE復旧確認 |
発呼要求
着呼受付
復旧要求
DTE切断確認 |
○
○
○
○ |
|
| データおよび割込み |
|
|
DCEデータ
DCE割込み
DCE割込み確認 |
DTEデータ
DTE割込み
DTE割込み確認 |
○
○
○ |
○
○
○ |
| フロー制御およびリセット |
|
|
| DCE受信可
DCE受信不可
リセット指示
DCEリセット確認 |
DTE受信可
DTE受信不可
DTEリジェクト
リセット要求
DTEリセット確認 |
○
○
○
○
○ |
○
○
○
○
○ |
| リスタート |
|
|
リスタート指示
DCEリスタート確認 |
リスタート要求
DTEリスタート確認 |
○
○ |
○
○ |
| 診 断 |
|
|
| 診断 |
|
○ |
○ |
| 登 録 |
|
|
| 登録確認 |
登録要求 |
○
○ |
○
○ |
図33 X.25パケットフォーマット
X.25パケットフォーマットは、最初の3(または4)オクテット(オクテットは8ビット=1バイト)はすべて共通となっています。図33(a)に示すデータ転送用フォーマットの最初の3(または4)オクテットがこれに相当し、この部分をヘッダと呼んでいます。各フィールドの定義を以下に示します。
<ゼネラルフォーマット識別子(GFI)>
データパケットには、フロー制御や通番管理によるデータデータ抜け防止のために、通し順序番号が付けられています。これをP(S)、P(R)と記し、これにはモジュロ8または128の2種類があり、ヘッダの長さが3または4オクテットと異なります。GFIでこれを区別するために"01"(モジュロ8)または"10"(モジュロ128)の2ビットを使います。GFIのDビットは、エンドツーエンドの確認を取るための手順を使うか否かを表示するためのものであり、QビットはX.29に使い方の例が示されています。図34にQビットの働きを示します。Q=
"1"のときはDTEとネットワークの間の通信で、Q=
"0"のときはDTEとDTEの間の通信を行います。X.29はX.25のバーチャルコール接続を切り替えます。Q=
"0"でのユーザのデータをそのままの転送か、それともQ= "1"でPADの機能を加えた転送かのスイッチングをしています。X.25のパケット網に非パケット端末NPTを接続するため、PADはフロントエンド的なキャラクタ制御を持っており、非パケット端末へのユーザデータに対しては、その端末に適合した細かい制御が必要となっています。
図34 Qビットの働き
<論チャネル識別子(論理チャネルグループ番号LCGNおよび論理チャネル番号LCN)>
VC設定を行い経路(ルート)が決定されるときに、DTE-DCEインタフェースにおいて論理チャネル識別子(VCI)が割り当てられます。このVCIは論理チャネルグループ番号(LCGN)と論理チャネル番号(LCN)の組み合わせで指定されます。LCGNが4ビット(24=16)、LCNが8ビット(28=256)なので16×256=4096個の論理チャネルが識別できます。図33(b),(c)は呼設定用に用いる制御パケットで、DTEアドレスがヘッダに記されています。図33(a)はデータ転送用のデータパケットで、ヘッダにはDTEアドレスがなく、論理チャネルグループ番号(LCGN)と論理チャネル番号(LCN)のみがあります。
LCGN=0、LCN=0の組み合わせは特別な場合、リスタート手順の場合などのため論理チャネルとして使用せず、また交換機のアドレス展開の限度から4096個すべての論理チャネル識別子(VCI)が使用できることはなく、ネットワークとしての限度があります。
<パケットタイプとヘッダビット>
ヘッダようにパケットタイプを示すためにパケットタイプ識別子フィールドがあります。このフィールド(第3オクテット)の第1ビットが"1"の場合は呼制御パケットを表し"0"の場合はデータパケットを示します。表14にパケットタイプ識別子(packet
type identifier)のビット位置を示します。データパケットでは、モジュロ8の場合このフィールドに各3ビットでP(S)、P(R)が設定されます。P(S)とP(R)の間の1ビット(Mビット)は、"1"の場合まだ後にデータパケットが続いていることを示します。モジュロ128の場合は7ビットでP(S)とP(R)を表します。第3オクテットと第4オクテットがこれに割り当てられています。
表14 X.25パケットレベルのサービス識別とヘッダ
| 種類 |
DCEからDTEへ |
DTEからDCEへ |
ビット位置
8 7 6 5 4 3 2 1 |
| 呼設定および解放 |
Incoming Call(CN) |
Call Request(CR) |
0 0 0 0 1 0 1 1 |
| Call Connected(CC) |
Call Accepted(CA) |
0 0 0 0 1 1 1 1 |
| Clear Indication(CI) |
Clear Request(CQ) |
0 0 0 1 0 0 1 1 |
| Clear Confirmation(CF) |
Clear Confirmation(CF) |
0 0 0 1 0 1 1 1 |
| データおよびインタラプト |
Data(DT) |
Data(DT) |
P(R) |M|P(S) | 0 |
| Interrupt(IT) |
Interrupt(IT) |
0 0 1 0 0 0 1 1 |
| Interrupt Confirmation(IF) |
Interrupt Confirmation(IF) |
P(R) | 0 0 0 0 1 |
| フロー制御およびリセット |
Receive Ready(RR) |
Receive Ready(RR) |
P(R) | 0 0 1 0 1 |
| Receive Not Ready(RNR) |
Receive Not Ready(RNR) |
0 0 1 0 0 1 1 1 |
| Reset Indication(RI) |
Reset Request(RQ) |
0 0 0 1 1 0 1 1 |
| Reset Confirmation(RF) |
Reset Confirmation(RF) |
0 0 0 1 1 1 1 1 |
| リスタート |
Restart Indication(SI) |
Restart Request(SQ) |
1 1 1 1 1 0 1 1 |
| Restart Confirmation(SF) |
Restart Confirmation(SF) |
1 1 1 1 1 1 1 1 |
P(S):送信側送信シーケンス番号、P(R):送信側受信シーケンス番号、M:More Data Mark
<ファシリティ>
X.25は1つのネットワーク内で複数のユーザが互いに通信するために規定しています。X.75は2つの異なるネットワークのユーザに対して通信を確立するネットワーク間接続を目的としています。X.75はX.25のプロトコルで運用されることを前提としており、VC、PVC、LCGN、LCNはそのままです。制御パケット、データパケットも同じフォーマットであり、取り扱う階層も同じです。
X.75はX.25のファシリティで示されています。これらのファシリティによるユーザ機能が付加できます。主なものは次のとおりです。
@ スループット配分:呼出し側のDTEから通信速度の指定ができる。
A パケット再送:拒否されたパケットをP(S)、P(R)を用いて再送する。
B 着呼禁止:Incoming Call閉鎖ともいい、遠隔地で発生したVCを着信DTEに渡さない。
C 発呼禁止:Outgoing Call閉鎖ともいい、DTEからの全論理チャネルの発呼を禁止する。ローカルでのVC発呼をDCEが受け付けない。
D 単方向発論理チャネルまたは単方向着論理チャネル:論理チャネルは呼の設定が発呼または着呼のどちらかに限られる。One-Way論理チャネル。
E パケットシーケンス番号の拡張:パケットシーケンスをモジュロ128で付与する。P(S)とP(R)が8から128になる。このファシリティを使用しない場合はモジュロ8で動作する。
F 着信課金:バーチャルコールの着信側に課金する。
G ファーストセレクト:トランザクション型のアプリケーションに適する機能です。DTEが起呼要求パケットにデータを乗せて起呼できます。受信側でこれを受け取ると呼解放がきたとみなし、DCEから切断支持パケットにデータを乗せて応答できるようにしています。
(2)PADの機能
X.25のパケットレベル(ネットワーク層)に、非パケットモードのインタフェースを設ける勧告が出されています。これはPAD(Packet
Assembly/Disassembly:パケット統合/分解)と呼ばれ、X.3で規定されています。主な機能は次のとおりです。
@ 端末からのキャラクタを集めて(assemble)組み立て、パケット端末(PT)向けのパケットを作る。ユーザパケット(DTパケット)の作成。
A パケットを分解し(disassemble)、スタート/ストップタイプ(調歩式)等の非パケット端末(NPT)用のデータを作る。
B バーチャル呼の呼設定/呼解放の処理をする。ここでは発呼要求パケット(CR)や復旧要求パケット(CQ)などの呼制御用パケットの送出、受信を含んでいます。X.25へのプロトコル変換です。
PADは各端末ごとに設定情報、プロファイルを保有しており、PADがサービスする各端末に対して選択して使用します。オペレーティングシステムが、各端末ごとの設定情報、キャラクタの処理パラメータを保持し監視しているのと同様に、PADもパスワードその他の情報をパラメータとして保持し、このパラメータの設定に従ってパケット組立・分解を行います。これをPADパラメータといい、独立に最大22個規定されています。表15にPADパラメータの一覧を示します。
表15 PADパラメータ一覧表
| X.3パラメータ参照 |
意味 |
オプション等 |
| 1.PADリコール |
データ転送モードからコマンドモードへ移る |
標準はキャラクタDLE使用 |
| 2.エコー |
端末から送信されるエコーキャラクタを制御 |
0でエラーあり1でエコーなし |
| 3.データ転送 |
データ転送のための信号とPADによって認識されるキャラクタを定義 |
|
| 4.アイドルタイマ遅延 |
データ転送の信号として端末のタイマ間隔を選択 |
|
| 5.補助装置制御 |
PADがX-ON/X-OFFを使って端末からのデータのフローを制御できるようにする |
|
| 6.PADサービス信号の制御 |
端末がPADのメッセージを受信できるようにする |
プロンプトやPADごと独自のサービス信号を指定できる |
| 7.DTEからの中断信号の受信をした際のPADノオペレーション |
端末から中断信号を受信した際のPADの振る舞いを定義 |
割込パケット送出とか、リセットとかの指定ができる |
| 8.出力廃棄 |
端末への出力待ちのデータの廃棄を制御 |
|
| 9.改行後のパデイング |
端末に改行信号を送出した後にパディング用キャラクタのPAD挿入を制御 |
|
| 10.行折り返し |
端末への出力行をPADが折り返しするかどうかを表わす |
|
| 11.DTEのバイナリ速度 |
端末速度を表示 |
|
| 12.PADのフロー制御 |
端末へPADが送出するデータのフローを端末が制御できるようにする |
|
| 13.ラインフィード挿入 |
改行信号が端末に送られた後にPADがラインフィードを挿入するのを制御 |
データ内のCRにLF付加あるいはエコーのCRにLFを付加する等の選択 |
| 14.ラインフィードパディング |
ラインフィードを端末に送信した後にパディング用キャラクタをPADが挿入するのを制御 |
復帰、改行時間の保証 |
| 15.編集 |
データ転送モード中にPADによる編集を可能にするかどうかを制御 |
|
| 16.文字削除 |
文字削除信号に使われるキャラクタを選択 |
|
| 17.行削除 |
行削除信号に使われるキャラクタを選択 |
|
| 18.行表示 |
行表示信号に使われるキャラクタの選択 |
|
| 19.PADサービス信号の編集 |
PADサービス信号の編集フォーマット制御 |
|
| 20.エコーのマスク |
エコー(パラメータ2)可になっているときに端末にエコーされないキャラクタを選択 |
制御キャラクタのエコーをマスク |
| 21.パリティの取り扱い |
端末から/へのキャラクタに対するパリティのチェックと生成の制御 |
|
| 22.ページ待ち |
一度に表示される行数の指定 |
規定された数のLFがPADから送られた後調歩式DTEにそれ以後の送信を停止 |
図35、図36に端末とPADおよびパケット端末の間を接続する手順を示します。PADの初期化は端末の要求に合わせることであり、端末からのサービス要求信号をPADが受付け、必要な情報を検出します。この情報はサービス要求信号に符号化して伝送されるものや、伝送速度のように場合によってはモデムで判定して与えられるものなどがあります。サービス要求信号が受け付けられると、PADとNPTの間でパケットの機能をどのように使用するかを設定するために通信が開始されます。通信はNPTからPADへのPADコマンド信号とPADが出すPADサービス信号とで行われています。
図35 電話接続からのデータ転送手順
図36 電話接続からのパケット網の呼接続手順
PADコマンド信号によってPADの初期化が終了すると、PADはPADコマンドを待つ状態(PAD待ち状態)に入ります。選択PADコマンドをPADに送信すると、PADは発呼要求パケット(CR)を組み立て、バーチャルコールの設定を行います。相手パケット端末がバーチャルコールを受付け、接続完了パケット(CC)を返送してくると、PADはこれを分解し、PADサービス信号の接続完了PADサービス信号にして、NPTに送出します。このときパケット(CC)内にあるファシリティにより、PADサービス信号の細部が変わったものになります。これ以降データ転送が開始されます。
パケット端末(PT)からのデータパケット(DT)は、通常そのまま8ビットのデータとして調歩式のスタートストップビットをつけてNPTに送られます。NPTからPADに送られたキャラクタはPAD内のバッファに蓄積され、ある時点でデータパケット(DT)として送信されます。ある時点とは、表15のPADパラメータ番号3(データ転送)で指定されたキャラクタをNPTが送ったときです。例えばこれをキャリッジリターンCRにすると、1行ごとにパケットに組み立てて送信します。また、データ転送中のPAD付加機能として、データ転送中のPADへPADパラメータ変更を行えるようにするため、PAD再呼び出しキャラクタを送ることができ、PADはPADコマンドを受け入れる状態(PAD待ち状態)になります。
[出典]
(1) 電気通信研究会:データ通信テキスト,日本理工出版会(1999-6)
以上、パケット交換網についてまとめました。次回はLANとOSIについてまとめる予定です。
[技術講座(データ通信―3)] (2003/01/15作成)
前回のパケット交換網に引き続き、LANとOSIについてまとめました。
3.LANとOSI
ローカルエリアネットワーク(Local Area Network:LAN)は、構内あるいはビル内に限られたネットワークという文字通りの意味でしたが、最近は地域的な制限がなくなってきています。LANの製品としてルータなどのLAN同士を接続する機器が現れ、各メーカの製品を繋ぎ広い範囲までも結べるものになりました。LANで使用されるソフトウエア製品も進展し、ネットワーク/トランスポート層の接続制御に関するものが多くなっています。伝送路の物理的レベルの製品も標準化が進んでいます。LANの製品として有名なのはイーサネット(Ethernet)で、1980年Xerox社が中心となりDEC、Intelと共同開発しました。これはCSMA/CDタイプのバス型ネットワークで、発表当時は伝送媒体に同軸ケーブルを使用していました。これに対してIBM社が85年にトークンリングを発表しました。これはIBM社のSNAを中心にした環境で現在でも使用されています。80年代はこのCSMA/CD方式とトークンリングが主体でした。
一方、1970年代に米国の研究所・大学間のネットワークARPANET向けにTCP/IPが開発されました。これは研究所・大学でのLAN、ネットワークを相互に接続するに当たり標準的なものとなり、後にインターネットといわれ普及します。LAN製品は大別して2種に分けられます。一方はEthernetやFDDIなどの標準に準拠するもの、他方はメーカ中心の独自方式です。LANは基本的に伝送路を共用し、同じアクセス方式の端末の資源利用を行うことです。異なるクラスの端末間、例えばパソコン上にTCP/IPとそのアプリケーションを提供する製品も出現しました。LAN上でn対nの通信ができ、電子メール、ファイル転送のアプリケーションが一般的に製品に付加されています。
3.1 LANの標準化
表16に示すように、標準に準拠したLANの主な規格は3種挙げることができます。IEEE(米国電気電子学会)が規格化したIEEE802.3(Ethernet)、IEEE802.5(トークンリング)、およびANSI(米国規格協会)が規格化したFDDIです。IEEE(Institute
of Electrical and Electronics Engineers)は、いくつかのLANの標準規格を発表しています。IEEE802.2は論理リンク(LLC)についてであり、IEEE802.6は都市エリアネットワーク(Metropolitan
Area Network:MAN)についての標準です。IEEEはLANのデータリンク層をLLCとMACに2分しました。
表16 標準化LANの比較
| |
IEEE802.3 |
IEEE802.5 |
FDDI |
| バンド幅・転送速度 |
10Mbps |
4または16Mbps |
100Mbps |
| ステーション数 |
1024 |
250 |
500 |
| ステーション間最大距離 |
2.8km |
30m |
2km(MMF)
40km(SMF)
|
| ネットワーク最大延長 |
2.8km |
構成による |
100km |
|