当路由器收到一个IP数据包时,它会将数据包的目的IP地址与自己本地路由表中的所有路由表进行逐位(Bit-By-Bit)对比,直到找到匹配度最长的条目,这就是最长前缀匹配机制。
这里需要注意的是,要在前缀匹配的前提之下选择匹配度最长的。
比如:路由器的路由条目如下:
2.128.0.0/9 interface 1
2.192.0.0/10 interface 2
2.0.0.0/8 interface 3
2.2.3.0/24 interface 4
0.0.0.0/0 interface 5
此时我们需要转发目的IP地址为2.5.1.2的分组,根据最长匹配原则:
第一个路由条目的前缀是 00000010 1
第二的前缀是 00000010 11
第三的前缀是 00000010
第四个前缀是 00000010 00000010 00000011
我们的目的IP地址为 00000010 00000101 00000001 00000010
观察到可以匹配的最长前缀为00000010即我们要转发到Interface 3