教材:计算机网络(第四版)
作者:吴功宜 吴英
出版社:清华大学
第五章 网络层
5.1 网络层与IP协议
- 网络层基本概念:网络层通过路由选择算法,为IP分组从源主机到目的主机选择一条合适的传输路径,为传输层端—端数据传输提供服务
5.2 IPv4协议的基本内容
5.2.1 IP协议的主要特点
-
IP协议:是一种无连接、不可靠的分组传送服务的协议
(分组→类似数据报P30)
-
IP协议是点-点的网络层通信协议
IP协议是针对源主机—路由器、路由器—路由器、路由器—目的主机之间的数据传输的点—点的网络层通信协议
-
IP协议屏蔽了互联的网络在数据链路层、物理层协议与实现技术上的差异
(IP协议承上启下)
IP协议是为了在分组交换(Packet-switched,又译为包交换)计算机通信网络的互联系统中使用而设计
IP层只负责数据的路由和传输,在源节点与目的节点之间传送数据报,但并不处理数据内容。
数据报中有目的地址等必要内容,使每个数据报经过不同的路径也能准确地到达目的地,在目的地重新组合还原成原来发送的数据
5.2.2 IPv4分组格式
1. IPv4分组结构
-
IP分组也称为IP数据报
-
IPv4分组:分组头和数据。IP分组头长度为20B~60B(就是一串数字)
- 分组头长度可变,每行宽度为4B
- 前五行为分组头必需有的域,长度为20B(5行*4B)
- 第六行为选项域,最长为40B
2. 分组头格式
(1)版本字段
-
长度:4位
-
版本字段值为4,表示IPv4
版本字段值为6,表示IPv6
(2)协议字段
-
长度: 8位
-
作用: 表示使用IP协议的高层协议类型
-
标识使用何种协议,通过该字段指示了IP分组应该交给哪个传输层协议
(IP数据部分须按什么协议来进行解析,可参考第六章UDP协议)
(3)长度
-
IP分组头有两个长度字段:分组头长度(报头长度)、总长度
-
分组头长度字段
-
长度: 4位
-
作用:它定义了以4字节为一个单位的分组头的长度
(定义了分组头有多少行)
-
分组头中除了IP选项字段与填充字段之外,其他各项是定长的
-
IP分组的分组头长度必须为4字节的整数倍。如果不是4字节的整数倍,则由填充字段(填充域)“添0”补齐
-
分组头长度字段最小值为5( 4 B × 5 行 = 20 B 4B×5行=20B 4B×5行=20B)
(分组头最少有五行)
最大长度为15 ( 4 B × 15 行 = 60 B 4B×15行=60B 4B×15行=60B)
(分组头长度为4bit,取值范围为:0000B-1111B,也就是0~15行,但规定了分组头最少必须要有五行,因此 分组头的长度范围是5~15行)
-
-
总长度字段
- 长度: 16位
- 作用: 定义以字节为单位的分组总长度,是分组头长度与数据长度之和
- 总长度字段长度为16位,它能表示的IP分组最大长度为65535( 2 16 - 1 2^{16}-1 216-1)字节,其中包括分组头长度
- I P 分 组 中 高 层 协 议 的 数 据 长 度 = 分 组 的 总 长 度 − 分 组 头 长 度 IP分组中高层协议的数据长度 = 分组的总长度 - 分组头长度 IP分组中高层协议的数据长度=分组的总长度−分组头长度
(4)区分服务字段(服务类型字段)
- 长度: 8位
- 作用: 用于指示路由器如何处理该分组
(5)生存时间(time-to-live,TTL)字段
- 长度: 8位
- 作用: 设定分组在Internet中的“寿命”,它通常是用转发分组最多的路由器跳数(hop) 来度量
- 生存时间TTL的初始值由源主机设置,经过一个路由器转发之后,TTL值减1
- 当TTL的值为0时,丢弃分组并发送ICMP报文通知源主机
(6)头校验和字段
-
长度: 16位
(P216 中写的是8位,估计是印错了)
-
作用: 保证分组头部数据完整性
-
IP分组只对分组头进行校验,不包括分组数据
- IP分组头之外的部分属于高层数据,高层数据都会有相应的校验字段,IP分组不对高层数据进行校验
- 每经过一个路由器,IP分组头都要改变一次,数据部分并不改变。设置头校验和只对变化部分进行校验是合理的,可以减少路由器对每个接收分组的处理时间,提高路由器的运行效率
(7)地址字段
-
地址字段包括源地址与目的地址(点-点传输)
-
在分组的整个传输过程中,无论采用什么样的传输路径或如何分片,源地址与目的地址始终保持不变
(在物理链路层中,物理地址在转发时会改变)
-
源地址字段
- 长度: 32位
- 作用: 表示发送分组的源主机的IP地址
-
目的地址字段
- 长度: 32位
- 作用: 表示接收分组的目的主机的IP地址
3. IP分组的分片与组装
(1) 最大传输单元(MTU)与IP数据报分片
-
MTU(Maximum Transmission Unit):最大传输单元
每个数据链路层能够确定发送的一个帧的最大长度
-
分片: 实际使用的网络最大传输单元长度比IP数据报最大长度短,使用它们传输IP数据报时,要对其进行分片传输
如:Ethernet的MTU的长度为1500B,因此,在使用这些网络传输IP分组时,要将IP分组分成若干较小的片(fragment)来传输
-
IP数据报(作为网络层数据)→数据链路层(封装成帧)→物理层(传输到另一物理层)
-
一个数据报可能要通过多个不同的物理网络
-
不同的物理网络的数据链路层的MTU长度可能不同(MTU长度由物理网络所采用的协议决定,如PPP协议规定它的信息帧的信息字段最长为1500B,P117)
-
-
由于IP协议是数据链路的上一层,所以它必须不受数据链路的MTU大小的影响能够加以利用
-
因此,路由器将接收到的帧进行拆包和处理,然后封装成另外一个帧,并准备转发到目的主机时,首先根据下一个网络的数据链路层MTU,决定该分组在转发之前是否需要分片
(2)IP数据报分片的基本方法
先确定片长度,然后将原始IP分组包括分组头分成第1片,若剩下的数据仍大于片长度,再进行第2次分片,第2个分片数据加上分组头构成第2个片,如此直到剩下的数据小于片长度
(3)域标识、标志和片偏移
在IP分组的报头中,与一个分组的分片、组装相关的域有
-
标识域
- 长度:16位,最多可分配65535个ID值
- 作用:表示属于同一个IP数据字段的分片
- 主机在发送每一个IP分组时,将一个内部计数器值加1来产生标识字段的值
-
标志域
-
长度:3位,最高位为0
-
不分片(Do not Fragment,DF)
=1,表示接收主机不能对分组分片
=0,表示可以分片
-
分片(More Fragment,MF)
=1,表示接收的分片不是最后一个分片
=0,表示接收的是最后一个分片
-
-
片偏移域
-
长度:13位
-
作用:表示该分片在整个分组中的相对位置
(就是记录分片在数据报中的顺序位置)
-
值以8B为单位计数,即分片长度应为8B的整数倍
例:片2的片偏移值:800/8=100,片3的片偏移值:1600/8=200
-
(4)分片例子
4. IP分组头选项
- 设置IP分组头选项的主要目的:主要用于控制与测试
- IP分组头的校验和算法:二进制反码求和算法
5.3 IPv4地址
5.3.1 IP地址的基本概念
5.3.2 标准分类IP地址
1、网络地址的基本概念
(1)名字、地址、路径
RFC791指出:名字说明他是谁;地址说明他在哪里;路径说明如何找到他
(2)MAC地址与IP地址
-
MAC地址(物理地址):每块网卡的硬件地址
- MAC地址是网卡出厂时设定的,一个网卡对应一个MAC地址
- 作用范围: 应用在OSI第二层,即数据链路层
- 功能:MAC地址负责表示计算机的数据链路层地址,数据链路层设备(如交换机)根据MAC地址来进行操作
- 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址;传输帧)
-
IP地址(逻辑地址):网络层地址
- 互联网上每一个网络或每一台主机所分配的逻辑地址称为IP地址
- 作用范围: 应用于OSI第三层,即网络层
- 功能:在数据通信时,IP地址负责表示计算机的网络层地址,网络层设备(如路由器)根据IP地址来进行操作
- 主要用于路由器的寻址,采用层次结构;可通过软件设置
- 网络层协议使数据可以从一个网络传递到另一个网络上(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络;传输分组数据)
-
在路由器发送的报文中目标MAC地址是下一跳路由器的MAC地址,但是目标IP地址则是真正的终点IP地址
举个例子, 把整个网络比作一间教室, IP地址就是教师里的位置, 而MAC地址就是座位上的人。这个座位可以A坐也可以B座, A可以到这个位置坐, 也可以到那个位置坐
(3)网络接口与IP地址的关系
- IP地址标识的是一台主机或路由器与网络的接口
(4)IP地址分配
分三种情况:
-
为每一个网络接口分配一个IP地址
一台计算机连入网络,需分配一个IP地址,与MAC地址一一对应,且在Internet中唯一的
-
为多归属主机的每一个网络接口分配相应的IP地址
路由器通过多个网卡连接到多个网络时,需为每个网卡分配一个IP地址
-
可以为一个接口分配多个IP地址
总结
- 连接到Internet的每一个主机(计算机或路由器)至少有一个IP地址
- IP地址是分配给网络接口的
- 多归属主机可以有多个IP地址
- 一个网络接口也可以分配多个IP地址
- 网桥、Ethernet交换机属于数据链路层设备,使用MAC地址,不属于网络层设备,不分配IP地址
2. 标准分类IP地址的点分十进制表示方法
- IPv4的地址长度32位,用点分十进制表示:x.x.x.x(也就是每8位打一个点,在转换为十进制)
x范围:0~255,如:202.113.29.119 - 网络号越长,识别的网络越多(相当于班级)
- 主机号:该网络中不同的主机(相当于学号)
3. 标准IP地址的分类
A类IP地址
- A类IP地址的第一位为0,网络号长度为7位,主机号长度为24位
- A类地址是从:1.0.0.0~127.255.255.255
- 网络号长度为7位,从理论上可以有 2 7 = 128 2^7=128 27=128块网络
B类IP地址
- B类IP地址的前两位为10,网络号长度为14位,主机IP长度为16位
- B类IP地址是从:128.0.0.0~191.255.255.255
- 由于网络长度为14位,因此允许有 2 1 4 = 16384 2^14=16384 214=16384个不同的B类网络
C类IP地址
- C类IP地址的前三位为110,网络号长度为21位,主机号长度为8位
- C类IP地址是从:192.0.0.0~223.255.255.255
- 网络号长度为21位,因此允许有 2 2 1 = 2097152 2^21=2097152 221=2097152个不同的C类网络
D类和E类IP地址
-
D类IP地址不标识网络
- 地址范围:224.0.0.0~239.255.255.255
- 用于其他特殊的用途,如多播地址Multicasting;
-
E类IP地址暂时保留
- 地址范围:240.0.0.0~255.255.255.255
- 用于某些实验和将来使用
4. 特殊IP地址形式
- 直接广播地址
- A类、B类与C类地址中主机号全1(如191.1.255.255 )的地址
- 用来使路由器将一个分组以广播方式发送给特定网络(191.1.0.0 )上的所有主机
- 受限广播地址
- 网络号与主机号的32位全为1(255.255.255.255)的地址
- 用来将一个分组以广播方式发送给本网的所有主机
- “这个网络上的特定主机”地址
- A类、B类、C类地址中,如网络号是全0 (如0.0.0.25)
- 路由器接到这样的分组,不向外转发,而是直接交付给本网络中主机号为25的主机
- 回送地址
- A类地址中127.0.0.0是回送地址,它是一个保留地址
- 回送地址是用于网络软件测试和本地进程间通信
5.3.3 划分子网的三级地址结构
1. 子网的基本概念
-
标准分类的IP地址存在的问题:
- IP地址的有效利用率问题
A、B类地址的网络中,主机数量多;C类地址网络主机数量少。造成地址空间的浪费 - 路由器的工作效率问题
分配的IP地址越多,路由器的工作效率就越低。因为路由器在执行路由选择算法时,需要查询存储的路由表来确定分组的输出路径。IP地址越多,路由表越大,查询速度越慢
- IP地址的有效利用率问题
-
子网的基本思想: 借用主机号的一部分作为子网的子网号,划分出更多的子网IP地址,而对于外部路由器的寻址没有影响
2. 划分子网的地址结构
- 标准的A类、B类与C类IP地址是两层结构: net ID-host ID
- 子网IP地址是三层结构: net ID-subnet ID-host ID
- 同一个子网中所有的主机必须使用相同的网络号-子网号(net ID-subnet ID);
- 子网的概念可以应用于A类、B类或C类中任意一类IP地址中;
- 子网间距离必须很近;
- 分配子网是一个组织和单位内部的事,它既不要向Internet地址管理部门申请,也不需要改变任何外部的数据库
(也就是在网络号-主机号的两层地址结构中,借用主机号的一部分作为子网号)
3. 子网掩码的概念
-
又称子网屏蔽码
-
背景: 一个标准的IP地址,无论用二进制还是点分十进制表示,都可以从数值上直观判断出它的类别(A、B、C类),指出它的网络号和主机号
-
掩码表示方法: 主机号置0,其余置1
-
作用: 从一个IP地址中提取出子网号
-
适用范围:(也可适用于没有进行子网划分的)A类、B类、C类地址
-
例子:一个B类地址划分为64个子网
方法:网络号不变,借用原主机号中的6位作为子网号,剩余10位为子网主机号
如:B类IP地址190.1.2.26,它的子网掩码用点分十进制表示为255.255.252.0;或表示成190.1.2.26/22
4. 子网规划与地址空间划分方法
例:一个校园网要对一个B类地址(156.26.0.0)进行子网划分。该校园网有近210个局域网组成
析:
2
8
=
256
2^8=256
28=256,因此可将B类地址主机号的8位作为子网号
B类地址共16位主机号,用8位作为子网号,剩下8位主机号
因此,子网掩码为:255.255.255.0
以上子网划分结果为:
- 子网1:156.26.1.1~156.26.1.254
- 子网2:156.26.2.1~156.26.2.254
- ……
- 子网254:156.26.254.1~156.26.254.254
子网号和主机号全0(子网网络地址) 或全1(广播地址) 的地址保留,因此校园网划分后有254个子网,每个子网254台主机
子网长度的确定,应考虑两个因素:子网数与每个子网中主机与路由器数。子网数要考虑留有一定余量为原则
5. 可变长度子网掩码(VLSM)技术
- 是一种产生不同大小子网的网络分配机制,指一个网络可以配置不同的掩码
- VLSM允许一个组织在同一个网络地址空间中使用多个子网掩码
例:某公司申请一个C类202.60.31.0的IP地址,该公司有100名员工在销售部,50名在财务部,50名在设计部。要求为销售部门、财务部门、设计部门分别组建子网
- 按不同子网长度来划分:销售部需100台主机,
2
6
<
100
<
2
7
,
2^6<100<2^7,
26<100<27,即主机号需7位,则可借1位为子网号。即使用子网掩码255.255.255.128,将C类地址先划分为2个子网。分别为:
- 子网位为0:202.60.31.1~ 202.60.31.126 (作为销售部子网)
- 子网位为1: 202.60.31.129~ 202.60.31.254
- 剩下两部门主机数均为50,
2
5
<
50
<
2
6
2^5<50<2^6
25<50<26,即需6位主机位,则在上述划分的子网中再借一位为子网号,需使用子网掩码255.255.255.192,将剩余的地址再划分为2个子网:
- 子网2:202.60.31.129~ 202.60.31.190 (作为财务部子网)
- 子网3:202.60.31.193~ 202.60.31.254(作为设计部子网)
- 允许使用的主机号数需减2(用于做子网网络地址和广播地址)
计算总结
- 子网掩码: 网络位与子网位全1,主机位全0
- 可用主机数: = 2 主 机 位 数 次 幂 − 2 =2^{主机位数次幂}-2 =2主机位数次幂−2
- 网络地址: 网络位与子网位的数保持不变,主机位全取0;或用IP地址与子网掩码进行求与所得结果;一个网段中第一个IP地址为网络地址
- 广播地址: 网络位与子网位保持不变,主机位全取1;也就是一个网段中最后一个IP地址
- 有效IP地址范围: 在一个网段中去掉最前面一个网络地址与最后一个广播地址,剩余的IP地址
5.3.4 无类别域间路由CIDR
1. 基本概念
-
无类别域间路由(CIDR):将剩余的IP地址不是按标准的地址分类规则,而是以可变大小地址块的方法进行分配
-
CIDR用区别于传统标准分类的IP地址与划分子网的概念的“网络前缀(network -prefix)”,代替“网络号+主机号” 二层地址结构,形成新的无分类二层地址结构
(抛弃使用ABC类地址的用法)
-
CIDR使用网络前缀去代替了标准分类的IP地址的网络号与主机号,也不再使用子网的概念
-
与标准分类IP地址与子网划分的方式相比,CIDR是以任意二进制倍数的大小来分配地址
-
表示方法:“斜线记法”, < 网 络 前 缀 > / < 主 机 号 > <网络前缀>/<主机号> <网络前缀>/<主机号>
(网络前缀其实就相当于网络号)
如:200.16.23.0/20表前20位为网络前缀,后12位为主机号
200.16.23.0/20=11001000 00010000 00010111 00000001 -
CIDR地址块: 网络前缀相同的连续的IP地址组成一个CIDR地址块
如:200.16.23.1/20的网络前缀为20位,该地址块有的主机号可达212(4096)
-
一个CIDR地址块由块起始地址和前缀表示。 块起始地址为地址块中地址数值最小(主机号全0)的一个
如:200.16.23.1/20地址块中起始地址的主机号全0,即这个地址块的最小地址的结构为:
200.16.16.0/20=11001000 00010000 0001 0000 00000000
2. 一个划分CIDR地址块的例子
题目:一个校园网获得200.24.16.0/20的地址块,希望将它划分为8个等长的较小的地址块
8
=
2
3
8=2^3
8=23,即借用CIDR地址中12位主机号的前三位,实现进一步划分(8个地址块网络地址前20位相同)
划分的好处
-
连接到Internet的主路由器向外部网络发送一个通告,说明它接收所有目的地址的前20位与200.24.16.0/20相符的分组。外网不需要知道在该地址块内部还有8个系级的网络存在
(减少路由器工作量,只需辨别前20位)
5.3.5 网络地址转换NAT
1. NAT的基本概念
-
NAT技术应用领域:ISP、ADSL、有线电视与无线移动接入的动态IP地址分配
-
优点: 弥补IP地址的短缺
-
缺点: 对网络性能、安全和应用有很大影响
-
在使用专用IP地址的内部网络中,要访问Internet,需使用NAT技术
2. NAT工作过程示意图
5.4 路由选择算法与分组交付
5.4.1 分组交付和路由选择的基本概念
-
分组交付: 在Internet中主机、路由器转发IP分组的过程
-
分组交付的分类: 可以分为直接交付和间接交付
是直接交付还是间接交付,路由器需要根据分组的目的IP地址与源IP地址是否属于同一个子网来判断
-
直接交付: 当分组的源主机和目的主机是在同一个网络,或是当目的路由器向目的主机传送时,分组将直接交付,即直接进行分组传输
-
间接交付: 若目的主机与源主机不在同一网络,分组就要间接交付
-
-
网关(网间连接器、协议转换器): 一个网络连接到另一个网络的“关口”
由于历史的原因,许多有关TCP/IP的文献曾经把网络层使用的路由器称为网关,在今天很多局域网采用都是路由来接入网络,因此通常指的网关就是路由器的IP
-
默认路由器(默认网关):多数主机先接入一个局域网,局域网通过一台路由器再接入Internet。这台路由器就是局域网主机的默认路由器,又称第一跳路由器
-
一台主机发送一个IP分组时,首选将其发送到默认路由器。因此默认路由器称为源路由器。与目的主机连接的路由器称为目的路由器
3、路由选择算法的主要参数
- 跳数(hop count):一个分组从源主机到达目的主机的路径上,转发分组的路由器数量(转发次数;少→优)
- 带宽(bandwidth):链路的传输速率(高→优)
- 延时(delay):一个分组从源主机到达目的主机花费的时间(高→优)
- 负载(load):通过路由器或线路的单位时间通信量(大→劣,小→优)
- 可靠性(reliability):传输过程中的分组丢失率(低→优)
- 开销(overhead):传输过程中的耗费,通常与所使用的链路长度、数据速率、链路容量、安全、传播延时与费用等因素相关(少→优)
4. 路由选择算法的分类
- 路由器的路由选择算法: 表驱动
- 路由表的产生: 是根据路由选择算法产生的
- 路由表存储内容: 可能的目的地址与如何到达目的地址的信息
- 路由选择算法分类 (网络拓扑和通信量变化的自适应角度):静态路由选择算法与动态路由选择算法
- 静态路由表特征
- 静态路由选择算法(非自适应路由选择算法)
- 算法特点: 简单和开销较小,但不能及时适应网络状态的变化
- 静态路由表建立: 人工方式建立,无法自动更新
- 静态路由表使用范围:用在小型的、结构不会经常改变的局域网系统中,或是故障查找的试验网络中
- 动态路由表特征
- 动态路由选择算法(自适应路由选择算法)
- 算法特点: 能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大
- 动态路由表建立: 系统自动运行路由选择协议,建立路由表。
- 动态路由表使用范围: 用在大型互联网络中
5. 路由表的生成与使用
(1)掩码相关概念
-
掩码表示方法:主机号置0,其余置1
-
作用:从一个IP地址中提取出子网号
(该IP地址属于哪个网络,比如属于子网1)
(2)原理:
- 1与任何数相与(&)是任何数自身
- 0与任何数相与(&)都是0
(3)过程:
-
路由器收到IP包后,取出目的网络地址
-
将目的网络地址与掩码相与(&)
-
将相与结果与表中的目标网络地址相比
若相等,则证明该IP包是发送给该目标网络地址(子网)
若不相等,则继续与路由表下一条进行比较
(4)例子:
- 如果路由器2收到一个目的地址为202.1.2.2/24的分组
- 路由器2可根据掩码255.255.255.0确定该分组是发送到目的网络地址为202.1.2.0的子网2
- 路由表的第二项内容形成过程:路由器2通过转发端口S1,将分组传送到路由器1的端口S0
(5)注意:
分组在逐跳转发的过程中,
-
分组头中源IP地址和目的IP地址是不变的(网络层)
-
但封装IP分组Ethernet帧的源MAC地址与目的MAC地址是变化的(网络链路层)
-
IP地址: 作为任意一台主机在虚拟网络上的唯一标识。在主机通信中必不可少。
-
IP地址是为了确认目的主机。如果IP地址改变,则目的主机改变无法进行正常通信
-
对帧当中的IP地址的理解:发货人、收货人
-
MAC地址: 直译为媒体访问控制地址,也称为局域网地址、以太网地址或物理地址
-
MAC地址是为了进行数据传输。如果MAC地址不改变无法进行正常的分组转发算法,数据无法流通
-
对帧当中的MAC地址的理解:
源MAC: 货物中途所经过的上一个驿站
目标MAC: 货物中途所要到达的下一个驿站
6. IP路由汇聚
(1)最长前缀匹配原则
- 路由器的路由表项数量越少,路由选择查询时间越短,分组转发延迟时间越少,路由汇聚是减少路由表项数量的重要手段
- 路由表项组成:网络前缀和下一跳地址
- 路由选择:是选择具有最长网络前缀的路由的过程,是 “最长前缀匹配” 的路由选择原则
(2)路由汇聚过程
- CIDR的路由汇聚过程示意图
- 路由器 R G R_G RG的路由表
- 汇聚后的路由器 R G R_G RG的路由表
- 总结
- 找相同输出接口的为一组
- 找出相近的地址块的最长相同前缀
5.4.2 路由表的建立、更新与路由选择协议
设计路由选择算法的目标:是生成路由表,为路由器转发IP分组找出适当的下一跳路由器。
设计路由选择协议的目标:是实现路由表中路由信息的动态更新
2. 自治系统的基本概念
- 基本思想:分层路由选择,将整个Internet划分为多个较小的自治系统(Autonomous System, AS)
- 特点:
- 自治系统的核心是路由选择的 “自治”
- 一个自治系统内部路由器之间能够使用动态的路由选择协议,及时地交换路由信息,精确地反映自治系统网络拓扑的当前状态
- 自治系统内部的路由选择称为域内路由选择;自治系统之间的路由选择称为域间路由选择
- 对应于自治系统的结构,路由选择协议也分为两大类: 内部网关协议(IGP)、外部网关协议(EGP)
3. Internet路由选择协议的分类
- 内部网关协议(Interior Gateway Protocol ,IGP)
- 指在一个自治系统内部使用的路由选择协议
- 主要有:路由信息协议(Routing Information Protocol RIP)、开放最短路径优先(Open Shortest Path First OSPF)协议
- 外部网关协议(Exzternal Gateway Protocol ,EGP)
- 自治系统之间交换路由信息使用的路由选择协议
- 应用最多的外部网关协议时BGP-4
5.4.3 路由信息协议RIP(Routing Information Protocol)
- 是基于向量-距离(Vector-Distance,V-D)路由选择算法的内部路由协议
- 优点:
实现简单,只考虑距离,不考虑连接路由链路的带宽。适用于中小规模的网络。 - 缺点:
- 协议过于简单,以跳数为依据计算度量值,常得出非最优路由
- 度量值以16为限(允许的最大跳数为15,16表示目的网络不可达),不适用于较大网络
- 安全性差,接受来自任何设备的路由更新
- 带宽消耗大(路由是全量更新)
1. 向量-距离路由选择算法
-
思想:要求路由器周期性地向外发送路由刷新报文通知相邻路由器:自己可以达到的网络,及到达该网络的距离(跳数)(直接相连的路由器之间)
-
路由刷新报文主要内容是由若干(V,D)组成的表
矢量V:标识该路由器可以到达的目的网络或目的主机
距离D:表示该路由器到达目的网络或目的主机的跳步数(跳数)
-
其他路由器在接收到某个路由器的(V,D)报文后,按照最短路径原则对各自的路由表进行刷新
-
路由信息协议RIP适用于相对较小的自治系统,直径一般小于16跳步数
2. 路由信息协议的工作过程
(1)路由表的建立
对其(V,D)路由表进行初始化
(2)路由表信息的更新
- 路由器周期性向外广播其(V,D)路由表的内容 (定期交换路由表)
如,一个自治系统中相邻的两个路由器1、2,1接收到2发送的(V,D)报文,1按以下规律更新路由表信息- 若1的路由表中没有此项记录,则增加该项,距离D加1
- 如1的路由表一项记录距离D值减1比2发送的一项记录还要大,1在路由表中修改此项,D值由2提供的值加1
5.4.4 开放最短路径优先协议OSPF(Open Shortest Path First)
1. OSPF协议的主要特点
与RIP比较,OSPF协议的主要特点
- OSPF使用链路状态协议;RIP使用向量-距离路由协议
- OSPF路由器发送的信息是本路由器与哪些路由器相邻,以及链路状态(费用、距离、时延、带宽等)信息;所有的路由器最终都能建立一个链路状态数据库,它存储着全网的拓扑结构信息
- RIP知道到所有网络的距离及下一跳路由器,但不知道全网的拓扑结构信息
- OSPF要求当链路状态发生变化时用洪泛法向所有路由器发送;RIP仅向相邻的路由器交换路由信息
- 将一个自治系统再划分为若干个更小的区域,一个区域内的路由器数不超过200个
================= 略 ====================
5.4.6 路由器与第三层交换技术
1. 路由器的主要功能
-
(1)建立并维护路由表
路由表中,保存路由器每个端口对应的目的网络地址,及默认路由器的地址。路由器通过定期与其他路由器交换路由信息来自动更新路由表
-
(2)提供网络间的分组转发功能
当分组进入路由器时,路由器检查IP分组的目的地址,然后根据路由表决定该分组的交付方式。若是直接交付,就将分组传送到目的网络。若是间接交付,确定转发端口号与下一跳路由器的IP地址
-
路由器能以线速转发:路由器分组处理速率等于输入端口的线路的传送速率
5.5 Internet控制报文协议ICMP
5.5.1 ICMP的作用与特点
1. 研究ICMP协议的背景
- IP协议提供的是尽力而为的服务,缺少差错控制和查询机制
- ICMP协议就是为解决以上问题,而设计的一种差错报告和查询、控制机制。
2. ICMP的特点
- ICMP本身是网络层的一个协议,但是它的报文要封装成IP分组,然后再传送给数据链路层(IPv4分组头的协议,P215)
- 从协议体系上看,ICMP只是要解决IP协议可能出现的不可靠问题,不能独立于IP协议,是IP协议的一个组成部分
- ICMP不能纠正差错,它只是报告差错。差错处理需要由高层协议去完成
3. ICMP报文结构
5.5.3 Ping 与Traceroute命令
-
基于ICMP的具体应用程序
-
Ping命令:用于测试目的主机是否可达
-
一台主机Ping另一台主机的过程
-
Tracert命令(“路由跟踪”命令): 可以获得从测试命令发出源主机到达目的主机完整的路径
-
Tracert命令的应用
5.6 IP多播与IGMP协议
-
IP多播协议(Inernet Group Management Protocol IGMP)
-
可以将分组发送到属于一个组的多台计算机
-
单播方式与多播方式的比较
- 单播:一封邮件发给一个朋友
- 多播:同一封邮件同时发给多个朋友
5.7 多协议标识交换MPLS协议
MPLS提供的四个主要的服务功能:
-
提供面向连接与保证QoS的服务
-
合理利用网络资源
-
支持虚拟专网VPN服务
MPLS提供虚拟专网(virtual private network,VPN)服务
-
支持多协议
5.8 地址解析协议ARP
5.8.1 IP地址与物理地址的映射
在描述一个网络的工作过程时,实际上是做了一个假设:已经知道通信的目的主机的IP地址,并且知道对应这个IP地址的目的主机物理地址
这个假设成立的条件是:在任何一台主机或路由器中必须有一张 “IP地址—MAC地址映射表”
- 通过“静态映射”的方法,从一个已知的IP地址获取与之对应的MAC地址。但是,这是非常理想的一种解决方案,在一个小型的互联网络系统中实现起来比较容易,这在大型网络中几乎是不可能实现的
- 在Internet中必须设计一种 “动态映射” 的方法,以解决IP地址与MAC地址映射的问题
5.8.2 地址解析工作过程
- 正向地址解析: 从已知的IP地址找出对应的MAC地址的映射过程。相应的协议称为“地址解析协议(ARP)”
- 反向地址解析: 从已知的MAC地址找出对应的IP地址的映射过程。相应的协议称为“反向地址解析协议(RARP)”
ARP执行过程
主机A打算给主机B发送一个IP分组,它知道主机B的IP地址,但不知道B的MAC地址,那么它首先要在本地ARP映射表中查找。若找到就不需要进行地址解析。若找不到,则需进行地址解析(这里的主机也可是路由器)
1. 地址解析工作过程:
- 由主机A产生“ARP请求分组”,目的MAC地址字段写入0
- 将“ARP请求分组”传递到下一层数据链路层组装成帧,帧目的地址是广播地址(ff-ff-ff-ff-ff-ff)
- 接收到“ARP请求分组”主机,若它的映射表中没有主机A的IP地址与MAC地址,则存入
- 主机B接受到“ARP请求分组”后,向主机A发送一个封装了“ARP应答分组”的帧,用单播方式发送。 “ARP应答分组”包含了主机B的IP地址和MAC地址
- 主机A收到“ARP应答分组”后 ,将主机B的IP地址和MAC地址存入映射表
2. 注意:
- 路由器每次转发时IP分组中的源IP地址与目的IP地址是不变的,改变的是帧的源MAC地址和目的MAC地址
- 转发过程协议由ARP自动完成。对用户是透明的
- ARP地址映射表为每个表项分配一个计时器,超过计时时限,自动将其删除,保证表的时效性
5.9 移动IP协议
- 是解决主机在不同网络之间移动的一种机制
- 设计目的:移动主机在改变接入点时,无论在不同的网络之间,或是在不同的物理传输介质间移动时,都不必改变其IP地址,可以在移动过程中保持已有通信的连续性
- 基本特征:
- 移动IP要与现有的Internet协议兼容
- 移动IP协议与底层所采用的物理传输介质类型无关
- 移动IP协议对传输层及以上的高层协议是透明的
- 移动IP协议应该具有良好的可扩展性、可靠性和安全性
5.9.3 移动IP的结构与基本术语
1.移动IP的结构
构成移动IP的4个实体:
- 移动节点: 从一个链路移动到另一个链路的主机或路由器
- 家乡代理: 移动节点的家乡网络连接到Internet的路由器
- 外地代理: 移动节点所访问的外地网络连接到Internet的路由器
- 通信对端: 移动节点在移动过程中与之通信的节点
2. 基本术语
- 家乡网络: 为移动节点分配长期有效的IP地址的网络
- 家乡地址: 家乡网络为移动节点分配的一个长期有效的IP地址
- 转交地址: 当移动节点接入一个外地网络时,被分配的一个临时IP地址
- 家乡链路: 移动节点在家乡网络时接入的本地链路
- 外地链路: 移动节点在访问外地网络时接入的链路
- 移动绑定: 家乡网络维护移动节点的家乡地址与转发地址的关联
- 隧道: 家乡代理通过隧道将发送给移动节点的IP分组转发到移动节点
5.9.4 移动IPv4基本工作原理
工作过程分4个阶段:
-
代理发现
-
移动代理周期性发送代理通告报文,或为相应的移动结点的代理请求而发送代理通告报文
-
移动结点在接受到代理通告报文后,判断它是否从一个网络切换到另一个网络,是在家乡网络还是在外地网络。在切换到外地网络时,可以选择使用外地代理提供的转交地址
-
-
注册
-
移动结点到达新的网络后,通过注册过程将自己的可达信息通知家乡代理
-
注册目的:
-
使移动结点获得外地代理的转发服务
-
使家乡代理知道移动结点当前的转发地址
-
家乡代理更新即将过期的移动结点的注册,或注销回到家乡的移动结点
-
-
-
注册过程
-
通过外地代理转发注册请求
-
移动主机直接到家乡代理注册
-
-
分组路由
- 单播分组路由
- 广播分组路由
- 多播分组路由
-
注销
如果移动结点已经回到家乡网络,则它需要到家乡代理进行注销
5.10 IPv6协议
5.10.3 IPv6地址
1. 表示方法
- IPv6用冒号十六进制表示法
- 用二进制格式表示的一个IPv6地址
- 将这个128位的地址按每16位划分为8个位段(一个位段16位)
- 将每个位段转换成十六进制数,并用冒号隔开:21DA:0000:0000:0000:02AA:000F:FE08:9C5A
2. 零压缩法
-
IPv6地址某个位段中前几位为连续的0,则可将这几个0省去
若一个位段中全为0则可压缩为一个0
-
如果连续几个位段都为0,则可将这些0简写为双冒号::
-
不能将一个位段中的有效0压缩掉。如:0030不能压缩为3,而应是30
-
双冒号在一个地址中只能出现一次
3. IPv6前缀
-
在IPv4中,子网掩码用来表示网络和子网地址长度。用前缀长度来区分子网号和主机号
-
IPv6不支持子网掩码,只支持前缀长度表示法
-
前缀是IPv6的一部分,用做IPv6路由或子网标识
-
用 “地址/前缀长度” 表示
如:21DA:D3::/48 -
少于64位的前缀是一个路由前缀,或是一个地址范围
64位前缀是一个子网前缀
-
5.9.5 IPv4到IPv6的过渡的基本方法
1. 双IP层和双协议栈结构
-
双IP:在完全过渡到IPv6之前,使部分节点和路由器装有两个协议:IPv6和IPv4
-
这个节点既能与IPv6节点通信,又能与IPv4节点通信
-
具有双IP层的节点或路由器应具有两个IP地址
-
双协议层和双协议栈结构
2. 隧道技术
(1)隧道技术
-
IPv6分组进入IPv4网络时,将IPv6分组封装成为IPv4分组,整个IPv6分组变成IPv4分组的数据部分
-
当IPv4分组离开IPv4网络时,再将其数据部分交给主机的IPv6协议,就如同在IPv4网络中打通一个隧道来传输IPv6分组
-
通过IPv4隧道传输IPv6分组的机制
(2)隧道分配的三种情况
-
路由器-路由器
-
主机-路由器或路由器-主机
-
主机-主机
(3)隧道分配的两种类型
- 手动配置的隧道
- 自动配置的隧道
(4)隧道结构
-
路由器-路由器隧道
-
主机-路由器隧道
-
主机-主机隧道
(6)隧道技术及协议
-
6over4
- 又称IPv4多播隧道
- 是一个结点-结点、结点-路由器或路由器-主机的隧道技术
-
6to4
是一种地址分配和路由器-路由器的自动隧道技术
-
ISATAP
是一种地址分配和结点-结点、结点-路由器和路由器-结点的自动隧道协议
小结
- IPv4协议特点、分组格式
- IPv4地址技术研究的4个阶段:标准分类、划分子网的三级地址结构、无类别域间路由CIDR、网络地址转换NAT
- 路由算法分:静态、动态路由选择算法
- 路由协议分:内部(RIP和OSPF)、外部网关协议(BGP)
- 路由器功能(路由选择和分组转发)、工作原理
- ICMP: IP控制报文协议,用于差错控制、查询机制
- IGMP协议: IP多播协议,用于提高网络工作效率,节省网络资源
- MPLS: 多标记交换,属于服务质量技术。MPLS提供VPN服务,提高分组传输的安全性与服务质量
- 地址解析ARP: ip地址与MAC地址对应关系
- 移动IP: 解决主机在不同网络之间移动的问题。保证移动节点在改变接入点时不改变IP地址,也能保持已有的通信连续性
- IPv6协议: 新一代IP地址协议和标准
思维导图(2020.01.08终于补上了)