网络的核心部分收到分组后,会依据自己转发表的内容进行转发。图5.4广域网中主机地址的组成分组可以这种地址方式表示目的主机的地址。图5.6结点交换机转发分组表5.3图5.6 对应的转发表在较小的网络中,转发表中重复的项目不多,但较大的广域网转发表就有可能出现很多的重复项,使用默认路由能够简化转发表,减少程序查找转发表的时间,提高转发效率,但默认路由需要网络管理员根据网络拓扑结构进行特殊配置。......
2023-10-19
分组转发又称为分组交付,是指互联网中路由器转发IP 分组的物理传输和转发交付机制。分组交付有两种:直接交付和间接交付。路由器根据IP 分组的源地址和目的地址是否属于同一个网络,以此来判断是直接交付还是间接交付。当源主机和目的主机处于同一个网络时,或者当目的路由器向目的主机传送分组时,分组被直接交付。如果源主机和目的主机不在同一个网络,那么分组就间接交付。在间接交付时,路由器从路由表中查找到下一跳路由器的IP 地址,再将分组转发给下一跳路由器。当IP 分组到达与目的主机所在网络的路由器时,进行直接交付,随后分组到达目的主机,在中间路由器的存储转发过程结束。下面讨论互联网中进行分组交付的三种分组转发机制。
(1)未划分子网的分组转发
下面通过一个例子说明路由器是如何进行分组转发的。
在如图6.7所示的网络拓扑中,有四个B 类网络通过三个路由器连接在一起。每个网络上都可能拥有成千台主机。为了使路由器中路由表的项数不至于太庞大,路由器通过各个网络的网络地址对路由表进行组织和管理。这样,针对图6.8 中的拓扑结构,每个路由器的路由表就只包含四个项目。
为了分组能够交付,路由表中的每项都应至少包括两部分信息:目的网络地址和下一跳地址。路由器根据目的网络地址进行项的匹配,根据项的下一跳交付数据。路由表中表项的内容可以由网络管理员根据情况静态配置,也可以根据动态路由选择算法动态生成。无论如何,路由器中路由表的表项体现了整个网络的拓扑结构。
图6.8 未划分子网的分组转发
以路由器R2 的路由表为例,其路由表中的表项如图6.8所示。由于R2 同时连接网络2和网络3,若目的主机在网络2 或网络3 上,则路由器均可通过其接口0 或接口1 直接交付;若目的主机在网络1 中,则下一跳路由器应为R1,相应端口的IP 地址为139.10.0.2。同理,若目的主机在网络4 中,则下一跳路由器应为R3,相应端口的IP 地址为149.10.0.1。
当然,实际路由器中路由表的项并非仅包括目的主机所在的网络及下一跳地址这两个内容,还会有其他(如标志、接口、使用情况等)信息,这里是为了简便地描述分组交付过程,只给出分组交付最重要的两部分内容。
虽然互联网中所有路由器的表项大多数都是基于目的主机所在的网络,但也可以对特定的目的主机指明一个路由,即特定主机路由。采用特定主机路由可使网络管理员更方便地控制网络和测试网络,也可以在需要考虑某种安全问题时采用特定主机路由。因此,在对网络连接或路由表排错时,采用特定主机路由是十分有用的。
为了减少路由表的占用空间和搜索时间,还可以用默认路由来代替所有具有相同“下一跳地址”的表项。当一个网络只有很少的对外连接时,使用默认路由相对简便很多。例如,一个小型网络只用一个路由器和互联网相连,无论这个小型网络中的哪个分组经过路由器出网,都要经过一个端口进行分组转发。这种情况下,采用默认路由是比较合理的。默认路由一般部署在网络边缘或者互联网出口,方便配置和管理。
未划分子网时,路由器转发分组的算法步骤为:
①从IP 数据报首部提取目的主机IP 地址D,得出目的主机的网络地址N。
②若N 是与此路由器直接相连的某个网络,则进行直接交付;否则就是间接交付,执行下一步。
③若路由表中有目的主机IP 地址为D 的特定主机路由,则进行特定主机路由的转发;否则,执行下一步。
④若路由表中有目的网络地址为N 的表项,则按照此表项指明的下一跳转发分组;否则,执行下一步。
⑤若路由表中有默认路由,则按照默认路由的项转发分组;否则,报告分组出错。
(2)划分子网的分组转发
在划分子网的情况下,只知道目的主机的IP 地址D,是不能真正得到目的主机所在的网络号的,这是因为划分子网时还要确定此目的主机所在的子网号,才能最终确定其网络号,这样就需要用到子网掩码。也就是说,子网掩码可以标识目的主机的子网号,是能够确定目的主机网络号的重要信息。这样,路由表中的表项应该包括至少三项内容:目的主机网络地址、子网掩码和下一跳路由器地址(或转发接口)。
如图6.9所示为划分子网时的拓扑结构。图中三个子网通过两个路由器互联,主机H1、H2、H3 分别连接在这三个子网上,各个子网由其子网掩码确定所在的网络号。假设主机H1要与主机H2 通信,则数据处理过程如下:首先,源主机H1 要判断所发送的分组是否在本子网中,因此,源主机H1 将本子网的子网掩码“255.255.255.128”与目的主机H2 的IP 地址“129.30.33.138”逐位相“与”,得出运算结果“129.30.33.128”,它不等于H1 的网络地址(129.30.33.0)。这说明H2 与H1 不在同一个子网上,H1 不能将分组直接交付,必须交给子网上的路由器R1 进行转发。
图6.9 划分子网的分组转发(www.chuimin.cn)
路由器R1 收到这个分组后,就在其路由表中逐行寻找有无匹配的网络地址。
R1 路由器取路由表的第一个表项的子网掩码“255.255.255.128”和收到的分组的目的地址“129.30.33.138”逐位相“与”,得结果“129.30.33.128”,然后和这个表项给出的网络地址“129.30.33.0”进行比较,结果不一致,需要继续查找第二个表项。路由器用同样的方法处理第二个表项,用其子网掩码“255.255.255.128 ”和该分组的目的地址“129.30.33.138”逐位相“与”,得结果“129.30.33.128”。这个结果和第二个表项的网络地址一致,则匹配成功。这说明第二个表项所标识的网络就是分组所要寻找的目的网络,路由器则不需要再继续查找,只需要将此分组从接口1 转发出去,进行直接交付到达主机H2。
划分子网时,路由器转发分组的算法步骤为:
①从IP 数据报首部提取目的主机IP 地址D。
②判断是否能够直接交付。对路由器直接相连的网络逐个进行检查;用各网络的子网掩码和D 逐位进行“与”运算,检查是否运算结果与相应的网络地址相匹配。若匹配成功,则将该分组直接交付;否则,进行间接交付,执行下一步。
③若路由表中有目的主机IP 地址为D 的特定主机路由,则进行特定主机路由的转发;否则,执行下一步。
④对路由表中的每一个表项,用其中的子网掩码和D 逐位进行“与”运算,其结果为N。若N 与该表项的目的网络地址相匹配,则由此表项转发分组;否则,执行下一步。
⑤若路由表中有默认路由,则按照默认路由的表项,转发分组;否则,报告分组出错。
(3)使用CIDR 的分组转发
使用CIDR 时路由器转发分组的算法与上述过程相似,只是此时IP 地址是由网络前缀和主机号两部分组成,因此,路由表中的表项内容也应该作相应的改动,即路由表的每一个表项内容为“网络前缀”和“下一跳地址”。另外,在查找路由表时会出现不止一个匹配结果,因而就存在如何从这些匹配表项中选择某一条进行路由的问题。
实际上,路由器应该从匹配结果中选择具有最长网络前缀的路由,即最长前缀匹配。这是因为网络前缀越长,对应网络的地址块就越小,所指明的路由就越具体。
例如,在如图6.10所示的拓扑结构中,某ISP 已拥有地址块202.117.64.0/18(相当于拥有64 个C 类网络),而某大学仅需要800 个IP 地址。在使用CIDR 时,ISP 可以给该大学分配一个地址块202.117.68.0/22,它包含1 024 个IP 地址,相当于4 个连续的C 类/24 地址块。在此基础上,这个大学还可以自主将所得地址块再划分给下属的各个系使用。
图6.10 使用CIDR 的网络
假设该大学有四个系,则进一步分配IP 地址为:一系地址块为202.117.68.0/23,包含的IP地址为512 个;二系地址块为202.117.70.0/24,包含的IP 地址为256 个;三系地址块为202.117.71.0/24,包含的IP 地址为256 个;四系地址块为202.117.71.128/25,包含的IP 地址为128 个。
按照一般的做法,在ISP 路由器的路由表中,有该大学的一个表项,负责将发送到该大学的数据报都传送至该大学,然后再下送到各个系。但是,现假设大学下属的四系希望将发往该系的数据报直达而不经过大学的路由器转发,同时又要求不改变原来使用的IP 地址块。为了达到此要求,在ISP 路由器的路由表中应包含该大学的两个表项,即202.117.68.0/22(大学)和202.117.71.128/25(四系)。
现假设ISP 路由器收到的一个数据报,其目的IP 地址D =202.117.71.130。此时,将D与路由表中的这两个表项的地址掩码进行逐位“与”运算,得结果如下:
D 与11111111 11111111 11111100 00000000 逐位相“与”,得207.117.68.0/22,说明D 与该大学的网络地址是匹配的。
D 与11111111 11111111 11111111 10000000 逐位“与”,得207.117.71.128/25,说明D 与四系的网络地址是匹配的。
可见,同一个IP 地址在路由表中找到两个网络相匹配。根据最长前缀匹配原则,选择后者,即将该数据报传送给四系的地址块。
使用CIDR 后,由于要寻找最长的前缀匹配,使得路由表的查找过程更加复杂,尤其是路由表的项数很大时,将大大增加查表的时间。为了缩短查表时间,可以在路由表中采用更好的数据结构存储表项,从而进一步寻求性能更优的查找算法。例如,通常将使用CIDR 的路由表存放在一种层次的数据结构中,形成线索二叉树,进一步提高查找效率。
有关计算机网络技术的文章
网络的核心部分收到分组后,会依据自己转发表的内容进行转发。图5.4广域网中主机地址的组成分组可以这种地址方式表示目的主机的地址。图5.6结点交换机转发分组表5.3图5.6 对应的转发表在较小的网络中,转发表中重复的项目不多,但较大的广域网转发表就有可能出现很多的重复项,使用默认路由能够简化转发表,减少程序查找转发表的时间,提高转发效率,但默认路由需要网络管理员根据网络拓扑结构进行特殊配置。......
2023-10-19
TCP/IP协议设计人员采用一种创造性的方法,解决了诸如以太网这样具有广播能力物理网络的地址转换问题。ARP表放在内存储器ARP高速缓存中,其中的登录项是在第一次需要使用而进行查询时通过ARP协议自动填写的。ICMP也是在网络层中与IP一起使用的协议。ICMP的使用主要包括以下3种情形。......
2023-11-04
直到1982年,TCP/IP协议的具体规范才被最终定下来,并于1984年或为互联网唯一指定的协议。与OSI参考模型不同,TCP/IP模型更侧重于互联设备间的数据传送,而不是严格的功能层次之分。因此,OSI参考模型在解释互联网络通信机制上比较合适,但TCP/IP成为互联网络协议的市场标准。通常所说的TCP/IP协议实际上包含了大量的协议和应用,由多个独立定义的协议组合在一起。因此,TCP/IP并不是指TCP和IP两个协议,而是表示Internet所使用的体系结构或整个协议簇。......
2023-10-22
MTU 一般取1 500 字节,这就决定了IP 报文长度不能超过1 500 字节。除去IP 头部固定的20 字节,IP 报文的上层数据不能超过1 480 字节。因此,超过UDP 和TCP 能够承载的最大数据长度的分组就需要进行分片。标志符占3 位,目前只有前两位有意义。如果接收到的所有分片的数据长度等于源IP 报文数据部分长度,说明所有分片均已到达。......
2023-11-19
IP协议也称网际协议,是TCP/IP协议簇的核心协议之一。IP协议最基本的服务是提供一个不可靠的、尽最大努力去完成好任务的、无连接的分组投递系统。IP协议也包括一套规则,指明分组如何处理、错误怎样控制。特别是,IP协议包含不可靠投递的思想,以及与此关联的分组路由选择的思想。由IP协议为Internet的每一台主机都分配一个唯一地址,称为IP协议地址。TCP/IP协议规定,网络号127不可用于任何网络。......
2023-11-04
目前比较典型的分组交换数据网有DATAPAC、CHINAPAC、TRANSPAC等。X.25是一组协议,于1976年3月正式成为国际标准,规定了分组终端与分组交换网的接口规程。......
2023-10-22
而BACnet标准考虑到楼宇自控网络可靠性和实时性及运行效率,并根据BACnet网络的特点,对ISO-RM网络层功能进行了简化。对BACnet报文分段是BACnet网络的应用层功能,因此网络层不再涉及报文分段及相关的管理,因此网络层的功能进一步简化。BACnet网络层功能简化具体体现在网络层处理和传输的BACnet报文最大长度仅仅取决于网络层下层连接的不同局域网传输报文长度中的最小报文长度。......
2023-08-29
IPv4 协议中规定的IP 地址是一个用32 位的二进制代码表示的标识符。分类的IP 地址是最基本的编址方式。为了便于书写,可用等效的十进制数字来表示,并在这些数字之间加上一个点,称为IP 地址的点分十进制记法。如图6.1所示是一个IP 地址的表示方法。图6.2分类的IP 地址在IP 地址的分配中,有一些特殊的IP 地址留作特殊用途,不做分配。为了满足内网的使用需求,保留了一部分不在公网使用的IP 地址。......
2023-10-19
相关推荐