计算机网络之网络层(三)

| 2019-05-17

1、路由的分类
1.静态路由(手动配置)
静态路由中包括目的节点或目的网络的IP地址,及数据包从当前路由器开始路由的第一个下一跳(通常就是网关)所对应的接口或IP地址。
如果某条静态路由中间经过的跳数大于1(也就是整条路由路径经历了三个或以上路由器结点),则必须在除最后一个路由器外的其他路由器上依次配置到达相同目的节点或目的网络的静态路由

2.动态路由
在网络中某条路由所包括的路由器同时启动了某种动态路由协议,通告了各自所直接连接的网络后,则这些路由器间就会自动生成这些路由器直接连接的网络间的路由表项,管理员无须一一手动创建,且这些路由表项会自动更新维护。
2、路由算法
路由算法(Routing Algorithm)是在给定一组路由器及连接路由器链路的情况下,找出一条从源节点到目标节点的最佳路径。通俗地讲,就是把路由器选择最佳路径的策略称为路由算法
1.分类
①非自适应路由算法
那些不能根据网络流量和拓扑结构的变化更新路由表,仅使用静态路由表的路由算法
(1)静态路由 
(2)扩散法:当一个路由器接口收到一个报文分组后,即向它所有接口(包括接收该分组的源接口)进行复制扩散 
(3)随机走动法:当结点收到分组后,向所有与之相邻的结点中随机选择出一个将分组转发出去 
(4)最短路径法:将源节点到网络中所有结点的最短通路都找出来,作为这个结点的路由表。 
(5)基于流量的路由算法:结合了网络拓扑结构和通信流量两方面的因素进行路由选择
②自适应路由算法
动态路由均属于自适应路由算法类型,可根据网络流量和拓扑结构的变化更新路由表。
(1) 自适应路由算法两大分类
总体式路由算法(链路状态算法和分级路由算法)
每个路由器都拥有网络中某个区域或者整个网络中所有其他路由器的全部信息以及网络的流量状态
分散式路由算法(距离矢量算法)
每个路由器只与直接相连的路由器交换路由信息,每个路由器只有相邻路由器的路由信息,而没有网络中的其他路由器的路由信息
(2) 距离矢量算法(RIP协议)
又称Bellman-Ford路由算法和Ford-Fulkerson算法。主要在RIP(Route Information Protocol)协议中使用
距离: 从本结点起,每经过一个路由器(也可以是提供路由功能的三层交换机,下同),就加一跳。也就是对应路由条目中除源站点所在网络直接连接的路由器外,到达目的站点所经过的路由器数
所有的路由学习完全依靠邻居路由器,交换的是完整的路由表项。
距离矢量路由算法的基本思想如下:
每个路由器维护一个距离矢量(通常是延时或跳数)表,然后通过相邻路由器之间的距离矢量通告进行距离矢量表的更新。
每个距离矢量表项包括两部分:到达目的节点的最佳输出线路,和到达目的节点所需时间或距离,通信子网中的其他每个路由器在表中占据一个表项
每隔一段时间,路由器会向所有邻居结点发送它到每个目的节点的距离表,同时它也接收每个邻居结点发来的距离矢量表。这样以此类推,经过一段时间后便可将网络中各路由器所获得的距离矢量信息在各路由器上统一起来
(3) 链路状态路由算法(OSPF协议)
它不仅是要根据所经过的路由器多少,还要根据路径中各段链路的状态来计算最佳路由路径。而这个链路状态包括:接口的IP地址、子网掩码、网络类型(如以太网链路或串行点对点链路)、该链路的端口开销(Cost)、该链路上的所有的相邻路由器。
网络中的路由器并不向邻居路由器传递路由表项,只是向邻居路由器通告它的一些链路状态
链路状态路由算法的基本思想是:
网络中各个结点不必交换通往目的站点的距离,而是维护一张网络拓扑图,在网络拓扑结构发生变化时及时更新拓扑图即可。
5个步骤:
1)发现邻居结点,并知道其网络地址; 
2)测量到各邻居结点的延时或开销; 
3)组装一个链路状态分组,告之刚知道的所有信息;

