5.2.11 IP分组的转发(二)IP分组转发算法

这篇具有很好参考价值的文章主要介绍了5.2.11 IP分组的转发(二)IP分组转发算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

5.2.11 IP分组的转发(二)IP分组转发算法

我们前面已经了解了路由器的结构以及直接交付和间接交付的概念,明白了路由器会根据路由协议生成路由表再根据路由表生成转发表,当路由器收到一个待转发的IP分组以后,会根据分组的转发算法,在转发表中为该分组寻找合适的出路。实际上在讨论路由选择的原理时,往往不去区分路由表和转发表的区别,在学习IP分组转发算法前我们先来认识路由表的结构。

一、路由表结构

路由表中,每一行成为一个路由表项,通常是由4列组成。分别是目的网络地址,子网掩码,下一跳路由器IP地址,接口如表

路由表项 目的网络地址 子网掩码 下一跳路由器IP地址 接口
作用 指目的主机所在网络的网络地址 要想到达第一列对应的目的网络,必须要把该分组转发给的路由器的IP地址,如果是直接交付,则可以用一横杠表示。 要想把IP分组送达给该行第三列的下一跳路由器需要通过本路由器中对应某个接口的IP地址。指示通过本路由器的哪个接口送达给下一跳。

在明白了路由表结构以后我们就来学习IP分组的转发算法。

二、IP分组的转发算法

当一台路由器收到了一条待转发的IP分组以后,通过该算法为该分组如何去寻找合适的转发路径。算法如下

  1. 从待转发的IP分组首部中取出目的IP地址;
  2. 对路由表中的每一行都进行以下重复操作即**把取出的目的IP地址与路由表表项中子网掩码按位相“与”,**这里将结果设为N,这就像我们编程中的一个循环操作。
  3. 循环结束的判断条件是,结果N与第一列对应的目的网络地址是否相等,如果是相等就是找到了匹配项就跳出循环
  4. 跳出循环后就查看路由表项中的下一跳路由器IP地址,如果下一跳路由器IP地址指明的是直接交付,那就按照直接交付的方式送达给目的主机,否则就按照该行所指明的下一跳路由器的IP地址进行转发。
  5. 如果结果N与目的网络地址不匹配,从头到最后一行都检查过没有找到匹配项的情况下,对于路由器来说会把该IP分组丢弃,同时向被丢弃IP分组的源站发送一个ICMP的目的不可达的差错报告报文。

这里的算法相对好理解,根本原理还是目的主机的IP地址和每行对应的子网掩码相与,如果等于该行第一列的目的主机的IP地址,就相当于说找到了匹配项,就按照该行下一跳路由器进行转发,当然如果是下一跳没有的话就表明是直接交付。

三、两种特殊的路由

在日常业务中除了这种普通的到达目的网络地址的路由以外,还有两种特殊的路由即特定主机路由默认路由

(一)特定主机路由

特定主机路由:指出现在路由表第一列的不是一个网络地址,而是某台主机的IP地址。比如,在调试网络连接或路由表时,可能会需要为单个主机指定一条特殊路由。所以,特定主机路由主要用于网络测试,或者出于安全的考虑。

这里值得思考的是:对于特定主机路由来说,在路由表中应该如何表示呢?

根据特定主机路由的定义我们知道,路由表中第一列是一台主机的IP地址,就说明目的主机IP地址和第一列对应的表示特定主机的32位IP地址都要相同才算是匹配成功,也就是说该行对应的子网掩码应该是255.255.255.255,也就是全1的子网掩码。

(二)默认路由

我们来看另外一种情况,如果互联网中包含的物理网络很多,要想让路由表包含所有网络就会导致路由表表项数量变得很多从而使路由查找起来速度很慢,所以就引入了默认路由。

默认路由:是指如果互联网包含的物理网络很多,让路由表包含所有网络将使路由表表项数很多,查找起来速度较慢。于是把多个下一跳相同的表项合并成一个表项,即默认路由。

同理我们同样要思考的问题是:对于默认路由来说,在路由表中如何表示呢?

这里我们需要注意的是默认路由通常放在路由表的最后一行,并且该行对应的子网掩码为0.0.0.0,目的网络地址为0.0.0.0。如此以来在前面都没有匹配项的情况下无论目的IP地址是多少,因为目的地址要与子网掩码全0相与,最终的结果都是全零,也就是说肯定能够和该行匹配成功。

