Ethernet の flow control(フロー制御)の概要と設定 〜IEEE802.3X PAUSE〜

TCPにもフロー制御の機能がありましたが、Ethernetにもフロー制御が定められています。IEEE802.3Xという規格です。

IEEE802.3Xとは

Ethernetのフロー制御規格です。

スイッチはインタフェース単位で輻輳を検知し、受信リングバッファ(rx-ring)がオーバーフローする前に、そのインタフェースからマルチキャスト(0180:c200:0001)宛にPAUSEフレームを送り、受信した端末は一定時間通信を止めます

PAUSEフレームのフォーマット

IEEE802.3Xのフロー制御のPAUSEフレームのフォーマットを以下に示します。

スポンサーリンク

操作コードにはPAUSEを示す「1」が入ります。

このフレームを受け取った端末は、「中断時間*512」のbit数分の時間、送信を止めます。例えば中断時間=10000、インタフェースの速度=1Gbpsであれば、bit数分の時間、というのは

送信停止時間=(10000*512[bit])/ (1*1024*1024*1024[bit/sec])=4.7[msec]

となります。

また、この時間が経過する前であっても、バッファに空きができたら「中断時間=0」のPAUSEフレームを送ることで、相手方に転送開始をしてよいことを伝えることができます。

Ethernetの中身データの最小サイズは46bitなので、残りを46bit目までPaddingで埋めます。

ciscoのコマンド

ciscoではIEEE802.3Xはデフォルトで無効になっています。

PAUSEフレームを送る設定にしたいときは、インタフェースで以下コマンドを打ちます。

(config-if)# flowcontrol send on

また、PAUSEフレームを受信した時に、PAUSEフレームに従って通信停止させたい場合は、インタフェースで以下コマンドを打ちます。

(config-if)# flowcontrol receive on

シェアする

  • このエントリーをはてなブックマークに追加

フォローする