时间”即链路状态生存时间(TTL)
4)将这个分组发送给所有其他路由器; 
5)每个分组使用Dijkstra算法(也就是“最短路径”算法)计算到每个其他路由器的最短路径。
(4)分级路由算法(ISIS协议)
在分级路由算法中,路由器被分成很多组,称为区域。每个路由器都只有自己所在区域路由器的信息,而没有其他区域路由器的信息。所以在其路由表中,路由器只需要存储其他每个区域的一条记录。
在分级路由算法的思想下,出现了自治系统、内部网关协议、外部网关协议等概念

自治系统AS:
一个自治系统(AS)是一个有权自主地决定在本系统中应采用各种路由协议的小型单位。这个网络单位可以是一个简单的网络也可以是一个由一个或多个普通的网络管理员来控制的网络群体,它是一个单独的可管理的网络单元(例如一所大学,一个企业或者一个公司个体)。一个自治系统有时也被称为是一个路由选择域(routing domain)
内部网关协议:
IGP(内部网关协议)是在一个自治网络内网关(主机和路由器)间交换路由信息的协议。
IGP协议包括RIP、OSPF、IS-IS、IGRP、EIGRP。
外部网关协议:
AS之间使用的路由协议,如BGP-4协议
3、路由优先级
当路由器同时配置了源和目的节点(或目的网络)的不同类型路由时,路由器该首选采用哪条路由表项呢?
管理距离是指一种路由协议的路由可信度,是一个0~255之间的一个整数,值越低,优先级越高,也就是可信度越高

六、网络拥塞控制方法和原理
1、原理
网络拥塞现象是指到达通信子网中某一部分的数据包数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象。
之所以会出现拥塞现象,就是因为通信子网中所承受的负荷(即通信子网中正在传输的数据包数)超出了网络的吞吐能力(包数/秒)。当通信子网负荷比较小时,网络的吞吐量随网络负荷的增加而线性增加。当网络负荷增加到某一值后,此时网络的吞吐量达到了最大值。若再加网络负荷,此时的网络吞吐量会不升反降,则表明网络中开始出现拥塞现象了。
2、控制方法
1.缓冲区预分配法
常用于虚电路分组交换网中。在虚电路建立时,要求呼叫请求分组所途经的每个结点为此条虚电路预先分配一个或多个数据缓冲区。
若某个结点当前无可用的缓冲区(被请求的结点会返回一个“忙”应答信号给呼叫请求分组发送者),则在建立虚电路时,让呼叫请求分组选择其他路径来建立虚电路。
这样,通过途经的各个结点就可以为每条虚电路开设永久性的缓冲区(直到虚电路拆除),就总能有空间来接纳并转送经过的数据包。
2.分组丢弃法
节点不必预先为数据包预留缓冲区,而是在路由器的缓冲区已被占满时,只需将后面到来的数据包丢弃,仅在缓冲区腾出空间后再重新接收数据分组

