(ネットワーク)スイッチのフロー制御
これは調べるまで知らなかったんですが、スイッチにはフロー制御(フローコントロール)と呼ばれる機能があるようです。

フロー制御とは通信速度が異なる機器をつないだ時に送受信するパケットを動的に制御する仕組みのようです。

例えばあるギガスイッチに 1Gbps で繋いでいるサーバと、同じスイッチに 10Mbps で繋いでいるPCがあるとします。サーバからPC間にパケットを送ろうとすると、1Gbpsから10Mbpsに帯域が細くなるため、パケットがスイッチのバッファに詰まってしまします。そして、送りきれなかったパケットが破棄されてしまいます。


そこで、スイッチのバッファがあふれそうになると、送信元に送信停止要求を投げてバッファが掃けるまで送信中止するのがフロー制御の簡単な仕組みみたいですね。

送信停止要求は、半二重通信の場合は、コリジョン発生時に送るジャム信号、全二重通信の場合はPAUSEフレームのようです。(全二重通信は IEEE802.3x で規格化されているようです。)

さて、このフロー制御ですが、手直にあるL2スイッチを見てみたところほとんど機能として備えていました。

ただ、FXC製のES1016Vというスマートスイッチはデフォルトでフロー制御が無効になっていました。

このせいで、以前に書いた SunRay2 の画面描画が遅くなる現象がおきたのかもしれません。このスイッチにつないだ時に画面描画遅延現象が起きてたので。。。


ということで、スマートスイッチの場合はフロー制御が無効になっていないかどうか気をつけておきましょう。

補足:
スマートスイッチ等でフロー制御がデフォルト無効になっている理由がパフォーマンス・チューニングに載っていました。
要は、Pauseフレームを受信すると、負荷の高くないマシンに送信するトラフィックを含め送信側のすべてのトラフィックがブロックされてしまうので、スイッチ上に過負荷マシンがあると他のマシンも影響を受けて速度が低下するということらしいです。

SIerのエンジニアに聞いてみても、スマートスイッチでフロー制御を有効にした客はいないとのことでした。
イーサネットのフロー制御の仕組みをつかなくても上位層のTCP等で制御できるので構わないようです。


参考:
ASCII.jp:高価な企業向けスイッチはここがすごい!|図で解剖!スイッチ&ルータ
特集 : 最適ネットワーク機器選択術
LAN技術研究室【ハブとスイッチ(2)】
Ethernet LAN - 全二重通信/半二重通信:フロー制御( ジャム信号/PAUSEフレーム )
パソコン関連のいろんなメモ書き : スイッチのフローコントロール こちらの方が言及してるスイッチもフロー制御が無効になっていたようで...
[PR]
by jehoshaphat | 2010-10-31 01:33 | ネットワーク | Trackback | Comments(0)
トラックバックURL : http://jehupc.exblog.jp/tb/13538556
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。


<< VirtualBoxでスナップ... Solarisでのネゴシエーシ... >>