アプリ版:「スタンプのみでお礼する」機能のリリースについて

http://www.atmarkit.co.jp/icd/root/54/5784554.html
このサイトのスイッチングハブの説明を読んでみて思ったこと

3つの方式カットスルー、フラグメントフリー、ストアアンドフォアード方式があります。

カットスルー、フラグメントフリー(64バイト未満)はコリジョンが起こる特性があるが
実際設計上はバッファがあるのでコリジョンは起こらないと思っていいのでしょうか?

A 回答 (6件)

失礼ながら、No.2,No.3の方々の回答は、不正確、或いは言葉が足りていません。

(回答内容がウソだ、というわけではありません。念のため)

とはいえ、私の最初の回答もあまり親切な書き方ではないので、少し補足します。

まず、スイッチングハブがコリジョンドメインを分断する(できる)というのは事実です(理由は後述します)。
しかし、これはスイッチングハブの各ポートにおいてコリジョンを検出するかどうかは別問題です。

スイッチングハブのポートが全二重の場合、これは送信と受信がそれぞれ専用の通信線を持っている形になりますので、コリジョン(衝突)は起こりません。
ポートが半二重で接続している場合は、送信・受信が同じ通信線を使っているかたちになりますので、特定のタイミングでは、送信/受信のどちらか一方しか行えません。この場合はコリジョンが発生しますので、スイッチングハブのポートはコリジョンを検出します。

次に、ポートにおけるコリジョンの有無と、スイッチングハブの転送方式の関係について説明します。

まず、ストアアンドフォワード方式ですが、これは比較的説明が簡単で、まずパケットを完全に受信してから別のポートに送信します。そのため、パケットを受信中に受信ポートでコリジョンを検出した場合、CSMA/CD の通信方式に従ってパケットを破棄します。その後、改めてパケットを受信し直してから別のポートに転送・送信しますので、ある意味最も素直な転送形式です。

次にカットアンドスルー方式ですが、これはパケット受信時に、「宛先MACアドレス」部分まで受信したら転送を始める、という点に注意が必要です。質問者さんが提示されたURL内に、「イーサネットでは、先頭の64bytesでコリジョンが発生しなければ、それ以後ではもう発生しない」という一文がありますが、逆に言えば64byteを受信しきらないうちは、途中でコリジョンを検出して転送しかけた受信パケットを破棄しなければならなくなる可能性があることを示します。転送中に受信ポートでコリジョンを検出した場合、送信ポート側でどのような処理をするのかは不勉強で知りませんが、おそらく送信を中断してジャミング信号を流すのだと思います。

このとき、ストアアンドフォワード方式、カットスルー方式のいずれの方式でも、転送先(送信側)ポートでは、受信側ポートとは独立してCSMA/CDのルールに従ってパケットの送信処理を試みます。例えば、受信側ポートでパケットの受信が完了しても、送信側でパケットデータ信号やコリジョン信号が検出されて送信できないような状態の場合、スイッチングハブ(ブリッジ)は送信を控えます。送信中にコリジョンが検出された場合は、送信を中断し、再送を試みます。このため、転送方式がどのようなものであれ、スイッチングハブ内にはある程度のバッファが必要になりますし、またこのような動作をするためにコリジョンドメインが分割されることになります。

モディファイド・カットスルー(フラグメントフリー)の説明内にある、「イーサネットでは、先頭の64bytesでコリジョンが発生しなければ、それ以後ではもう発生しない」という意味ですが、これはイーサネットの通信ルール上、このようなことがいえます。コリジョンは、自分が送信を開始してから、信号が規格上想定される最も遠方のノードまで届いてさらに折り返して来るまでの時間中に、他のノードが発信した信号が検出されると「発生した」と判断されます。逆に、信号が往復するまでの時間に別ノードの信号が検出されなければ、相手にパケットが届いたと判断されます。この時間が、64byte送信分の時間という規格になっているわけです。これは10Base-[52T], 100Base-TXいずれも同じです。詳しくはイーサネットの本を読んでください。
# 私もコリジョンの概念を正しく理解するのに時間がかかりました。

ちなみに、ブロードキャスト・パケットを受信した場合、スイッチングハブはすべてのポートに対してパケットを送信します。そのため、ネットワーク全体ではコリジョン発生の可能性が跳ね上がりますが、当然ながら全二重のポートではコリジョンは発生しません。

この回答への補足

丁寧に回答していただきありがとうございます。

>次にカットアンドスルー方式ですが・・・・・

のところがモディファイド・カットスルー(フラグメントフリー)の説明をされてるところがありました

