
一 网络层提供的两种服务
在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向链接”仍是“无链接”)曾引发了长期的争论。
争论焦点的实质就是:在计算机通讯中,可靠交付应当由谁来负责?是网络仍是端系统?算法
(一) 观点一:让网络负责可靠交付
这种观点认为,应借助于电信网的成功经验,让网络负责可靠交付,计算机网络应模仿电信网络,使用面向链接的通讯方式数据库
- 通讯以前先创建虚电路 (Virtual Circuit),以保证双方通讯所需的一切网络资源
- 若是再使用可靠传输的网络协议,就可以使所发送的分组无差错按序到达终点,不丢失、不重复

补充:缓存
- 虚电路表示这只是一条逻辑上的链接,分组都沿着这条逻辑链接按照存储转发方式传送,而并非真正创建了一条物理链接
- 请注意,电路交换的电话通讯是先创建了一条真正的链接
- 所以分组交换的虚链接和电路交换的链接只是相似,但并不彻底同样
(二) 观点二:网络提供数据报服务
互联网的先驱者提出了一种崭新的网络设计思路安全
- 网络层向上只提供简单灵活的、无链接的、尽最大努力交付的数据报服务
- 网络在发送分组时不须要先创建链接
- 每个分组(即 IP 数据报)独立发送,与其先后的分组无关(不进行编号)
- 网络层不提供服务质量的承诺
- 即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),固然也不保证分组传送的时限
补充:网络
采用这种设计思路的好处是:网络的造价大大下降,运行方式灵活,可以适应多种应用分布式

二 网际协议 IP
(一) 几大协议
网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一性能
与 IP 协议配套使用的还有三个协议:测试
- 地址解析协议 ARP (Address Resolution Protocol)
- 网际控制报文协议 ICMP (Internet Control Message Protocol)
- 网际组管理协议 IGMP (Internet Group Management Protocol)

(二) 各层链接须要的中转设备
- 物理层中继系统:转发器 (repeater)
- 数据链路层中继系统:网桥 或 桥接器 (bridge)
- 网络层中继系统:路由器 (router)
- 网桥和路由器的混合物:桥路器 (brouter)
- 网络层以上的中继系统:网关 (gateway)
(三) 分类的 IP 地址
在这一部分,IP 这个概念是十分重要的,下面咱们重点来说一下其定义和类型
(1) 定义和分类
定义:IP 地址就是给每一个链接在互联网上的主机(或路由器)分配一个在全世界范围是惟一的 32 位的标识符
分类:
-
将IP地址划分为若干个固定类
-
每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所链接到的网络,而另外一个字段则是主机号 host-id,它标志该主机(或路由器)
-
主机号在它前面的网络号所指明的网络范围内必须是惟一的
-
因而可知,一个 IP 地址在整个互联网范围内是惟一的

(2) 各种 IP 地址的网络号字段和主机号字段

(3) 点分十进制记法

(4) IP 地址的指派范围

(5) IP 地址的一些重要特色
(1) IP 地址是一种分等级的地址结构。分两个等级的好处是:
- 第一,IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由获得该网络号的单位自行分配。这样就方便了 IP 地址的管理
- 第二,路由器仅根据目的主机所链接的网络号来转发分组(而不考虑目的主机号),这样就可使路由表中的项目数大幅度减小,从而减少了路由表所占的存储空间
(2) 实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口
- 当一个主机同时链接到两个网络上时,该主机就必须同时具备两个相应的 IP 地址,其网络号 net-id 必须是不一样的。这种主机称为多归属主机 (multihomed host)
- 因为一个路由器至少应当链接到两个网络(这样它才能将 IP 数据报从一个网络转发到另外一个网络),所以一个路由器至少应当有两个不一样的 IP 地址。
(3) 用转发器或网桥链接起来的若干个局域网仍为一个网络,所以这些局域网都具备一样的网络号 net-id
(4) 全部分配到网络号 net-id 的网络,不管是范围很小的局域网,仍是可能覆盖很大地理范围的广域网,都是平等的
(四) IP 地址与硬件地址

