【网络基础】路由表,分组转发算法
来源:互联网 发布:bigbangfxkk it 编辑:程序博客网 时间:2024/06/06 06:50
前提:
IP数据报的首部中没有地方可以用来指明“下一跳路由器的 IP 地址”。
那么,当路由器接受到一个待转发的报文时,是如何确定将该报文的传向呢?在此,我们引入“路由表”概念。
路由表如图所示:
当一个IP报文传到路由器R2时,则会通过查询R2所维护的路由表,根据IP报文段中的目的地址进行匹配。得到相应的下一跳地址。这样,
IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。
只有到达最后一个路由器时,才试图向目的主机进行直接交付。
当然,路由表内容不止上图所示。如下:
特定主机路由:
这种路由是为特定的目的主机指明一个路由。
采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。
默认路由:
作用:
路由器还可采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间。
只要目的网络在路由表中匹配不到,就一律选择默认路由(详情见后面:分组转发规则)
用途:
如果一个主机连接在一个小网络上,而这个网络只用一个路由器和因特网连接,那么在这种情况下使用默认路由是非 常合适的。 。
当路由器收到待转发的数据报,不是将下一跳路由器的 IP 地址填入 IP 数据报,而是送交下层的网络接口软件。
确认下一跳路由器之后,
网络接口软件使用 ARP 负责将下一跳路由器的 IP 地址转换成硬件地址,并将此硬件地址放在链路层的 MAC 帧的首部,然后根据这个硬件地址找到下一跳路由器。
下面列出路由器之间分组转发的算法:
(1) 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。
(2) 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行(3)。
(3) 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
(4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。
(5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
(6) 报告转发分组出错。
本文由Cout_Sev 搜集整理并修改
转载请注明出处
谢谢!
- 【网络基础】路由表,分组转发算法
- 路由分组转发算法
- 路由表转发算法
- 【网络基础】子网划分、基于子网掩码的分组转发
- 分组转发算法
- 路由器分组转发算法
- 10、分组转发算法
- 分组转发算法
- 模拟网络通信中存储转发的分组交换算法
- 分组转发算法和距离向量算法
- 网络层-转发分组的流程
- 用MFC实现的路由分组转发模拟系统
- QT-Socket编程之路由分组转发仿真
- 数据报转发(多网络路由)
- 网络路由技术基础
- 网络路由设计基础
- 网络路由设计基础
- 网络路由基础认识
- PushbackInputStream类
- “完美星期四”
- Python3.2官方文档翻译--生成器以及生成器表达式
- 清除浮动 float
- python os.stat() 和 stat模块详解
- 【网络基础】路由表,分组转发算法
- hdu1556
- jsp网站显示成乱码以及js修改编码问题
- 作业9
- live archive 3713 two-sat
- UML
- 解决ViewPager双层嵌套的滑动问题
- 黑马程序员_异常
- python中if __name__ == '__main__': 的解析