モデムがなかなかオンラインにならないときには?

まったく別件なのですが、リブートしたケーブルモデムがオンラインになるまでに時間がかかる、という問い合わせに関連して調べものをしたので、以下、備忘録およびTipsとして。

モデムがRangingをする際に関連するCMTS側のパラメータ

Ranging Backoff

モデムがRangigパケットの送出を待つ回数。ある幅で設定した値に従って送出する。2の指数で表されており、2-7だと、2の2乗(4)から2の7乗(128)までの間という意味。

Insertion Interval

Ranging Backofの間隔。通常は1/100秒単位で設定する。40だったら0.4秒毎という意味。(メーカーによって入力単位は違うかも)

つまり、Ranging Backoff 2-7、Insertion Interval 40という値が設定されているとすると、モデムがInitial Ranging Requestを送信する際、コリジョンを避けるために1.6秒〜51.2秒の間で送信を待つということになります。
DOCSISでは下り信号にUCDと呼ばれる上りチャンネル情報が含まれており、モデムは、この情報に従って順番に16回づつ上りのRangingを試して行く事になります。では、1つのチャンネルでRangingを終えるのに、どれくらいの時間がかかるのでしょうか?
計算してみましょう。(注:いずれもTDMA/A-TDMA時の計算です)

Ranging Backoff = 2-7 = 4〜128
Insertion Interval = 40 = 0.4sec
送信待ち時間幅 = 1.6sec〜51.2sec
T3 Timeoutとなる時間 = 送信待ち時間幅 × 16回 = 25.6sec〜819.2sec
平均時間 = (25.6sec+819.2sec)/2 = 422.4sec

ということで、平均すると約7分かかる見込みになります。
USDに上りチャンネル情報が4つあったとすると、モデムによっては30分近くかかる計算になりますね。
VoIP用とInternet用というように、同一幹線上に複数のCMTSがある場合には、下手をするとオンラインになるまでに1時間近くかかることも考えられます。

そこで、この問題を解決するためにRangign Backoffの設定を変更するという方法があります。
先ほどの計算式に従って、こんどはRanging Backoffを2-5へ変更してみましょう。

Ranging Backoff = 2-5 = 4〜32
Insertion Interval = 40 = 0.4sec
送信待ち時間幅 = 1.6sec〜12.8sec
T3 Timeoutとなる時間 = 送信待ち時間幅 × 16回 = 25.6sec〜204.8sec
平均時間 = (25.6sec+204.8sec)/2 = 115.2sec

わずかな変更(いや、実際には大きな変更ですが)で、1チャンネルあたりのRanging時間が2分弱になりました。これなら4チャンネルあっても、8分ほどですべてのチャンネルのRangignを終える事ができるはずです。
しかし、Rangign Backoffを短くする=送信待ち時間の幅を短くする、という事ですので、同時にInitial Ranging Requestを送信するモデムが増え、かえってコリジョンを招いてしまう結果になりかねません。具体的には、メンテナンスなどでいっせいにモデムをリブートした際、Ranging Backoffがボトルネックとなってしまうというものです。なお、すでにオンラインになっているモデムはRanging Intervalの値によってStation Maintenance Rangingを行うので、影響はありません。


どれくらいのモデム収容数なら影響がないかについては、また次回。