文章目录
网络层
网络层的功能
- 设计思路:向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务;
- 优势:网络的造价大大降低,运行方式灵活,能够适应多种应用;
异构网络互联
- 中继系统
- 物理层中继系统:中继器,集线器;
- 数据链路层中继系统:网桥或交换机;
- 网络层中继系统:路由器;
- 网络层以上的中继系统:网关;
- 使用物理层或数据链路层的中继系统时,只是把一个网络扩大了,而从网络层的角度看,他依然是同一个网络,一般并不称为网络互联;因此网络互联通常是指用路由器进行网络互联和路由选择;
- 虚拟互联网络:
- 逻辑互联网络;
- 互联起来的各种物理网络的异构性本来是客观存在的,但是通过IP就可以使这些性能各异的网络层看起来好像是一个统一的网络;
- 这种使用IP的虚拟互联网络可简称为IP网络;
- 好处:
- 当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互联的具体的网络异构细节;
路由与转发
- 路由选择:
- 根据特定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表;
- 按照复杂的分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由;
- 分组转发:
- 处理通过路由器的数据流,关键操作是转发表查询、转发及相关的队列管理和任务调度等;
- 路由器根据转发表将用户的IP数据报从合适的端口转发出去;
拥塞控制
- 判断网络进入拥塞状态方法:观察网络的吞吐量与网络负载的关系
- 随着网络负载的增加,网络的吞吐量明显小于正常的吞吐量,那么网络就可能已经进入“轻度拥塞”状态;
- 如果网络的吞吐量随着网络负载的增大而下降,那么网络就可能已经进入拥塞状态;
- 如果网络的负载继续增大,而网络的吞吐量下降到0,那么网络就可能已进入死锁状态;
- 流量控制和拥塞控制的区别:
- 流量控制往往是指在发送端和接收端之间的点对点通信量的控制,流量控制所要做的是抑制发送端发送数据的速率,以便使接收端来得及接收;
- 拥塞控制必须确保通信子网能够传送待传送的数据,是一个全局性问题,涉及网络中所有主机、路由器及导致网络传输能力下降的所有因素;
- 拥塞控制的两种方法:
- 开环控制:
- 静态的预防方法;
- 在设计网络时,事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞;
- 一旦整个系统启动并运行,中途就不需要再修改;
- 在决定前不考虑当前网络的状态;
- 闭环控制:
- 基于反馈环路的概念,动态方法;
- 事先不考虑有关发生拥塞的各种因素,采用监测网络系统去监视,及时检测哪里发生了拥塞,然后将拥塞信息传到合适的地方,以便调整网络系统的运行,并解决出现的问题;
- 开环控制:
路由算法
静态路由与动态路由
- 静态路由算法:
- 非自适应路由算法,指由网络管理员手工配置的路由信息;
- 当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息;
- 不能及时适应网络状态的变化,对于简单的小型网络,可以采用静态路由;
- 动态路由算法:
- 自适应路由算法;
- 路由器上的路由表项是通过相互连接的路由器之间彼此交换信息,然后按照一定的算法优化出来的,而这些路由信息会在一定时间间隙里不断更新,以适应不断变化的网络,随时获得最优的寻路效果;
- 能改善网络的性能并有助于流量控制;
距离-向量路由算法
- 所有结点都定期地将它们的整个路由选择表传送给所有与之直接相邻的结点,这种路由选择表包括:每条路径的目的地;路径的代价;
- 更新路由选择表的情况:
- 被通告一条新的路由,该路由在本结点的路由表中不存在,此时本地系统加入这条新的路由;
- 发来的路由信息中有一条到达某个目的地的路由,该路由与当前使用的路由相比,有较短的距离较小的代价,这种情况下,就用经过发送路由信息结点的新路由替换路由表中到达那个目的地的现有结点;
- 距离-向量路由算法实质:
- 迭代计算一条路由中的站段数或延迟时间,从而得到达到一个目标的最短(最小代价)通路;
- 要求每个结点在每次更新时都能将他的全部路由表发送给所有相邻结点;
- RIP算法,采用“跳数”作为距离的度量;
链路状态路由算法
- 要求每个参与该算法的结点都具有完全的网络拓扑信息;
- 两项任务:
- 主动测试所有邻接结点的状态,两个共享一条链接的结点是相邻结点,它们连接到同一条链路,或者连接到同一广播型物理网络;
- 定期地将链路状态传播给所有其他结点;
- 三个特征
- 向本自治系统中所有路由器发送信息使用的是泛洪法,即路由器通过所有端口向所有相邻端口的路由器发送信息,而每个相邻路由又将此信息发往其所有相邻路由器(除刚刚发来信息路由器);
- 发送的信息是与路由器相邻的所有路由器的链路状态,但这只是路由器所知道的的部分信息;
- 链路状态:说明本路由器与哪些路由器相邻及该链路的“量度”;
- 对于OSPF,链路“量度”主要用来表示费用、距离、时延、带宽等;
- 链路状态:说明本路由器与哪些路由器相邻及该链路的“量度”;
- 只有当链路状态发生变化时,路由器才向所有路由器发送此信息;
- 优点:
- 每个路由结点都使用同样的原始状态数据独立地计算路径,而不依赖中间结点的计算;
- 链路状态不加改变的传播,易于查找故障;
- 就有更好的规模可伸展性;
层次路由
- 当网络规模扩大时,路由器的路由表成比例的增大,这不仅会消耗越来越多地路由缓冲区空间,而且需要用更多CPU时间来扫描路由表,用更多地带宽来交换路由状态信息,因此路由选择必须按照层次的方式进行;
- 两大类路由选择协议:
- 一个自治系统内部所使用的路由选择协议称为内部网关协议IGP,也称域内路由选择,具体协议有RIP和OSPF等;
- 自治系统之间所使用的路由选择协议称为外部网关协议EGP,也称域间路由选择,用于不同自治系统的路由器之间交换路由信息,并负责为分组在不同自治系统之间选择最优路径,具体协议有BGP;
路由协议
自治系统
- 单一技术管理下的一组路由器,这些路由器使用一种AS内部的路由选择协议和共同的度量来确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议来确定分组在AS之间的路由;
- 一个自治系统的所有路由在本自治系统内都必须是连通的;
域内路由与域间路由
内部网关协议IGP
- 在一个自治系统内部使用的路由选择协议,它与互联网中其他自治系统选用什么路由选择协议无关;
外部网关协议EGP
- 将路由信息传递到另一个自治系统中所使用的协议称为外部网关协议;
- 自治系统和内部网关协议、外部网关协议
路由信息协议RIP
- 分布式的基于距离向量的路由选择协议,最大优点是简单;
RIP规定
- 网络中的每个路由器都要维护从他自身到其他目的网络的距离记录,称为距离向量;
- 距离也称跳数,规定从一个路由器到直接连接网络的距离为1,而每经过一个路由器,距离跳数就加1;
- RIP认为好的路由就是他通过路由器的数目少,即优先选择跳数少的路径;
- RIP允许一条路径最多只能包含15个路由器,因此距离等于16时表示网络不可达;
- 默认在任意两个使用RIP的路由器之间每30秒广播一次RIP路由更新信息,以便自动建立并维护路由表;
- 在RIP中不支持子网掩码的RIP广播,所以RIP中每个网络的子网掩码必须相同;但在新的RIP2中,支持变长子网掩码和CIDR;
RIP的特点
- 仅和相邻路由器交换信息;
- 路由器交换的信息是当前路由器知道的全部信息,即自己的路由表;
- 按固定的时间间隔交换路由信息,如每隔30秒;
- 经过若干次RIP广播后,所有路由器都最终知道了整个IP网络的路由表,成为RIP最终是收敛的,通过RIP收敛后,每个路由器到每个目标网络的路由的都是距离最短的,哪怕还存在另一条高速低时延但路由较多的路由;
距离向量算法
- <目的网络N, 距离d, 下一跳路由器地址X>
- 步骤:
- 对地址为X的相邻路由器发来的RIP报文,先修改此报文中所有项目:把“下一跳”字段中的地址都改为X,并把所有“距离”字段加1;
- 对修改后的RIP报文中的每个项目,执行如下步骤:
- 当原来的路由表中没有目的网络N时,把该项目添加到路由表中;
- 当原来的路由表中有目的网络N,且下一跳路由器地址时X时,用收到的项目替换原路由表中的项目;
- 当原来的路由表中有目的网络N,且下一跳路由器的地址不是X时,如果收到的项目中的距离d小于路由表中的距离,那么就用收到的项目替换原路由表中好的项目,否则什么也不做;
- 如果180秒还没有收到相邻路由器的更新路由表,那么把此相邻路由器记为不可达路由器,把距离设置为16;
- 返回;
- 优点:
- 实现简单,开销小,收敛过程较快;
- 缺点:
- RIP限制了网络的规模,它能使用的最大距离为15;
- 路由器之间交换的是路由器中的完整路由表,因此网络规模越大,开销也就越大;
- 网络出现故障时,会出现慢收敛现象,俗称,坏消息传得慢,使更新过程的收敛时间长;
- 慢收敛:需要较长时间才能将此信息传送到所有路由器;
开放最短路径优先OSPF协议
OSPF协议的基本特点
- 对不同的链路可以根据IP分组的不同服务类型TOS而设置成不同的代价,因此对有不同类型的业务可计算出不同的路由,十分灵活;
- 如果到同一目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径,称为多路径间的负载平衡;
- 所有在OSPF路由器之间交换的分组都有鉴别功能,因而保证了仅在可依赖的路由器之间交换链路状态信息;
- 支持可变长度的子网划分和无分类编址CIDR;
- 每个链路状态都带上一个32位的序号,序号越大,状态就越新;
OSPF的基本工作原理
- 路由器最终建立一个链路状态数据库,这个数据库实际上就是全网的拓扑结构图,在全网范围内是一致的;
- 每个路由器根据全网拓扑结构图,使用dijkstra最短路径算法计算从自己到各个目的网络的最优路径,依此构造自己的路由表;
- 链路状态发生变化时,每个路由器重新计算到各目的网络的最优路径,构造新的路由表;
OSPF的五种分组类型
- 问候分组:用来发现和维持邻站的可达性;
- 数据路描述分组:向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息;
- 链路状态请求分组:向对方请求发送某些链路状态项目的详细信息;
- 链路状态更新分组:用洪泛法对全网更新链路状态;
- 两路状态确认分组:对链路更新分组的确认;
注意 :OSPF使用IP数据报传送,RIP报文作为UDP数据报的数据部分;
边界网关协议BGP
- BGP使用环境不同的原因
- 因特网的规模太大,使得自治系统之间路由选择非常困难;
- 对于自治系统之间的路由选择,要寻找最佳路由非常困难;
- 自治系统间的路由选择必须考虑有关策略;
- BGP是应用层协议,是基于TCP的;
- 工作原理;
- 每个自治系统的管理员要选择至少一个路由器作为该自治系统的BGP发言人;
- 一个BGP发言人要与其他自治系统中的BGP发言人交换信息,就要先建立TCP连接,然后在此连接上交换BGP报文以建立BGP会话,再利用BGP会话交换路由信息;
- 所有BGP发言人都相互交换网络可达性的信息后,各BGP发言人就可找出到达各个自治系统的较好路由;
- 每个BGP发言人除必须运行BGP外,还必须运行该AS所用的内部网关协议;
- BGP特点:
- BGP交换路由信息的结点数量级是自治系统的数量级,要比这些自治系统中的网络数少很多;
- 每个自治系统中的BGP发言人的数目是很少的,这样就使自治系统之间的路由选择不致过分复杂;
- BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列;
- BGP刚运行时,BGP的邻站交换整个BGP路由表,但以后只需在发生变化时更新有变化的部分,这样做对节省网络带宽和减少路由器的处理开销都有好处;
- BGP-4的4中报文:
- 打开报文:用来用相邻的另一个BGP发言人建立关系;
- 更新报文:用来发送某一路由的信息,以及列出要撤销的多条路由;
- 保活报文:用来确认打开报文并周期性地证实邻站关系;
- 通知报文:用来发送检测到的差错;
三种协议的比较
协议 | RIP | OSPF | BGP |
---|---|---|---|
类型 | 内部 | 内部 | 外部 |
路由算法 | 距离-向量 | 链路状态 | 路径-向量 |
传递协议 | UDP | IP | TCP |
路径选择 | 跳数最少 | 代价最低 | 较好,非最佳 |
交换结点 | 和本结点相邻地路由器 | 网络中的所有路由器 | 和本结点相邻的路由表 |
交换内容 | 当前本路由器知道的全部信息,即自己的路由器 | 与本路由器相邻的所有路由器的链路状态 | 首次:整个路由表;非首次:有变化的部分 |