(五) 地址解析协议 ARP
(1) 什么是 ARP
通讯时使用了两个地址:
- IP 地址(网络层地址)
- MAC 地址(数据链路层地址)
已经知道了一个机器(主机或路由器)的IP地址,如何找出其相应的硬件地址?
地址解析协议 ARP 就是用来解决这样的问题的:从网络层使用的IP地址,解析出在数据链路层使用的硬件地址
(2) 解析的过程
无论网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终仍是必须使用硬件地址
每个主机都设有一个 ARP 高速缓存 (ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表
解析的过程:
补充:
- ARP请求分组:包含发送方硬件地址 / 发送方 IP 地址 / 目标方硬件地址(未知时填 0) / 目标方 IP 地址
- 本地广播 ARP 请求(路由器不转发ARP请求)
- ARP 响应分组:包含发送方硬件地址 / 发送方 IP地址 / 目标方硬件地址 / 目标方 IP 地址
- ARP 分组封装在物理网络的帧中传输
(3) ARP 高速缓存的做用
存放最近得到的 IP 地址到 MAC 地址的绑定,以减小 ARP 广播的数量
- 为了减小网络上的通讯量,主机 A 在发送其 ARP 请求分组时,就将本身的 IP 地址到硬件地址的映射写入 ARP 请求分组
- 当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的这一地址映射写入主机 B 本身的 ARP 高速缓存中。这对主机 B 之后向 A 发送数据报时就更方便了
(4) 应该注意的问题
-
ARP 用于解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题
-
若是所要找的主机和源主机不在同一个局域网上,那么就要经过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,而后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工做就由下一个网络来作
-
从 IP 地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的
-
只要主机或路由器要和本网络上的另外一个已知 IP 地址的主机或路由器进行通讯,ARP 协议就会自动地将该 IP 地址解析为链路层所须要的硬件地址
(5) 使用 ARP 的四种典型状况
- 发送方是主机,要把 IP 数据报发送到本网络上的另外一个主机。这时用 ARP 找到目的主机的硬件地址
- 发送方是主机,要把 IP 数据报发送到另外一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工做由这个路由器来完成
- 发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址
- 发送方是路由器,要把 IP 数据报转发到另外一个网络上的一个主机。这时用 ARP 找到本网络上另外一个路由器的硬件地址。剩下的工做由这个路由器来完成
(6) 不直接使用硬件地址进行通讯
-
因为全世界存在着各式各样的网络,它们使用不一样的硬件地址。要使这些异构网络可以互相通讯就必须进行很是复杂的硬件地址转换工做,所以几乎是不可能的事
-
IP 编址把这个复杂问题解决了。链接到互联网的主机只需各自拥有一个惟一的 IP 地址,它们之间的通讯就像链接在同一个网络上那样简单方便,由于上述的调用 ARP 的复杂过程都是由计算机软件自动进行的,对用户来讲是看不见这种调用过程的
-
所以,在虚拟的 IP 网络上用 IP 地址进行通讯给广大的计算机用户带来了很大的方便
(六) IP 数据报的格式
一个 IP 数据报由首部和数据两部分组成
首部的前一部分是固定长度,共 20 字节,是全部 IP 数据报必须具备的
在首部的固定部分的后面是一些可选字段,其长度是可变的

下面解释一下这张图
(1) 固定部分
- 首部的前一部分是固定长度,共 20 字节,是全部 IP 数据报必须具备的
- 版本——占 4 位,指 IP 协议的版本。目前的 IP 协议版本号为 4 (即 IPv4)
- 首部长度——占 4 位,可表示的最大数值是 15 个单位(一个单位为 4 字节),所以 IP 的首部长度的最大值是 60 字节
- 总长度——占 16 位,指首部和数据之和的长度,单位为字节,所以数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU。
- 标志(flag) ——占 3 位,目前只有前两位有意义。标志字段的最低位是 MF (More Fragment)。MF = 1 表示后面“还有分片”。MF = 0 表示最后一个分片。标志字段中间的一位是 DF (Don't Fragment) 。只有当 DF = 0 时才容许分片。
- 片偏移—— 占13 位,指出:较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位。
- 生存时间——占8 位,记为 TTL (Time To Live),指示数据报在网络中可经过的路由器数的最大值。
- 协议——占8 位,指出此数据报携带的数据使用何种协议,以便目的主机的 IP 层将数据部分上交给那个处理过程
- 首部检验和——占16 位,只检验数据报的首部,不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法。
- 源地址和目的地址都各占 4 字节
(2) 可变部分
IP 首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富
选项字段的长度可变,从 1 个字节到 40 个字节不等,取决于所选择的项目增长首部的可变部分是为了增长
IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的。这就增长了每个路由器处理数据报的开销
实际上这些选项不多被使用
(七) IP 层转发分组的流程
(1) 基本
- IP 数据报的首部中没有地方能够用来指明“下一跳路由器的 IP 地址
- 当路由器收到待转发的数据报,不是将下一跳路由器的 IP 地址填入 IP 数据报,而是送交下层的网络接口软件
- 网络接口软件使用 ARP 负责将下一跳路由器的 IP 地址转换成硬件地址,并将此硬件地址放在链路层的 MAC 帧的首部,而后根据这个硬件地址找到下一跳路由器
在路由表中,对每一条路由,最主要的是(目的网络地址,下一跳地址)
- IP 数据报最终必定能够找到目的主机所在目的网络上的路由器(可能要经过屡次的间接交付)
- 只有到达最后一个路由器时,才试图向目的主机进行直接交付
虽然互联网全部的分组转发都是基于目的主机所在的网络,但在大多数状况下都容许有这样的特例,即为特定的目的主机指明一个路由
采用特定主机路由可以使网络管理人员能更方便地控制网络和测试网络,同时也可在须要考虑某种安全问题时采用这种特定主机路由
(2) 默认路由
-
路由器还可采用默认路由以减小路由表所占用的空间和搜索路由表所用的时间
-
这种转发方式在一个网络只有不多的对外链接时是颇有用的
-
默认路由在主机发送 IP 数据报时每每更能显示出它的好处
-
若是一个主机链接在一个小网络上,而这个网络只用一个路由器和互联网链接,那么在这种状况下使用默认路由是很是合适的

说明:只要目的网络不是 N1 和 N2,就一概选择默认路由,把数据报先间接交付路由器 R1,让 R1 再转发给下一个路由器
(3) 路由器分组转发算法
(1) 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N
(2) 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;不然是间接交付,执行(3)
(3) 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;不然,执行(4)
(4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;不然,执行(5)
(5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;不然,执行(6)
(6) 报告转发分组出错
三 划分子网和构造网
(一) 划分子网
在 IP 地址中又增长了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址
划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络(是对内的,外界并不知道)
从主机号借用若干个位做为子网号 subnet-id,而主机号 host-id 也就相应减小了若干个位
- 当没有划分子网时,IP 地址是两级结构
- 划分子网后 IP 地址就变成了三级结构
- 划分子网只是把 IP 地址的主机号 host-id 这部分进行再划分,而不改变 IP 地址原来的网络号 net-id

IP地址 ::= {<网络号>, <子网号>, <主机号>}
- 凡是从其余网络发送给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号 net-id,先找到链接在本单位网络上的路由器
- 而后此路由器在收到 IP 数据报后,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网
- 最后就将 IP 数据报直接交付目的主机。
一个未划分子网的 B 类网络145.13.0.0

划分为三个子网后对外还是一个网络

优势
- 减小了 IP 地址的浪费
- 使网络的组织更加灵活
- 更便于维护和管理
缺点
(二) 子网掩码
从一个 IP 数据报的首部并没有法判断源主机或目的主机所链接的网络是否进行了子网划分,使用子网掩码 (subnet mask) 能够找出 IP 地址中的子网部分
- 因此要分辨该IP是否进行了子网划分,就能够经过子网掩码来进行分辨
规则:
- 子网掩码长度 = 32 位
- 子网掩码左边部分的一连串 1,对应于网络号和子网号
- 子网掩码右边部分的一连串 0,对应于主机号
(IP 地址) AND (子网掩码) =网络地址

默认子网掩码

(三) 使用子网时分组的转发
在不划分子网的两级 IP 地址下,从 IP 地址得出网络地址是个很简单的事
但在划分子网的状况下,从 IP 地址却不能惟一地得出网络地址来,这是由于网络地址取决于那个网络所采用的子网掩码,但数据报的首部并无提供子网掩码的信息
所以分组转发的算法也必须作相应的改动
(1) 从收到的分组的首部提取目的 IP 地址 D
(2) 先用各网络的子网掩码和 D 逐位相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付。不然就是间接交付,执行 (3)
(3) 若路由表中有目的地址为 D 的特定主机路由,则将分组传送给指明的下一跳路由器;不然,执行
(4) 对路由表中的每一行,将子网掩码和 D 逐位相“与”。若结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;不然,执行 (5)
(5) 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;不然,执行 (6)
(6) 报告转发分组出错
(四) 无分类编址 CIDR
(1) 基本
划分子网在必定程度上缓解了互联网在发展中遇到的困难。然而在 1992 年互联网仍然面临三个必须尽早解决的问题:
- B 类地址在 1992 年已分配了近一半,眼看就要在 1994 年 3 月所有分配完毕
- 互联网主干网上的路由表中的项目数急剧增加(从几千个增加到几万个)
- 整个 IPv4 的地址空间最终将所有耗尽
CIDR干了什么:
- CIDR消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,于是能够更加有效地分配 IPv4 的地址空间。
- CIDR使用各类长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。
- IP 地址从三级编址(使用子网掩码)又回到了两级编址。

IP地址 ::= {<网络前缀>, <主机号>}
CIDR 使用“斜线记法”(slash notation),它又称为 CIDR 记法,即在 IP 地址面加上一个斜线“/”,而后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中 1 的个数)。例如: 220.78.168.0/24
CIDR 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块”。
128.14.32.0/20 表示的地址块共有 212 个地址(由于斜线后面的 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 的主机号地址通常不使用
(2) 路由聚合
- 一个 CIDR 地址块能够表示不少地址,这种地址的聚合常称为路由聚合,它使得路由表中的一个项目能够表示不少个(例如上千个)原来传统分类地址的路由
- 路由聚合有利于减小路由器之间的路由选择信息的交换,从而提升了整个互联网的性能
- 路由聚合也称为构成超网 (supernetting)
- CIDR 虽然不使用子网了,但仍然使用“掩码”这一名词(但不叫子网掩码)
- 对于 /20 地址块,它的掩码是 20 个连续的 1。 斜线记法中的数字就是掩码中1的个数。
(3) 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 地址中的主机号,能够是任意值。

(4) 最长前缀匹配
- 使用 CIDR 时,路由表中的每一个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会获得不止一个匹配结果
- 应当从匹配结果中选择具备最长网络前缀的路由:最长前缀匹配 (longest-prefix matching)
- 网络前缀越长,其地址块就越小,于是路由就越具体 (more specific)
- 最长前缀匹配又称为最长匹配或最佳匹配



(4) 使用二叉线索查找路由表
- 当路由表的项目数很大时,怎样设法减少路由表的查找时间就成为一个很是重要的问题
- 为了进行更加有效的查找,一般是将无分类编址的路由表存放在一种层次的数据结构中,而后自上而下地按层次进行查找。这里最经常使用的就是二叉线索 (binary trie)
- IP 地址中从左到右的比特值决定了从根结点逐层向下层延伸的路径,而二叉线索中的各个路径就表明路由表中存放的各个地址
- 为了提升二叉线索的查找速度,普遍使用了各类压缩技术

四 网际控制报文协议 ICMP
(一) ICMP 报文的种类
- 为了更有效地转发 IP 数据报和提升交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)
- ICMP 是互联网的标准协议
- ICMP 容许主机或路由器报告差错状况和提供有关异常状况的报告但 ICMP 不是高层协议(看起来好像是高层
- 协议,由于 ICMP 报文是装在 IP 数据报中,做为其中的数据部分),而是 IP 层的协议
(1) 格式

ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文
ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关
ICMP 差错报告报文共有 4 种
- 终点不可达
- 时间超过
- 参数问题
- 改变路由(重定向)(Redirect)
ICMP 询问报文有两种
- 回送请求和回答报文
- 时间戳请求和回答报文
- 下面的几种 ICMP 报文再也不使用:
- 信息请求与回答报文
- 掩码地址请求和回答报文
- 路由器询问和通告报文
- 源点抑制报文
(二) ICMP 的应用举例
PING (Packet InterNet Groper)
- PING 用来测试两个主机之间的连通性
- PING 使用了 ICMP 回送请求与回送回答报文
- PING 是应用层直接使用网络层 ICMP 的例子,它没有经过运输层的 TCP 或UDP
Traceroute 的应用举例
- 在 Windows 操做系统中这个命令是 tracert
- 用来跟踪一个分组从源点到终点的路径
- 它利用 IP 数据报中的 TTL 字段和 ICMP 时间超过差错报告报文实现对从源点到终点的路径的跟踪
五 互连网的路由选择协议
(一) 内部网关协议 RIP
路由信息协议 RIP (Routing Information Protocol) 是内部网关协议 IGP 中最早获得普遍使用的协议
RIP 协议要求网络中的每个路由器都要维护从它本身到其余每个目的网络的距离记录
RIP 是一种分布式的、基于距离向量的路由选择协议。
RIP 协议中的“距离”也称为“跳数”(hop count),由于每通过一个路由器,跳数就加 1
RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具备最少路由器的路由(即最短路由),哪怕还存在另外一条高速(低时延)但路由器较多的路由
(1) RIP 协议的三个特色
- 仅和相邻路由器交换信息**
- 交换的信息是当前本路由器所知道的所有信息,即本身的路由表
- 按固定的时间间隔交换路由信息,例如,每隔 30 秒。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息
(2) 工做原理(路由表的创建)
路由器在刚刚开始工做时,只知道到直接链接的网络的距离(此距离定义为1)。它的路由表是空的
之后,每个路由器也只和数目很是有限的相邻路由器交换并更新路由信息
通过若干次更新后,全部的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址
- RIP 协议让互联网中的所有路由器都和本身的相邻路由器不断交换路由信息,并不断更新其路由表,使得从每个路由器到每个目的网络的路由都是最短的(即跳数最少)
- 虽然全部的路由器最终都拥有了整个自治系统的全局路由信息,但因为每个路由器的位置不一样,它们的路由表固然也应当是不一样的
(3) 距离向量算法
路由器收到相邻路由器(其地址为 X)的一个 RIP 报文:
(1) 先修改此 RIP 报文中的全部项目:把“下一跳”字段中的地址都改成 X,并把全部的“距离”字段的值加 1。
(2) 对修改后的 RIP 报文中的每个项目,重复如下步骤:
若项目中的目的网络不在路由表中,则把该项目加到路由表中。
不然
若下一跳字段给出的路由器地址是一样的,则把收到的项目替换原路由表中的项目。
不然
若收到项目中的距离小于路由表中的距离,则进行更新,
不然,什么也不作。
(3) 若 3 分钟尚未收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为 16(表示不可达)。
(4) 返回。
(3) RIP 协议的优缺点
优势:
缺点:
- RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)
- 路由器之间交换的路由信息是路由器中的完整路由表,于是随着网络规模的扩大,开销也就增长。
- “坏消息传播得慢”,使更新过程的收敛时间过长
(二) 内部网关协议 OSPF
开放最短路径优先 OSPF (Open Shortest Path First)是为克服 RIP 的缺点在 1989 年开发出来的
OSPF 的原理很简单,但实现起来却较复杂
- “开放”代表 OSPF 协议不是受某一家厂商控制,而是公开发表的。
- “最短路径优先”是由于使用了 Dijkstra 提出的最短路径算法 SPF
- 采用分布式的链路状态协议 (link state protocol)。
- 注意:OSPF 只是一个协议的名字,它并不表示其余的路由选择协议不是“最短路径优先”。
(1) 三个要点
- 向本自治系统中全部路由器发送信息,这里使用的方法是洪泛法
- 发送的信息就是与本路由器相邻的全部路由器的链路状态,但这只是路由器所知道的部分信息
- “链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。 只有当链路状态发生变
- 化时,路由器才用洪泛法向全部路由器发送此信息。
(2) 链路状态数据库
- 因为各路由器之间频繁地交换链路状态信息,所以全部的路由器最终都能创建一个链路状态数据库
- 这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)
- OSPF 的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表
- OSPF 的更新过程收敛得快是其重要优势
(3) OSPF 的区域
- 为了使 OSPF 可以用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域
- 每个区域都有一个 32 位的区域标识符(用点分十进制表示)
- 区域也不能太大,在一个区域内的路由器最好不超过 200 个
(4) OSPF 直接用 IP 数据报传送
- OSPF 不用 UDP 而是直接用 IP 数据报传送
- OSPF 构成的数据报很短。这样作可减小路由信息的通讯量
- 数据报很短的另外一好处是能够没必要将长的数据报分片传送
- 但分片传送的数据报只要丢失一个,就没法组装成原来的数据报,而整个数据报就必须重传
(5) OSPF 的五种分组类型
- 类型1,问候 (Hello) 分组
- 类型2,数据库描述 (Database Description) 分组
- 类型3,链路状态请求 (Link State Request) 分组
- 类型4,链路状态更新 (Link State Update) 分组,用洪泛法对全网更新链路状态类型5,链路状态确认 (Link
- State Acknowledgment)分组
(三) 外部网关协议 BGP
-
BGP 是不一样自治系统的路由器之间交换路由信息的协议
-
BGP 较新版本是 2006 年 1 月发表的 BGP-4(BGP 第 4 个版本),即 RFC 4271 ~ 4278
-
能够将 BGP-4 简写为 BGP
-
互联网的规模太大,使得自治系统之间路由选择很是困难。对于自治系统之间的路由选择,要寻找最佳路由是很不现实的
- 当一条路径经过几个不一样 AS 时,要想对这样的路径计算出有意义的代价是不太可能的
- 比较合理的作法是在 AS 之间交换“可达性”信息
-
自治系统之间的路由选择必须考虑有关策略所以,边界网关协议 BGP 只能是力求寻找一条可以到达目的网络且比较好的路由(不能兜圈子),而并不是要寻找一条最佳路由。
(1) BGP 发言人
(2) BGP 交换路由信息
-
一个 BGP 发言人与其余自治系统中的 BGP 发言人要交换路由信息,就要先创建 TCP 链接,而后在此链接上交换 BGP 报文以创建 BGP 会话(session),利用 BGP 会话交换路由信息
-
使用 TCP 链接能提供可靠的服务,也简化了路由选择协议
-
使用 TCP 链接交换路由信息的两个 BGP 发言人,彼此成为对方的邻站(neighbor)或对等站(peer)
(3) BGP-4 共使用四种报文
- 打开 (OPEN) 报文,用来与相邻的另外一个BGP发言人创建关系
- 更新 (UPDATE) 报文,用来发送某一路由的信息,以及列出要撤消的多条路由\
- 保活 (KEEPALIVE) 报文,用来确认打开报文和周期性地证明邻站关系
- 通知 (NOTIFICATION) 报文,用来发送检测到的差错
六 IPv6
(一) 概念和组成
我国在2014-2015年也逐步中止了向新用户和应用分配 IPv4 地址
解决 IP 地址耗尽的根本措施就是采用具备更大地址空间的新版本的 IP,即 IPv6
所引进的主要变化以下:
- 更大的地址空间。IPv6 将地址从 IPv4 的 32 位 增大到了 128 位。
- 扩展的地址层次结构。
- 灵活的首部格式。 IPv6 定义了许多可选的扩展首部。
- 改进的选项。 IPv6 容许数据报包含有选项的控制信息,其选项放在有效载荷中。
- 容许协议继续扩充。
- 支持即插即用(即自动配置)。所以 IPv6 不须要使用 DHCP。
- 支持资源的预分配。 IPv6 支持实时视像等要求,保证必定的带宽和时延的应用。
- IPv6 首部改成 8 字节对齐。首部长度必须是 8 字节的整数倍。原来的 IPv4 首部是 4 字节对齐。
IPv6 数据报由两大部分组成:
- 基本首部 (base header)
- 有效载荷 (payload)。有效载荷也称为净负荷。有效载荷容许有零个或多个扩展首部 (extension header),再后面是数据部分

(二) IPv4 转 IPv6
向 IPv6 过渡只能采用逐步演进的办法,同时,还必须使新安装的 IPv6 系统可以向后兼容:IPv6 系统必须可以接收和转发 IPv4 分组,而且可以为 IPv4 分组选择路由。
两种向 IPv6 过渡的策略:
(1) 双协议栈
双协议栈 (dual stack) 是指在彻底过渡到 IPv6 以前,使一部分主机(或路由器)装有两个协议栈,一个 IPv4 和一个 IPv6。
双协议栈的主机(或路由器)记为 IPv6/IPv4,代表它同时具备两种 IP 地址:一个 IPv6 地址和一个 IPv4 地址
双协议栈主机在和 IPv6 主机通讯时是采用 IPv6 地址,而和 IPv4 主机通讯时就采用 IPv4 地址
根据 DNS 返回的地址类型能够肯定使用 IPv4 地址仍是 IPv6 地址

(2) 隧道技术
在 IPv6 数据报要进入 IPv4 网络时,把 IPv6 数据报封装成为 IPv4 数据报,整个的 IPv6 数据报变成了 IPv4 数据报的数据部分
当 IPv4 数据报离开 IPv4 网络中的隧道时,再把数据部分(即原来的 IPv6 数据报)交给主机的 IPv6 协议栈