四、示例

例:某网络拓扑如图所示,从图中我们可以看出该网络拓扑中有两个局域网,由两台路由器,其中路由器R1有两个以太网口,分别是E1和E2连接了两个局域网,R1还有一个广域网的接口L0接了路由器R2,路由器R2的广域网接口L1接入了互联网,此外还有一个以太网口E0连接到了域名解析服务器DNS上,每个接口对应的IP地址都已经给出,对于局域网1、局域网2和路由器R1相连的两个以太网口E1和E2。

5.2.11 IP分组的转发(二)IP分组转发算法

要求

  1. 将IP地址空间202.118.1.0/24划分为2个子网,分别分配给局域网1和局域网2,每个局域网需要分配的地址数据不少于120个。请给出子网划分结果。

    分析:因为 2 7 − 2 = 126 > 120 2^7-2=126>120 272=126>120,所以每个地址块中主机号部分为7为,也就是子网好部分只能是1位。所以每个地址块的网络前缀长度为24+1=25。

    答案:局域网1:202.118.1.00000000/25即202.118.1.0/25

    ​ 局域网2:202.118.1.10000000/25即202.118.1.128/25

  2. 请写出R1的路由表,使其明确到局域网1、局域网2、域名服务器的路由和互联网的路由。

    我们知道路由表结构如下,我们应对应网络拓扑结构填写路由表,按照例题中的要求是要写出四条路由

    1. 到局域网1的路由,从网络拓扑我们可以看出路由器R1到达局域网1属于直接交付,因为他他的以太网口和局域网1相连,从上个例题我们已经得到了局域网1和局域网2的网络地址,所以对于局域网1来说,我们刚刚分配给它的地址块是202.118.1.0/25所以其对应的子网掩码就是25个1和7个0,也就是255.255.255.128,因为对于路由器R1来说到达局域网1是直接交付,所以就没哟下一跳,从拓扑图中我们也能看出通过路由器R1的E1端口直接交付给局域网1。这里需要注意的是接口处应该写的是IP地址,但是拓扑图中没有给出,所以这里就直接用E1表示

    2. 通过到局域网1的路由可以得出局域网2的路由。

    3. 到达域名服务器,这里我们知道域名服务器是一台主机也不是一个目的网络,很显然这是刚才我们提到的一个比较特殊的路由,即特定主机路由,也就是路由表中第三行我们需要填写的是一个到达特定主机的路由。所以第一列写的就是该主机的IP地址,子网掩码就是全1,而要想到达域名服务器,对路由器R1来说就必须把分组送交给R2右边的L0接口,所以下一跳路由器的IP地址当然就是R2路由器的L0接口,接口就要填写本路由器的连接接口,即R1的L0接口,也就是其IP地址。当然这里我们也注意到下一跳路由器IP地址跟本路由器的接口IP地址二者应该在同一网段上只有如此他们才能进行通信。

    4. 如何到达互联网,这里很多人就会有疑问互联网的网络地址,这个问题就是隐含着让我们填写默认路由,因为对于路由器R1来说要么到达局域网1,要么到达局域网2,要么到达域名服务器,剩下的通信都是要到达互联网,所以第四条就应该填写默认路由,这里需要强调的是,默认路由的目的网络IP地址和子网掩码都是全0,下一跳路由器IP地址、接口与到达域名解析服务器是一致的。文章来源地址https://www.toymoban.com/news/detail-488859.html

      目的网络IP地址 子网掩码 下一跳路由IP地址 端口
      202.118.1.0 255.255.255.128 E1
      202.118.1.128 255.255.255.128 E2
      202.118.3.2 255.255.255.255 202.118.2.2 202.118.2.1
      0.0.0.0 0.0.0.0 202.118.2.2 202.118.2.1