3.定额控制法
在通过通信子网中设置适当数量称为许可证的特殊信息来实现
其中一部分许可证在通信子网开始工作前预先以某种策略分配给各个源节点;另一部分则在子网开始工作后在网中四处环游。
当源节点要发送来自源端系统的数据包时,它必须首先拥有许可证,并且每发送一个数据包注销一张许可证。
目的节点则每收到一个数据包,并将其递交给目的端系统后,便生成一张许可证
这种控制方法有点像令牌网上的介质争用解决方案。在令牌网中,源节点要发送数据必须要获取网络中唯一的令牌,不同的是这里的证书不是唯一的,而是有许多。
3、死锁及其预防
死锁就是一些结点由于没有空闲缓冲区而无法接收和转发数据包(转发时也需要一定的缓冲空间的)的现象,死锁的结果是结点间相互等待,既不能接收数据包也不能转发数据包,并一直保持这一僵局,严重时甚至导致整个网络的瘫痪
(1)预防方法:
①为每个结点设置m+1个缓冲区(m为通信子网的直径,即从任一源结点到任一目的结点间的最大链路段数),并顺序编号。每个源结点仅当其为0号缓冲区可用时才能接收源端系统来的数据包,而此数据包仅能转发给1号缓冲区空闲的相邻结点,再由该结点将数据包转发给它的2号缓冲区空闲的相邻结点,以此类推。
②使每个数据包上都携带一个全局性的唯一的“时间戳”,每个结点要为每条链路保留一个特殊的接收缓冲区,而其他缓冲区均可用于存放中转数据包,按每条输出链路的队列上数据包时间戳顺序排队。
例:
结点A要将数据包送到结点B,若B结点没有空闲缓冲区,但正巧有要送到A结点的数据包,此时A、B结点可通过特殊的接收缓冲区交换数据包;若B结点既没有空闲缓冲区,也没有要送到A结点的数据包,B结点只好强行将一个出路方向大致与A结点方向相同的数据包与A结点数据包互相交换,但此时A结点中的数据包必须比B结点中的数据包具有更早的时间戳,这样才能保证子网中某个最早的数据包不受阻挡地转发到目的地。
(2)重装死锁及其防止
在数据分组重新组装、恢复成原来数据包的过程中发生的死锁,是另一种比较严重的死锁现象
例:
假设源结点发送的报文很长,被源结点拆成若干个数据分组发送,当这些分组到达目的结点后,就要将这些具有相同报文序号的多个分组重新组装成一个完整的报文再递交给目的端系统。
若目的结点用于重装报文的缓冲区空间有限,而且它无法知道正在接收的报文究竟被拆成多少个数据分组,此时就可能发生死锁现象,因为它没办法完成整个分组的重装,在缓冲的分组就不能被发送出去。
而此时相邻结点仍在不断地向它传送数据分组,因没有可用的缓冲空间,本结点就无法继续接收这些后续的分组了
防止:
❏允许目的结点将不完整的报文递交给目的端系统,只要按顺序发送即可,完整组装的任务交给目的端系统。
❏检测出不能完整重装的报文,然后要求发送该报文的源端系统重新传送,但这种方法的有效性比较低,因为这也很难确保目的节点在重发时就有足够的缓冲空间。
❏每个结点配备一个专门的缓冲空间,用以暂存不完整的报文,相当于CPU上配置的多级缓存,但这明显会增加设备的成本。
七、IPv4详解
1、子网掩码
我们在为设备配置IP地址时,通常是不能仅配置IPv4地址,而必须同时配置所谓的子网掩码。
1.概念:
IPv4地址在设计时就考虑到地址分配的层次特点,将每个IP地址都分割成网络ID和主机ID两部分,以便于IPv4地址的寻址操作。
子网掩码由1和0组成,且长度也是32位,我们也可以把它分成网络ID和主机ID两部分,且各自的长度与IPv4地址的网络ID和主机ID部分对应相等。子网掩码中的网络ID部分全是1,1的数目等于网络ID的长度;主机ID部分全是0表示,0的数目等于主机ID的长度。

这样做的目的是为了在寻址过程中使子网掩码与对应的IPv4地址做逻辑与运算时用0遮住IPv4地址中原主机ID部分,而不改变原网络ID部分,这样就一来就得到了目的IPv4地址的网络ID,从而确定目的主机所在的网络.

2、IPv4地址分类



