日付:1999/6/4
この文章について | ネットワークの動作概要 | Physical Layer:物理層 | Media Access Control SubLayer | Logical Link Sublayer | Network Layer | Transport Layer
Physical Layer :物理層
説明の最初は一番下の層であるところの物理層-Physical Layerである。さて、このPhysical Layerとはなんなのだろうか?本講義で配られたHand Out(+私の訳)によれば以下の通りである。
物理層:物理的な媒体を使って、ビット列(特定の構造をもつわけではない)を伝送する機能を提供する。物理的媒体にアクセスするための機械的、電気的、機能的及び手続き上の性質を規定する。
物理層がやってくれることは、とにかくビットの列(ビットとはコンピュータが扱う最小の情報の単位だ。今のコンピュータは大部分2進法を使っているから、ビットは1か0の値しかもたない)を送ってくれることだけだ。ここで「ビット列」という名称をわざわざ使っているのは、物理層は自分が何を運んでいるかなんてのは全く意に介していない事を示す。これより上の層になると、一応相手先のアドレスだとかなんとかが入ってくるのだが、物理層ではそれは全くお構いなしだ。
この「ビット列」という言葉を聞くと参考文献3)に載っている初期のUNIXを配付する時に張られていたラベルに書いてあった「これはビットのつまったテープです」という言葉を思い出す。当時のUNIXは商品ではなかったから、配付はするがサポートは受けられない。従って「これは単にビットがつまっているだけだよ。そのビットの並び方がどうなっているかには責任はもてないよ。ビットが並んだ結果のプログラムに文句があれば自分で解決してね」という事を意味していたのだ。
さて、かくのとおり物理層はビット列を運んでくれる。(その内容にはいっさいおかまいなしだ)ではこの伝送された情報の内容をすべて丸ごと信頼していいか、といえばそうはいかない。現実の世界では必ずエラーがまじってしまうのだが、物理層自体ではそうしたエラーの回復なんてのは保証してくれないのである。それは上位の層の役割になる。(実はこうした「保証はしないよ。あとはよろしくね」というのは物理層に限った話ではないのだが)
では物理層ってのはあまり何もしていないじゃないか、と思えばそうではない。どんなことが規定されているか、というのを先ほどの物理層の定義にでてくる各項目毎に説明する。以下の説明の中では実際に世の中で使われている規格-Ethernet(IEEE802.Xシリーズ)、ISDN,RS232C-を例にして説明をおこなう。しかしながら注意してほしいのは、ここであげた3っつの規格のうち、RS232Cを除いては(ちょっと自信がない)、物理層のみを規定した規格ではない、ということだ。通常使われている意味ではEtherenetとは物理層とその上のMedia Access ControlSublayerを含んでいるし、さらにそのうえのData Link Control Layerまでを含んだ意味で使われているように思える。ISDN(CCITT Iシリーズ)ではさらに一つ上のネットワーク層までの規定がされている。従って以下にそれらの名前がでてきたら、「○○○(名称)の物理層に関する規定」について書いていると思って欲しい。
さらにここで前段として(だんだん前段ばかり長くなっていく気がするが)いくつかの言葉について説明をしておく。上記の言葉を聞いたことがある人は、「何でRS232CとEthernetが同列ででてくるんだ?RS232CのLANなんて聞いたことがないぞ」と思われたかもしれない。ここで私は説明の為に新しい呪文を導入しなければならない。
この物理層レベルの話に限らず、ネットワーク関係の解説書を見ると、DTEとDCEなる略語を目にする。DTEとはData Terminal Equipment;データ端末装置であり、DCEはData Circuit-Terminating Equipment;データ回線終端装置である。このいかめしい名前が何を意味しているか、というと例えばモデムを使って電話回線経由でパソコンをインターネットに接続する形態を考えると、DTEがパソコンであり、DCEがモデムにあたる。(ISDNの場合はDSU : Digital Service Unitとなるが)絵に描くと下のようになる。
さてここでデータ通信の物理層について書いてきたが、その点からみるとDTE-DCE間もDTE-DTE間も両方考慮することが必要となる。コンピュータからみれば両方ともデータを通すのに必要だからだ。
さて、RS-232cとは主にDTE-DCE間の通信規格である。そう言われれば外付けのモデムはRS-232C規格のシリアルポートに接続される。(これからはUSBが主流になるかもしれないが)後で名前だけはでてくるX.21もこの区間の規格だ。これに対して、DCE-DCE間の通信規格にはモデムの説明のところでよくでてくるVシリーズ(例えば執筆段階で一番新しいアナログ回線上で56kbpsの通信速度をもつ規格はV90と呼ばれている)がある。ISDN(Iシリーズと呼ばれている)は両方の範囲をカバーしている。
さて、この話をEtherentに当てはめて考えてみよう。先ほどの定義をあてはめるとNIC(Network Interface Card)はDCEという事になる。従って通常Ethernetと呼ばれているものはDCE-DCE間の規格であるからして、別にDET-DCEの規格であるRS232Cと同列にまぜこぜに並べているわけではない、、と言えればかっこいいのだが果たしてそういっていい物なのかどうなのか今ひとつ自信がない。参考文献4)を見る限りそう言ってよさそうだが、なんといってもこの本は1982年に出版されたものだからなあ。。
さて長々とした前置きをおいて、各項目について説明していこう(今度こそ)
前述した定義の中で「機械的、電気的性質の規定」というのは比較的イメージがわきやすい。機械的性質というのは例えばケーブルであるとか、その両端についているコネクタの規定である。外部の寸法の規定、ピン数、形状の規定etc..EthernetよばれているLAN(これは必ずしもEtherntばかりではない。この微妙な表現が何を意味しているかは後述する)で、10base-Tと呼ばれるものであれば、コネクタは電話機に接続されているコネクタの親玉のようなものであり、10-base 2と呼ばれているものであれば、ちょっとTVのコネクタか何かと間違えそうな丸いコネクタだ。
電気的性質とは、例えばデジタルの信号を送信する際に、何V以上が0で何V以下が1だとかいう規定である。こう書くと話は簡単そうだが、細かい規定となるとなかなかそう簡単にはいかない。例えば参考文献2からISDNの配線に関する電気的性質の規定からいくつか項目だけをあげてみよう。
・ TEのジッタおよび入出力位相関係
・ NTのジッタ
・ 線路終端
・ 送信部出力特性
・ NT出力インピーダンス
・ パルス波形
・ ・・・・
世の中には自分に理解できない言葉をたくさん並べて悦に入る人達がいることを知っている。私は(少なくとも幸いにも自分が馬鹿なことをしていると気がついたときには)そうしたことは避けたいと思っている。だからこれ以上自分で意味の理解できない言葉を列挙することはやめる。しかしこうした意味不明な言葉であってもどのようなことが規定されているかの感じをつかむのには役に立つのではないかと思う。
さて、この「電気的性質」に含まれる項目で、上記の名称ほどわかりやすくないものがある。英語で言うところのEncoding Schemeたぶん日本語では符合化方法(参考文献2では伝送符合と呼ばれているが)である。これは結構理解しやすいので、ここでちょと書いてみよう。
今考えているのはコンピュータネットワークである。そしてコンピュータとは2進数をしゃべる。従って(基本的に)送りたいのは1と0のデータである。さて、1と0を信号でどうやって表せばいいのだろうか。本講義の範囲ではデータ伝送はシリアルで行われることになっている。つまり基本的にはデータを送る線は一本で、その上を時間毎に変化するデータが流れていくわけだ。(ここで「何が」変化するのか抜かしているのは私が間抜けなせいばかりではない)
ここで仮に変化するのが電圧だとしよう。このときちろちろと変化する電圧と0と1の列をどうやって対応させればいいのだろう。ここでは0と1を一定の規則に従って電圧の変化に変換するわけで、「符合化」と呼ばれる操作が必要となる。世の中にはいろいろな符合化方法が存在している。下図に講義資料に載っているもの、及びISDNで使われているAMIの概略を示す。
上の符合化方法の中で、一番単純に思いつくのはNRZ-L(Non Return to Zero-Level)だろう。上の図に示されているとおり電圧が高い場合に0,低い場合(0ではない)を1としている。これに対して、電圧の変化の有無で0,1をあらわしたのがNRZIである。ビットの0,1を判定する区間の冒頭で電圧が低→高または高→低と変化すれば1,変化がなければ0である。AMIも同じような方式で、電圧が0ならば1,正の電圧または負の電圧であれば0である。ここで0を表す電圧の正負は交互に現れる。
さてこれでいいじゃないか、、と思うがこの方法ではビット判定をどこからやればいいのかがわからない。例えば0が連続して送られる場合、NRZ-LだろうがNRZIだろうが、ずっと電圧は高いままである。(AMI であれば電圧は正負反転するが)節目も何もないからどこで区切ってビットを判定したらいいのかの手がかりがない。従ってこの同期をとるためだけに、区切りをしめすスタートビット、エンドビットなる余分のビットを付加する必要が生じる。おまけにスタートビットで同期をとっても、受信側と送信側のクロック(時計)が正確にあっているという保証がないから、比較的少量のデータを区切ってスタートビット、エンドビットをつけることになる。これは場合によってはかなりの無駄となる。(http://www.fit.qut.edu.au/Student/subjects/itn510/L3.TXTにはこの計算の実例が載っている)
さて、ここで触れた同期をとる仕組みを持っているのがManchesterという符合化方法である。これはビット判定区間の前半が高い電圧であれば0,低い電圧であれば1である。そして送るデータが0であろうが1であろうがとにかく周期の真ん中で電位が変化しているが、これは同期を取る節目として使われる。世の中でよく目にするEthernet(IEEE802.3も)はこの符合化方法を使っている。NRZ-LとNRZIの違いのように、Machesterに対してDifferential Manchesterという符合化方法が存在している。ビット判定区間の頭で電圧の変化があれば0,なければ1でとにかく区間の真ん中で電位は変化する。こちらはあまり世間で目にしないToken Ring(IEEE802.5も)で使われている。なんと、これで行けば同期がちゃんととれてめでたいめでたい、と言いたいところだがこの方法にも欠点はある。1つのデータを送るのにNRZの約2倍電圧を切り替えなくてはならないことだ。逆に言えば、同じだけの回数で電圧を変化させることができる通信装置を使った場合(最悪)半分しかデータがおくれないことになる。
さてここであげた5種類以外にもおそらく世の中にはもっとたくさんの符合化方法があり、それぞれ長所短所があるのだろう。米国のUniversity of Floridaのあるホームページ(http://www.cis.ufl.edu/~nemo/cen6505/coding.html)には10種類の符合化方法が載っている(そして講義資料でNRZIと呼ばれている物はNRZ-Mと呼ばれている)し、参考文献2にもあといくつかは符合化方法が載っている。しかしながらそれぞれの違いなどをよく理解していない私としては、習わぬ経を唱えるのはこれくらいにしておきたいと思う。
さて、この符号化でデジタルデータを流す回線上にデータを伝送するときは話はおしまいになる。このデジタルの信号をデジタルの波形にして(いままで説明してきた符号化方法では、信号は結局いくつかの決められた値しかとらない)送る方法は「ベースバンド」と呼ばれている。
しかしながら一般の電話回線のように、アナログデータだけを(人間の声は少なくとも発生されたときはアナログデータだ)伝送するように作られた回線で伝送する場合には、この先アナログ-デジタル変換が必要になる。この操作はModulation-変調と呼ばれる。逆の操作はDe-Modulationである。この両方をおこなう機器をこれらの言葉の頭をくっつけてモデムという。(何をいまさら偉そうに)このようにアナログデータに変換してデータを送信することを「ブロードバンド」という。(と書いた頃はそうだったが、最近は「ブロードバンド」という言葉は別の意味で広く使われるようだ)
さてこの「ブロードバンド」方式でデータを伝送する際に使用される変調方法であるが、なん通りかの方法が存在している。概要を以下に示す。
これらの方法はそれぞれASKが1と0を振幅の差(上の図では0と1だからわかりやすい)FSKが周波数の差(1と0の区間で、波の間隔が変わっているのがわかるだろうか)及びPSKが位相の差(波が不連続にどっこんと変化している)で表している。これらの方法にはそれぞれ長短があるが、講義の時には、光ファイバでデータを送る場合にはASK,モデムはFSKを使っていると聞いた。じつのところはよくわからない。実際の規格では、こうした変調に段階まで加えて、さらに多くのデータを送れるようにしている。たとえばASKであれば、振幅を何段階かに変化させ、それぞれのレベルについて値を対応させておけば、より多くのデータを送れるわけだ。
さて残る二つ機能的及び手続き的規定とはどのようなものだろう。講義資料によれば「Functionalとは種々の電気信号の役割を定義する。例えばグランド(接地)、データ、コントロール、タイミング。。。」なとなっているから、物理層で使用される媒体の各ケーブル(何もケーブルの形をしていないこともあるが)の役割の規定と考える(ちょっと自信がないが)例えばISDNであれば送信線が1対2本、受信線が1対2本である。これが同じく物理層の規定に含まれるRS-232Cとかであると線が多いぶんだけ話はややこしくなり、その役割は保安用接地 、送信データ 、 受信データ 、送信要求 、送信許可 、送信データあり、信号用接地 、データ・チャネル、、、もっと聞きたいですか?
さて最後の手続きであるが、物理層は名前と冒頭にあげた定義からすればとにかく「中身はわかんないけど、ビットの列だ」とデータを送ってあとはハード的な仕様を考えていればよさそうだが、実際はそうはいかない。場合によっては通信の起動・停止をおこなう際の手続きを決めておく必要が生じるのである。講義資料にはRS232Cの場合として(Call setup ,Data Transfer, Call Clear)という手続きが載っている。要するに片側から「おーいデータおくるぞー」といい、実際にデータを送り、最後に「はい。おしまい」という手続きであろう。(ちなみにX.21に関してはただ一行"Quite complicated"と書いてある。)
さてここで具体例をのせてみようか、、と思ったが手元にあるISDNの接続シーケンス図であってもちょっと写す気もしないほど複雑だ。なるほど、講義資料がQuite complicatedと書いていたのにはちゃんとわけがあるようだ。というわけであっさりと白旗をあげてしまおう。
さてだいたい以上で物理層の説明を終わる。現実問題として、他のシステムと本当に接続されているのは物理層だけだ。しかし彼は「ビット列はなんだか知らないけど送ったよ」という以上のことはしてくれない(それだけでも大変なのは見てきた通りだが)しかし勇ましい人はこう考えるかもしれない。
「とりあえずビット列を送ってくれるって?なるほど。あとはそのビット列送受機構(物理層のことだ)をつかって相手とデータのやりとりをすればいいわけね。よし。ネットワーク完成まであと一歩だ」
この論議はネットワークが非常に狭い範囲で、少ない台数のコンピュータだけを相手にしている場合にはそんなに間違っていない。今から10年以上前「RS-232Cを使ったパソコンネットワークについて」といった本を読んだことがある。そのなかでは実際にRS-232Cを直接制御して2台のコンピュータの間で文字のやりとりなどをしていた。
しかしながらインターネットのような世界中に広がるネットワークに何台のコンピューターがぶらさがっているが想像もつかないようなネットワークに相対するとき「あと一歩だ」と言うわけにはいかない。この規模ではネットワークというのは、2点を結ぶ線が複雑に接続されたところどころ関所がある網のように見える。あなたがアメリカのホストに接続して日本では手に入らないようなデータを入手しようと考えるとき(これが何かは深く考えないが)まだまだ道のりは遠いのである。千里の道も一歩から。とりあえずとなりの点(これはコンピュータかもしれないし、そうでないかもしれない)までの道をちゃんと通したい物である。
次にはその「隣の点までのデータ送受」を司ってくれる2層目のデータリンク層について述べる。