在使用 CIDR 時,路由表中的每個項目由“網絡前綴”和“下一跳地址”組成。在查找路由表時可能會得到不止一個匹配結果(下面有🌰子)。 應當從匹配結果中選擇具有最長網絡前綴的路由:最長前綴匹配(longest-prefix matching)。
選前綴最長的地址的原因:網絡前綴越長,其地址塊就越小,因而路由就越具體(more specific)越准確 。最長前綴匹配又稱為最長匹配或最佳匹配
舉例:現在收到的分組的目的地址D:193.0.71.192
路由表如下:
193.0.71.192/26 |
---|
193.0.68.0/22 |
人一眼就能看出來哪個在不在,但是機器不能呀,還有如果路由表里面數據很多,人總不能一個一個找吧。
首先我們查找路由表里的第一項193.0.71.192/26,這里掩碼M1有26位,為了更清楚的表示我把D全部轉換為二進制:
M1 | 11111111 11111111 11111111 11000000 |
---|---|
& | 按位& |
D | 11000001 00000000 01000111 11000000 (193.0.71.192) |
結果 | 11000001 00000000 01000111 11000000 (193.0.71.192) |
結果正好是收到的目的地址,對的上路由表中第一項。
先別急着出結論,下面開始查找路由表第二項 193.0.68.0/22其掩碼M2有22個連續的1
M2 | 11111111 11111111 11111100 00000000 |
---|---|
& | 按位& |
D | 11000001 00000000 01000111 11000000 (193.0.71.192) |
結果 | 11000001 00000000 01000100 00000000 (193.0.68.0) |
將結果轉換為十進制:193.0.68.0也對的上表中第二個,🙊不可思議那種嘛辦呢?給路由表立了一個規矩:誰的前綴長選誰的🙈
因為網絡前綴越長,其地址塊就越小,意味着路由就越具體(more specific)越准確 。最長前綴匹配又稱為最長匹配或最佳匹配