zoukankan      html  css  js  c++  java
  • 【网络基础】路由表,分组转发算法

    前提:

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

    转载请注明出处

    谢谢!



  • 相关阅读:
    spring 源码解析一(bean定义)
    IOC 容器中添加组件的方式
    spring 后置处理器
    .NetCore3.1 配置Kestrel端口的几种方式及优先级
    CESIUM空间中AB两点A绕B点的地面法向量旋转任意角度后新的A点坐标(A’)
    Cesium坐标转换:根据两个坐标点(坐标点a、坐标点b)的经纬度,计算a点和b点的角度
    任意一个点A(x,y)围绕任意一个点B(a,b)旋转任意角度后的坐标值
    已知地球上的2点坐标,A和B,求A,B线上 任意点位置。
    centos6下mysql5.7.13制作rpm包
    sql 删除狐立帐户
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5120811.html
Copyright © 2011-2022 走看看