- - PR -
Ethernet全二重でコリジョンが発生しない、って本当ですか?
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-07-10 14:48
Ethernetの仕組みについて調べていたら、「全二重ではコリジョンが発生しない」という記述があちこちで見つかりました。
これって、同一のホストに対して複数のホストからの送信が発生した場合でもコリジョンにならないのでしょうか? A B C D の4台のホストが全二重スイッチングハブにつながっているとします。 A→B の送信が行われているとき、C→D の送信を開始してもコリジョンにならない、ということは分かります。 このとき、C→B の送信が発生したら、コリジョンが発生しそうに思うのですが。 詳説 TCP/IPプロトコル 第8回 (参照元記事URL)では、 「スイッチング・ハブは、…(中略)…中継先のポートにトラフィックがある場合は、フレームを内部に蓄えておいて後で中継することができる」 とあります。 これによってさらにコリジョンが発生しにくくなることは分かりますが、 あくまでバッファを使った回避であって、原理的にコリジョンが発生しないわけではない、と思うのですが。 バッファがあふれるくらいに送信が集中したらどうなるのでしょうか? このあたり、どういうことになっているのか、御存知の方がいらっしゃいましたら、 〜を見よ、ぐらいで構いませんから、よろしくお願いします。 | ||||
|
投稿日時: 2007-07-10 16:05
こんにちは。
ここに書かれていることは図示するとこういうことですが、理解できませんか? | ||||
|
投稿日時: 2007-07-10 16:14
一方,全二重方式はコリジョンが発生しない環境(スイッチングハブやブリッジによるコリジョンフリー環境)において用いられ,コリジョン検出回路が不要なためデータの送受信を同時に行うことができる.スイッチ上でパケットがぶつかる場合があるが,これはスイッチ上にパケットをキャッシュすることで,回避している. ※ Full Duplex 10Mbps では送受信を別々の経路(UTP の別々のワイヤ)を使うため,コリジョンが発生せず, 100% のパフォーマンス(Tx/Rx 合計 20Mbps)が発揮できる * http://www.iis.elec.fuk.kindai.ac.jp/~sira/index.php?%A5%A4%A5%F3%A5%BF%A1%BC%A5%CD%A5%C3%A5%C8%B9%A9%B3%D8%2F2005-04-27 より | ||||
|
投稿日時: 2007-07-10 16:38
全二重でのフロー制御なら、「IEEE802.3x」について調べてみると幸せになれるかもしれません。
| ||||
|
投稿日時: 2007-07-10 21:51
>バッファがあふれるくらいに送信が集中したらどうなるのでしょうか?
フレーム破棄が発生しますが、コリジョンとは状態が異なります。 私の理解の範囲ですが、コリジョン検出では、メディア電圧をチェックしています。 コリジョン検出対象のメディア内のフレーム存在数が増加し、電圧が閾値に達すると、 電圧が正常になるまで送信を抑制します。 このコリジョン検出の論理から、Ethernetフレームサイズが決められています。 フレームサイズが小さすぎると、電圧の変化が検出しにくいし、 フレームサイズが大きいと、電圧の変化が大きく、コリジョンと間違えます。 よって、外部からのノイズなどの影響を受けにくい同軸やツイストペアケーブル が使用されることになります。 # いにしえの10Base5では、もう少し難しい処理をしているようで、 # メディアの何m先でコリジョンが発生したかまで分かる仕組みのようです。 # と言っても、私が最後に10Base5を見たのは、5年前のビル管理システムです。 転じて全二重のEthernetでは、機器がバックプレッシャに対応しており、 これが有効になっている状態でバッファがフルになると、送信抑制信号を出します。 卒論頑張ってくださいね。 _________________ _福田太郎_ | ||||
|
投稿日時: 2007-07-11 00:58
原理的に、コリジョンは発生しません。 # というか、全二重では一本の電線につながっている送信デバイスが一個しかないので、 # コリジョンを発生させたいと望んでも実現できません。 複数のフレームが同じタイミングで競合した場合は、 (1) 即座に送れない分は、バッファに溜めておいて後で送る。 (2) バッファがあふれた場合は、黙って捨てる。 ということになります。 半二重と全二重の差は、コリジョンが発生するとA→BとC→Bの両方のフレームが失われるが、 「黙って捨てる」方式ならどちらか片方は無事に伝送されることです。 | ||||
|
投稿日時: 2007-07-11 21:58
御回答くださった方々、ありがとうございます。
おかげさまで、なんとか理解できたと思います。 とりあえず、「コリジョン」という言葉の認識がズレていたようです。 「送信の衝突」のことだと思っていたのですが、 「信号線に同時に複数の送信信号が出ること」というのが正しいのですね。 全二重の場合、「送信の衝突」は発生するが、「信号線に同時に複数の送信信号が出ること」はありえない。(→よって、「コリジョン」は発生しない) 全二重の場合、「送信の衝突」は、ハブ内では検出できるがホストのIFでは検出できない。 「送信の衝突」をハブ内で検出したとき、ハブ内でバッファに溜めておいて再送を試み、 あふれた場合は破棄して送信抑制信号を出す。 だいたい、このようなものであると理解できました。 皆様、ありがとうございました。 | ||||
|
投稿日時: 2007-07-12 00:39
以前、リピータハブに同じスイッチングハブから出力されているLANをつないで、ネットワーク障害が起こったので、てっきり二重化はできないと思ってました。
非常に勉強になります。 最近のハブはインテリジェントになってきましたね。 |