助け合いフォーラム
問題ID : 25780
回答より
-補足説明:それぞれのメトリック値を算出-
EIGRPのメトリックは以下の計算式で求めます。
EIGRPのメトリック = 256 ×( 帯域幅 + 遅延 )
帯域幅 = 10,000,000 ÷ 経路上の最小帯域幅(Kbps)
遅延 = 経路上の遅延合計(μ秒) ÷ 10
とありますが
EIGRPのメトリック = 256 ×~
と
帯域幅 = 10,000,000 ÷~
と
遅延 = ~ ÷ 10
の式の値についてはデフォルトで決まっているものなのでしょうか
遅延はGiEthの値のようですが帯域の数値とは違うようでよくわかりません
256の数値についてはwikiより
「複合メトリック値はIGRPでは24ビットの値だが、EIGRPでは32ビットの値になっている。
したがって、24ビットの値を256倍することで8ビット左へシフトしたのと同じことになり、
値が32ビットに拡張される。」
とありますがいまいち理解できませんでした
EIGRPのメトリック = 256 ×~
と
帯域幅 = 10,000,000 ÷~
と
遅延 = ~ ÷ 10の式の値についてはデフォルトで決まっているものなのでしょうか
はい。メトリックを計算する際の公式の定数として覚えてしまって大丈夫です。
なぜこのような定数を使用するかというと、少し数学的な話になりますが、正規化して帯域幅や遅延を簡単な数字で表すことができるようになるためです。
例えば、帯域幅や遅延に(Kbps)とか(μ秒)のような単位接頭辞がついていますが、これを外して数字だけで表現すると、数字が大きくなりすぎたり小さくなりすぎたりしてわかりにくいですよね。
経路上の最小帯域幅(Kbps)= 100000 (Kbps)=100000000(bps)
経路上の遅延合計(μ秒)= 1110(μ秒)= 0.00111(秒)
[計算の例]
帯域幅 = 10000000÷100000(Kbps) = 100
遅延 =(1000(μ秒)+100(μ秒)+10(μ秒))÷10 = 111
EIGRPのメトリック = 256 ×( 100 + 111 ) = 54016
上記は解説に載っている計算式の一例ですが、公式にあてはめて定数を使って計算することで帯域幅100、遅延111のように簡単な数字になっています。
もともと、100000000(bps)、0.00111(秒)のように全然異なる値だったものが、帯域幅=100、遅延=111のように近い値になって計算しやすくなっていることがわかります。
256の数値についてはwikiより
「複合メトリック値はIGRPでは24ビットの値だが、EIGRPでは32ビットの値になっている。
したがって、24ビットの値を256倍することで8ビット左へシフトしたのと同じことになり、
値が32ビットに拡張される。」とありますがいまいち理解できませんでした
IGRPはEIGRPの前に開発されたCisco独自のプロトコルで、複合メトリックの計算においてEIGRPとIGRPの後方互換性を保つ必要があったみたいですね。
内部的にIGRPの複合メトリックは24ビット、EIGRPでは32ビットとなっています。
EIGRPのメトリックは、内部的には32ビット値として表現されていますが、32ビットのうち実際にメトリック計算で使用されるのは上位24ビットだけです。(じゃあEIGRPも最初から24ビットにしとけば良かったんじゃないのと思ってしまいますが...)
なのでEIGRPでは上位24ビットを使用する32ビットのメトリック値(上位24ビットには値が入っていて使用しない下位8ビットは全部0)を用意するために、24ビットの値を8ビット左へシフト(2の8乗で256倍)する必要があるということになります。
シフト演算については以下が参考になると思います。
https://tech.pjin.jp/blog/developer/2022/09/28/kihonjoho_2_5/
参考になりましたら幸いです。
コメント
この投稿に対して返信しませんか?
g gerorizumu
2023/09/08 22:40
ご丁寧にありがとうございます。 シフト演算もとても参考になりました。 基礎も改めて勉強し直します。