送信と受信で別々の線を使う

 次は10BASE-Tと100BASE-TXに話を移そう。ここで説明する内容に関しては,10BASE-Tと100BASE-TXで基本的に違いはないので,以下では100BASE-TXで話を進める。

 まずはケーブルの話からはじめよう。100BASE-TXではより対線ケーブル(UTP ケーブル)を利用する。

 UTPケーブルは,見た目は1本のケーブルだが,中には8本の導線が入っている。ただ,100BASE-TXではこのうち2組だけしか使わない。1組を送信専用線,もう1組を受信専用線として利用する。この別々の導線を使うという点が第1のポイントである。

 第2のポイントは,ケーブル当たりの接続台数である。100BASE-TXは1本のケーブルの両端に1台ずつ,2台の端末しか接続しない。パソコンを3台以上つなぐためには,必ずリピータ・ハブ(ハブ)が必要になる。そしてこのリピータ・ハブこそが100BASE-TXにおけるCSMA/CDの動作で中心的役割を果たすのである。

送信中に受信するとコリジョン発生

図2 現在のイーサネット(10BASE-Tや100BASE-TX)では電気信号の衝突は起こらない
10BASE-Tや100BASE-TXの場合,10BASE5と異なり1本のケーブルには1台の端末しかつながらず,送信と受信も別々の導線を使うのでフレームは電気的にはぶつからない。
 具体的に,100BASE-TXにおけるCSMA/CDの動作を見ていこう(図2[拡大表示])。パソコンAがパソコンBにフレームを送信するケースを考える。

 まずAは,フレームを送信できるかどうかを調べる(1)。どうやって調べるかというと,受信線に信号が届いていないかをチェックする。

 受信線に信号が届いていなければ,Aは一瞬待ってからフレームの送信を始める(2)。このあたりは10BASE5のときと変わらない。ただし,送信フレームは先ほどチェックしたのとは別の線である送信線から送り出す。

 Aが送信した信号はリピータ・ハブに届く。リピータ・ハブはAがつながるポートから受信した信号をA以外のポートにコピーして送信する(3)。

 うまくいけば,このままAの送信は完了するが,(1)の段階でほかのパソコン(図2ではB)も信号を送信できると判断し,はぼ同時に送信し始めてしまうことがある(4)。すると問題が発生する。

 ただ,10BASE5のときと異なり,100BASE-TXの場合,Aが送信する信号とBが送信する信号は通る導線が異なるので,AとBの間では電気信号の衝突は決して起こらない。

 にもかかわらず100BASE-TXでは,「信号を送信中に受信線から信号を受信したらコリジョンが起こったと判断する」と決めているのである。ここが,Part1のキモである。

 なぜこのようなしくみにしなければならないかというと,リピータ・ハブは,別々のポートで同時に受信した複数の信号を処理できないからだ。つまりパソコンは送受信を同時に(全2重通信)できるが,リピータ・ハブではこれができない。したがってリピータ・ハブを使った100BASE-TXでは,疑似的にコリジョン状態を作り出し,送信と受信が同時にできないようにしているのである。

ハブが問題発生を全端末に伝える

 コリジョンが起こったあとの動作に進もう。コリジョンを検出したBは,フレームの送信を直ちにやめ,代わりにジャム信号を送信する(6)。ジャム信号を送信するのは,自分以外のパソコンやリピータ・ハブにコリジョンが発生したことを正しく伝えるためだ。もしジャム信号を流さないと,Bが送出したフレームの「かけら」をリピータ・ハブやAが短すぎて検出できない可能性がある。

 Bが送信したジャム信号は,リピータ・ハブに届く。するとリピータ・ハブはまだAからの信号を送信している最中にBからの信号を受信したことにより,コリジョンが発生したと判断する。そして,リピータ・ハブは全ポートに対してジャム信号を送出する(7)。

 またリピータ・ハブからのジャム信号はAにも届く。Aも自分で信号を送信している最中になんらかの信号を受信したということでコリジョンが起こったと判断して,ジャム信号を送出する(8)。

 最終的にAとBはフレームの送出をやめ,ランダムな時間待ってから再開する(9)。以上が100BASE-TXにおけるCSMA/CDの動作である。