みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

EthernetのCSMA/CDに関して

[7]EthernetのCSMA/CDに関して

CSMA(搬送波感知多重アクセス)では、
信号を送る前にケーブル上を他の信号が流れていないかをチェックしてから信号を送る

どういう方法で他の信号が流れているかいないかをチェックしているのか?

他の信号との衝突を避けるため一定の間隔を空けてデータを送信

一定の間隔はどういう計算式で導くの?
また、具体的な時間はどのくらい?

CSMAで信号が流れていない事を確認しても
同時に2台のPCが信号を送り出すと信号の衝突は
避けることが出来ない為、信号の衝突に気付いた
PCが衝突の発生を知らせる為のジャム信号を送信する。
リピータハブも同様に信号の衝突が発生すると
ジャム信号で全てのPCに知らせる。

ひたすら衝突した場合にはどうなるの??

以上

よろしくお願いします

投稿日時 - 2004-07-05 18:41:39

QNo.915696

暇なときに回答ください

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

今長~~~~いケーブルの両端にNIC-AとNIC-Bがあったとします。衝突検出は次のシナリオを見てください

1) NIC-A送信開始
2) NIC-Aの送信開始を知らずにNIC-B送信開始
(ケーブルが長いため伝播に時間が掛かる。ハブが入っていたらもっと遅くなる)
3) NIC-Bは送信中に衝突検出
4) NIC-B送信中断&衝突知らせ
5) NIC-A衝突知らせを受け取る。送信中断
6) NIC-A, NIC-B乱数により待機。
(ルーターなど優先度の高い機器は高い確率で送信権を得られる)
7) 再送信

ここで重要なのはケーブルの端っこにあるNICが衝突を検出できるためにはケーブル長の2倍を伝播する時間を最低みる必要があるということです。イーサネットフレームを送信完了してしまう前に衝突検出ができなかったら、NIC-AはNIC-Bとかち合っていることを知らないままになってしまいます。そのためフレーム長は最低64バイトと決められていて、これで時間稼ぎをしています。

また、メディアタイプ(10BaseT, 10Base5, etc)によって伝播時間は異なるので、それぞれケーブル最大長、ハブの数に制限があります。

再試行は最大16回ですので、ひたすら衝突した場合は16回目で諦めます。

私の拙い文章よりGoogleの方がいいでしょう...(^^;
参考URL等ご覧ください。

参考URL:http://www.google.co.jp/search?q=cache:NC4-owiL5dAJ:www.melma.com/mag/01/m00017301/a00000095.html+%E3%82%A4%E3%83%BC%E3%

投稿日時 - 2004-07-08 06:27:30

ANo.1

>どういう方法で他の信号が流れているかいないかをチェックしているのか?

ひたすら受信をしています。

>他の信号との衝突を避けるため一定の間隔を空けてデータを送信

これは勘違いです。通常は必要ありません。
万一衝突が起こったときに、衝突した複数の局がそれぞれ乱数を引いて
その乱数の時間だけ待って、そのとき誰も送信していなければ送信に行きます。

再び衝突が起きると再度乱数を引きます。
従って永久に衝突しつづけることはありません。

投稿日時 - 2004-07-05 19:07:04

あなたにオススメの質問