カットスルーは6バイト受信したら送信してしまうのでコリジョンエラーも送信してしまう可能性があるのですよね

なんとか3つの特徴がなんとなくつかめる事ができました^^;
まだまだですが・・・・・
細かいところはイーサネット関係の本で補充したいとおもいます。
長文で説明していただきありがとうございました!

補足日時:2007/08/21 01:58
    • good
    • 0

なんか時間をおいて読み返すと、質問文のURLと同じ事書いているところが少なからずありますね(恥)。



何にせよ、スイッチングハブは、各ポートがそれぞれ独立してCSMA/CDのプロトコルで通信を行っていることが肝になります。繰り返しになりますが、
・コリジョン信号が中継されず
・ポートからパケットを送信するときに、イーサネット的に正しいタイミングで送信する
この2点が満たされているので、ブリッジとして機能していることになります。

# 某所で読んだ文章では、「スイッチングハブはイーサネットフレームの『ルータ』」と書いてありました。これで判る人は判るでしょうね。
# 判らない人は余計に混乱しそうですが(^^;

> のところがモディファイド・カットスルー(フラグメントフリー)の説明をされてるところがありました

エーと、この部分ですかね?
-----------
質問者さんが提示されたURL内に、「イーサネットでは、先頭の64bytesでコリジョンが発生しなければ、それ以後ではもう発生しない」という一文がありますが
-----------
これは単純に、先頭64byteを受信しないうちはコリジョンで受信が中断することがある、ということを言いたかっただけです。記述内容はイーサネットの通信規格に関するもので、フラグメントフリー方式の説明ではないです。
ちょっと余分な文章でしたね。

No.5さん:
> 最初の記事よりは、以下の方が丁寧に書いてます。
​> http://shizuoka.cool.ne.jp/mots/notes/switch.html

見てみましたが、スイッチングハブの特徴を理解するのに必要な範囲を簡潔に、かつまんべんなく網羅していますね。リピータハブがコリジョン(ジャミング)信号を送信するという間違いがある(ジャミング信号を送信するのは送信ノード)のが玉に瑕ですけど。
    • good
    • 0

まあ、私は大分割愛しましたが、そもそも、元記事が言わんとしている事は


“カットスルー方式でも、コリジョン発生時は、ストアアンドフォアード方式的に動作し、コリジョンも中継しないから、パケット中継の動作的にはレピータ的(ブリッジ動作としては不完全)であても、コリジョン発生時を含め、ブリッジ機器として動作すると言える”
“もしカットスルー方式がコリジョン発生時でも、カットスルー方式として動作したら、レピータHUBと同じになっちゃうから、パケット廃棄がレピータHUB並みに起こっちゃうね”

って事だと言いたかっただけですが、半二重伝送路なら例え1対1接続でもコリジョンが起こるなんて、当然の前提ですね。その対応の違いを説明したかっただけでしょ。
ブロードキャストパケットの場合、コリジョン発生の可能性が高くなると言いますが、同じポート数のレピータHUBに比べればゴミ以下です。方やブローキャスト/マルチキャストもユニキャストも全中継され、方やブロードキャスト/マルチキャストだけですからね。IP通信のブローキャスト/マルチキャストはARP,rip,ospf等、大したパケット数ではありません。
全ポートのコリジョンドメインが分割されているか1個かが、最も大きな違いになります。

最初の記事よりは、以下の方が丁寧に書いてます。
http://shizuoka.cool.ne.jp/mots/notes/switch.html

実際、ストア&フォワードでは無いSW-HUBって、既に殆どないと思いますよ。企業などで使う製品には皆無に近いでしょう。レピータHUBを使う事も殆どありません。これらの製品を探す方が大変です。
カットスルー方式は、パケット処理性能を高くする事が、非常に高額になってしまった時代に生まれた技術で、SW-HUBの心臓部のチップが2種類程度しか存在しない現代においては、カットスルー方式のHUBを作ろうとしたら、寧ろ高額になってしまう可能性が高いです。
その当時は、L3-SW版のカットスルー方式の様な物も沢山ありました。酷いL3-SWでは、ARP解決もSRC-MACの付け替えもFCSチェック/付け替えもしてませんでした。
どちらも、スイッチング技術が伝送速度に追いついてなかった時代の副産物でしかありません。
    • good
    • 0

コリジョンが発生しないことは保証されていません


ただ発生確率が非常に低いだけです
(LANケーブルを伝送する時間遅の分、コリジョン発生の可能性がありますが、ポートごとの1対1対応なので可能性は少ない)
ブロードキャストパケットの場合、コリジョン発生の可能性は1桁以上上がります)

