崩れ具合が閾値以下である可能性も無視できないのです。 その結果、 C は送信を継続してしまいます。 フレームを再送するには、ます、すべての局が送信をと りやめる必要があります ( 当り前ですね ) 。そのためには、 衝突に気づいた局が順次送信をとりやめるよりも、衝突に 気づいた局がジャムパターンを送って衝突状態を強化した ほうが早くメディアが空くのです。ジャムパターンはたか だか 48 ピットですが、フレームは最大 10 , 000 ピット以上 あることを思い出してください。 受信手順 キャリアが検出されるのを待ちます。 キャリアが検出されたら、物理層が受信したフレームの ビットを順に渡してくれるのでそれを溜めてゆきます。キ ャリアがオフになれば、フレームの終端です。 54 連載 ーフ 図 4 衝突の発生とオロ UNIX Communication Notes A も送信を始めた A の信号 衝突している C が送信している C の信号 衝突している 気づいていない C はまだ衝突に 受信したフレームのサイズが ( ビットで数えて ) 8 の倍 数でなければ、末尾を切り捨てます。 Ethernet で送るデー タはオクテット単位ですから、最後の 8 オクテット以下の 余りはゴミにちがいないとみなされます。 次に、フレームサイズを調べます。最小フレームサイズ は 64 オクテットなので、これ以下のフレームは衝突など で破壊されたフレーム断片と考えて捨てます。 すでに説明したとおり、自分宛でないフレームを捨てた り、内容が壊れていないかを調べたりするのは 1 つ上の層 なので、 この層はサイズのチェックさえとおればそのフ レームを上位層仕位層インターフェイス部 ) に渡します。 物理層を直接駆動する部分です。 Ethernet インタ 工ンコード / デコード部 UNIX MAGAZINE 1990.8
連載 ZUNIX Commurwation Notes—O うのは IEEE 802 の用語なのですが、 IEEE 802.3 におけ る MAC とは CSMA/CD 方式でのメディアアクセスを 司る部分ですから、上で、、リンク制御〃という名前で説明 したところにあたります。物理層で扱うのが、、信号〃であ ったのに対し、 MAC 層で扱うのはフレームです。プリッ ジの一方から来た信号は復調され、フレームとしての形で プリッジ内に蓄えられます。このとき、フレームの形をな していない復調結果は捨てられます。そして、そのフレー ムは再度 CSMA / CD の作法にのっとってプリッジの他 方の側に送出されます。 最小フレームサイズ CSMA/CD のプロトコルとしての概略は以上ですが、 実際に動くためには多数の詳細な規定を追加する必要があ ります。 とくに重要なのが、フレーム先頭のピット消失の量と伝 送遅延です。トランシーバやリピータで失われてもかまわ ないピット数の上限が規定されています。 CSMA / CD の中核は衝突が起きたら検出できることで すが、これを保証するには伝送遅延の最大値と最小フレー ムサイズを規定する必要があります。 2 つの局間の最大往 復遅延時間は 46.3 跏 s となっています。これは、ある局 A が送り出したフレームの先頭がもっとも遠い局 B に届く ときには、 A はフレームの 232 ビット目を送り出している ということです。 ここで衝突が起きたとして、それが A に伝わるにはさら に 23.1 眇 s を要しますから、衝突が起きたのを知るのは最 悪の場合、 464 ビット目を送出しているときになります。 464 ピットより短いフレームを送ると、それが衝突したと いう信号が届くより先にフレームの送信を完了してしまう おそれがあります。そこで、 Ethernet の最小フレームサイ ズはプリアンプルを含めて 576 ビットとなっています。逆 算すると、 Ethernet で送るデータは 46 オクテット以上で なければなりません。 IP データグラムの最小長は 46 オク テットよりも小さいので、そのような IP データグラムを 送るときには後ろに余分なデータをつけて 46 バイトに水 増しします。 最大遅延時間と最小フレームサイズは、互いに依存関係 にあります。ネットワークの規模を大きくしようとすれば 58 図 8 LLC のリ LLC タイプ 誤り制御 コネクション 1 なし なし あり あり 2 あり なし 3 遅延時間が長くなり、最小フレームサイズを大きくする必 要が出てきます。 ARP る場合は、 IEEE 802.2 を IP 層がアクセスすることにな を参照してください ) 。 IEEE 802 ネットワークを使用す すときは、すこし様子が異なります ( 詳細は RFC 1042 [ 2 ] でした。 IEEE 802 ネットワークに IP データグラムを流 net フレームのデータ部分にデータグラムを嵌め込むだけ IP データグラムを Ethernet で送るときには、 Ether- LLC タイプ 1 、アドレス長 6 オクテットを指定します。 IEEE 802.3 を使用する場合は、 IEEE 802.2 に対して IP からの IEEE802 の使用法 っています。 照 ) 。また、アドレスのサイズも 2 または 6 オクテットとな のですから、 LLC の種別という概念があります ( 図 8 参 IEEE 802 は複数の形態のネットワークを統合したも IEEE 802.3 IP データグラムを含んだフレームを A に送ります。 ができます。 B のハードウェア・アドレスを知った A は、 れていますから、 B は A に Ethernet フレームを送ること た ARP フレームには A のハードウェア・アドレスが含ま は、 A に自分の Ethernet アドレスを教えます。 A が送っ スト・フレームを送ります。これを受けとったホスト B ト A は、ます ARP プロトコルの Ethernet プロードキャ せます。ホスト B に IP データグラムを送ろうとしたホス ARP というプロトコルを用いて物理アドレスを問い合わ ホストのハードウェア・アドレスを知る方法です。そこで、 ータグラムを入れます。問題は、 IP アドレスをもっている イプフィールドを 2 , 048 にセットしてデータ部分に IP デ IP データグラムを Ethernet で運ぶには、フレームのタ UNIX MAGAZINE 1990.8
連載 UNIX Communcation Notes— 図 9 旧 EE802.3 フレームへの旧データグラムの格納 MAC ヘッダ 802.2LLC 宛先 送り元 length 46 ~ 158 オクテット フレーム シーケンス 802.3 フレーム ヘッダ DSAP SSAP Con げ 802.2SNAP サプレイヤ 0 「 g COde Ethertype 802.2LCC サプレイヤ ります。 IP データグラムは IEEE 802.2 の SNAP(Sub- Network Access Protocol) 、 LLC サプレイヤを経由し て IEEE 802.3 に届きます ( 図 9 ) 。 SNAP ヘッダは 5 オ クテットで、 3 オクテットの組織コードと 2 オクテットの Ethertype コードからなります。組織コードは 0 です。 Ethertype コードは、 IP の場合 2 , 048 (ARP だと 2 , 054 ) です。これで、このバケットのなかのデータが、 IP(ARP) データグラムであることを示します。次に、 3 オクテット の SAP (Service Access Point) ヘッダが付加されます。 このヘッダは、送り先と送信元の Link Service Access Point を指定するもので、 SNAP 層間でのやりとりがおこ なわれますから 170 が入ります。 ControI は、 Unnumber- ed lnformation という意味で 3 を入れます。 これらの番号は、 RFC 1010 [ 3 ] 「 Assigned Numbers 」 3 に書かれています。 このように、 IP データグラムは 8 オクテットのヘッダが ついた状態で IEEE 802.3 に渡されます。 IEEE 802.3 層 では、先頭に送り先と送信元のアドレス 12 オクテットと フレームサイズ 2 オクテットを、末尾にフレーム検査シー ケンス 4 オクテットをつけてフレームを作成します。 IP デ ータグラムを IEEE 802 ネットワークに載せる場合、 LLC と SNAP ヘッダで 8 オクテットが消費されますから、最 大バケットサイズがそれだけ小さくなります。 Ethernet では 1 , 500 オクテットまでの IP データグラムを扱うこと ができますが、 IEEE 802.3 では 1 , 492 オクテットまでに 3 Assigned Numbers は、史新が激しい RFC です。 RFC 990 、 960 、 943 、 923 、 900 、 870 、 820 、 790 、 776 、 770 、 762 、 758 、 755 、 750 、 739 、 604 、 503 、 433 、 349 はすべて Assigned Numbers の RFC ですから、史新がいかに激しい かがわかるでしよう。 UNIX MAGAZINE 1990.8 802.2SNAP IEEE 802.3 が受信するとフレーム長が不正になります レームは捨てられます。逆に Ethernet のフレームを して解釈すると未知のプロトコル番号になるため、そのフ ません。 IEEE 802.3 のフレームを Ethernet フレームと す。したがって、混在しても相互に邪魔をすることはあり 書かれる値はこの範囲からはすれたものが規定されていま ィールドの内容は 0 ~ 1 , 500 までで、タイプフィールドに Ethernet ではタイプフィールドとなっています。サイズフ IEEE 802 . 3 でフレームサイズが入るフィールドは 続できますが、相互に通信することはできません。 ネットワークが実装された計算機は同しネットワークに接 す。 IEEE 802.3 の上に IP データグラムを載せるように UNIX の実装では Ethernet のプロトコルを用いていま 双方の規格を同時に満たす機材が売られています。現在の となっています。ただし、物理層の規格はほとんど同しで、 ータリンク層のプロトコルが違うために互換性のないもの IEEE 802.3 は Ethernet を規格化したものですが、デ だけのことです。 役割がネットワーク層からデータリンク層に移ったという 規定が盛り込まれました。これは、パディングをおこなう レームサイズの制限を満たすために、パディングデータの IEEE 802.3 には制限がありません。そのかわり、最小フ Ethernet では最小データサイズの規定がありますが、 なってしまいます。 グラム IP データ オクテット ~ 1492 IP ヘッダ ヘッダ から、やはりこのフレームは捨てられます。 トランシーバの違い 55 ページの図 5 ( C ) が IEEE 802 . 3 のトランシー ノヾク ) コ 59
連載 UNIX Communication Notes 、、がったフレームをリンク管理部に渡します。リンク管理部 が送信に失敗したら、それを上位層に伝えます。 実際には、 Ethernet インターフェイス・ポードが送信工 ラー割込みを起こし、デバイスドライバがそれを検出しま Ethernet インターフェイス・ポードのホストに近い側 す。残念ながら、送信に失敗したことは分かっても以前に と、ホストの Ethernet ポード・ドライバでおこなわれる処 出力待ち行列に入れたどのフレームに対応するエラーなの 理です。 かは判別できません。そのため、この層で検出された送信 送信処理 工ラーはさらに上位層 ()P 層や TCP 層 ) に伝わらないの が普通です。 アドレス、タイプ、データを連結してフレームを組み立 ただし、ネットワーク・インターフェイスごとの統計情報 て、 CRC を計算します。上でチェックピットといったのは には反映されます。これは、次のように netstat -i で見る 正しくは、、フレーム検査シーケンス〃で、フレームが壊れ ことができます。 ていないかを調べるために用いられます。こうしてできあ lerrs Opkts Oerrs C011is Net/Dest lpkts Address Name Mtu 189 1850947 4 2096043 24 un. iedit orne ie0 1500 807 2015624 0 201 67 110 ・ unimis cnet ed iel 1500 151533 0 0 0 prime sl 155359 uni-s10 S10 1006 上イ立層インターフェイス部 受 100000100110000010001110110110111 をキーに使う方式だということだけ理解していれは十分で リンク管理部から渡されたフレームのアドレス部を調べ す。つぎに、高校の数学で習った数式の因数分解もちょっ ます。リンク管理部はすべてのフレームを受信する点に注 と思い出してください。ただし、桁下がりのない割算をお 意してください。フレームの宛先アドレスが自分のアドレ こないます。結局、排他的論理和をおこなうのと同しで、 スでも同報アドレスでもなけれは、そのフレームは捨てま 0 ー 0 = 0 、 1 ー 1 = 0 、 1 ー 0 = 1 、 0 ー 1 = 1 というルールです。たと す。次に CRC チェックをおこない、フレームが壊れていた えは、 X5 十 X3 十 1 を X3 十 X2 十 1 で割ると、 らこれも捨ててしまいます。これらのチェックをすべて通 過したらフレームのタイプフィールドを調べ、そこで示さ X2 十 X れる上位層にフレームに含まれるデータや送り元アドレス X3 十 X2 十 1 を渡します。 X5 十 X4 十 X2 CRC(CycIic Redundant Check) X4 十 X3 十 X2 X4 十 X3 CRC について簡単に説明します。 X2 十 X 十 1 Ethernet で誤り検出のために用いられる CRC は 32 X2 十 X 余り X2 十 X 十 1 となります。余りの係数に注目す ビットのもので、生成多項式は、 ると、 111 になりますね。 X32 十 X26 十 X23 十 X22 十 X16 十 X12 十 X11 十 X10 十 X8 十 X7 十 さて CRC の算出ですが、送るデータ本を係数が 1 か X5 十 X4 十 X2 十 X 十 1 0 である多項式だと考えます。たとえはアスキーの文字列 です。、、生成多項式〃と呼ぶのは、、、それをもとにある巡回符 、、 ASCII" だと ( 下位ビットから先に送るとして ) 、 号が作り出される式〃だからです。詳細は、符号理論の巡 1000001011001010110000101001001010010010 回符号のところを勉強しなければなりません。 こでは、 ですから、 X39 十 X33 十 X31 十・・・・・・十 X4 十 X となります。 生成多項式の係数からなる 2 進数、 れに X32 を乗した多項式 X デ 1 十 X65 十 X63 十・・・・・・十 X36 十 十 1 十 1 52 UNIX MAGAZINE 1990.8
連載 UN Ⅸ Commurication Notes 図 2 Ethernet の構ミ当 l) トランシー / ヾ ています。これはデータリンク層のなかでのフレーム形式 同軸ケープル ターミネータ とデータです。 であり、一日立層とやりとりするのは宛先アドレス、タイプ UNIX MAGAZINE 1990.8 net ) を共有しています。 含まれます。そして、これらは同しデータリンク層 ( Ether - り、 IP だけでなく ICMP や ARP といったプロトコルが また、 TCP/IP 自体も複数のプロトコルの集合体であ に通信することはできませんが ) 。 に接続してもまったく支障なく動作します ( もちろん相互 Xerox のワークステーションを同し Ethernet ケープル を使う UNIX ワークステーションと XNS を使う し Ethernet 上で混在できるのです。たとえば、 TCP/IP このタイプフィールドのおかげで、複数のプロトコルが同 タイプフィールドは上位層を識別するために使われます。 ます。 1 の場合は全局に対する送信 ( プロードキャスト ) となり とになります。とくに、宛先アドレスのすべてのビットが ットが偶数か奇数かで同報フレームかどうかカ俵されるこ 送ることになっていますから、宛先アドレスの第 1 オクテ す。 Ethernet では、バイトのなかのビットは下位から順に ームです。 1 のフレームは、複数の局に宛てたフレームで 最初のビットが 0 のフレームは、特定の局に宛てたフレ からの出荷時にあらかしめ設定されます。 が多いようです。 IP アドレスとはまったく無関係で、工場 net の物理アドレスは、 Ethernet アドレスと呼ばれること ターフェイス・ポードがもつアドレスです。とくに Ether- レスなどと呼ばれるもので、計算機のネットワーク・イン ここでのアドレスは MAC アドレスあるいは物理アド 図 3 Ethernet のフレーム形式 8 ビット 同報ビット 宛先アドレス 送り元アドレス タイプ アドレス管理 フレーム検査 シーケンス 6 オクテット 6 オクテット 2 オクテット 46 ~ 1500 オクテット 4 オクテット Ethernet にとって、各インターフェイス・ポードが異な るアドレスをもっことは重要です。これがなければまとも な通信はできません。 IEEE 802.3 では、 IEEE がアドレ スを管理 2 することによってアドレスの重複が起こりえな いようにしています。 Ethernet アドレスは 6 オクテット ですが、先頭の 3 オクテットをベンダーコードとしていま す。 Ethernet インターフェイス装置を製造する企業は、 IEEE に申請してべンダーコードを取得します。そして、そ の会社が責任をもって自社の製品のアドレスの下位 3 オク テットに異なる番号をつけます。もちろん、上位 3 オクテ ットには自社に割り振られたべンダーコードを入れます。 この方式を、、グローバル・アドレス方式〃といいますが、 これとは別に、、ローカル・アドレス方式〃というものもあ ります。これは、ネットワーク管理者がそれぞれの計算機 の Ethernet アドレスを割り振る方式で、ネットワーク上 の位置を反映するようにアドレスを割り当てて経路制御 情報として用います。もっとも、ローカル・アドレス方式 は IEEE 802 て導入されたもので、 Ethernet ではグロー バル・アドレス方式しかありません。 2 IEEE 802.3 の国際規格になるまでは、 Xerox が管理していました 51
連載 UN Ⅸ Communication Notes 図 6 マンチェスタ符号化とプリアンプル 0 0 0 0 0 マンチェスタ符号化 0000 ・・・と 1111 ・・・は同し波形 0 0 0 100nS プリアンプル ちらかに信号が現れていたら、キャリア検出とします。 トランシー′ヾ 送信手順 Ethernet ケープルへの出力は、オフ、 L ( 低電圧 ) 、 H ( 高 電圧 ) の 3 状態があります。 Ethernet Version 2 では無信 号状態は OV 、 L と H はそれぞれ一 2.05V 、 OV です。 Ether- 送信とは逆に、 Ethernet ケープルレベルの信号を平衡 net Version 1 ではすこし異なっていて、 L と H はそれぞ 差重川言号に変換します。ただし、キャリアが検出されてい れ一 1 .825V 、一 0.225V です。トランシーバの出力部分は、 ないときには ( ノイズでしようから ) オフにします。 平衡差重川言号で受け取った送信データを Ethernet ケープ 衝突検出 ルに送り出します。これは、たんなる電圧レベル変換だけ です。ただし、局側の占章に対する防御のため、最大フレ 複数の局がデータを出力しているということは、時間的 ームサイズ以上の時間連続して送信データが莎えられた に 50 % の比率でオンになる一 2.05V の高さの信号が 1 本 らデータを Ethernet ケープルに送り出すのを中止します。 のケープルに複数出力されていることになります。結果と して、平均電圧は一 1 .05V より大きくなり一 2.05V に近づ キャリアセンスの手段 きます。ですから、衝突検出はキャリア検出と同し手段で、 Ethernet インターフェイス・ポードでは、受信データと 判断基準を一 1.5V あたりに変えるだけでおこなえます。衝 衝突からキャリアセンスを合成していましたが、トランシ 突状態は、 10MHz の方形波で知らせます。 ーバでは真の意味でのキャリアセンスが可能です。 トランシーバではキャリア検出、受信データ、衝突検出 マンチェスタ符合化した後では L と H は等量含まれま の 3 つをもっているのに、キャリア検出は局側には伝えら すから、使用中の Ethernet ケープルの平均電圧は一 1 .05V れません。理由は定かではありませんが、たぶん無駄だか 程度になります。 らでしよう。 Ethernet ケープルの状態には、、、空いている〃 このように、キャリアセンスは波形や位相とはまったく 無関係にたんなる平均電圧の監視だけでおこなえます。 Ethernet フレームにフレームサイズのフィールドがない ことを思い出してください。フレームの終りは信号が跡切 れる ( したがってキャリアがオフになる ) ことで表される ので、バイト数をフレーム内にもっ必要がないのです。 56 UNIX MAGAZINE 1990.8
連載 //UN Ⅸ Communic atlon Notes—の X33 を生成多項式で割った剰余を求めます。生成多項式が 32 次ですから、 31 次の剰余が得られます。余りの式の係数 ( 1 か 0 ) を取り出したのが CRC 値です。 送る情報 ( に対応する多項式 ) を l(x) 、生成多項式を G (x) 、剰余を R (x) としましよう。 I(x)X32 三 G(x)Q(x) + R(x) となります。ここで、送る情報の末尾に CRC をつけたもの に対応する多項式は I ( x ) X32 十 R ( x ) となり、これが相手 に送られます。受け取った側で、それを G ( x ) で割った余 りを計算すると、 I(x)X32 十 R(x) (G (x ) Q ( x) 十 R (x ) ) 十 R (x) G(x)Q(x) 0 ( mod G (x) ) となり、割り切れます。割り切れなけれはデータのどこか が壊れているわけです。 CRC は、 Ethernet だけでなく多くのプロトコルの誤り 検出にも用いられています。また、フロッピーディスクや ハードディスクなどでも用いられています。ソフトウェア で計算するのは時間がかかるのですが、ハードウェアなら シフトレジスタと EX-OR ゲートで簡単に計算できます。 そこで、 CRC はデータリンク層のようなハードウェアが 使用できるところでよく用いられます。ひとくちに CRC といってもその生成多項式は多様ですが、 CCITT が勧告 している生成多項式が X16 十 X12 十 X5 十 X 十 1 の 16 ビッ トのものがよく用いられます。 Ethernet で 32 ビット CRC が用いられているのは、最大フレーム長が 1 , 518 バ イトにもなるので、壊れたフレームに対する CRC が偶然 合ってしまうことを防ぐためなのでしよう。フレームの一 部分だけが壊れている場合、その範囲が 32 ビット以内な らは壊れていることをかならす検出できます。 リンク制御部 データリンク層以上で扱うのがオクテット ( バイト ) 列 であり、また構造をもっているフレームです。リンク制御 部はそれをピット列に変えて物理層を駆動します。物理層 にとってはフレームはピットが並んだだけのもので、どの UNIX MAGAZINE 1990.8 部分がアドレスかということは関知しません。 送信手順 CSMA/CD の本質的な部分です。キャリアが検出され ていたらそれがオフになり、さらに 9.64S 経過するのを待 ちます一一 - これは、最小フレーム間隔です。そして、フレ ームの各ビットを物理層に渡します ( 送信します ) 。このと き、コリジョンが起こっているかをつねに監視します。コ リジョン発生を検知したらただちに送信を中断します。そ して、コリジョンを確実に全部の局カ鹸出できるようにジ ャムパターンを送信し、規定の時間だけ待ちます。そして、 ふたたび最初に戻って送信を試みます。 同しタイミングで再送したらまたぶつかるだけなので、 待ち時間は乱数で決定します。ただし、メディアの混雑を 緩和するため、 1 回目は 0 から 2 、 2 回目は 0 から 4 、 3 回目は 0 から 8 ・・ 、と乱数の発生範囲を再送の回数に応 して倍倍にしていきます。乱数は一様乱数です。待ち時間 の単位は 512 ビットを送るのに必要な時間一一すなわち 10Mbps では 51.2 s で、ユニット時間の発生させた乱数 値倍待ちます。 送信再試行は最大 15 回で、 ( 最初の送信を入れて ) 16 回 連続して失敗したら送信工ラーとして上位層インターフェ イス部に伝えます。 ジャムパターンは、 32 ビット以上 48 ビット以下の任意 のデータです。ここで、なぜジャムパターンの送信が必要 なのかを考えてみます。ます、信号が衝突してもすぐにコ リジョンは検出されません。たまたま波形が暴れたり歪ん だりしただけの衝突していない信号を衝突と誤認しないよ うな回路になっていますから、衝突検出信号がオンになる のは衝突発生からすこし遅れます。 また、局ごとに受信信号が異なることがあります ( 図 4 参 ・ . 、、 ) 。信号は光速でしか伝わりません。 10Mbps で 1 ビット ぶんの時間は 100nS ですが、このあいだに真空中の光です ら 30m しか進みません。すなわち、送信中の各局では、自 分が今まさに送信している信号と他局がすこし前に送信し た信号との合成信号を観察することになります。 局 A と局 C が同時に送信した場合を考えます。ここで、 A は送信開始後すぐにコリジョンを検出して送信をとりや めたとしましよう。 C もまた衝突を検出するかというと、 そうとはかぎりません。 C は A とは違ったタイミングで重 ね合わされた波形を観察していますから、たまたま信号の 53
連載 /UNIX Commumcation Notes 図ー旧 EE802 の体系 802.3 CSMA/CD 802 」 802.2 LLC 802.4 トークンバス 802.5 トークンリング LLC データ リンク 層 物理層 MAC ータを送信する方式でした。無線の最大の問題点は、衝突 検出ができないことです。電波は距離の 2 乗に比例して減 衰しますから、ほかの局が同時に送信していても、自分が 送信している電波に打ち消されて分からないわけです。 のため、相手局から返事が返ってくるかどうかで正しく相 手に届いたか判断し、返事がなけれは送します。多くの 局が同時に送信を試みる状況では衝突の頻度が高くなり、 媒体の有効利用率は 18 % 程度にしかなりません。 一方、利点もたくさんあります。 ・完全分散制御 ある局が停止しても、ほかの局同士の通信にはまったく 悪影響を与えません。また中央制御局がないため、ネッ トワーク開設時の初期投資額も安あがりです。 プロトコルが簡明 ・ ) 芯答速度が速い 送信権を得るための予備動作なしでいきなり送信できま すから、通信遅延時間が短くなります。反面、混んでき て衝突が生し始めると遅延時間が急激に悪化します。 媒体をケープルに代えると信号の減袞が少なくなり、衝 突の検出が可能になります。衝突が起きても検出できれば その時点で送信を打ち切ることができ、無駄も少しですみ ます。また、衝突を検出して送信を中断した後、引き続き 送信の再試行に入るので、衝突が起こったときの遅延時間 の増大があまりありません。 ALOHA では、、もし正しく届 いたら相手から返事力唳ってきているはすの時刻〃がくる までは衝突が起きたかどうかが分からないので、再送もそ の時間を過ぎるまでできません。ですから、 1 回の衝突が 大きな遅延を生みます。 Ethernet Ethernet はハードウェアとして同軸ケープル、トラン 、インターフェイス・ポードを使用します。 Ethernet の通信媒体は同軸ケープルです。同軸ケープ ルを駆動したり、信号を受信したりするのがトランシーバ で、これはケープルに取り付けられます。そして、計算機 のなかの Ethernet インターフェイス・ポードとトランシ ーバのあいだはトランシーパ・ケープルで結はれます ( 図 2 参照 ) 。機能的には Ethernet はデータリンク層と物理層 にあたりますが、上位層に近いほうから順に説明してゆき 50 ます。なお、ここでは説明の都合上から層を細分化してい ますが、 Ethernet の規格で定められた機能区分ではあり ません。 フレーム形式 図 3 に Ethernet のフレーム形式を示します。先頭に宛 先アドレス、次に送り元アドレスが 6 オクテットすつあり、 その後にフレームタイプ、データ、チェックピットと続い UNIX MAGAZINE 1990.8
連載 UN Ⅸ Communication Notes 合、 1 / 2 ピットぶん同期がすれると 1 の連続と間違ってし まうことです。このため、各フレームに先立って 64 ビット のプリアンプルを送ります。プリアンプルは、 10101010 ー 10101010 ー 10101010 ー 10101010 10101010 ー 10101010 ー 10101010 ー 10101011 です。 0 と 1 が交互に現れる場合には、符合化した結果は HL ー LH ー HL ・・・・・・となります。ビットの切れ目は電圧遷移 がピットの中央でだけ起こることから判断でき、復調回路 が同期します。その後の 11 ( LHLH ) でプリアンプルの終 りを示します。 信号が加わり始めてから復調回路が働き出すまでに時間 がかかるので、先頭の数ビットは失われます。 プリアンプルの役目は、同期をとるだけではありません。 リピータやトランシーバ ( 後述 ) で中継されるたびにフレ (A) ームの先頭ビットは失われてゆきます。宛先ホストの回路 がフレームを受け取ったときに、同期するのに足りるだけ ェイス・ポードのなかでも、トランシーパ・ケープルのコ ネクタに直接つながっている部分です。図 5 ( A ) に、 Ether- のプリアンプルが残っていなけれはなりません。 Ethernet net のトランシーバのコネクタと結線を示します。 でプリアンプルが 64 ヒ、ツトとなっているのは、トランシ ーバなどで失われるフレームの先頭のビット数の最悪値の トランシーパ・ケープルは、十 / ー 0.7V で平衡差動駆動し ます。送信データが 2 本ある点に注目してください。 2 本 規格と密接にかかわっています。 のケープルに互いに逆方向の電圧をつねに加え、その和が 送信手順 0 になるようにします。データがないときには 0V を出力 10Mbps ということは、 1 ビットぶんの時間は 100nS で します。受け取る側では、 2 本の線の電位差で十一を判別 す。、、 0 〃を送信するには、 50ns 間、、 H 〃を出力し、続いて します。並んで敷設された電線には、外部からノイズが乗 50ns 間、、 L クを出力します。、、 1 〃を送信するには、 50ns ったとしても双方に同しように乗ります。電位差に注目し 間、、 L クを出力し、続いて 50ns 間、、 H 〃を出力します。 ていれば、 2 本の線に同しように乗ったノイズ ( コモンモー ド・ノイズ ) は除去できます。 さて、 Ethernet ではべースパンドでデータを送ります 受信データのレベル変化を監視します。各ビットぶんの が、フレームのデジタル信号をそのまま送るのではなくマ 時間幅の中央で信号が L → H と変化すれは、、 1 〃、 H → L と ンチェスタ符号化を施してから送ります。マンチェスタ符 号への符号化と復号をおこなうのがエンコード / デコード 変化すれば、、 0 〃です。ただし、ピットとビットのあいだ でもレベル変化は起こるので信号と同期をとる必要があり 部の仕事です。 ます。復調したデータのうち、最初に 11 が現れるまではプ マンチェスタ符合化とプリアンプル リアンプルですから捨てます。 マンチェスタ符合化は、 1 を LH 、 0 を HL に対応づけ キャリアセンスの手段 ます ( 図 6 参照 ) 。たとえは、 0100 を符合化すると、 HLLH- HLHL となります。マンチェスタ符合化では、各ピットの トランシーバから供給されるのは受信データと衝突状態 通知だけです。衝突状態は、レベルではなく 10MHz の方 中央でかならす電圧の遷移が起こります。立ち上がりが 1 、 形波で知らされます。そこで、受信データか衝突検知のど 立ち下がりが 0 です。ここで間題なのは、 0 が連続した場 図 5 Ethenet のトランシーバのコネクタとケープルの結線 6 7 5 2 3 8 4 1 13 14 15 IEEE 802.3 衝突検出 + 送信データ十 受信ン一ルド 受信データ十 電源 ( ー ) 制御出力 + 制御出力シールド 衝突検出ー 送信データ 送信シールド 受信データ 電源 ( + ) 電源ン一ルド 制御出力ー (C) 12 11 9 10 Et hernet 衝突検出ン一ルド 衝突検出十 2 衝突検出十 送信データ十 3 送信データ + 受信ン一ルド 4 受信テータ十 5 受信データ十 6 電源 ( - ) 7 8 9 衝突検出ー 10 送信データ 12 受信データ 13 電源 ( + ) 14 15 衝突検出 - 送信データ 送信シ・一ルド 受信データ 電源 ( + ) 電源ン一ルド (B) 手 受 55 UNIX MAGAZINE 1990.8
図 7 Ethernet の構ミ告2) 2 地点間リンク ( 合計Ⅱ ) m まで ) リピータ リモートリピータ ノ / 連載 リピータが UNIX Communication Notes ケープルのどこかで送信された信号は、 拡張機材 伝わります。 ケープル全一本に 計算 ハーフリピータ 、、使用中〃の 2 種類しかありません。また、受信信号には、、正 常〃、、衝突している〃の 2 種類しかありません。合わせてみ ても、、、空いている〃、、使用中で衝突していない〃、、使用中で 衝突している〃の 3 種類しかありません。 3 種類の状態を 知らせるのに、受信、キャリア、衝突の 3 組の線を使うの はもったいないーーそういうわけで、受信データと衝突検 知の 2 つだけがトランシーバの出力として採用されたのだ と思います。 Ethernet ケープル トランシーバよりも下位というと、物理層そのもののケ ープルしかありません。 Ethernet ケープルは、持インピ ーダンスが 50Q の同軸ケープルで、両端を持性インピーダ ンスで終端したものです。、、終端するクというのはハード屋 の jargon で、この場合は、、ケープルの端で、芯線とシール ドのあいだに 50Q の抵抗を接続するクという意味です。 UNIX MÄGAZINE 1990.8 こまでに説明したのは、ケープルが 1 本の Ethernet でした。ネットワークの規模は、以下の電気的な性質によ り制限されます。 ・信号の減衰 ・信号の歪み ・信号の遅延 ケープルが 1 本のときには、信号の遅延は間題にはなり ません。逆にいうと、途中に中継増幅器を挟めばネットワ ークをさらに大きな規模に拡張できることが分かります ・衝突が起きているという状態 ・伝送されているデータ 伝えるのは、 リピータは、物理層での信号を中継します。 リピータ ( 図 7 参照 ) 。 Access Control) 層での中継をおこないます。 MAC とい MAC プリッジはその名のとおり、 MAC (Media プリッジ 継は最大 2 回しかおこなえません。 きるビット消失が原因です。そのため、リピータによる中 net ケープルの信号からいったん 1 / 0 に復調する過程で起 という点です。前者は、マンチェスタ符号化された Ether- れる 減衰が補われ、波形の歪みやタイミングの狂いも補正さ ・フレームの信号の先頭数ビットが失われる 相違は、 のは、ケープルを長く伸はすのとほとんど同しことです。 の 2 つです。リピータで 2 本のケープルを接続するという 57