计算机网络最长前缀匹配案例
在使用 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)越准确 。最长前缀匹配又称为最长匹配或最佳匹配
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_43275631/article/details/109960686