- ベストアンサー
SW-HUBの自動学習機能の方法
ネットワークについて勉強をしていて、わからない点がありました。 SW-HUBには自動学習機能があるものがあり、リンクアップ時に 通信先のIPアドレスやMACアドレスの情報を取得できるようなのですが、 実際は何のパケットを送信しているのでしょうか? arpかと最初は思いましたが、arpは相手先のIPアドレスを元に送信される ものかなと思い違うのではないかという結論に至りました。 教えていただけないでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> 通信先のIPアドレスやMACアドレスの情報を取得できるようなのですが、 > 実際は何のパケットを送信しているのでしょうか? まず、SW-HUBが自発的に何らかのパケットを送信してMACアドレスを確認するわけではありません PC等がやりとりするパケットの送信元MACアドレスを見て学習していくのです > arpかと最初は思いましたが、arpは相手先のIPアドレスを元に送信される > ものかなと思い違うのではないかという結論に至りました。 もちろん、ARPのパケットを見て学習する場合もあります http://www.n-study.com/network/switch1.htm に、MACアドレスの学習の流れが書いてありますが、端末Aが最初にARPリクエストを出したときに学習すればARPを見て学習することになりますし、DHCP DISCOVERを出せばそのパケットで学習することになります 要は、MACアドレステーブルで学習されていない(MACアドレスが載っていない)状態で、最初に入ってきたパケットの送信元MACアドレステーブルを見て学習していきます なお、MACアドレステーブルは一定時間経つと消去されますが、大抵は数百秒レベルです 例えば、Ciscoのスイッチは設定で変更できますがデフォルトで300秒、バッファローやIOデータのSW-HUBは300秒固定と、大抵が300秒(5分)になっています http://ping-t.com/modules/cisco/?Cisco%A5%B3%A5%DE%A5%F3%A5%C9%BD%B8%2FM%2Fmac-address-table%20aging-time http://buffalo.jp/products/catalog/item/b/bs-2108m/index.html?p=spec http://www.iodata.jp/support/qanda/answer/s14618.htm
その他の回答 (2)
- Moryouyou
- ベストアンサー率41% (140/334)
>ちなみに、この学習機能ですがなんの通信もない(リンクアップしてるだけ) > という状況は結構ありそうな気がするので、通信については > keep alive packet等の通信でも確立されるのでしょうか? >それとも、リンクアップだけでは意味がなく機器間の通信に > 時間があくとリセットされちゃうんでしょうか? まず、この自動学習機能がなくても通信ができることを理解してください。 イーサネットの仕組みがそもそも全体に通信が流れ、受け取る相手が 自分宛だったら受け取るという仕組みなのです。 通信がしばらく発生しなければ、学習したMACアドレスは忘れられ、 次の通信の時にはイーサネットのそのセグメント全体に一旦通信電文は 流れます。しかしそれで学習されるので次は相手のポートのみに 電文が流れるようになり、無駄な通信を減らして全体的なネットワーク 効率を上げる仕組みになっているだけです。 ARPのような通信プロトコルとは話が違います。
お礼
なるほど、理解しました。 あくまで効率化させる機能ということですね。 ありがとうございます。
- Moryouyou
- ベストアンサー率41% (140/334)
おつかれさまです。がんばってくださいね。 >SW-HUBには自動学習機能 ネットワークの7階層は勉強しましたよね。 http://www008.upp.so-net.ne.jp/mkusanagi/network/osi.htm この機能はデータリンク層としての機能です。 従って arpやIPアドレスなどは関係なく、MACアドレスを使う機能です。 SW-HUBの通信は全てMACアドレスにてやりとりされています。 ここをしっかり理解してください。もちろんIPアドレスの情報も 通信電文には載っていますが、SW-HUBに接続されている各機器間の 通信はMACアドレスでやりとりされます。 例として SW-HUBの1ポートにAサーバ、2ポートにBパソコンを接続し、 AサーバのLANアダプタに付いているMACアドレスA BパソコンのLANアダプタに付いているMACアドレスB を使ってお互いに通信をするとします。 Aサーバの送信電文がHUBの1ポートを通過する際、MACアドレスAが 学習されます。同じく Bパソコンの送信電文がHUBの2ポートを通過する際、MACアドレスBが 学習されます。 それによりHUBの各ポートにつながっている機器のMACアドレスを HUBがしばらく覚えることで、A~B間の通信が1ポート~2ポート間で やりとりすればよいことが明確になります。 元々はHUBにこうした機能はありませんでした。 LAN全体に通信が流れ、受け取る相手が取捨選択していたのです。 この学習機能により、余計な所に通信電文が流れなくて済むので 通信効率がよくなるという仕組みなのです。 この学習機能は通信がないと数十秒で忘れる仕組みになっています。 ポートのつなぎ替えがあっても通信が不可能にならないようにする ためです。 理解できましたか? いかがでしょうか?
お礼
分かりやすく説明していただきありがとうございます。 サイトも拝見いたしましたが、大変参考になりました。 ちなみに、この学習機能ですがなんの通信もない(リンクアップしてるだけ) という状況は結構ありそうな気がするので、通信については keep alive packet等の通信でも確立されるのでしょうか? それとも、リンクアップだけでは意味がなく機器間の通信に 時間があくとリセットされちゃうんでしょうか?
お礼
なるほど、自動学習というのは自発的にSW-HUBがなにか パケットを送信して学習するわけではなく、 パケットのやりとりのなかで学習していくのですね。 まず、ここの認識が誤っていました。 ありがとうございます。