到了这里,关于5.2.11 IP分组的转发(二)IP分组转发算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 路由如何通过IP转发数据包

    在数据传输的整个过程中,路由器使用IP地址来识别路由数据包 当一台计算机发送数据包时,它首先会将数据包中的目标IP地址设定为接收方计算机的IP地址,然后将数据包发送到本地网络。 当数据包到达本地网络中的路由器时,路由器会检查数据包中的目标IP地址,并与自己

    2024年02月09日
    浏览(35)
  • Windows上配置IP端口转发

    在通常涉及到使用网络地址转换(NAT)规则,可以使用一些工具和命令行选项来实现。以下是在Windows上配置端口转发的一般步骤: **注意:端口转发需要管理员权限,因此请确保以管理员身份运行命令行工具。** 1. 打开命令提示符(Command Prompt)或Windows PowerShell。 2. 使用以下

    2024年02月03日
    浏览(41)
  • 榨干家庭宽带公网ip------IP直连NAS远程访问(端口转发)

    基本情况:联通千兆宽带有公网ip,极空间z2s,路由器TPlink xdr4288 打开路由器后台页面,进入   工具箱/虚拟服务器, 点击    新建,需要输入  外部端口:和内部端口号相同                                        内部端口:NAS后台端口转发设置,查到端

    2024年02月15日
    浏览(39)
  • IP数据报的发送和转发过程

    同一个网络中的主机可以直接通信----- 直接交付 不同网络的路由器需要路由器来中转---- 间接交付 主机C将自己的ip地址和自己的子网掩码相与,得到主机C的网络地址; 主机C再将主机F的网络地址和自己的子网掩码相与 得到目的网络地址; 发现主机F的目的网络地址和C自己的

    2024年02月10日
    浏览(74)
  • Win11集成 ChatGPT,任务栏取消分组真的回来了

    时隔两月微软如期发布了 Win11 Moments 3 更新,版本号 22621.1778 。 微软这次更新带来了许多质量更新和功能改进。 直观的改动是任务栏,网络图标在连接加密隧道时会上锁,时间显示到秒也重新回归。 日常会用到的 Alt+Tab 任务选项卡被限制到最多20个,可能是因为性能原因。

    2024年02月07日
    浏览(39)
  • 【C++学习】C++11——新特性 | 右值引用 | 完美转发

    🐱作者:一只大喵咪1201 🐱专栏:《C++学习》 🔥格言: 你只管努力,剩下的交给时间! C++的发展截至到目前为止,虽然版本有很多,但是C++11则带来了数量可观的变化,其中包含了约140个新特性,以及对C++03标准中约600个缺陷的修正,这使得C++11更像是从C++98/03中孕育出的一

    2024年02月06日
    浏览(41)
  • 电脑升级win11后配置netsh端口转发未生效问题

    背景:本来我配置端口转发用的好好的,很正常,但是有一天我心血来潮想升级到win11,后面就发现了端口转发失效了,所有端口转发的配置都没了。 在查阅了一系列网上的资料后,我执行了一下几个命令: 首先需用管理员权限进命令行 这里是可以看到成功添加转发的列表

    2024年03月25日
    浏览(51)
  • C++11『右值引用 ‖ 完美转发 ‖ 新增类功能 ‖ 可变参数模板』

    ✨个人主页: 北 海 🎉所属专栏: C++修行之路 🎃操作环境: Visual Studio 2022 版本 17.6.5 自从C++98以来,C++11无疑是一个相当成功的版本更新。它引入了许多重要的语言特性和标准库增强,为C++编程带来了重大的改进和便利。C++11的发布标志着C++语言的现代化和进步,为程序员

    2024年02月05日
    浏览(50)
  • 【网络】网络层协议ARP和IP协议转发流程

    目录 一、IP概述 1.1 IP简介 1.2 IP协议 二、IP地址与硬件地址 三、地址解析协议ARP 3.1 ARP协议简介 3.2 ARP工作流程 3.3 ARP的四种典型情况 四、IP协议的转发流 IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。 IP地址是IP协议提供的一种统一的地址格式,它

    2024年02月03日
    浏览(44)
  • 4.4、IP 数据报的发送和转发过程

    IP 数据报的发送和转发过程包含以下两部分: 主机发送 IP 数据报 路由器转发 IP 数据报 如下两个网络都配置了网络地址和子网掩码,给网络中的各主机和路由器的接口配置了相应的 IP 地址和子网掩码 同一个网络之间的主机可以直接通信,属于 直接交付 不同网络中的主机之间

    2023年04月17日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包