什么是转发?
转发会将传入的数据包移动到适当的接口。路由器使用转发表来决定将哪个传入数据包转发到下一跳。
什么是IP前缀?
IP前缀是IP地址的前缀。一个网络上的所有计算机都具有相同的IP前缀。例如, 在192.24.0.0/18中, 18是前缀的长度, 而前缀是地址的前18位。
转发如何工作?
路由器基本上会查看目标地址的IP前缀, 在转发表中查找匹配项, 然后将数据包转发到转发表中的相应下一跳。
如果前缀重叠, 会发生什么?
由于前缀可能会重叠(这是可能的, 因为无处不在的寻址在各处都使用), 因此传入IP的前缀可能与表中的多个IP条目匹配。
例如, 考虑下面的转发表
字首 | 下一跳 |
---|---|
192.24.0.0/18 | D |
192.24.12.0/22 | B |
为了解决上述情况, 路由器使用
最长前缀匹配
规则。规则是在表中找到前缀最长, 与传入数据包的目标IP匹配的条目, 然后将数据包转发到相应的下一个希望。
在上面的示例中, 重叠范围(192.24.12.0至192.24.15.255)的所有数据包都被转发到下一跳B, 因为B具有更长的前缀(22位)。
文章图片
范例1:
路由器使用转发表条目转发数据包。传入数据包的网络地址可能与多个条目匹配。路由器如何解决此问题?
(A)将其条目与传入数据包的最长前缀匹配的路由器转发给它
(B)将数据包转发到网络地址匹配的所有路由器。
(C)丢弃小包。
(D)将其条目与输入数据包的最长后缀匹配的路由器转发给它
答:(A)在转发表中, 不同条目的网络地址可能重叠。路由器将传入的数据包转发到路由器, 该路由器对与传入的数据包匹配的最长前缀进行哈希处理。
范例2:
无类域间路由(CIDR)接收地址为131.23.151.76的数据包。路由器的路由表包含以下条目:(GATE CS 2015)
PrefixOutput Interface Identifier
131.16.0.0/123
131.28.0.0/145
131.19.0.0/162
131.22.0.0/151
将在其上转发此数据包的输出接口的标识符是______。
答:" 1"。我们首先需要找出地址为" 131.23.151.76"的传入数据包的匹配表条目。该地址与两个条目" 131.16.0.0/12"和" 131.22.0.0/15"匹配(我们分别通过匹配前12位和15位来找到它)。
那么数据包应该去接口3还是1?我们使用最长前缀匹配来决定两者。匹配表条目中最具体的用作接口。由于" 131.22.0.0/15"是最特定的, 因此数据包进入接口1。
行使
请考虑以下路由器路由表。
字首 | 下一跳 |
---|---|
192.24.0.0/18 | D |
192.24.12.0/22 | B |
192.24.6.0
192.24.14.32
192.24.54.0
具有以上三个目标IP地址的数据包如何转发?
(一种)
【如何理解路由器中最长的前缀匹配(详细图解)】1-> D, 2-> B, 3-> B
(B)
1-> D, 2-> B, 3-> D
(C)
1-> B, 2-> D, 3-> D
(D)
1-> D, 2-> D, 3-> D
回答为B
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请发表评论。
推荐阅读
- CSS如何使用grid属性(布局图解示例)
- 创建用于使用Python下载YouTube视频的GUI
- CSS中的高级选择器用法解释和指南
- CSS网站页面布局与美化实例教程(div+css)
- Twitter面试经验分享和解析|S1
- PHP如何使用date_diff()函数(代码示例)
- SCAN和CSCAN磁盘调度算法之间有什么区别()
- Linux中的proc文件系统介绍和指南
- Internet协议版本6(IPv6)标头详细解读