计算机网络最长前缀匹配举例

本文解释了在使用CIDR(无类别域间路由)时如何通过最长前缀匹配来确定数据包的最佳路由路径。通过两个具体的例子展示了如何比较不同长度的网络前缀,并选择了最精确的路由。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用 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全部转换为二进制:

M111111111      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

M211111111      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)越准确 。最长前缀匹配又称为最长匹配或最佳匹配

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好的!文西

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值