ホップ数の定義、特にRIPメトリックに関連する定義について、私は非常に困惑して混乱しています。ホップ数はリンク数またはルーター数を反映する必要がありますか? 2つの可能性があります。
ステートメントA:
。ホップカウント=通過したルーターの数
。同じサブネット上のホストへのホップカウント= 0
。 RIPv1メトリック=ホップカウント+1(ネットワークコスト= 1と仮定)
ステートメントB:
。ホップカウント=通過したルータの数+1
。同じサブネット上のホストへのホップカウント= 1
。 RIPv1メトリック=ホップカウント(ネットワークコストを1と想定)
正しい説明はどれですか。
これが私のネットワークトポロジです:
(192.168.2.0/24)--Router2 192.168.1.0/24)--Router1--(192.168.0.0/24)--InternetGateway--z--
ホップカウントについて曖昧な点があるようです。クロスルータの数と使用されているリンクの数です。
ウィキペディアの引用:「コンピュータネットワーキングでは、ホップはソースと宛先の間のパスの一部です。データパケットは、途中でルーターとゲートウェイを通過します。パケットが次のデバイスに渡されるたびに、ホップが発生します。 1つのホストから別のホストに到達するために必要なホップ数を確認するには、pingまたはtraceroute/tracepathコマンドを使用できます。 「
最終的な受信者は「次のデバイス」と見なされるので、ホップを意味しますか?
これは、ホスト192.168.2.30から2つのルーターを経由するローカルtracerouteです。
test@ubuntu:~$ Sudo traceroute -I 192.168.0.1
traceroute to 192.168.0.1 (192.168.0.1), 30 Hops max, 60 byte packets
1 192.168.2.1 (192.168.2.1) 0.868 ms 0.831 ms 2.565 ms
2 192.168.1.1 (192.168.1.1) 3.451 ms 3.450 ms 3.438 ms
3 Gateway (192.168.0.1) 5.213 ms 5.219 ms 5.945 ms
test@ubuntu:~$
1,2,3 ..それは3ホップですか? traceroute形式は私を困惑させています。
さらに、これが私のsubnet2ルーティングテーブル(RIPエントリを含む)です。
test@ubuntu:~$ ip -4 route show
default via 192.168.2.1 dev eth0 proto zebra metric 2
192.168.0.0/24 via 192.168.2.1 dev eth0 proto zebra metric 3
192.168.0.1 via 192.168.2.1 dev eth0 proto zebra metric 3
192.168.1.0/24 via 192.168.2.1 dev eth0 proto zebra metric 2
192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.201 metric 1
192.168.3.0/24 dev eth2 proto kernel scope link src 192.168.3.201 metric 1
test@ubuntu:~$
サブネット0へのメトリック3があります(つまり、2つのルーターを通過します)。
こちら側には、ホップカウント=リンクカウントという概念があります。
一方、ウィキペディアのページには、「ネットワーク内のホップの図。この場合のコンピューター間のホップ数は2です。」というコメントのある2つのルーターがインラインで表示されます。
さらに、リンク上のホップ数ではなく、ルーター上のホップ数をカウントする必要があることを明確に示すページにリンクしています。
ここでは、ホップカウント=交差したルーターの数という概念を明確に持っています。
ホップ数を計算する適切な方法は何ですか? RIPメトリックとどのように関連していますか?
ソース:
---(http://en.wikipedia.org/wiki/Hop(networking
http://www.infocellar.com/networks/ip/hop-count.htm
注:RFC 1058(RIPv1 RFC)の関連する引用:
単純なネットワークでは、メッセージが通過する必要があるゲートウェイの数を単純にカウントするメトリックを使用するのが一般的です。
...
主な要件は、個々のホップの「コスト」の合計としてメトリックを表すことが可能でなければならないことです。
正式には、エンティティiからエンティティjに直接(つまり、別のゲートウェイを経由せずに)取得できる場合、コストd(i、j)がiとjの間のホップに関連付けられます。特定のネットワーク上のすべてのエンティティが同じであると見なされる通常の場合、d(i、j)は特定のネットワーク上のすべての宛先に対して同じであり、そのネットワークを使用するコストを表します。
完全なルートのメトリックを取得するには、ルートを構成する個々のホップのコストを合計するだけです。このメモでは、コストは正の整数であると想定しています。
...
A-----B
\ / \
\ / |
C / all networks have cost 1, except
| / for the direct link from C to D, which
|/ has cost 10
D
|<=== target network
各ゲートウェイには、各ネットワークへのルートを示すテーブルがあります。
ただし、この図では、図の下部にマークされている各ゲートウェイからネットワークへのルートのみを示しています。
D: directly connected, metric 1
B: route via D, metric 2
C: route via B, metric 3
A: route via B, metric 3
...
ネットワークのメトリックは、1〜15の整数です。このプロトコルでは指定されていない方法で設定されます。ほとんどの既存の実装では、常に1のメトリックを使用します。
RIPを実装する各ホストには、ルーティングテーブルがあると想定されます。このテーブルには、RIPによって記述されたシステムを介して到達可能なすべての宛先に対して1つのエントリがあります。各エントリには、少なくとも次の情報が含まれています。
- The IP address of the destination.
- A metric, which represents the total cost of getting a
datagram from the Host to that destination. This metric is
the sum of the costs associated with the networks that
would be traversed in getting to the destination.
...
直接接続されたネットワークのメトリックは、そのネットワークのコストに設定されます。既存のRIP実装では、コストのために常に1が使用されます。その場合、RIPメトリックは単純なホップカウントに減少します。
ウィキペディアを引用すると、この手がかりに気付くはずです。
1つのホストから別のホストに到達するために必要なホップ数を確認するには、pingまたはtraceroute/tracepathコマンドを使用できます。
Tracerouteは通常、UDP、TCP、またはICMPパケットのいずれかを送信することで機能します(重要なのは、使用中のプロトコルがIPデータグラムにカプセル化され、この同じプロトコルに対する応答を宛先IPアドレスで配信できることだけです。 )IPヘッダーのTTLフィールドが1に等しく、受信した応答がICMPタイプ11コード0パケットと異なるまで、試行ごとに1ずつ増加します(ICMPタイプ11 = Time Exceeded、コード0 = 転送中に有効期限が切れました)。
これはRFC 1812のこの部分を使用します:
IPヘッダーの存続可能時間(TTL)フィールドは、
タイマーはデータグラムの寿命を制限します。これは8ビットのフィールドであり、
単位は秒です。を処理する各ルーター(または他のモジュール)
パケットは、経過した場合でも、TTLを少なくとも1つ減らす必要があります
時間は1秒未満でした。これはよくあることなので、
TTLは、データグラムがどれだけ遠くまで移動できるかについてのホップカウント制限です
インターネットを介して伝播します。[...]
TTLがゼロ(またはそれ以下)に減少した場合、パケットは
破棄され、宛先がマルチキャストアドレスでない場合、
ルーターは、ICMP Time Exceededメッセージ、コード0(TTL Exceeded
in Transit)ソースへのメッセージ
ほとんどすべての実装がTTL by at at at at oneをTTL by oneと解釈し、ホップ測定はグローバルに送信したルーターパケットが宛先に到達するまで通過するルーターの量。