【网络基础】路由表,分组转发算法[通俗易懂]

【网络基础】路由表,分组转发算法

大家好,又见面了,我是全栈君。

前提:

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 搜集整理并改动

转载请注明出处

谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116367.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • LCD1602液晶使用介绍–(完整版)

    LCD1602液晶使用介绍–(完整版)lcd1602+c51介绍文章目录LCD1602介绍1602引脚信号说明控制器接口介绍1、基本操作时许2、状态字说明3、指令说明RAM地址映射控制时序图代码实现写入命令写数据试验例程CGRAM自定义字模(简易汉字显示)LCD1602介绍LCD1602液晶在实际的产品运用中也是比较多产品,应为前一段时间也正好用到了所以惊天就对LCD1602液晶做一个总结,方便以后阅读同时也希望能够帮住到需要的人,总结的可能存在错误欢迎指出!所谓的1602是指显示的时候,有2行内容每行有16个字符。其实这类字符型产

    2022年7月16日
    14
  • FileStream类

    FileStream类FileStream类的官方介绍请见:https://msdn.microsoft.com/zh-cn/library/system.io.filestream.aspx一、使用FileStream来读取文本文件stringpath=@”E:\TEMP\TestFileStream\theoldiPhone6.txt”;

    2022年7月12日
    22
  • Nessus安裝教程[通俗易懂]

    Nessus安裝教程[通俗易懂]1、進入官網2、直接拖進kail3、拷貝此文件至root用戶下(因為安裝Nessus時需要root權限)4、使用命令dpkg-iNessus-10.1.1-debian6_amd64.deb5、啟動Nessus:/bin/systemctlstartnessusd.service6、安裝后進入官網7、註冊后郵箱得到激活密碼8、本地主機輸入連接https://kali(主機名稱):8834/9、進入頁面激活即可…

    2022年10月18日
    2
  • maven中web3sdk引入问题

    maven中web3sdk引入问题

    2021年3月12日
    197
  • 如何在Ubuntu 14.04 和14.10 上安装新的字体

    如何在Ubuntu 14.04 和14.10 上安装新的字体

    2022年3月2日
    40
  • Merge into用法总结

    Merge into用法总结简单的说就是,判断表中有没有符合on()条件中的数据,有了就更新数据,没有就插入数据。  有一个表T,有两个字段a、b,我们想在表T中做Insert/Update,如果条件满足,则更新T中b的值,否则在T中插入一条记录。在Microsoft的SQL语法中,很简单的一句判断就可以了,SQLServer中的语法如下:  ifexists(select1fromTwhere…

    2022年6月7日
    78

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号