私网IP地址
在设计IPv4地址时就专门在前面介绍的A、B、C这类IPv4地址中各自划分了一段专用于各组织局域网内部的地址段,这就是我们前面所说的私网IP地址(又称局域网专用IP地址或者专用网络地址)。私网IPv4地址在不同公司内部的局域网中是可以重复使用的,且无须向IP地址管理机构申请、注册和购买的。在A、B、C类地址中各自划分的局域网专用地址段如下:
(1)10.0.0.0/8(10.0.0.0,255.0.0.0) 
(2)172.16.0.0/12(172.16.0.0,255.240.0.0) 
(3)192.168.0.0/16(192.168.0.0,255.255.0.0)
不能直接用私网ip地址访问internet!
3、有类/无类IPv4网络
尽管已针对整个IPv4地址空间进行分类,但每类网络的数量对于全球用户数量来说仍非常之少,特别是A类网络才区区的126个。之所以会出现这种现象,原因就在于每类网络的网络ID部分(也就是子网掩码部分)的位数是固定不变的,而且是字节的整数倍,如A类网络中的网络ID部分占1字节(8位),B类网络中的网络ID部分占2字节(16位)、C类网络中的网络ID部分占3字节(24位)。
也就是说,子网掩码在分类网络中是固定的
1.VLSM技术(子网划分)
该技术可以使网络中IPv4地址的子网掩码所占位数不是固定的,如子网掩码位数可以不是以字节为单位的整数,如12、13、14、25、26、28、等均可。

因为子网掩码位数不固定了,也就不能再依据子网掩码对IPv4地址来进行分类了,所以采用VLSM后形成的网络称为无类网络,而以前传统的A、B、C类网络则相对应地被称为有类网络或标准网络。
而我们把在有类网络中通过VLSM技术改变子网掩码长度而划分的小网络称为子网
VLSM只能划分相同大小的子网,也就是一个网络划分了子网后,各子网的IPv4地址数是相同的
好处:
①用户可以根据网络规模大小选择拥有适当可用IPv4地址的IPv4地址段,这样可以减少IPV4地址的闲置和浪费,降低广播风暴产生的可能; 
②可以提高路由效率; 
③提高广域网中的网络安全。
如原来一个标准的C类网络中有254个可以分配给节点的地址,现在公司中有6个部门,每个部门的人数不超过30人,现在想为每个部门分别配置一个子网。如果没有VLSM,则需要用6个C类标准网络。而有了VLSM后,仅用一个C类网络就可以划分出所需的6个子网,而且每个子网中可用的IPv4地址更贴近各部门的实际需求。
注意:
传统的IPv4地址表示方法是在给出具体的IPV4地址的同时给出它所对应的子网掩码, 如192.168.1.10、255.255.255.0等。 这也是我们在为节点配置IP地址的同时要配置子网掩码的原因。但在日常书写时,这样显然比较麻烦
为了能更加简便地书写,采取了一种比较简单的地址前缀表示形式(CIDR格式),就是在一个IPv4地址后面先加上一个斜杠(/),然后在这个斜杠后面直接写出该地址所在网络的子网掩码长度,因为网络ID长度决定了具体IPv4地址所属的网络。
例:
要把192.168.1.0/24网络划分成四个子网,它可以通过向“主机ID”借2位来实现,这4个子网分别是:
①192.168.1.0~192.168.1.63(192.168.1.0/26) 
②192.168.1.64~192.168.1.127(192.168.1.64/26) 
③192.168.1.128~192.168.1.191(192.168.1.128/26) 
④192.168.1.192~192.168.1.255(192.168.1.192/26)
如从131.107.0.0/18这个地址中可知它所对应的网络中有18位属于网络ID部分,有14位属于主机ID部分
4、IPv4 NAT基础
NAT技术允许组织内部网络使用非全局可路由IP地址(如企业的私网ip地址)的用户通过地址转换为全局可路由的IP地址来访问Internet,以降低了对公网IP地址的需求。

