文章目录
-
- [**1 网络层的功能**](#1 网络层的功能)
-
- [**1.1 异构网络互连**](#1.1 异构网络互连)
- [**1.2 路由与转发**](#1.2 路由与转发)
- [**1.3 SDN的基本概念**](#1.3 SDN的基本概念)
- [**1.4 拥塞控制**](#1.4 拥塞控制)
- [**2 路由算法**](#2 路由算法)
-
- [**2.1 静态路由和动态路由**](#2.1 静态路由和动态路由)
- [**2.2 距离-向量路由算法(动态)**](#2.2 距离-向量路由算法(动态))
- [**2.3 链路状态路由算法(动态)**](#2.3 链路状态路由算法(动态))
- [**2.4 层次路由**](#2.4 层次路由)
- [**3 IPv4**](#3 IPv4)
-
- [**3.1 IPv4分组**](#3.1 IPv4分组)
- [**3.2 IPv4地址与NAT**](#3.2 IPv4地址与NAT)
- [**3.3 子网划分与子网掩码,CIDR**](#3.3 子网划分与子网掩码,CIDR)
- [**3.4 ARP,DHCP,ICMP**](#3.4 ARP,DHCP,ICMP)
- [**4 IPv6**](#4 IPv6)
- [**5 路由协议**](#5 路由协议)
-
- [**5.1 自治系统AS**](#5.1 自治系统AS)
- [**5.2 域内路由和域间路由**](#5.2 域内路由和域间路由)
- [**5.3 路由信息协议RIP**](#5.3 路由信息协议RIP)
- [**5.4 开放最短路径优先OSPF协议**](#5.4 开放最短路径优先OSPF协议)
- [**5.5 边界网关协议BGP**](#5.5 边界网关协议BGP)
- [**6 IP组播**](#6 IP组播)
- [**7 移动IP**](#7 移动IP)
- [**8 网络层设备**](#8 网络层设备)
-
- [**8.1 冲突域和广播域**](#8.1 冲突域和广播域)
- [**8.2 路由器的组成和功能**](#8.2 路由器的组成和功能)
- [**8.3 路由表和路由转发**](#8.3 路由表和路由转发)
1 网络层的功能
设计思路:向上只提供简单灵活的,无连接的,尽最大努力交付的数据报服务,从而使得路由器简单价格低;如果需要可靠的,由更高层的传输层负责
1.1 异构网络互连
网络互连:将两个以上的计算机网络通过一定的方法和中间设备相互连接起来,以构成更大的网络系统
中继系统的分类:
(1)物理层中继系统:转发器,集线器
(2)数据链路层中继系统:网桥或交换机(这两层只是把网络扩大了,仍然是同一个网络,不称为网络互连)
(3)网络层中继系统:路由器
(4)网络层以上的中继系统:网关
TCP/IP体系在网络层采用标准化协议,但互连的网络可以是异构的(通信时就看不到具体异构细节,如编址方案,路由选择协议等);互连的网络都使用相同的IP协议,因此可以把互连后的网络视为一个虚拟IP网络
1.2 路由与转发
路由器的两个功能:路由选择,分组转发
(1)路由选择:按照复杂的分布式算法,根据从各相邻路由器所得到的的关于整个网络拓扑的变化情况,动态了改变所选择的路由
(2)分组转发:指路由器根据转发表将用户的IP数据报从合适的端口转发出去
1.3 SDN的基本概念
将网络层抽象的划分为数据平面(转发)和控制平面(路由选择)
软件定义网络SDN是一种创新网络架构,采用集中式的控制平面和分布式的数据平面,控制平面利用控制-数据接口对数据平面上的路由器进行集中式控制,方便软件来控制网络;并且提供强大的编程接口,使得网络具有更好的编程性0
控制平面有一个逻辑上的远程控制器,掌握各主机和网络的状态,为每个分组计算出最佳路由,通过openflow协议将转发表下发给路由器;路由器只需要收到分组,查找转发表,转发分组
北向接口:SDN对上层应用的开发者提供的编程接口,提供了一系列而丰富的API
南向接口:SDN控制器和转发设备建立双向会话的接口,通过不同的南向接口协议,SDN控制器就可兼容不同的硬件设备,同时可以在设备中实现上层应用的逻辑
东西向接口:SDN控制器集群内部控制器之间的通信接口,增强整个控制平面的可靠性和可扩展性
SDN的优点:(1)全局集中式控制和分布式高速转发,利于控制平面的全局优化和高性能的网络转发
(2)灵活可编程与性能的平衡
(3)降低成本,网络设备的制造和功能软件的开发相分离
SDN的问题:(1)安全风险
(2)瓶颈问题
1.4 拥塞控制
拥塞:通信子网中过量的分组引起网络性能下降的现象
当分组达到路由器的速率接近R(所在链路的带宽)时,平均时延急剧增加,并且会有大量的分组被丢弃(路由器端口的缓冲区),整个网络的吞吐量骤降,源与目的地之间的平均时延也近乎无穷大
轻度拥塞:网络负载增加,网络的吞吐量明显小于正常吞吐量
拥塞状态:吞吐量随着网络负载的增大而下降
死锁状态:负载继续增大,吞吐量下降到零
拥塞控制:确保子网能够承载所达到的流量,这是一个全局性的过程,涉及主机路由器和路由器内部转发处理过程等,单一资源并不能解决拥塞
流量控制是指收发端之间的点对点通信量的控制,抑制发送端发送数据的速率,以便接收端来得及接收
拥塞控制的方法:
(1)开环控制 :设计网络时事先考虑周到,力求不产生拥塞,是静态的预防方法,系统启动就不能修改,使用的手段都是在做决定时不考虑当前网络的状态
(2)闭环控制 :事先不考虑拥塞的因素,采用检测网络系统去监视,是基于反馈环路的概念,是动态的
2 路由算法
2.1 静态路由和动态路由
静态路由算法(非自适应路由算法):指由网络管理员手工配置的路由信息,当网络的拓扑结构或链路的状态发生变化时网络管理员手工去修改路由表中相关的静态路由信息,不能及时适应网络状态的变化,适合简单的小型网络
动态路由算法(自适应路由算法):路由器之间彼此交换信息,按照一定的算法优化处理,在一定时间内不断更新,适应网络
2.2 距离-向量路由算法(动态)
所有结点定期的将它们的整个路由选择表传送给相邻的结点,这种路由选择表包含:
- 每条路径的目的地(另一结点)
- 路径的代价(距离)
更新的情况:
(1)有一条新的路由,在本结点的路由表中不存在,就加入这条新的路由
(2)有一条到达某个目的地的路由,该路由与当前使用的路由相比,有较短的距离(较小的代价)
实质:迭代计算一条路由中的站段数或延迟时间,从而得到到达一个目标的最短通路;大的通信子网导致很大的更新报文,同时传送的路由选择信息的数量容易变得非常大
最常见的距离-向量算法是RIP算法,采用跳数作为距离的度量
2.3 链路状态路由算法(动态)
典型的是OSPF算法;要求每个参与该算法的结点都具有完全的网络拓扑信息,执行任务:
(1)主动测试所有邻接结点的状态
(2)定期的将链路状态传播给所有其他结点
路由结点更新自己的网络拓扑和状态视野图,一旦链路状态发生变化,就对更新的网络图利用Dijkstra最短路径算法重新计算路由,从单一的源出发计算达到所有目的结点的最短路径
算法特征:
(1)向本自治系统中的所有路由器发送信息,使用的是洪泛法(不再发送给刚刚发来信息的那个路由器)
(2)发送的信息是与路由器相邻的所有路由器的链路状态(度量,表示费用,距离时延带宽等),但这只是路由器所知道的部分信息
(3)只涉及相邻路由器的连通状态,与整个互联网的规模并无直接关系,因此可以用于大型的或路由信息变化聚敛的互联网环境
优点:
(1)每个路由结点都使用同样的原始状态数据独立的计算路径,不依赖中间结点的计算
(2)报文不加改变的传播,易于查找故障
(3)一个结点从其他结点收到报文,可以立即计算正确的通路,保证一步汇聚
(4)报文仅运载来自单个结点关于直接链路的信息,大小与网络中的路由结点数目无关,因此比距离-向量算法有更好的规模可伸展性
距离向量算法每个结点仅与它的直接邻居交谈;链路状态算法,每个结点通过广播的方式与所有其他结点交谈,但仅告诉他们与它直接相连的链路的费用
距离向量算法有可能遇到路由环路问题
2.4 层次路由
网络规模扩大,路由表比例增大,不仅限号更多的路由器缓冲区,还需要更多的CPU时间来扫描路由表,更多的带宽交换路由状态信息
因此路由选择必须按照层次的方式进行
不同自治系统(整个互联网划分为很多较小的自治系统,一个自治系统包含很多局域网,每个自治系统自主决定路由选择协议)需要通信,就需要一种在两个自治系统之间的协议来屏蔽这些差异,因此因特网把路由选择协议划分为两大类:
(1)内部网关协议(内路由选择):一个自治系统内部所使用的路由选择协议,具体的有RIP,OSPF等
(2)外部网关协议(域间路由选择):自治系统之间所使用的路由选择协议,用于交换路由信息,并负责为分组在不同自治系统之间选择最优路径,具体有BGP协议
使用层次路由,OSPF将一个自治系统在划分为若干区域Area,每个路由器都知道在本区域内如何把分组路由到目的地的细节,但不用知道其他区域的内部结构
分层次划分区域虽然会使交换信息的种类增多,也会使OSPF协议更加复杂,但却能使每个区域内部交换路由信息的通信量大大减少,因此OSPF协议能用于规模很大的自治系统中
3 IPv4
3.1 IPv4分组
分组的格式
(1)版本:IP协议的版本,目前广泛使用的是版本4
(2)首部长度:4位最大值为15,以4B为单位,最大60B,常用是20B,即固定部分
(3)总长度:16位,单位为B,以太网帧MTU为1500B,因此一个IP数据报封装成帧时,数据报的总长度一定不能超过下面数据链路层的MTU值
(4)标识:一个计数器,每产生一个数据报就加1,并复制给标识段;当数据报长度超过MTU就必须分片,此时每个数据报片复制一次标识号,以便能正确重装成原来的数据报
(5)标志:最低位MF=1标识后面还有分片,MF=0表示最后一个分片;中间位DF=0时才允许分片
(6)片偏移:指出较长的分组分片后,某片在原分组的相对位置,以8B为偏移单位,除最后一个分片外,每个分片的长度一定是8B的整数倍
(7)生存时间TTL:数据报在网络中可通过的路由器数的最大值,路由器转发分组前,先把TTL减1,若TTL减为0丢弃分组
(8)协议:指出分组携带的数据使用何种协议,即分组的数据部分应上交给哪个协议进行处理,如TCP,UDP等
(9)首部校验和:只校验分组的首部,不检验数据部分
(10)源地址字段:标识发送方的IP地址
(11)目的地址字段:标识接收方的IP地址
IP数据报分片:因为超过了链路层能承载的最大数据量MTU
如一个长4000B的IP数据报转发到一条MTU为1500B的链路上
3.2 IPv4地址与NAT
IPv4地址
连接到因特网上的每台主机或路由器都分配一个32比特的全球唯一标识符;IP地址由互联网名字和数字地址分配机构ICANN进行分配
早期采用的分类IP地址
IP地址::={<网络号>,<主机号>},网络号标志主机或路由器所连接到的网络,网络号在整个因特网范围唯一;主机号标志主机或路由器
特殊用途的IP地址:
- 主机号全0的表示本网络本身
- 主机号全为1表示本网络的广播地址,又称直接广播地址
- 127.x.x.x保留为环回自检地址,表示任意主机本身,永远不会出现目的地址为环回地址的数据报
- 32位全0,表示本网络上的本主机
- 32位全1,表示整个TCP/IP网络的广播地址,即受限广播地址(但由于路由器对广播域的隔离,实际等效为本网络的广播地址)
A类地址减2的原因:网络号字段全0的IP地址是保留地址,意思是本网络;网络号为127的IP地址是环回自检地址
特点:
(1)路由器只根据网络号转发分组,不考虑主机号,减少了路由表所占的存储空间
(2)一个路由器必然至少应具有两个IP地址(每个端口必须至少分配一个IP地址)
(3)转发器或桥接器(网桥等)连接的若干LAN仍是同一个网络(广播域)
(4)IP地址中所有分配到网络号的网络都是平等的
(5)同一个局域网上的主机或路由器的IP地址的网络号必须一样
网络地址转换NAT
指通过路由器上NAT软件将专用网络地址转换为公用地址,从而对外隐藏内部管理的IP地址
使得整个专用网只需要一个全球IP就可以与因特网连通,大大节省了IP地址的消耗;隐藏了内部网络结构,降低了网络被攻击的风险
划出部分IP地址为私有IP地址,私有IP地址只用于LAN,不用于WAN;并且允许私有IP地址被LAN重复使用,有效解决了IP地址不足的问题
私有IP地址网段
路由器对目的地址是私有地址的数据报一律不进行转发;采用私有地址的互联网络称为专用互联网或本地互联网,私有IP地址也可称为可重用地址
NAT路由器至少有一个有效的外部全球IP地址;使用NAT转换表进行本地IP地址和全球IP地址的转换,NAT转换表存放着{本地IP地址:端口}到{全球IP地址:端口}的映射
普通路由器转发IP数据报时,不改变其源地址和目的IP地址,且仅工作在网络层;而NAT路由器会更换IP地址,也会查看会转换传输层的端口号
3.3 子网划分与子网掩码,CIDR
子网划分
两级IP地址的缺点:地址空间的利用率有时很低;每个网络分配一个网络号使得路由表太大网络性能变坏;两级IP地址不灵活
在IP地址中又增加一个子网号字段,使两级地址变成三级地址,称为子网划分
基本思路:
(1)子网划分纯属单位内部的事,单位对外仍表现为没有划分子网的网络
(2)从主机号借用若干比特作为子网号,当然主机号也就相应减少了相同的比特
三级IP地址的结构:{<网络号>,<子网号>,<主机号>}
(3)从其他网络发送给本单位主机的IP数据报仍然是根据IP数据报的目的网络号,先找到连接本单位网络上的路由器;然后路由器按目的网络号和子网号找到目的子网,最后交付给目的主机
RFC 950规定子网号不能为全1或全0,但随着CIDR的广泛使用,现在全1或全0的子网号也可以使用,但要谨慎使用
无论是分类的IPv4地址还是CIDR,子网中主机号为全0或全1的地址都不能被指派,子网中主机号全0的地址为子网的网络号,主机号全1的地址为子网的广播地址
子网掩码
为了告诉主机或路由器网络是否进行了子网划分,使用子网掩码来表达对原网络中主机号的借位
子网掩码是一个与IP地址相对应的长32bit的二进制串,由1和0组成,1对应网络号及子网号,0对应主机号
计算机只需将IP地址和对应的子网掩码按位与就得出相应子网的网络地址
A,B,C类地址的默认子网掩码分别为255.0.0.0,255.255.0.0,255.255.255.0
路由器交换信息时会把自己所在网络(子网)的子网掩码告诉对方,同时每个条目除了给出目的网络地址和下一跳地址外,还给出该目的网络的子网掩码
无分类编址CIDR
无分类域间路由选择CIDR是在变长子网掩码的基础上提出的一种消除传统A,B,C类网络划分,并在软件的支持下实现超网构造的一种IP地址的划分方法
CIDR使用网络前缀的概念代替子网络的概念,网络前缀的位数可以任取,IP::={<网络前缀>,<主机号>}
使用斜线记法,即IP地址/网络前缀所占比特数(对应网络号的部分)
CIDR不使用子网是指CIDR并没有在地址中指明若干位作为子网字段,但单位仍可以在本单位内根据需要划分出一些子网,如某单位得到地址块/20,可以再继续划分8个子网(3位),这时每个子网的网络前缀变成了23位,全0和全1的主机号一般不使用,全0为网络号,全1位广播地址
网络前缀都相同的连续IP地址组成CIDR地址块,一个CIDR地址块可以表示很多地址,这种地址的聚合称为路由聚合,或称构成超网,使得路由表中的一个项目可以表示原来的多个项目,有利于减少路由器之间的信息交换,提高网络性能;比如下图网络1和网络2的前16位都是相同的,那么在路由器中可以聚合为一条到206.1.0.0/16的路由,就不用分为两条
CIDR的优点:网络前缀的灵活性,路由表项的数量减少,但内部又可以灵活的划分子网
最长前缀匹配(最佳匹配):使用CIDR的路由表中项目由网络前缀和下一跳地址组成,查找时可能不止一个结果,此时应当从匹配结果中选择具有最长网络前缀的路由
CIDR查找路由表,通常将路由表存放在一种层次式数据结构中,自上而下的按层次查找
网络层转发分组的过程
采用CIDR编址时,路由表按网络前缀的长短排序,从最长的到最短的
此外转发表还有两种特殊路由:
(1)主机路由:对特定目的主机IP地址专门指明一个路由,以便网络管理员控制和测试网络,特定主机目的IP地址是a.b.c.d/32,表示子网掩码没有意义
(2)默认路由:特殊前缀0.0.0.0/0表示,全0掩码和任何目的地址进行按位与运行结果都是全0,即必然和0.0.0.0/0匹配,只要目的网络不在转发表中一律选择默认路由
得到下一跳的IP地址后,不是直接将该地址填入待发送的数据报,而是将IP地址转换成MAC地址(通过ARP),将次MAC地址放到MAC帧首部中,然后根据这个MAC地址找到下一跳路由器,不同网络中MAC的源地址和目的地址要发生变化,但是网桥转发帧,不改变帧的源地址
3.4 ARP,DHCP,ICMP
IP地址和硬件地址
IP地址是网络层使用的,分层次等级;硬件地址是数据链路层使用的地址MAC地址,是平面式的
因为路由器的隔离,所有只能先在网络层中使用IP地址来寻址,找到目标网络后,再通过数据链路层的MAC地址以广播方式寻址
路由器转发IP分组时,会重新封装,导致MAC地址的源地址和目的地址不断改变,决定了无法使用MAC地址跨网络通信
路由器互连多个网络,不仅有多个IP地址,还有多个硬件地址
地址解析协议ARP
实际传输数据帧必须使用硬件地址,所以需要一种方法来完成IP地址到MAC地址的映射,这就是地址解析协议
每台主机设有一个ARP高速缓存,用来存放本局域网上个主机和路由器的IP地址到MAC地址的映射表,称ARP表
ARP工作在网络层,工作原理:假设主机A向本局域网内主机B发送IP数据报
先在ARP中查看有无B的IP地址,如果有,查出对应的MAC地址,写入MAC帧,然后发送;如果没有,就通过使用目的MAC地址为FFFF-FF-FF-FF-FF的帧来封装并广播ARP请求分组,B收到后向A发出ARP响应分组(单播发送),包含主机B的IP地址和MAC的映射关系,A收到后存入ARP缓存,然后发送MAC帧;如果不再一个局域网,就找到本局域网的某个路由器的硬件地址,然后发给这个路由器,转发给下一个网络,剩下的工作交给下一个网络来做
(1)发送方是主机H1,IP数据报发给本网络的H2,H1在网1用ARP找到H2的硬件地址
(2)发送方是主机H1,发给另一个相连网络网2的主机H3,H1用ARP找到与网1相连的路由器R1的硬件地址,然后交给R1去做
(3)发送方是路由器R1,发给H3,R1在网2用ARP找到H3的硬件地址
(4)发送方是路由器R1,要发给网3的H4,在网2用ARP找到路由器R2的硬件地址,然后由R2完成
动态主机配置协议DHCP
用于给主机动态的分配IP地址,提供即插即用的联网机制,允许一台计算机加入新的网络和获取IP地址不同手工参与;DHCP是应用层协议,是基于UDP的
工作原理:使用客户/服务器模式,需要IP地址的主机启动时向DHCP服务器广播发送发现报文,DHCP服务器现在数据库中查找该计算机的配置信息,找到就返回找到的信息,找不到就从服务器的IP地址池中取一个地址分配给计算机,DHCP的回答报文称为提供报文
DHCP服务器和DHCP客户端的交换过程:
(1)DHCP客户端广播发现消息,源地址0.0.0.0,目的地址255.255.255.255
(2)服务器收到后,广播提供消息,其中包括提供给客户机的IP地址,源地址DHCP的源地址,目的地址255.255.255.255
(3)客户机收到提供消息,如果接收,就广播请求消息向服务器请求IP地址,源地址0.0.0.0,目的地址255.255.255.255
(4)服务器广播DHCP确认消息,将IP地址分配给客户机,源地址DHCP的源地址,目的地址255.255.255.255
多个服务器,客户机收到多个应答,通常选最先达到的;分配的IP地址是临时的,客户只有在一段有限的时间内使用这个IP地址,这段时间称为租用期
采用UDP的原因很简单,TCP需要建立连接,地址都不知道,无法建立连接
网际控制报文协议ICMP
提高IP数据报交付成功的机会,在网络层使用ICMP,让主机或路由器报告差错和异常情况
有两种:ICMP差错报告报文和ICMP询问报文
差错报告报文用于目标主机或到目标主机路径上的路由器向源主机报告差错和异常情况,常用类型:
(1)终点不可达
(2)源点抑制:路由器或主机由于拥塞丢弃数据报,源点就知道把发送速率放慢
(3)时间超过:TTL为0
(4)参数问题:数据报的首部中有字段的值不正确时
(5)改变路由(重定向):主机知道下次应该把数据报发给另外的路由
不发送差错报告报文的情况:
(1)对差错报告报文不再发送差错报告
(2)对第一个分片的数据报后面的分片都不发生差错报告
(3)对具有组播地址的数据报不发送
(4)对具有特殊地址的(如127.0.0.0或0.0.0.0)
询问报文的四种类型:回送请求和回答报文;时间戳请求和回答报文;地址掩码请求和回答报文;路由器询问和通告报文
ICMP的常见应用是分组网间探测PING(测试不同主机之间的连通性,使用回送请求和回答报文)和Traceroute(跟组分组经过的路径,使用时间超过报文)
4 IPv6
特点:
(1)更大的地址空间,增大到128位
(2)扩展的地址层次结构
(3)灵活的首部格式
(4)改进的选项
(5)允许协议继续扩充
(6)支持即插即用
(7)支持资源的预分配
(8)只有在包的源节点才能分片,是端到端的,传输路径中的路由器不能分片
(9)首部长度必须是8B的整数倍
(10)增大了安全性
IPv6和IPv4不兼容,但是总体而言与所有其他的因特网协议兼容,包括TCP,UDP,ICMP,IGMP,OSPF,BGP和DNS,只在少数地方做了修改
简化了分组头,包含8个域(IPv4是12个域),使得路由器更快处理分组,从而可以改善吞吐率
更好的支持选项,加快分组的处理速度
IPv6数据报的目的地址可以是以下三种基本类型地址之一:
(1)单播:传统的点对点通信
(2)多播:一点对多点的通信,分组被交付到一组计算机的每台计算机
(3)任播:目的站是一组计算机,但数据报在交付时只交付其中一台计算机,通常是距离最近的
IPv6的地址表示方法,每4位用一个十六进制数表示,并用冒号分割每16位,如ABF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170
当16位域开头有一些0时,可以采用一种缩写表示法,但是域中至少有一个数字,例如可以把地址4BF5:0000:0000:0000:BA5F:039A:000A:2176缩写为4BF5:0:0:0:BA5F:39A:A:2176
还可以进一步缩写,把连在一起的0用双冒号缩写::,但是双冒号只能出现一次,因为0的个数没有编码,需要从指定的总的域的个数推算,上述还可以写成4BF5::BA5F:39A:A:2176
IPv6扩展了分级概念,使用3个等级:
第一级(顶级):指明全球都知道的公共拓扑
第二级(场点级):指明单个场点
第三级:指明单个网络接口
从IPv4向IPv6过渡只能采用逐步演进的办法,同时还必须使新安装的IPv6系统能够向后兼容
IPv6必须能够接收和转发IPv4分组,并且能够为IPv4分组选择路由
IPv4向IPv6过渡可以采用双协议栈和隧道技术
双协议栈:一台设备同时装有IPv4和IPv6的协议栈,都能进行通信,如果设备是路由器,那么分别连接了IPv4网络和IPv6网络
如果是计算机,那么它同时拥有两种地址,并具备同时处理两个协议地址的功能
隧道技术:在IPv6数据报进入IPv4网络时,把整个IPv6数据报封装带IPv4数据报的数据部分,使得IPv6数据报好像在IPv4网络的隧道中传输
5 路由协议
5.1 自治系统AS
单一技术管理下的一组路由器,这些路由器使用一种AS内部的路由选择协议和共同的度量来确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议来确定分组在AS之间的路由
一个自治系统内的所有网络都由一个行政单温管辖
5.2 域内路由和域间路由
域内:自治系统内部的路由选择
域间:自治系统之间的路由选择
路由选择协议:
内部网关协议IGP :如RIP和OSPF
外部网关协议EGP :源站和目的站处于不同的AS,当数据报传到一个自治系统的边界时就需要使用一种协议将路由选择信息传递到另一自治系统中,如BGP-4
5.3 路由信息协议RIP
是一种分布式的基于距离向量的路由选择协议,最大优点是简单;是应用层协议,使用UDP传送数据(端口520)
RIP规定
(1)每个路由器维护从自身到其他每个目的网络的距离记录(称为距离向量)
(2)距离也称为跳数,规定从一个路由器到直接连接网络的距离为1,每经过一个路由器距离加1
(3)RIP优先选择跳数少的路由
(4)RIP最多允许15跳,距离等于16时表示网络不可达,因此RIP只适合小型互联网;同时防止数据报不断循环在环路上,减少网络拥塞
(5)RIP默认路由器每30秒广播一次RIP路由更新信息,以便自动建立并维护路由表(动态维护)
(6)RIP每个网络的子网掩码必须相同,新的RIP2中支持变长子网掩码和CIDR
RIP的特点
(1)仅和相邻路由器交换信息
(2)交换的信息是当前路由器所知道的全部信息,即自己的路由表
(3)按固定的时间间隔交换路由信息,30s
经过若干RIP广播,所有路由器都最终知道了整个IP网络的路由表,称为RIP最终是收敛的,每个路由器到每个目标网络的路由都是距离最短的,哪怕还有另一条高速但路由器较多的路由
RIP最大优点是实现简单,开销小,收敛过程较快
RIP的缺点:
(1)限制了网络规模,最大距离为15
(2)路由器之间交换的是路由器中的完整路由表,网络规模越大,开销越大
(3)网络故障时,会出现慢收敛现象(坏消息传的慢),使更新过程的收敛时间长
5.4 开放最短路径优先OSPF协议
OSPF基本特点
是使用分布式链路状态路由算法的典型代表;与RIP相比有4点主要区别:
(1)OSPF向AS内所有路由器发送消息,使用洪泛法;RIP仅向自己相邻的路由器
(2)发送的信息是与本路由器相邻的所有路由器的链路状态,只是路由器所知道的部分信息,链路状态说明本路由器和哪些路由器相邻及该链路的度量;RIP发送信息是路由器知道的全部信息,即整个路由表
(3)只有链路状态发送变化,路由器才用洪泛法向所有路由器发送此消息,并且更新过程收敛快,不会出现坏消息传的慢的问题;RIP会定期交换信息
(4)OSPF是网络层协议,直接用IP数据报传送;RIP是应用层,在传输层使用UDP
OSPF对不同的链路可根据IP分组的不同服务类型TOS而设置成不同的代价,因此对于不同类型的业务可计算出不同的路由,十分灵活
如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几个路径称为多路径间的负载平衡
OSPF路由器之间的分组具有鉴别功能,保证了仅在可信赖的路由器之间交换链路状态信息
支持可变长度的子网划分和无分类编址的CIDR
每个链路状态都带一个32的序号,序号越大,状态越新
OSPF的基本工作原理
各路由器不断交换信息,最终建立一个链路状态数据库,就是全网的拓扑结构图;每个路由器根据这个图,使用Dijkstra算法计算从自己到各网络的最优路径,以此构造自己的路由表(但是只存储下一跳的路径,不是完整的路径);当链路状态发送变化,每个路由器重新计算到各目的网络的最优路径,构造新的路由表
OSPF又把大规模的网络划分为若干个更小的区域,减少了网络的通信量;处于上层的域称为主干区域,负责连通其他下层的区域,而且还连接其他自治域
OSPF的五种分组类型
(1)问候分组
(2)数据库描述分组
(3)链路状态请求分组
(4)链路状态更新分组
(5)链路状态确认分组
每隔10秒,相邻路由器交换一次问候分组,以便知道哪些站可达,在路由器开始工作时,OSPF让每个路由器使用数据库描述分组和相邻路由器交换本数据库中已有的链路状态摘要信息;然后路由器使用链路状态请求分组,向对方请求发送自己所缺少的某些链路状态项目的详细信息;建立了全网同步的链路数据库
链路状态变化,就使用状态更新分组,用洪泛法向全网更新链路状态,其他路由器更新后,发送确认分组
OSPF规定每隔一段时间就刷新一次数据库中的链路状态
5.5 边界网关协议BGP
力求寻找一条能够达到目的网络的且比较好的路由,不是寻找最佳路由;BGP采用的是路径向量路由选择协议,与距离向量协议和链路状态协议有很大的区别;BGP是应用层协议,是基于TCP的
工作原理:每个AS管理员选择至少一个路由器作为AS的BGP发言人;一个BGP发言人与其他AS中的BGP发言人交换路由信息,要先建立TCP连接,然后建立BGP会话,再利用BGP会话交换路由信息;当所有BGP发言人都相互交换网络可达性的信息后,各BGP发言人就可找出达到各个AS的较好路由;BGP发言人处理运行BGP外,还必须运行AS所用的内部网关协议,如OSPF
BGP的特点
(1)交换路由信息的结点数量级是AS的数量级,比AS重的网络数少很多
(2)BGP发言人的数目少,使得AS之间的路由选择不会很复杂
(3)BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀,下一条路由器,以及到达该目的网络所要经过的各个AS序列
(4)BGP刚运行时,BGP的邻站交换整个BGP路由表,以后只更新发生变化的部分
BGP-4使用4中报文:
(1)打开报文:用来与相邻的另一个BGP发言人建立关系
(2)更新报文:用来发送某一路由的信息,以及列出要撤销的多条路由
(3)保活报文:确认打开报文并周期性的证实邻站关系
(4)通知报文:发送检测到的差错
6 IP组播
概念
为了能够支持像视频点播和视频会议这样的多媒体应用,网络必须实施某种有效的组播机制
人们所需要的组播机制是让源计算机一次发送的单个分组可以抵达用一个组地址标识的若干目标主机,并正确结构
组播一定仅应用于UDP,对将报文同时送往多个接受者的应用来说十分重要
使用组播是因为有的应用程序要把一个分组发给多个目的主机,但不是让主机给每个目的主机都发送一个单独的分组,而是把一个分组发送给一个组播地址,该组播地址标识一组地址;网络把这个分组的副本投递给该组中的每台主机
因特网的IP组播也使用组播组的概念,每个组有一个特别分配的地址,要给该组发送的计算机将使用这个地址作为分组的目标地址,在IPv4中,这些地址在D类地址空间中分配,而IPv6也有一部分地址空间保留给组播组
主机使用一个IGMP的协议加入组播组;能够运行组播协议的路由器称为组播路由器
IP组播地址
使用D类地址,前四位是1110,因此D类地址范围是224.0.0.0~239.255.255.255;每个D类IP地址标志一个组播组
组播数据报使用D类IP地址作为目的地址,并且首部中的协议字段值是2,表明使用IGMP
(1)组播尽力交付,不提供可靠交付
(2)组播地址只能用于目的地址
(3)对组播数据报不产生ICMP差错报文
(4)并非所有的D类地址都可作为组播地址
IP组播可以分为两种:一种是本局域网上进行硬件组播;另一种在因特网范围进行组播
因特网组播的最后还是要交给局域网上用硬件组播交付
D类IP地址可供分配的有28位,28位中前5位不能用来构成以太网的硬件地址,只有23位可用作组播
组播IP地址与以太网硬件地址的映射关系不是唯一的,因此收到组播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃
IGMP与组播路由算法
IGMP不知道IP组播组包括的成员数,也不知道这些成员分布在哪些网络上,IGMP让连接到本地局域网上的组播路由器知道本局域网上是否有主机参加或退出了某个组播组
IGMP的工作阶段:
(1)某台主机加入新的组播组,该主机应向组播组的组播地址发生一个IGMP报文,声明自己要成为该组的成员,本地的组播路由器收到IGMP报文后,将组成员关系转发给因特网上的其他组播路由器
(2)本地组播路由器周期性的探询本地局域网上的主机,以便知道这些主机是否仍继续是组的成员
许多路由器互连的支持硬件多点传送的网络上实现因特网组播时,主要有三种路由算法:
基于链路状态的;基于距离向量的;可以建立在任何路由器协议上,因此称为协议无关的组播PIM
7 移动IP
概念
是指移动站以固定的网络IP地址实现跨越不同网段的漫游功能,并保证基于网络IP的网络权限在漫游过程中不发生任何改变;目标是把分组自动地投递给移动站
一个移动站是把其连接点从一个网络或子网改变到另一个网络或子网的主机
(1)移动结点:具有永久IP地址的移动站
(2)本地代理:连接在归属网络上的路由器
(3)外地代理:连接在被访网络上的路由器
移动IP通信过程
移动IP中,每个移动站都有一个原始地址,即永久地址(归属地址),移动站原始连接的网络称为归属网络;归属代理是连接在归属网络上的路由器,它实现的代理功能是在应用层完成的;移动站移动到另一地点,接入的外地网络称为被访网络,被访网络中使用的代理称为外地代理
外地代理的功能:(1)为移动站创建一个临时地址,称为转交地址,转交地址的网络号和被访网络一致
(2)及时把转交地址告诉归属代理
通信流程:
(1)移动站在归属网络,按传统的TCPIP进行通信
(2)在外地网络时,向外地代理进行登记获得临时的转交地址,并告诉归属代理
(3)归属代理构建一条通向转交地址的隧道,将截获的发送给移动站的IP分组再分装通过隧道发给外地代理
(4)外地代理拆封后发送给移动站
(5)移动站在被访网络发送数据,仍使用永久地址作为源地址,但是通过外部代理转发
(6)移动到另一外地网络,新外地代理登记后发新的转交地址给归属代理
(7)回到归属网络时注销转交地址
外地代理发给移动站,直接使用移动站的MAC地址
8 网络层设备
8.1 冲突域和广播域
冲突域
是指连接到同一物理介质上的所有结点的集合,结点存在介质争用的现象;集线器,中继器等简单复制转发信号的第一层设备连接的结点属于同一个冲突域;第二层网桥,交换机,第三层路由器可以划分冲突域
广播域
是指接收同样广播消息的结点集合,广播域被视为第二层的概念,只有第三层的路由器可以划分广播域,即可以连接不同的广播域
8.2 路由器的组成和功能
是一种具有多个输入输出端口的专用计算机,任务是连接不同的网络(连接异构网络并完成路由转发)
路由选择部分也称控制部分,核心构件是路由选择处理机,路由选择处理机的任务是根据所选定的路由选择协议构造出路由表,同时经常后定期的不断更新和维护路由表
路由器主要两个功能:分组转发,路由计算
路由器和网桥的重要区别:网桥和高层协议无关,而路由器是面向协议的
8.3 路由表和路由转发
转发表由路由表得出,其表项和路由表现直接对应;转发表使用一个默认路由代替所有具有相同下一跳的项目,并将默认路由设置得比其他项目的优先级低
路由表总是软件实现,转发表可以软件可以硬件