文章目录
一、网络层提供的两种服务
1.1 无连接服务(数据报服务)
无连接服务
:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。(数据报服务)
1.2 连接服务(虚电路服务)
连接服务
:首先为分组的传输确定传输路径(建立连接),然后沿该路径(连接)传输系列分组,系列分组传输路径相同,传输结束后拆除连接。
二、网际协议IP
- 网际协议IP是TCP/IP 体系中两个最主要的协议之一
- 与IP协议配套使用的还有三种协议:
地址解析协议ARP
网际控制报文协议ICMP
网际组管理协议IGMP
2.1虚拟互连网络
(1)使用一些中间设备进行互连
中间设备又称为中间系统或中继设备
- 物理层中继系统:转发器(repeater)
- 数据链路层中继系统:网桥或桥接器(bridge)
- 网络层中继系统:路由器(router)
- 网桥和路由器的混合物:桥路器(brouter)
- 网络层以上的中继系统:网关(gateway)
(2)虚拟网络的意义
- 所谓虚拟互连网咯也就是逻辑互连网络,利用IP协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。
2.2分类的IP地址
(1)IP地址及其表示方法
-
IP地址就是给每个连接在互联网上的主机(或路由器)分配一个在全世界范围是唯一的32位的标识符。
-
表示方法
- 分类的IP地址
- 子网的划分
- 构成超网
(2)分类IP地址
每一类地址都由两个固定长度的字段组成:
网络号net-id
:标志主机(或路由器)所连接到的网络主机号host-id
:标志该主机(或路由器)
一个IP地址在整个互联网范围内式唯一的。
各类IP地址的网络号字段和主机号字段:
(3)常用的三种类别的IP地址
一般不使用的特殊IP地址
(4)IP地址的一些重要特点
- IP地址是一种分等级的地址结构
- 实际上IP地址是标志一个主机(或路由器)和一条链路的接口。
- 当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网路号必须是不同的。这种主机称为多归属主机。
- 一个路由器至少应当有两个不同的IP地址
- 用转发器或网桥连接起来的若干个局域网仍然为一个网络,因此这些局域网都具有同样的网络号net-id
- 所有分配带网络号net-id的网络,无论是范围很小的局域网。还是可能覆盖范围很大地理的广域网,都是平等的。
2.3IP地址与硬件地址
- 硬件地址(或物理地址)是数据链路层和物理层使用的地址
- IP地址是网络层和以上各层使用的地址,是一种逻辑地址(称IP地址是逻辑地址是因为IP地址是用软件实现的)
不同网络的两个主机通信时,IP数据报的源地址和目的地址是不会改变的;但MAC帧首部的地址是会发生变化的。如下:
2.4 地址解析协议ARP
(1)地址解析协议ARP的作用
从网络层使用的IP地址,解析出在数据链路层使用的硬件地址。
(2)地址解析协议ARP要点
-
不管网络层使用的是什么协议,在实际网路的链路上传送数据时,最终还是必须使用硬件地址。
-
每一个主机都设有一个
ARP高速缓存
,里面有所在的局域网上的各主机和路由器的IP地址到硬件地址的映射表。
-
当主机A欲向本局域网上的某个主机B发送IP数据报时,就先在其APR高速缓存中查看有无主机B的IP地址。
如果没有
,APR进程在本局域网上广播发送一个ARP请求分组,收到ARP响应分组后,将得到的IP地址到硬件地址的映射写入ARP高速缓存。 -
ARP请求分组
:包含发送方硬件地址、发送方IP地址、目标方硬件地址(未知时填0)、目标方IP地址。 -
本地广播ARP请求
:路由器不转发ARP请求 -
ARP响应分组
:包含发送方硬件地址、发送方IP地址、目标方硬件地址、目标方IP地址。 -
ARP分组封装在物理网络的帧中传输
(3)ARP高速缓存的作用
存放最近获得的IP地址到MAC地址的绑定,以减少ARP广播的数量。
(4)应当注意的问题
- ARP用于解决
同一个局域网
上的主机或路由器的IP地址和硬件地址的映射问题。 - 如果不在两台机子不在同一个局域网上,
就通过ARP找到一个位于本局域网上的某个路由器的硬件地址
,然后把分组发送给这个路由器,让这个路由器把分组很转发给下一个网络。剩下的工作就有下一个网络来做。 - 只要主机或路由器要和本网络上的另一个已知IP地址的主机或路由器进行通信,ARP协议就会自动地将该IP地址解析为链路层所需要的硬件地址。
(5)使用ARP的四种典型的情况
发送方是主机,要把IP数据报发送到本网络上的另一个主机
。这时用ARP找到目的主机的硬件地址。发送方是主机,要把IP数据报发送到另一个网络上的一个主机
。这时用ARP找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。发送方是路由器,要把IP数据报转发到本网络上的一个主机
。这时用ARP找到目的主机的硬件地址。发送方是路由器,要把IP数据报转发到另一个网络上的一个主机
。这时用ARP 找到本网络上另一个路由器的硬件地址。剩下的工作由这个路由器来完成。
2.5 IP数据报的格式
- 一个IP数据报由首部和数据两部分组成。
- 首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。
(1)IP数据报首部的固定部分中的各字段
版本
:占4位,指IP协议的版本(IPv4、IPv6)首部长度
:占4位,可表示的最大数值是15个单位(一个单位为4个字节),因此IP的首部长度的最大值是60字节。区分服务
:占8位,用来获取更好的服务总长度
:占16位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535字节。总长度必须不超过最大传送单元MTU标识
:占16位,它是一个计数器,用来产生IP数据报的标识标志
:占3位,目前只有前两位有意义- 标志字段的最低位时MF,MF=1表示后面“还有分片”。MF=0表示最后一个分片。
- 标志字段中间的一位是DF,只有当DF=0时才允许分片。
片偏移
:占13位,较长的分组在分片后某片在原分组中的相对位置。片偏移以8个字节为偏移单位。计算:分片的起始地址/8
。生存时间TTL
:占8位,指示数据报在网络中可通过的路由器数的最大值。协议
:占8位,指出此数据报携带的数据使用何种协议。首部检验和
:占16位,只检验数据报的首部,不检验数据部分。源地址和目的地址
:都各占4字节
(2)IP数据报首部的可变部分
- IP首部的可变部分就是一个选项字段,用来支持拍错、测量以及安全等措施,内容很丰富。
- 但实际上这些选项很少被使用。
2.6 IP层转发分组的流程
(1)特定主机路由
- 虽然互联网所有的分组转发都是
基于目的主机所在的网络
,但在大多数情况下都允许有这样的特例,即为特定的目的主机指明一个路由。
(2)默认路由
- 采用默认路由可减少路由表所占用的空间和搜索路由表所用的时间。
- 这种转发方式在一个网络只有很少的对外连接时是很有用的。
(3)路由器分组转发算法
- 从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N。
- 若网络N与此路由器直接相连,则把数据报直接交付给目的主机D;否则是间接交付,执行3.
- 若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则执行4
- 若路由表中有到达网络N的路由,则把数据报传送给路由表指明的下一跳路由器;否则执行5
- 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行6;
- 报告转发分组出错。
(4)关于路由表
- 路由表没有给分组指明到某个网络的完整路径
- 路由表指出,到某个网络应当先到某个路由器(即下一跳路由器)
- 在到达下一跳路由器后,再继续查找其路由表,知道再下一步应当到哪一个路由器
- 这样一步一步地查找下去,直到最后到达目的网络。
三、划分子网和构造超网
3.1划分子网
(1)从两级IP地址到三级IP地址
从主机号借用若干个位作为子网号subnet-id,而主机号host-id也就相应减少了若干位。
- 当没有划分子网时,IP地址是两级结构
- 划分子网后IP地址就变成了三级结构
- 优点:减少了IP地址的浪费、使网络的组织更加灵活、便于维护和管理。
- 划分子网纯属一个单位内部的事情,对外部网络透明,对外仍然表现为没有划分子网的一个网络。
(2)子网掩码
- 子网掩码的作用:用于判断源主机和目的主机所连接的网络是否进行了子网划分。
- 子网掩码长度 = 32位
- 子网掩码左边部分的一连串1,对应于网络号和子网号
- 子网掩码右边部分的一连串0,对应与主机号
A.默认子网掩码:
B.子网掩码是一个重要属性
- 子网掩码是一个网络或一个子网的重要属性
- 路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。
- 路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码
- 若一个路由器连接在两个子网上,就拥有两个网络地址和两个子网掩码
C.子网划分方法
- 有固定长度子网和变长子网两种子网划分方法
- 在采用固定长度子网时,所划分的所有子网的子网掩码都是相同的
- 以前子网号不能使用全1或全0的,但是随着CIDR的使用,可以使用了但要谨慎使用。
- 划分子网增加了灵活性,但却减少了能够连接在网络上的主机总数。
注:不同的子网掩码得出相同的网络地址。但不同的掩码的效果是不同的。
3.2使用子网时分组的转发
在划分子网的情况下,从IP地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。故分组转发的算法也必须做响应的改动。
A.在划分子网情况下路由器转发分组的算法
- 从收到的分组的首部提取
目的IP地址D
- 先用各网络的
子网掩码和D逐位相“与”
,看是否和相应的网络地址匹配。若匹配,则将分组直接交付。否则就是间接交付
,执行(3) - 若路由表中有目的地址为D的
特定主机路由
,则将分组传送给指明的下一跳路由器;否则,执行(4) - 对路由表中的每一行,将
子网掩码和D逐位相“与”
。若结果与该行的目的网络地址匹配,则将分组传送给改行指明的下一跳路由器;否则,执行(5) - 若路由器中有一个
默认路由
,则将分组传送给路由表中所指明的默认路由器;否则,执行(6) - 报告转发分组出错。
3.3无分类编址CIDR(构造超网)
使用变长子网掩码VLSM
可进一步提高IP地址资源的利用率。在VLSM的基础上又进一步研究出无分类编址方法,它的正式名字是无分类域间路由选择CIDR
。
(1)CIDR最主要的特点
- 消除了传统的A类、B类、C类地址以及划分子网的概念。
- CIDR使用各种长度的“网络前缀”来代替分类地址中的网络号和子网号
IP地址从三级编址(使用子网掩码)又回到 了两级编址
(2)无分类的两级编址
CIDR使用“斜线记法”,又称为CIDR记法,即在IP地址后面加上一个斜线“/”,然后写上网络前缀所占的位数**(这个数值对应于三级编址中子网掩码中1的个数)**。例如:220.78.168.0/24。
(3)CIDR地址块
- CIDR把
网络前缀都相同
的连续的IP地址组成“CIDR地址块” - 128.14.32.0/20表示的地址共有
2^12个地址
(因为斜线后面的20是网络前缀的位数
,所以这个地址的主机号是12位)。- 这个地址块的起始地址是128.14.32.0
- 在不需要指出地址块的起始地址时,也可将这样的地址简称为“/20地址块”
- 128.14.32.0/20地址块的最小地址:128.14.32.0
- 128.14.32.0/20地址块的最大地址:128.14.47.255
- 全0和全1的主机号地址一般不使用
常用的CIDR地址块
(4)路由聚合
路由聚合
:一个CIDR地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使路由表中的一个项目可以表示很多个(例如上千个)原来传统分类地址的路由。
- 路由聚合有利于减少路由器之间的路由选择信息的交换,从而提高了整个互联网的性能。
- 路由聚合也称为
构成超网
- CIDR虽然不使用子网,但仍然使用
“掩码”
这一词(但不叫子网掩码) - 对于
/20
地址块,他的掩码是20个连续的1.斜线记法中的数字就是掩码中1的个数。
(5)CIDR记法的其他形式
- 10.0.0.0/10可简写为10/10,也就是把点分十进制中低位连续的0省略。
- 10.0.0.0/10隐含地指出IP地址10.0.0.0的掩码是255.192.0.0。
- 网络前缀的后面加一个星号的表示方法,如00001010 00 * ,在之前是网络前缀,而 * 表示IP地址中的主机号,可以是任意值。
(6)构成超网
- 前缀长度
不超过23位的CIDR地址块
都包含了多个C类地址,这些C类地址合起来就构成了超网
。 CIDR地址块中的地址数一定是2的整数次幂。
- 网络前缀越短,其地址块所包含的地址数就越多。
而在三级结构的IP地址中,划分子网是使网络前缀变长。
- CIDR的一个好处是:可以更加有效地分配IPv4的地址空间,可根据客户的需要分配适当大小的CIDR地址块。
(7)最长前缀匹配
- 使用CIDR时,路由表中的每一个项目由“网络前缀”和“下一跳地址”组成。
在查找路由表时可能会得到不止一个匹配结果。
- 应当从匹配结果中选择具有最长网络前缀的路由:
最长前缀匹配。
- 网络前缀越长,其地址块就越小,因而路由就越具体。
- 最长前缀匹配又称为
最长匹配
或最佳匹配。
(8)使用二叉线索查找路由表
为了进行更加有效的查找
,通常是将无分类编址的路由表存放在一种层次的数据结构中,然后自上而下地按层次
进行查找。最常用的就是二叉线索
。
四、网际控制报文协议ICMP
4.1 ICMP报文的种类
ICMP的作用
:为了更有效地转发IP数据报和提高交付成功的机会,在网际层使用网际控制报文协议ICMP- ICMP是互联网的标准协议,是IP层的协议
- ICMP允许主机或路由器报告差错情况和提供有关异常情况报告。
种类
:ICMP差错报告报文
和ICMP询问报文
。
(1)ICMP报文的格式
(2)ICMP差错报告报文
有四种:
- 终点不可达
- 时间超过
- 参数问题
- 改变路由(重定向)(Redirect)
a、ICMP差错报告报文的数据字段的内容:
b、不应发送ICMP差错报告报文的几种情况:
- 对ICMP差错报告报文,不再发送ICMP差错报告报文
- 对第一个分片的数据报片,不再发送ICMP差错报告报文
- 对具有多播地址的数据报都不发送ICMP差错报告报文
- 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。
(3)ICMP询问报文
分类
:回送请求和回答报文、时间戳请求和回答报文。
- 回送请求和回答报文:由主机或路由器向一个特定的目的主机发出询问。这种询问用来测试目的站是否可以到达以及了解其有关状态。
- 时间戳请求和回答:是请某台主机或路由器回答当前的日期和时间。
4.2 ICMP的应用举例
(1)PING (Packet Internet Groper)
- PING用来测试两个主机之间的连通性
- PING使用了ICMP回送请求与回送回答报文
- PING是应用层直接使用网络层ICMP的例子,它没有通过运输层的TCP或UDP。
(2)Traceroute
- 在Windows操作系统中这个命令是tracert
- 用来跟踪一个分组从源点到终点的路径,
- 他利用IP数据报中的TTL字段和ICMP时间超过差错报告报文实现对从源点到终点的路径的跟踪。
五、互联网的路由选择协议
5.1有关路由选择协议的几个基本概念
(1)理想的路由算法
- 算法必须是正确的和完整的
- 算法在计算上应简单
- 算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性
- 算法应具有稳定性
- 算法应是最佳的
(2)关于“最佳路由”
a、路由选择是个非常复杂的问题:
- 它是网络中的所有结点共同协调工作的结果
- 路由选择的环境往往是不断变化的,而这种变化有时无法事先预知。
(3)从路由算法的自适应性考虑
静态路由选择策略
:即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。动态路由选择策略
:即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。
(4)分层次的路由选择协议
a互联网采用分层次的路由选择协议的原因:
- 互联网的规模非常大。
- 许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到互联网上。
b、自治系统AS(Autonomous System)
自治系统AS的定义
:在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由器选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议用以确定分组在AS之间的路由。- 尽管一个AS使用了多种内部路由选择协议和度量,但
重要的是一个AS对其他AS表现的是一个单一的和一致的路由选择策略
。
(5)互联网的两大类路由选择协议
a、内部网关协议IGP(interior gateway protocol)
- 在一个自治系统内部使用的路由选择协议
- 目前这类路由选择协议使用的最多,如RIP和OSPF协议
b、外部网关协议EGP(external gateway protocol)
- 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议EGP
- 在外部网关协议中目前使用最多的是BGP-4
c、自治系统和内部网关协议、外部网关协议
- 应当把“路由器”和“网关”看作是同义词
- IGP和EGP是协议类别的名称
5.2内部网关协议RIP
(1)工作原理
- 路由信息协议RIP(routing information protocol)
- RIP是一种
分布式的、基于距离向量的路由选择器协议
RIP协议要求
网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
a、“距离”的定义
- 从一个路由器到
直接连接
的网络的距离定义为1。 - 从一个路由器到
非直接连接的
网络的距离定义为所经过的路由器数加1。 - RIP协议中的“距离”也称为
“跳数
”,因为每经过一个路由器,跳数就加1。 - 这里的"距离"实际上指的是“
最短距离
”。 - RIP允许一条路径
最多
只能包含15
个路由器 “距离”的最大值为16时即相当于不可达
。可见RIP只适用于小型互联网RIP不能在两个网络之间同时使用多条路由
b、RIP协议的三个特点
- 仅和相邻路由器交换信息
- 交换的信息时当前本路由所知道的全部信息,即自己的路由表。
- 按固定的时间间隔交换路由信息,例如,每隔30秒。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息。
c、路由表的建立
- 路由器在
刚刚开始工作
时,只知道到直接连接的网络的距离(此距离定义为1)。它的路由表是空的
。 - 以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
- 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。
- RIP协议的
收敛
过程较快。“收敛”就是在自治系统中所有的结点都得到正确的路由选择信息的过程。
(2)距离向量算法
- 距离向量算法的基础就是Bellman-Ford算法,这种算法的要点是这样的:
- 设X是节点A到B的最短路径上的一个结点。若把路径A-》B拆成两段路径A-》X和B-》X,则每一段路径A-》X和X-》B也都分别是结点A到X和结点X到B的最短路径。
一个路由表更新的例子:
(3)RIP2协议的报文格式
- RIP2报文中的路由部分由若干个路由信息组成。每个路由信息需要用20个字节。
- 一个RIP报文最多可包括25个路由,因而RIP报文的最大长度是4+20*25=504。如超过,必须再用一个RIP报文来传送。
RIP2具有简单的鉴别功能
- 若使用鉴别功能,则将原来写入第一个路由信息(20个字节)的位置用作鉴别。
- 在鉴别数据之后才写入路由信息,但这时最多只能再放入24个路由信息。
a、RIP协议特点:好消息传播的块,坏消息传播的慢
b、RIP存在的一个问题:
当网络出现故障时,要经过比较长的时间(例如数分钟)才能将此消息传送给所有的路由器。
(4)RIP协议的优缺点
A、优点:
- 实现简单,开销较小
B、缺点:
- RIP限制了网络的规模,它能使用的最大距离为15(16表示不可达)
- 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
- “坏消息传播得慢”,使更新过程的收敛时间过长。
5.3内部网关协议OSPF
(1)OSPF协议的基本特点
- 开放
- 最短路径优先
- 采用分布式的链路状态协议
- 注意:OSPF只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。
A、三个要点:
- 向本自治系统中所有路由器发送信息,这里使用的方法是
洪泛法
- 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
链路状态
:就是说本路由器都和哪些路由器相邻,以及该路由器的“度量”。
- 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
B、链路数据状态库:
- 由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。
- 这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)
- OSPF的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。
- OSPF的更新过程收敛得快是其重要优点。
C、OSPF的区域
区域
:为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围。叫做区域。- 每一个区域都有一个32位的区域标识符(用点分十进制表示)
- 区域也不能太大,在一个区域内的路由器最好不要超过200个。
D、划分区域:
- 划分区域的
好处
就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个自治系统,这就减少了整个网络上的通信量。 在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。
- OSPF使用
层次结构的区域划分
,在上层的区域叫做主干区域
(backbone area) - 主干区域的标识符规定为0.0.0.0。主干区域的
作用
是用来连通其他在下层的区域。
主干路由器
:R3\R4\R5\R6\R7,在主干区域内的路由器。区域边界路由器
:R3\R4\R7
E、OSPF直接用IP数据报传送
OSPF不用UDP而是直接用IP数据报传送。
- OSPF构成的数据报很短。可以减少路由信息的通信量。
- 数据报很短的另一好处是可以不必将长的数据报分片传送。
- 但分片传送的数据报只要丢失一个,就五大组装成原来的数据报,而这个数据报就必须重传。
F、OSPF的其他特点:
- OSPF对于不同类型的业务可计算出不同的路由
多路径间的负载平衡
:如果到同一个目的网络有多条相同代价的路径,那么可将通信量分配给这几条路径。- 所有在OSPF路由器之间交换的分组都具有鉴别的功能。
- 支持可变长度的子网划分和无分类编址CIDR。
- 每一个链路状态都带上一个32位的序号,序号越大状态就越新。
G、OSPF分组
(2)OSPF的五种分组类型
- 问候(Hello)分组
- 数据库描述(Database Description)分组
- 链路状态请求(Link State Request)分组
- 链路状态更新(Link State Update)分组,用洪泛法对全网更新链路状态。
- 链路状态确认(Link State Acknowledgment)分组
A、OSPF的基本操作
B、OSPF的其他特点
- OSPF规定每隔一段时间,要刷新一次数据库中的链路状态。
- 由于一个路由器的链路状态只涉及到与相邻路由器的连通新状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF协议要比距离向量协议RIP好得多。
- OSPF没有“坏消息传播得慢”的问题。
C、指定的路由器
- 多点接入的局域网采用了指定的路由器(designated router)的方法,是广播的信息量大大减少。
- 指定的路由器代表该局域网上所有的链路向连接到该网络上的各路由器发送状态信息。
5.4外部网关协议BGP
- BGP是 不同自治系统的路由器之间交换路由信息的协议。
(1)BGP使用环境不同
- 当一条路径通过几个不同AS时,要想对这样的路径计算出有意义的代价是不太可能的。
- 比较合理的做法是在AS之间交换“可达性”信息
- 故边界网关协议BGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。
(2)BGP发言人
- 每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“
BGP发言人
“(BGP speaker) - 一般来说,两个BGP发言人都是通过一个共享网络连接在一起的,而BGP发言人往往就是BGP边界路由器,但也可以不是BGP边界路由器。
(3)BGP交换路由信息
- 一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,就要先建立
TCP连接
,然后在此连接上交换BGP报文以建立BGP会话
(session),利用BGP会话交换路由器信息。 - 使用TCP连接能提供可靠的服务,也简化了路由选择协议。
- 使用TCP连接交换路由器信息的两个BGP发言人,彼此成为对方的
邻站
(neighbor)或对等站
(peer)
(4)BGP发言人和自治系统AS的关系
- BGP所交换的网络可达性信息就是
要到达某个网络所要经过的一系列AS
。 - 当BGP发言人互相交换了网络可达性的信息后,各BGP发言人就根据所采用额策略从收到的路由信息中找出到达各AS的较好路由
(5)BGP协议的特点
- BGP协议交换路由信息的结点数量级是
自治系统数的量级
,这要比这些自治系统中的网络数少很多。 - 每一个自治系统中BGP发言人(或边界路由器)的数目是很少的。这样就使得自治系统之间的路由选择不至于过分复杂。
BGP支持CIDR
,因此BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。- 在BGP刚刚运行时,BGP的邻站是交换整个的BGP路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。
(6)BGP-4共使用四种报文
- 打开(OPEN)报文,用来与相邻的里另一个BGP发言人建立关系。
- 更新(UPDATE)报文,用来发送某一路由的信息,以及列出要撤销的多条路由
- 保活(KEEPALIVE)报文,用来确认打开报文和周期性地证实邻站关系。
- 通知(NOTIFICATION)报文,用来发送检测到的差错。
(7)BGP报文具有通用首部
5.5路由器的构成
- 路由器的主要作用:
- 连通不同的网络
- 选择信息传送的线路。选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统通畅率,从而让网络系统发挥出更大的效益。
(1)典型的路由器结构
- 整个的路由器结构可划分为两大部分:
- 路由选择部分
- 分组转发部分
A、路由选择部分
- 也叫控制部分,其核心构件是路由器选择处理机
- 路由选择处理机的任务是根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。
B、分组转发部分
- 交换结构:又称为交换组织,其作用是根据转发表对分组进行处理
- 一组输入端口
- 一组输出端口
注:这里的端口就是硬件接口
(2)“转发”和“路由选择”的区别
- “转发”就是路由器根据转发表将用户的IP数据报从合适的端口转发出去。
- “路由选择”则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由。
- 在讨论路由选择的原理时,往往不去区分转发表和路由表的区别。
注:路由表是根据路由选择算法得出的,而转发表是从路由表得出的。
(3)输入端口对线路上收到的分组的处理
- 路由器的输入端口里面装有物理层、数据链路层和网络层的处理模块
- 数据链路层剥去帧首部和尾部后,将分组送到网络层的队列中排队等待处理。这会产生一定的时延。
- 输入端口中的查找和转发功能在路由器的交换功能中是最重要的。
(4)输出端口将交换结构传送来的分组发送到线路
路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。
(5)交换结构
- 正是因为交换结构把分组从一个输入端口转移到某个合适的输出端口
- 实现方法:
- 通过存储器
- 通过总线
- 通过纵横交换结构
A、通过存储器
- 当路由器的某个输入端口收到一个分组时,就用中断方式通知路由选择我处理机。然后分组就从输入端口复制到存储器中。
- 路由器处理机从分组首部提取目的地址,查找路由表,再将分组复制到合适的输出端口的缓存中。
- 若存储器的带宽(读或写)为每秒M个分组,那么路由器的交换速率(即分组从输入端口传送到输出端口的速率)一定小于M/2。
B、通过总线
- 数据报从输入端口通过
共享的总线
直接传送到合适的输出端口,而不需要路由选择处理机的干预
。 - 因为每一个要转发的分组都要通过这一条总线,因此路由器的转发带宽就受到总线速率的限制。
- 现代的技术已经可以将总线的带宽提高到每秒吉比特的速率,因此许多的路由器产品都采用这种通过总线的交换方式。
C、通过纵横交换结构(互连网络)
- 这种交换结构常称为
互连网络
- 它有2N条总线,可以使N个输入端口和N个输出端口相连接
- 当输入端口收到一个分组时,就将它发送到与该输入端相连额的水平总线上。、
- 若通向所要转发的输出端口的垂直总线是空闲的,则在这个结点将垂直总线与水平总线接通,然后将该分组转发到这个输出端口。
- 但若该垂直总线已被占用(有另一个分组正在转发到同一个输出端口),则后到达的分组就被阻塞,必须在输入端口排队。
六、IPv6
- IPv6仍支持
无连接的传送
,但将协议数据单元PDU称为分组。 - 所引进的主要变化如下:
- 更大的地址空间。IPv6将地址从IPv4的32位增大到了128位。
- 扩展的地址层次结构。
- 灵活的首部格式。IPv6定义了许多可选的扩展首部。
- 改进的选项。IPv6允许数据报包含有选项的控制信息,其选项放在有效载荷中。
- 允许协议继续扩充。
- 支持即插即用(即自动配置)。因此IPv6不需要使用DHCP。
- 支持资源的预分配。IPv6支持实时视像等要求,保证一定的带宽和时延的应用。
- IPv6首部改为8字节对齐。首部长度必须是8字节的整数倍。原来的IPv4首部是4字节对齐。
(1)IPv6数据报的一般形式
七、IP多播
4.7.1 IP多播的基本概念
IP多播的目的
:更好地支持一对多通信。- 一对多通信:一个源点发送到许多个终点。
IP多播
:在互联网上进行多播就叫做IP多播。多播路由器
:能够运行多播协议的路由器。当然也可以转发普通的单播IP数据报。
(1)多播IP地址
- IP多播所传送的分组需要使用
多播IP地址
。 - 在多播数据报的目的地址写入的是
多播组
的标识符。 多播组的标识符就是IP地址中的D类地址(多播地址)
- 每一个D类地址标志一个多播组
- 多播地址只能用于目的地址,不能用于源地址。
(2)多播数据报
- 多播数据报和一般的IP数据报的区别就是它使用D类IP地址作为目的地址,并且首部中的协议字段值是2,表明使用网际组管理协议IGMP。
- 多播数据报也是“尽最大努力交付”,不保证一定能够交付多播组的所有成员。
- 对多播数据报不产生ICMP差错报文。因此,若在PING命令后面键入多播地址,将永远不会收到响应。
4.7.2 在局域网上进行硬件多播
(1)D类IP地址与以太网多播地址的映射关系
- 由于多播IP地址与以太网硬件地址的映射关系不是唯一的,因此收到多播数据报的主机,还要在IP层利用软件进行过滤,把不是本主机要接收的数据报丢弃。
4.7.3 网际组管理协议IGMP和多播路由选择协议
网际组管理协议IGMP
:为了使路由器知道多播组成员的信息。多播路由选择协议
:连接在局域网上的多播路由器还必须和互联网上的其他多播路由协同工作,以便把多播数据报用最小代价传送给所有的组成员。
(1)IGMP的使用范围
- IGMP并非在互联网范围内对所有多播组成员进行管理的协议
- IGMP不知道IP多播组包含的成员数,也不知道这些成员都分布在哪些网络上。
- IGMP协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参与或退出了某个多播组。
(2)IGMP工作可分为两个阶段
- 第一阶段:加入多播分组
- 当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP报文,声明自己要成为该组的成员。
- 本地的多播路由器收到IGMP报文后,将组成员关系转发给互联网上的其他多播路由器。
- 第二阶段:探询组成员变化情况
- 因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否继续是组的成员。、
- 只要对某个组有一个主机响应,那么多播路由器就认为这个组时活跃的。
- 但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。
(3)IGMP采用的一些具体措施
- 在主机和多播路由器之间的所有通信都是使用IP多播
- 多播路由器在探询组成员关系时,只需要对所有的组发送一个请求信息的询问报文。默认的询问速率是每125秒发送一次。
- 当同一个网络上连接有几个多播路由器时,他们能够迅速和有效地选择其中的一个来探询主机的成员关系。
- 在IGMP的询问报文中有一个数值N,它指明一个最长响应时间(默认值为10秒)。当收到询问时,主机在0到N之间随机选择发送响应所需经过的时延。对应于最小时延的响应最先发送。
- 同一个组内的每一个主机都要监听响应,只要有本组的其他主机发送了响应,自己就可以不再发送响应了
(4)多播路由器选择协议更为复杂
- 多播转发必须动态地适应多播组成员的变化(这时网络拓扑并为发生变化)。请注意,单播路由选择通常是在网络拓扑发生变化时才需要更新路由。
- 多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,而是还要考虑这个多播数据报从什么地方来和要到什么地方去。
- 多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入网络。
IGMP是整个网际协议IP的一个组成部分,IGMP使用IP数据报传递其报文。
(5)多播路由器选择
- 多播路由器选择实际上就是要找出以源主机为根节点的多播转发树
- 在多播转发树上的路由器不会重复的多播数据报
- 对不同的多播组对应于不同的多播转发树
- 同一个多播组,对不同的源点也会有不同的多播转发树。
(6)多播路由选择
多播路由选择协议在转发多播数据报时使用三种方法:
- 洪泛与剪除
- 隧道技术
- 基于核心的发现技术
A、洪泛与剪除
- 这种方法适用于较小的多播组,而所有的组成员接入的局域网也是相邻接的。
- 一开始,路由器转发多播数据报使用洪泛的方法(就是广播)
- 为了避免兜圈子,采用了叫
反向路径广播RPB
的策略
B、隧道技术(tunneling)
C、基于核心的发现技术
- 这种方法对于多播组的大小在较大范围内变化时都合适。
- 对每一个多播组G指定一个核心(core)路由器,给出它的IP单播地址。
- 核心路由器按照前面讲过的方法创建出对应于多播组G的转发树。
(6)几种多播路由选择协议
八、虚拟专用网VPN和网络地址转换NAT
4.8.1虚拟专用网VPN
(1)本地地址与全球地址
本地地址
:仅在机构内部使用的IP地址,可以由本机构自行分配,而不需要向互连网的管理机构申请。全球地址
:全球唯一的IP地址,必须向互连网的管理机构申请。
产生的问题:在内部使用的本地地址就有可能和互联网中某个IP地址重合,这样就会出现地址的 二义性问题。
解决:RFC1918指明了一些专用地址。
专用地址只能用作本地地址而不能用作全球地址
。
在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发
(2)RFC1918指明的专用IP地址
三个专用IP地址块:
(3)专用网
专用网
:采用上述的专用IP地址的互连网络称为 专用互连网 或 本地互联网。更简单一点叫专用网。可重用地址
:因为这些专用地址仅在本机构内部使用。专用IP地址也叫作可重用地址。
(4)虚拟专用网VPN
虚拟专用网VPN
:利用公用的互联网作为本机构各专用网之间的通信载体,这样的专用的网又称为虚拟专用网VPN。
**“专用网”是因为这种网络是为本机构的主机用于机构内部的通信,而不是用于和网络外非本机构的主机通信。“虚拟”**表示”好像是“,但实际上并不是,因为现在并没有真正使用通信专线,而VPN只是在效果上和真正的专用网一样。
(5)虚拟专用网VPN构建
a、用隧道技术实现虚拟专用网
在通过公用的互联网时,必须要对传送的数据进行加密。
(6)内联网intranet和外联网extranet
- 他们都是基于TCP/IP协议的。
- 由部门A和B的内部网络所构成的虚拟专用网VPN又称为
内联网
,表示部门A和B都是在同一个机构的内部。 - 一个机构和某些
外部机构
共同建立的虚拟专用网VPN又称为外联网
(7)远程接入VPN
远程接入VPN
:可以满足外部流动员工访问公司网络的需求。- 在外地工作的员工拨号接入互联网,而驻留在员工PC机中的VPN软件可在员工的PC机和公司的主机之间建立VPN隧道,因而在外地员工与公司通信的内容是保密的,员工们感到好像就是使用公司内部的本地网络。
4.8.2网络地址转换NAT
问题:在专用网上使用专用地址的主机如何与互联网上的主机通信?使用网络地址转换NAT
(1)网络地址转换NAT
- 需要在专用网连接到互联网的路由器上安装NAT软件。装有NAT软件的路由器叫做
NAT路由器,它至少有一个有效的外部全球IP地址。
- 所有使用本地地址的主机在和外界通信时都要在NAT路由器
上将其本地地址转换成全球IP地址
,才能和互联网连接。 - 当NAT路由器具有n个全球IP地址时,专用网内
最多可以同时有n台主机接入到互联网
。这样就可以使用专用网内较多数量的主机,轮流使用NAT路由器有限数量的全球IP地址。 - 通过NAT路由器的通信必须由专用网内的主机发起。
专用网内部的主机不能充当服务器用
,因为互联网上的客户无法请求专用网内的服务器提供服务。
(2)网络地址转换的过程
可以看出,在内部主机与外部主机通信时,在NAT路由器上发生了两次地址转换:
- 离开专用网时:替换源地址,将内部地址替换为全球地址;
- 进入专用网时:替换目的地址吗,将全球地址替换为内部地址;
(3)网络地址与端口号转换NAPT
- 为了更加有效地利用NAT路由器上的全球IP地址,现在常用的NAT转换表把运输层的端口号也利用上。这样,就可以使多个拥有本地地址的主机,共用一个NAT路由器上的全球IP地址,因而可以同时和互联网上的不同主机进行通信。
- 使用端口号的NAT叫做
网络地址与端口号转换NAPT
(network address and port translation),而不使用端口号的NAT就叫做传统的NAT
(traditional NAT)
九、多协议标记交换MPLS
4.9.1 MPLS的工作原理
多协议标记交换MPLS(multiprotocol label switching)
- “多协议”表示在MPLS的上层可以采用多种协议,例如:IP,IPX;可以使用多种数据链路层协议,例如:PPP,以太网,ATM等。
- **”标记“**是指每个分组被打上一个标记,根据该标记对分组进行转发。
(1)MPLS的特点
- MPLS并没有取代IP,而是作为一种IP增强技术,被广泛地应用在互联网中。
- MPLS具有以下三个方面的特点:
- 支持面向连接的服务质量
- 支持流量工程,平衡网络负载
- 有效地支持虚拟专用网VPN
(2)MPLS基本工作过程
A、IP分组的转发
- 在传统的IP网络中,分组每到达一个路由器后,都必须提取出其目的地址,按目的地址查找路由表,并按照“最长前缀匹配”的原则找到下一跳的IP地址(请注意:前缀的长度是不确定的)。
- 当网络很大时,查找含有大量项目的路由表要花费很多的时间。
- 在出现突发性的通信量时,往往还会使缓存溢出,这就会引起分组丢失、传输时延增大和服务质量下降。
B、MPLS协议的基本原理
- 在MPLS域的入口处,给每个IP数据报打上固定长度“标记”。然后对打上标记的IP数据报用硬件进行转发。
- 采用硬件技术对打上标记的IP数据报进行转发就称为标记交换。
- “交换”也表示在转发时不再上升到第三层查找换发表,而是根据标记在第二层(链路层)用硬件进行转发。
MPLS域
:是指该域中有许多彼此相邻的路由器,并且所有的路由器都是支持MPLS技术的标记交换路由器LSR(label switching router)。- LSR同时具有标记交换和路由选择这两种功能,标记交换功能是为了快速转发,
但在这之前LSR需要使用路由选择功能构造转发表
。
C、MPLS的基本工作过程
- MPLS域中的各LSR使用专门的
标记分配协议LDP
交换报文,并找出标记交换路径LSP
。各LSR根据这些路径构造出分组转发表
。 - 分组进入到MPLS域时,MPLS
入口结点把分组打上标记
,并按照转发表将分组转发给下一个LSR。给IP数据报打标记的过程叫做分类
(classification)。 - 一个标记仅仅在两个标记交换路由器LSR之间才有意义。分组每经过一个LSR,LSR就要做两件事:一是转发,而是更换新的标记,即把入标记更换成为出标记。这就叫做标记对换(label swapping)
- 当分组离开MPLS域时,MPLS出口结点把分组的标记去除。再以后就按照一般分组的转发方法进行转发。
上述的这种“由入口LSR确定进入MPLS域后的转发路径”称为显示路由选择,它和互联网中通常使用的“每个路由器逐跳进行路由选择”有着很大的区别。
(3)转发等价类FEC
转发等价类
就是路由器按照同样方式对待的分组的集合。
“按照同样方式对待"表示:从同样接口转发到同样的下一跳地址,并且具有同样服务类别和同样丢弃优先级等。
- 划分FEC的方法不受什么限制,这都由网络管理员来控制,因此非常灵活。
- 入口结点并不是给每一个分组指派一个不同的标记,而是将属于同样FEC的分组都指派同样的标记。
- FEC和标记是一一对应的关系。
(4)流量工程
- 网络管理员采用自定义的FEC就可以更好地管理网络的资源
- 这种均衡网络负载的做法也称为流量工程TE(traffic engineering)或通信量工程。
4.9.2 MPLS首部的位置与格式
- MPLS并不要求下层的网络都使用面向连接的技术
- 下层的网络并不提供打标记的手段,而IPv4数据报首部也没有多余的位置存放MPLS标记。
- 这就需要使用一种封装技术:在把IP数据报封装成以太网帧之前,先要插入一个MPLS首部。
- 从层次的角度看,MPLS首部就处在第二层和第三层之间。
(1)MPLS首部的格式
标记。这就叫做标记对换(label swapping)
4. 当分组离开MPLS域时,MPLS出口结点把分组的标记去除。再以后就按照一般分组的转发方法进行转发。