1.与NAT相关的主要术语
(1)内部网络(Internal Network)
内部网络通常是指一个边缘局域网,使用内部网络(如私网)IPv4地址
(2)外部网络(External Network)
除本地私有网络以外的所有其他网络
(3)本地地址(Local address)
本地地址是本地网络(可以是内部网络,也可以是外部网络)内部使用的IP地址,仅在本地网络有效,不能直接用来访问外部网络的IP地址,不可路由
①内部本地地址(Inside local address)
内部本地地址是指分配给内部网络主机的IP地址。
②外部本地地址(Outside local address)
为外部网络主机分配的本地网络IP地址,是外部网络主机对内部网络用户呈现的IP地址。
(4)全局地址(Global address)
全局地址是与本地地址相对应的IP地址,它是内、外部网络本地址转换后的IP地址的,是可路由的。
①内部全局地址(Inside global address)
内部网络主机对外部网络用户呈现的IP地址(可以是分配给路由器连接外部网络接口的IP地址),是内部本地地址转换后的地址。
②外部全局地址(Outside global address)
外部网络主机分配到的外部网络IP地址。它通常是由ISP分配给企业用户内部网络使用的注册IP地址
2.NAT基本原理
NAT进行地址转换的过程就是本地地址与全局地址之间的转换过程,无论数据包是从内部网络发往外部网络,还是从外部网络发往内部网络。不同的只是本地地址和全局地址所对应的网络不同,以及数据包重新封装的源和目的地址不同
当数据包还在内部网络位置时有一个作为源地址的内部本地地址和一个作为目的地址的外部本地地址。此数据包首先发往路由器连接内部网络的接口中。当数据包被转发到外部网络时,数据包的源地址就会转变为内部全局地址,而目的地址被转变为外部全局地址
数据包是从外部网络位置发来,并且仍位于外部网络中时,它的源地址就是外部全局地址,目的地址就是内部全局地址。而当数据包被路由器转发到本地网络时,源地址被转变为外部本地地址,目的地址被转变为内部本地地址

3.NAT类型
(1)静态NAT(Static NAT)
把非注册IP地址(如本地局域网IP地址)一对一地映射到公网注册IP地址(如互联网IP地址)

(2)动态NAT(Dynamic NAT)
把一个非注册IP地址动态地映射到一个注册IP地址池中的一个地址。具体是哪两组IP地址之间的映射关系,还要看所配置的具体公用IP地址池和通信时间。
下图所示是一个动态NAT应用的示例:
内网中的三个IP地址与一个范围为213.18.123.100~213.18.123.150的公网IP地址池进行动态映射。最终的结果是,192.168.32.10映射为213.18.123.116,192.168.32.12映射为213.18.123.112,而192.168.32.15映射为213.18.123.125,……

(3)重载或复用NAT(Overloading NAT)
它通过与IP地址的不同端口组合,把多个非注册IP地址映射到一个注册IP地址,也就是通常所说的PAT(Port Address Translation,端口地址转换)。通过PAT,数千内网用户都可以仅通过一个公网IP地址访问Internet。

(4)重叠(Overlapping)NAT
当内部网络中使用的IP地址是外部网络中注册的IP地址时(也就是内、外部网络使用的是相同IP地址段时),路由器需要维护一张查询表,以便截取来自内部网络的数据包,并用外部网络中没有使用的注册IP地址进行替换。
重叠NAT主要应用于使用公网IP地址的内部网络服务器的地址转换,这样可以隐藏内部网络服务器的真实公网IP地址,有利于保护服务器的安全。因为经过NAT转换后,内部网络服务器对外呈现的是另一个公网IP地址,不是真实的服务器IP地址。
重叠NAT的详细介绍可见 重叠NAT转换方式 - NetEngine AR V300R019 配置指南-IP业务(命令行) - 华为
4.NAT主要应用
(1)无足够的公网IP地址可用时 
(2)重构网络IP地址部署 
(3)实现简单的TCP负载均衡
 

 

编辑:航网科技 来源:腾讯云 本文版权归原作者所有 转载请注明出处

在线客服

微信扫一扫咨询客服


全国免费服务热线
0755-36300002

返回顶部