网络层的功能是什么?
在在网络之间选择合适的网间路由和交换节点,确……
那你说说网络层是怎么选择合适的路由的?
使用分组转发算法
路由表每一条路由的格式:(目的网络地址,下一跳地址) 或 (目的主机所在的网络,直接交付,接口号) 转发流程:
从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N
若N为此路由器直接相连的某个网络地址,则进行直接交付()
不能直接交付 3.1 若路由器表中有目的地址为D的特定主机路由,传送给指明的下一跳路由 3.2 若路由器表中有到达网络N的路由,传送给指明的下一跳路由 3.3 如路由表中有默认路由,把数据报传送给路由表中指明的默认路由器
向源主机报告转发分组出错
特定主机路由:对特定的目的主机指明一个路由,便于网络管理人员控制和测试网络。
默认路由:用于匹配除特定主机路由和正常路由外的其他地址(即其他)
扩展:当使用划分子网时,路由的格式为(目的网络地址,子网掩码,下一跳地址)
那你转发依据的路由是怎么建立的了?
使用路由选择协议——RIP、OSPF和BGP
路由算法应该有什么特点了?
正确完整、计算简单、能适应通信量和网络拓扑的变化、稳定性、选择公平、选择相对最佳。
路由算法为什么要分内部网关和外部网关?
整个互联网划分为许多较小的自治系统AS
不划分路由表太大
许多单位不愿意外界了解自己单位网络的布局细节和协议
那主流的有哪些协议了?
分为内部网关协议IGP(Interior Gateway Protocol),是自治系统(AS)内部使用的路由选择协议。外部网关协议EGP(External Gateway Protocol)用于计算AS之间的转发。 IGP包括:路由信息协议RIP(Routing Information Protocol)和开放最短路径优先OSPF(Open Shortest Path First) EGP主要是边界网关协议BGP(Boundary Gateway Protocol)
1. 概述
概述:路由信息协议是一种分布式的基于距离向量的路由选择协议,最大优点是简单,缺点是距离有限16、路由表开销大、坏消息传播慢。适合小规模网络。 工作原理:选择距离(经过路由数)最小的路径 注:此时路由表的内容(目的网络[网络地址+子网掩码],距离,下一跳路由器)
2. 四个疑问
多久交换?
30s交换一次,180s没收到通告判定相邻路由器没了
和谁交换?
和本结点相邻的路由器
交换什么?
当前本路由器知道的全部信息
用什么算法?
距离向量算法
最终获得什么
所有路由器最终都能建立一个链路状态数据库,即全网的拓扑结构图
3. RIP报文
RIP是应用层协议,依赖UDP协议。
RIP报文包括首部和多条路由信息。每个路由信息需要用20个字节,一个RIP报文最多可包括25个路由,如果超过,必须再用一个RIP报文传送
RIP2版本还具有简单的鉴别功能,占用数据头20个字节(第一个路由信息)用作鉴别:地址族标识符置为全1(即0xFFFF),路由标记写入鉴别类型,剩下16字节为鉴别数据。
4. 距离向量算法
1.把从地址为X的相邻路由器发来的RIP报文的所有项目的“下一跳”字段的地址都改为X,并把所有距离字段的值加1 2.逐个加入每个项目 2.1 若路由表中没有这个项目的目的网络N,添加到路由表中 2.2否则判断存在的项目的下一跳地址是不是X,是则替换 2.3不是X则判断原项目的距离是否小于新项目的距离,小于覆盖 2.4不小于就什么都不做 3.若180s还没收到相邻路由器X的更新路由表,则把X记为不可达的路由器,即把距离设置为16
5. 特点
好消息传的快
坏消息传的慢(偶然情况,重复假更新)
设有R1和R2两个路由器,要到达网1,R1与网1相连,R2通过R1与网1相连 当网1故障时,R1先检测到更新路由表网1不可达,需要30s才能发送更新报文给R2,这个期间R2发送自己的路由表给R1,R1收到误以为通过R2能到达网1,R1更新路由表 30s后,R1又发送自己的路由表给R2,R2收到后更新自己到网1的路由信息,然后30s后又发送给R1 R1收到R2的路由表,根据距离向量算法,需要更新到网1的路由信息为新的R2路由信息 两个路由器重复更新,直到距离达到16,判定不可达
1. 概述
定义:开放最短路径优先(Open Shortest Path First)协议是一种分布式的基于链路状态协议的路由选择协议。是为了克服RIP的缺点开发的
2. 四个疑问
多久交换?
只有当链路状态发送变化时,路由器才向所有路由器洪泛发送此信息
和谁交换?
网络中的所有路由器:洪泛法(信息量大)
交换什么?
与本路由器相邻的所有路由器的链路状态(相邻路由器和度量)
用什么算法?
链路状态算法
最终获得什么?
路由器最终通过Dijkstra提出的SPF算法计算所有的链路状态图得出到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址
3. 划分区域
定义:为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫做区域 划分区域的好处是利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个自治系统,减少整个网络的通信量
4. OSPF分组
OSPF直接用IP数据包传送IP数据报(首部的协议字段值为89),这样的OSPF数据报很短,可减少路由信息的通信量,且不必分组。也因此暂定它为网络层协议。 OSPF分组类型
问候分组:每隔10秒交换一次分组,40秒收不到相邻路由器的问候分组就说明不可达,应立即修改链路状态数据库并重新计算路由器。用来发现和维持邻站的可达性。
数据库描述分组:向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
链路状态请求分组:向对方 请求 发送某些链路状态项目的详细信息
链路状态更新分组:用洪泛法对全网更新链路状态
链路状态确认分组:对链路状态更新分组的确认
5. 链路状态路由算法
第一次构造链路状态数据库: 1.每个路由器发现它的邻居节点(每10s发送一次HELLO问候分组),并了解邻居节点的网络地址 2.设置到它的每个邻居的成本度量metric 3.构造数据库描述(DD,Database Description)分组,向邻站给出自己的链路数据库中的所有链路状态项目的摘要信息 4.邻站收到DD分组后,如果DD分组中的摘要自己都有,则不做处理。如果有没有的或是更加新的,则发送链路状态请求(LSR,Link State Requst)分组请求自己没有的和比自己更加新的信息 5.收到邻站的LSR分组后,发送链路状态更新(LSU,Link State Update)分组 6.更新完毕后邻站返回一个链路状态确认(LSAck,Link State Acknowledgment)分组 7.最后再使用Dijkstra算法根据自己的链路状态数据库构造到其他节点的最短路径
运行过程中,有路由器的链路状态发生变化: 1.洪泛发送链路状态更新(LSU,Link State Update)分组 2.更新完毕后,其他站返回一个链路状态确认(LSAck,Link State Acknowledgment)分组 3.使用Dijkstra算法根据自己的链路状态数据库构造到其他节点的最短路径
6. 特点
收敛速度快,不存在坏消息传的慢:最后才使用Dijkstra算法一起计算最短路径,省去像RIP协议那样每次收到一个路径都要和路由表进行对照,所以收敛速度快。而因为最后才使用Dijstra算法计算最短路径,所以等知道其实已经不能到达了(先参考RIP坏消息传的慢的例子)
只考虑邻站连通性,适合大规模网络
为了确保链路状态数据库与全网保持一致,规定30s刷新一次数据库
灵活性好:可以定义不同的代价,代价相同路径可以负载均衡
概述
为什么引入BGP:互联网规模太大,使得自治系统AS之间路由选择非常困难
四个疑问
和谁交换? 与其他AS的邻站(相邻且建立了TCP连接)BGP发言人交换信息 交换什么? 交换网络可达性信息,即要到达某个网络所要经过的一系列AS 多久交换? 刚刚运行时BGP的邻站交换整个BGP路由表,此后在发生变化时只更新有变化的部分 用什么方法? 采用路径向量路由选择协议
路径向量路由选择协议
由于政策、自治系统的性能等问题,BGP往往寻找一条能够到达目的网络且比较好的(不兜圈子)的路径而非最佳路由(因为互联网的规模太大)
什么是BGP发言人
BGP发言人就是一种特殊的在自治系统边界的路由器。BGP发言人往往是BGP边界路由器,也可以不是。 在配置BGP时,每一个自治系统的管理员要选择至少一个路由器作为该自治系统的BGP发言人,BGP发言人同时运行BGP和内部网关协议
两个BGP发言人建立TCP连接交换路由信息,告诉如要到达网络X1、X2、X3可以通过我。BGP发言人最终构造树状自治系统连通图。
BGP协议的特点
支持CIDR,因此BGP的路由表也就包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列
使用路径向量的信息,可以避免产生兜圈子的路由
在BGP刚刚运行时,BGP的邻站交换整个BGP路由表。但以后只需在发生变化时更新有变化的部分。节省了带宽减少路由器处理开销
自治系统之间的路由选择策略可能不同
BGP报文
BGP是网络层协议,借助TCP传送
通用首部:
BGP-4的四种报文
OPEN报文:用来与相邻的另一个BGP发言人建立关系,并认证发送方
UPDATE报文:通告新路径或撤销原路径
KEEPALIVE报文:在无UPDATE时,周期性证实邻站的连通性;也作为OPEN的确认
NOTIFICATION报文:报告先前报文的差错;也被用于关闭连接