このページの本文へ

入門Ethernet 第3回

CSMA/CDと全二重通信の動きを知ろう

Ethernetで通信をスムーズに行なう工夫とは?

2009年06月26日 08時30分更新

文● 伊藤玄蕃

  • この記事をはてなブックマークに追加
  • 本文印刷

UTPケーブルとスイッチの登場

 前述の通り、CSMA/CD方式の通信制御の下では、どのノードも送信と受信の両方を行なうが、同時にはどちらか一方しか処理できない。このような通信形態を「半二重通信」と呼ぶ。半二重通信は、複数のノードが1本の同軸ケーブルに接続される10BASE5や10BASE2では、非常に効率的な通信方式だった。

 その後、伝送媒体にUTP(より対線)ケーブルを使う10BASE-Tが登場した。さらにリピータハブに代わるスイッチが登場したことにより、次のような変化が生じた。

 まず、UTPケーブルには信号線が2対あるため、1対ずつ送信と受信に分離して使用することができる。さらに、スイッチング技術により、ケーブルの両端にあるノード同士で送信ケーブルを占有し、他のノードが同時に送信してもフレームの衝突は生じなくなった。その結果、ケーブル上で信号の衝突が起こらない「全二重通信」が可能となる(図3)。

図3 半二重通信と全二重通信

 こうして10BASE-T以降のEthernetでは、全二重通信がサポートされるようになった。これらの規格のEthernetでは、CSMA/CD方式から以下のように通信制御の仕組みが変更されている。

 まず、UTPケーブルは送信と受信の経路が分離しているため、搬送波検知(Carrier Sense)は不要になった。さらに、ノードはスイッチと1対1で接続してケーブルを専有するため、衝突検出(Collision Detection)も必要ない。

 また半二重通信では、ある瞬間には受信または送信の一方だけしか行なわれていなかった。そのため、100BASE-TXのネットワークでは「上りまたは下りの両方を合わせて100Mbps」が最大の通信速度だった。ところが、全二重通信ではいつでも受信と送信を同時に行なえる。したがって、100BASE-TXのネットワークでは「上り100Mbps+下り100Mbps、両方を合わせて200Mbps」が最大の通信速度になる。このように、Ethernetの全二重通信には、ネットワークの実質的な速度(帯域)を半二重通信の2倍にするというメリットがある。

全二重通信とフロー制御

 これまでに、10BASE-Tや100BASE-TXなどの規格が登場してきたが、これらの最大の通信速度は異なっている。このような速度が異なるノードが存在している場合、ノード同士で通信するためには、次のような「フロー制御」が必要となる。

 たとえば、サーバが100Mbpsの伝送能力を持っている(100BASE-TX)のに対し、クライアントPCが10Mbpsの伝送能力しか持たない場合(10BASE-T)を考えてみよう。

 サーバから一気にクライアントにデータを送信すると、伝送能力(伝送速度)の差により、サーバとクライアントの間にあるスイッチのバッファが一杯になる。そこでスイッチは、データの取りこぼしを防ぐため、サーバに対して送信を一時的に停止するよう合図を送らなければならない。

 このとき、スイッチとサーバ間の通信が半二重通信(CSMA/CD)であれば、スイッチからジャム信号を送出して擬似的にコリジョン状態を作り出せばよい。あるいはスイッチがキャリア信号を出し続ける方法もある。いずれの場合でも、サーバは送信待機の状態になってデータの送信を停止する。その間にスイッチは、バッファに溜まったデータをクライアントに向けて送出し、バッファを空にする。

 一方、スイッチとサーバが全二重で通信している場合、ジャム信号やキャリア信号を送出しても、サーバはそれを認識しない。これは、全二重通信では原理的に衝突が発生しないため、搬送波検知や衝突検出機能が省略されたからである。

 そこで、「PAUSEフレーム」によるフロー制御が規定されている。これは、スイッチは受信バッファがいっぱいになると、サーバに向けてPAUSEフレームを送出する。そして、サーバはPAUSEフレームが送られている間は送信を中断して待機するという仕組みだ(図4)。このPAUSEフレームはマルチキャストのMACアドレスを用いており、スイッチを超えてLAN内のほかのセグメントへ流れることはない。

図4 全二重通信のPAUSEフレームの仕組み

 このような理由で、全二重通信とフロー制御は別々の技術であるのに、規格としては同じ IEEE802.3xとして統合されている。

(次ページ、「増え続ける通信モード」に続く)


 

カテゴリートップへ

この連載の記事