これはバッファの有無には関係しません
バッファがあれば、コリジョン発生でも、発生した段の再送だけで、前段まで遡っての再送は不要です

この回答への補足

回答ありがとうございます。
>LANケーブルを伝送する時間遅の分、コリジョン発生の可能性がありますが

>ブロードキャストパケットの場合、コリジョン発生の可能性は1桁以上上がります

..スイッチングハブ内は全二重でしかもポートごとにコリジョンドメインが分割されてるのでブロードキャストパケットを流したとしてもコリジョンは発生しないのではないでしょうか?

補足日時:2007/08/20 13:22
    • good
    • 0
この回答へのお礼

補足の疑問晴れました。
申し訳ございませんでした。
全二重では起こりませんが、半二重に繋がれてるポートがあればコリジョンが起こりますね^^;
ありがとうございます。

お礼日時:2007/08/20 15:18

まあ、この記事を書いた人がどれだけ理解して書いているのか?疑問が沸いてしまいますが.....



いずれにしても、スイッチングHUBと定義される物は、従来のネットワーク機器に例えれば、ブリッジ機能に当り、ブリッジ機能を備えたHUBという事になりますが、ブリッジ機能を持つ為にはストアアンドフォアード方式である必要があります。

コリジョン信号が中継される範囲をコリジョンドメインと呼び、その範囲はレピータHUBなどで構成されています。
レピータ機器は、コリジョン信号を検出すると、その信号をそのまま中継しますので、コリジョンドメイン範囲内の端末機器は、パケットの送信ができなくなります。
ブリッジ機能以上の機器(SW-HUBやルータなど)が間に入る事で、コリジョンドメインを分断できます。つまり、コリジョン信号を中継しないと言う事です。またコリジョン発生中は、コリジョンが収まるまでパケットを蓄積し、コリジョンが収まってから送信します。
ブリッジ機能は、その他に、プリアンブルを再生成したり、パケットエラーが無かったのかをチェックする機能を備えています(パケットの最後にフラグチェックシーケンスがあり、計算結果と照合します)。

カットスルー方式などでは、MACヘッダー内の宛先アドレスを見て(記事で6byteと書いていたが、12byteまで見ないとだめじゃないかな?)、直に中継を始めてしまうので、レピータHUBに近い動作です。当然、FCSなんてチェックできません。しかし、コリジョン信号の中継はしないと言っているのでしょう。
コリジョンがあればそもそも送信できませんから、例えカットスルー方式でも、その時はストアしてからフォアードせざるを得ないので、コリジョンが有っても大丈夫と言ってるのだと思います。

その他、色々分り難く書いているのは、プリアンブルの件なのかと思いますが、あまり気にする必要はないと思います。


>カットスルー、フラグメントフリー(64バイト未満)はコリジョンが起こる特性があるが実際設計上はバッファがあるのでコリジョンは起こらないと思っていいのでしょうか?

フラグメントフリーが何を示すかわかりませんが...これを正しく書き直すと、

カットスルー、フラグメントフリー(64バイト未満)はコリジョンが起こった際は、一旦バッファするので、コリジョンドメインを分割できる(或いは、パケット廃棄を起こさない)。

って事になると思います。


この記事、分り難いです。

この回答への補足

回答ありがとうございます。
モディファイド・カットスルーの別名をフラグメントフリーというみたいです。ごちゃごちゃと書いてしまい申し訳ございませんでした。
カットスルーもフラグメントフリーもコリジョンが起こる特性があるがバッファによってその特性を解消できてるんですよね・・・・

補足日時:2007/08/20 01:54
    • good
    • 0

> 3つの方式カットスルー、フラグメントフリー、ストアアンドフォアード方式があります。



フラグメントフリーというのははじめて聞きますが、質問文URL内にありましたでしょうか?
# 見あたらなかったのですが……

> カットスルー、フラグメントフリー(64バイト未満)はコリジョンが起こる特性があるが
> 実際設計上はバッファがあるのでコリジョンは起こらないと思っていいのでしょうか?

そうではなくて、受信時にコリジョンを検出すると、開始していたパケット転送を中断しなくてはいけない、ということです。スイッチングハブのポートが半二重で接続されている場合、このような問題が発生しえます。
# 最近はスイッチングハブのポートにはスイッチングハブやPCが全二重で
# 繋がることが多いから、意識することも少なくなりましたが……

この回答への補足

回答ありがとうございます。
申し訳ございません、
モディファイド・カットスルー(自分の持ってる参考書ではフラグメントフリーというみたいです)ごっちゃに書いてしまってすいません・・・

補足日時:2007/08/20 01:44
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!