1. 网络层的几个重要概念

1.1 网络层提供的两种服务

(1) 让网络负责可靠交付

计算机网络模仿电信网络,使用面向连接的通信方式。

  • 通信之前先建立虚电路 VC (Virtual Circuit) (即连接),以保证双方通信所需的一切网络资源。

  • 如果再使用可靠传输的网络协议,可使所发送的分组无差错按序到达终点,不丢失、不重复。

虚电路:

虚电路只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,并不是真正建立了一条物理连接。

(2) 网络提供数据报服务

网络层要设计得尽量简单,向其上层只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。

  • 网络在发送分组时不需要先建立连接。

  • 每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。

  • 网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),也不保证分组传送的时限。

由主机中的运输层负责可靠的通信。

数据报服务:

虚电路与数据报服务的比较:

对比的方面虚电路服务数据报服务
思路可靠通信应当由网络来保证可靠通信应当由用户主机来保证
连接的建立必须有不需要
终点地址仅在连接建立阶段使用,每个分组使用短的虚电路号每个分组都有终点的完整地址
分组的转发属于同一条虚电路的分组均按照同一路由进行转发每个分组独立选择路由进行转发
当结点出故障时所有通过出故障的结点的虚电路均不能工作出故障的结点可能会丢失分组,一些路由可能会发生变化
分组的顺序总是按发送顺序到达终点到达终点时不一定按发送顺序
端到端的差错处理和流量控制可以由网络负责,也可以由用户主机负责由用户主机负责

1.2 网络层的两个层面

不同网络中的两个主机之间的通信,要经过若干个路由器转发分组来完成。

在路由器之间传送的信息有以下 2 大类:

  • 数据。

  • 路由信息(为数据传送服务)。

(1) 数据层面和控制层面

数据层面:

  • 路由器根据本路由器生成的转发表,把收到的分组从查找到的对应接口转发出去。

  • 独立工作。

  • 采用硬件进行转发,速度快。

控制层面:

  • 根据路由选择协议所用的路由算法计算路由,创建出本路由器的路由表。

  • 许多路由器协同动作。

  • 采用软件计算,速度慢。

(2) 软件定义网络

软件定义网络 (SDN,Software Defined Network)

2. 网际协议 IP

与网际协议 IPv4 配套的 3 个协议:

  • 地址解析协议 ARP (Address Resolution Protocol)

  • 网际控制报文协议 ICMP (Internet Control Message Protocol)

  • 网际组管理协议 IGMP (Internet Group Management Protocol)

2.1 虚拟互连网络

实现网络互连、互通时需要解决许多问题,如以下“不同”的问题:

  • 寻址方案、最大分组长度、网络接入机制、超时控制、差错恢复方法、状态报告方法、路由选择技术、用户接入控制、服务、管理与控制方式……

(1) 实现异构网络的互连互通方法

都使用相同的网络:

  • 不能满足不同用户需要。没有一种单一的网络能够适应所有用户的需求

  • 不适应技术发展

使用中间设备:

  • 可以满足不同需求

  • 实用

(2) 使用中间设备进行互连

在物理层使用转发器(repeater)进行“互连”。

在数据链路层使用网桥或桥接器 (bridge),交换机 (switch)进行互连。

使用转发器或网桥不称为网络互连。因为转发器、网桥或交换机仅把一个网络扩大了,仍然是一个网络。

在网络层使用路由器 (router)进行互连。

在传输层及以上使用网关 (gateway)进行互连。

(3) IP网

  • 当互联网上的主机进行通信时,就好像在一个网络上通信一样,看不见互连的各具体的网络异构细节。

  • 如果在这种覆盖全球的 IP 网的上层使用 TCP 协议,那么就是现在的互联网 (Internet)。

(4) 分组在互联网中的传送

互联网可以由多种异构网络互连组成。

(5) 分组传输路径

2.2 IP 地址

(1) IP 地址及其表示方法

互联网上的每台主机(或路由器)的每个接口分配一个在全世界唯一的 IP 地址。

IP 由互联网名字和数字分配机构 ICANN (Internet Corporation for Assigned Names and Numbers) 进行分配。

点分十进制记法举例:

(2) IP 地址采用 2 级结构

(3) 分类的 IP 地址

  • A 类地址的网络号字段 net-id 为 1 字节。

    A 类地址的主机号字段 host-id 为 3 字节

  • B 类地址的网络号字段 net-id 为 2 字节。

    B 类地址的主机号字段 host-id 为 2 字节

  • C 类地址的网络号字段 net-id 为 3 字节。

    C 类地址的主机号字段 host-id 为 1 字节。

  • D 类地址是多播地址。

  • E 类地址保留为今后使用。

(4) 各类 IP 地址的指派范围
网络类别最大可指派的网络数第一个可指派的网络号最后一个可指派的网络号每个网络中最大主机数
A126 (27 – 2)112616777214(224 - 2)
B16383 (214 – 1)128.1191.25565534(216 - 2)
C2097151 (221 – 1)192.0.1223.255.255254(28 - 2)
  • A 类网络地址中, 网络号 0 和 127 是保留地址,不指派。0 表示“本网络”,127 保留作为本地环回测试地址。

  • B 类网络地址中,网络号 128.0 是被 IANA 保留的,不指派。采用无分类编址(CIDR)时可以指派。

  • C 类网络地址中,网络号 192.0.0 是被 IANA 保留的,不指派。采用无分类编址(CIDR)时可以指派。

  • 指派主机号时,要扣除全 0 和全 1 。全 0 和全 1 有特殊含义和用途。

(5) 一般不使用的特殊的 IP 地址
网络号主机号源地址 使用目的地址 使用代表的意思
00可以不可在本网络上的本主机
0X可以不可在本网络上主机号为 X 的主机
全 1全 1不可可以只在本网络上进行广播(各路由器均不转发)
Y全 1不可可以对网络号为 Y 的网络上的所有主机进行广播
127非全 0 或全 1 的任何数可以可以用于本地软件环回测试

(6) 分类的 IP 地址的优点和缺点

优点:

  • 管理简单;

  • 使用方便;

  • 转发分组迅速;

  • 划分子网,灵活地使用。

缺点:

  • 设计上不合理:

  • 大地址块,浪费地址资源;

即使采用划分子网的方法,也无法解决 IP 地址枯竭的问题。

(7) 无分类编址 CIDR

CIDR (Classless Inter-Domain Routing) :无分类域间路由选择。

  • 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,可以更加有效地分配 IPv4 的地址空间,但无法解决 IP 地址枯竭的问题。

  • 要点:

    1. 网络前缀;

    2. 地址块;

    3. 地址掩码。

网络前缀:

CIDR 记法:斜线记法 (slash notation)

  • a.b.c.d / n:二进制 IP 地址的前 n 位是网络前缀。

例如:128.14.35.7/20:前 20 位是网络前缀。

网络前缀的位数 n 是多少?最大的区别:

前缀的位数 n 不固定,可以在 0 ~ 32 之间选取任意值。

地址块:

  • CIDR 把网络前缀都相同的所有连续的 IP 地址组成一个 CIDR 地址块。

  • 一个 CIDR 地址块包含的 IP 地址数目,取决于网络前缀的位数。

  • 地址块的注意事项:

128.14.35.7/20是 IP 地址,同时指明了网络前缀为 20 位。 该地址是 128.14.32.0/20 地址块中的一个地址。
128.14.32.0/20是包含有多个 IP 地址的地址块,同时也是这个地址块中主机号为全 0 的 IP 地址。
128.14.35.7是 IP 地址,但未指明网络前缀长度,不知道其网络地址。
128.14.32.0不能指明一个网络地址,因为无法知道网络前缀是多少。

地址掩码 (address mask):

  • 又称为子网掩码 (subnet mask)。

  • 位数:32 位。

  • 目的:让机器从 IP 地址迅速算出网络地址。

  • 由一连串 1 和接着的一连串 0 组成,而 1 的个数就是网络前缀的长度。

  • 默认地址掩码:

(8) 网络地址

网络地址 = (二进制的 IP 地址) AND (地址掩码)

例:已知 IP 地址是 128.14.35.7/20。求网络地址。

  • 点分十进制 IP 地址:

  • 二进制 IP 地址:

  • 地址掩码是 255.255.224.0:

  • IP 地址与地址掩码按位 AND:

  • 网络地址(点分十进制):

(9) 常用的 CIDR 地址块
网络前缀长度点分十进制包含的地址数相当于包含分类的网络数
/13255.248.0.0512 K8 个 B 类或 2048 个 C 类
/14255.252.0.0256 K4 个 B 类或 1024 个 C 类
/15255.254.0.0128 K2 个 B 类或 512 个 C 类
/16255.255.0.064 K1 个 B 类或 256 个 C 类
/17255.255.128.032 K128 个 C 类
/18255.255.192.016 K64 个 C 类
/19255.255.224.08 K32 个 C 类
/20255.255.240.04 K16 个 C 类
/21255.255.248.02 K8 个 C 类
/22255.255.252.01 K4 个 C 类
/23255.255.254.05122 个 C 类
/24255.255.255.02561 个 C 类
/25255.255.255.1281281/2 个 C 类
/26255.255.255.192641/4 个 C 类
/27255.255.255.224321/8 个 C 类

(10) 构造超网

每一个 CIDR 地址块中的地址数一定是 2 的整数次幂。

除最后几行外,CIDR 地址块都包含了多个 C 类地址(是一个 C 类地址的 2n 倍,n 是整数)。

因此在文献中有时称 CIDR 编址为“构造超网”。

(11) 三个特殊的 CIDR 地址块
网络前缀长度点分十进制说明
/32255.255.255.255就是一个 IP 地址。这个特殊地址用于主机路由
/31255.255.255.254只有两个 IP 地址,其主机号分别为 0 和 1。 这个地址块用于点对点链路
/00.0.0.0同时 IP 地址也是全 0,即 0.0.0.0/0。用于默认路由。

(12) 路由聚合

路由聚合 (route aggregation)。

(13) CIDR 地址块划分举例

  • 网络前缀越短,地址块所包含的地址数越多。

这个 ISP 共有 64 个 C 类网络。如果不采用 CIDR 技术,则在与该 ISP 的路由器交换路由信息的每一个路由器的转发表中,需要有 64 行。采用地址聚合后,转发表中只需要用 1 行来指出到 206.0.64.0/18 地址块的下一跳。

在 ISP 内的路由器的转发表中,也仅需用 206.0.68.0/22 这 1 个项目,就能把外部发送到这个大学各系的所有分组,都转发到大学的路由器。

(14) IP 地址的特点

每个 IP 地址都由网络前缀和主机号两部分组成。

  • IP 地址是一种分等级的地址结构。

  • 方便了 IP 地址的分配和管理。

  • 实现路由聚合,减小了转发表所占的存储空间,以及查找转发表的时间。

IP 地址是标志一台主机(或路由器)和一条链路的接口。

  • 当一台主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号必须是不同的。这种主机称为多归属主机 (multihomed host)。

  • 一个路由器至少应当连接到两个网络,因此一个路由器至少应当有两个不同的 IP 地址。

转发器或交换机连接起来的若干个局域网仍为一个网络。

  • 按照互联网的观点,一个网络(或子网)是指具有相同网络前缀的主机的集合。

  • 转发器或交换机连接起来的若干个局域网都具有同样的网络号,它们仍为一个网络。

  • 具有不同网络号的局域网必须使用路由器进行互连。

在 IP 地址中,所有分配到网络前缀的网络都是平等的。

  • 互联网同等对待每一个 IP 地址,不管是范围很小的局域网,还是可能覆盖很大地理范围的广域网。

注意事项:

  • 同一个局域网上的主机或路由器的IP 地址中的网络号必须一样。

  • 路由器的每一个接口都有一个不同网络号的 IP 地址。

  • 两个路由器直接相连的接口处,可指明也可不指明 IP 地址。

  • 如指明 IP 地址,则这一段连线就构成了一种只包含一段线路的特殊“网络” 。这种网络仅需两个 IP 地址,可以使用 /31 地址块。主机号可以是 0 或 1。

2.3 IP 地址与 MAC 地址

IP 地址:

  • 虚拟地址、软件地址、逻辑地址。

  • 网络层和以上各层使用。

  • 放在 IP 数据报的首部。

MAC 地址:

  • 固化在网卡上的 ROM 中。

  • 硬件地址、物理地址。

  • 数据链路层使用。

  • 放在 MAC 帧的首部。

(1) IP 地址与 MAC 地址的区别

  • IP 地址放在 IP 数据报的首部,

  • MAC 地址则放在 MAC 帧的首部。

通信的路径:H1→经过 R1 转发→再经过 R2 转发→H2:

从协议栈的层次上看 IP 地址和 MAC 地址:

在 IP 层抽象的互联网上只能看到 IP 数据报:

在局域网的链路层,只能看见 MAC 帧:

(2) 不同层次、不同区间使用的源地址和目的地址

  • 尽管互连在一起的网络的 MAC 地址体系各不相同,但 IP 层抽象的互联网却屏蔽了下层这些很复杂的细节。

  • 只要我们在网络层上讨论问题,就能够使用统一的、抽象的 IP 地址研究主机和主机或路由器之间的通信。

2.4 地址解析协议 ARP

实现 IP 通信时使用了两个地址:

  • IP 地址(网络层地址)

  • MAC 地址(数据链路层地址)

(1) 地址解析协议 ARP 的作用

ARP (Address Resolution Protocol ) 作用:从 IP 地址解析出 MAC 地址。

ARP 高速缓存 (ARP cache):

  • 存放 IP 地址到 MAC 地址的映射表。

  • 映射表动态更新(新增或超时删除)。

超过生存时间的项目都从高速缓存中删除,以适应网络适配器变化。

ARP 工作:

  • 当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报的过程。

ARP 查找 IP 地址对应的 MAC地址:

  • 本局域网上广播发送 ARP 请求(路由器不转发 ARP 请求)。

  • ARP 请求分组:包含发送方硬件地址 / 发送方 IP 地址 / 目标方硬件地址(未知时填 0) / 目标方 IP 地址。

  • 单播 ARP 响应分组:包含发送方硬件地址 / 发送方 IP地址 / 目标方硬件地址 / 目标方 IP 地址。

  • ARP 分组封装在以太网帧中传输。

ARP 高速缓存的作用:

  • 存放最近获得的 IP 地址到 MAC 地址的绑定。

  • 减少 ARP 广播的通信量。

  • 为进一步减少 ARP 通信量,主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到 MAC 地址的映射写入 ARP 请求分组。

  • 当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的 IP 地址及其对应的 MAC 地址映射写入主机 B 自己的 ARP 高速缓存中。不必在发送 ARP 请求。

2 台主机不在同一个局域网上的传输过程:

ARP 用于解决同一个局域网上的主机或路由器的 IP 地址和 MAC 地址的映射问题。

  • 通信的路径:A → 经过 R1 转发 → B。

  • 因此主机 A 必须知道路由器 R1 的 IP 地址,解析出其 MAC 地址。然后把 IP 数据报传送到路由器 R1。

(2) 使用 ARP 的四种典型情况

发送方是主机,要把 IP 数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。

发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。

发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址。

发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP 找到本网络上另一个路由器的硬件地址。剩下的工作由这个路由器来完成。

(3) 使用IP 地址和 MAC 地址两种地址的原因
  • 不同使用不同的 MAC 地址。MAC 地址之间的转换非常复杂。

  • 对以太网 MAC 地址进行寻址也是极其困难的。

  • IP 编址把这个复杂问题解决了。

    连接到互联网的主机只需各自拥有一个唯一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便,即使必须多次调用 ARP 来找到 MAC 地址,但这个过程都是由计算机软件自动进行的,对用户来说是看不见的。

因此,在虚拟的 IP 网络上用 IP 地址进行通信非常方便。

2.5 IP 数据报的格式

IP 数据报由首部数据两部分组成。

首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。

  • 版本:占 4 位,指 IP 协议的版本。目前的 IP 协议版本号为 4 (即 IPv4)。

  • 首部长度:占 4 位,可表示的最大数值是15个单位(一个单位为 4 字节),因此 IP 的首部长度的最大值是 60 字节。

  • 区分服务:占 8 位,用来获得更好的服务。只有在使用区分服务(DiffServ)时,这个字段才起作用。在一般的情况下都不使用。这个字段

  • 总长度:占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU。

  • 标识 (identification) :占 16 位,它是一个计数器,用来产生 IP 数据报的标识。

  • 标志(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 检验码而采用简单的计算方法。

  • 源地址和目的地址都各占 32 位。

可选字段,其长度是可变的。

  • IP 首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。

  • 长度可变:从 1 个字节到 40 个字节不等,取决于所选择的项目。

  • 增加了 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的,增加了每一个路由器处理数据报的开销。

  • 实际上这些选项很少被使用。

IP 数据报分片:

IP 数据报首部中与分片有关的字段中的数值:

总长度标识MFDF片偏移
原始数据报382012345000
数据报片1142012345100
数据报片214201234510175
数据报片310201234500350

IP 协议支持多种协议,IP 数据报可以封装多种协议 PDU。

常用的一些协议和相应的协议字段值:

协议名ICMPIGMPIPTCPEGPIGPUDPIPv6ESPAHICMP-IPv6OSPF
协议字段值124689174150515889

3. IP 层转发分组的过程

3.1 基于终点的转发

分组在互联网中是逐跳转发的。

基于终点的转发,即基于分组首部中的目的地址传送和转发。

为了压缩转发表的大小,转发表中最主要的路由是(目的网络地址,下一跳地址) ,而不是(目的地址,下一跳地址)。

查找转发表的过程就是逐行寻找前缀匹配。

主机 H1 发送出的、目的地址是 128.1.2.132 的分组的转发过程:

  • H1 首先检查 128.1.2.132 是否连接在本网络上。

    如果是,则直接交付;否则,就送交路由器 R1。

  • 路由器 R1 收到分组后查找转发表。先检查第 1 行。

    128.1.2.132 AND 255.255.255.192 = 128.1.2.128 不匹配!

  • 路由器 R1 收到分组后查找转发表。接着检查第 2 行。

    进行分组的直接交付(通过路由器 R1 的接口 1)。

    128.1.2.132 AND 255.255.255.128 = 128.1.2.128 匹配!

3.2 最长前缀匹配

使用 CIDR 时,在查找转发表时可能会得到不止一个匹配结果。

最长前缀匹配 (longest-prefix matching) 原则:选择前缀最长的一个作为匹配的前缀。

  • 网络前缀越长,其地址块就越小,因而路由就越具体。

  • 可以把前缀最长的排在转发表的第 1 行。

路由器 R1 转发目的地址是 128.1.2.196 的分组的过程:

  • 路由器 R1 收到分组后查找转发表。先检查第 1 行。

    128.1.2.196 AND 255.255.255.192 = 128.1.2.192 不匹配!

  • 路由器 R1 收到分组后查找转发表。接着检查第 2 行。

    128.1.2.196 AND 255.255.255.128 = 128.1.2.128 匹配!

  • 路由器 R1 收到分组后查找转发表。接着检查第 3 行。

    128.1.2.196 AND 255.255.255.192 = 128.1.2.192 匹配!

最长前缀匹配:

  • 选择前缀最长的一个作为匹配的前缀。

  • 网络前缀越长,其地址块就越小,路由就越具体(more specific)。

  • 可以把前缀最长的排在转发表的第 1 行,以加快查表。

转发表中的 2 种特殊的路由:

  • 主机路由 (host route)

    • 又叫做特定主机路由。

    • 是对特定目的主机的 IP 地址专门指明的一个路由。

    • 网络前缀就是 a.b.c.d/32

    • 放在转发表的最前面。

  • 默认路由 (default route)

    • 不管分组的最终目的网络在哪里,都由指定的路由器 R 来处理。

    • 用特殊前缀 0.0.0.0/0 表示。

默认路由举例:

只要目的网络不是 N1 和 N2,就一律选择默认路由,把 IP 数据报先间接交付默认路由器 R1,让 R1 再转发给下一个路由器。

路由器分组转发算法:

3.3 使用二叉线索查找转发表

二叉线索 (binary trie):一种特殊结构的树,可以快速在转发表中找到匹配的叶节点。

  • 从二叉线索的根节点自顶向下的深度最多有 32 层,每一层对应于 IP 地址中的一位。

  • 为简化二叉线索的结构,可以用唯一前缀 (unique prefix) 来构造二叉线索。

  • 为了提高二叉线索的查找速度,广泛使用了各种压缩技术。

(1) 用 5 个唯一前缀构成的二叉线索

规则:

  • 先检查 IP 地址左边的第一位,如为 0,则第一层的节点就在根节点的左下方;如为 1,则在右下方。然后再检查地址的第二位,构造出第二层的节点。依此类推,直到唯一前缀的最后一位。每个叶节点代表一个唯一前缀。

  • 为检查网络前缀是否匹配,必须使二叉线索中的每一个叶节点包含所对应的网络前缀和子网掩码。

(2) 在二叉线索中查找 IP 地址

32 位的 IP 地址:01010110 01111010 00000000 00000000

  1. 找到了一个叶节点。

  2. 将目的 IP 地址和该叶节点的子网掩码进行按位 AND 运算,看结果是否与叶节点的网络前缀相匹配。

  3. 若匹配,就按下一跳的接口转发该分组。否则,就丢弃该分组。

32 位的 IP 地址:10011011 01111010 00000000 00000000

  1. 查到第三个字符 0 时,在二叉线索中找不到匹配的。说明这个地址不在这个二叉线索中。

  2. 检查是否存在默认路由。若有,把分组传送到指明的默认路由器,否则丢弃该分组。

4. 网际控制报文协议 ICMP

ICMP (Internet Control Message Protocol) 允许主机或路由器报告差错情况和提供有关异常情况的报告。

  • ICMP 是互联网的标准协议。

  • 但 ICMP 不是高层协议,而是 IP 层的协议。

ICMP 报文的格式 :

4.1 ICMP 报文的种类

  • 差错报告报文,询问报文。

ICMP 差错报告报文的数据字段的内容:

不应发送 ICMP 差错报告报文的几种情况:

  • 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。

  • 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。

  • 对具有多播地址的数据报都不发送 ICMP 差错报告报文。

  • 对具有特殊地址(如127.0.0.00.0.0.0)的数据报不发送 ICMP 差错报告报文。

ICMP 询问报文:

  • 回送请求和回答:

    1. 由主机或路由器向一个特定的目的主机发出的询问。

    2. 收到此报文的主机必须给源主机或路由器发送 ICMP 回送回答报文。

    3. 这种询问报文用来测试目的站是否可达,以及了解其有关状态。

  • 时间戳请求和回答:

    1. 请某台主机或路由器回答当前的日期和时间。

    2. 时间戳回答报文中有一个 32 位的字段,其中写入的整数代表从1900 年 1 月 1 日起到当前时刻一共有多少秒。

    3. 时间戳请求与回答可用于时钟同步和时间测量。

4.2 ICMP 的应用举例

PING (Packet InterNet Groper) :

  • 用来测试两个主机之间的连通性。

  • 使用了 ICMP 回送请求与回送回答报文。

  • 是应用层直接使用网络层 ICMP 的例子,没有通过运输层的 TCP 或 UDP。

示例:PING 测试邮件服务器 mail.sina.com.cn 的连通性:

Traceroute:

  • 这是UNIX操作系统中名字。在 Windows 操作系统中这个命令是 tracert

  • 用来跟踪一个分组从源点到终点的路径。

  • 它利用 IP 数据报中的 TTL 字段、ICMP 时间超过差错报告报文和ICMP 终点不可达差错报告报文实现对从源点到终点的路径的跟踪。

示例:tracert 命令获得到新浪网的邮件服务器 mail.sina.com.cn 的路由信息。

5. IPv6

IP 是互联网的核心协议。

  • IPv4 地址耗尽问题:

  • 到 2011 年 2 月,IANA IPv4 的 32 位地址已经耗尽。

  • 各地区互联网地址分配机构也相继宣布地址耗尽。

  • 我国在 2014 – 2015 年也逐步停止了向新用户和应用分配 IPv4 地址。

根本解决措施:采用具有更大地址空间的新版本的 IP,即 IPv6。

5.1 IPv6 的基本首部

IPv6 仍支持无连接的传送。

  • 将协议数据单元 PDU 称为分组 (packet) 。

  • 主要变化(1/2):

    1. 更大的地址空间。 将地址从 IPv4 的 32 位 增大到了 128 位。

    2. 扩展的地址层次结构。可以划分为更多的层次。

    3. 灵活的首部格式。定义了许多可选的扩展首部。

    4. 改进的选项。允许数据报包含有选项的控制信息,其选项放在有效载荷中。

    5. 允许协议继续扩充。更好地适应新的应用。

    6. 支持即插即用(即自动配置)。不需要使用 DHCP。

    7. 支持资源的预分配。支持实时视像等要求保证一定的带宽和时延的应用。

    8. IPv6 首部改为 8 字节对齐。首部长度必须是 8 字节的整数倍。

(1) IPv6 数据报的一般形式

由两大部分组成:

  • 基本首部 (base header)。

  • 有效载荷 (payload)。

    有效载荷也称为净负荷。有效载荷允许有零个或多个扩展首部 (extension header),再后面是数据部分。

(2) IPv6 数据报的基本首部

首部长度:固定的 40 字节,称为基本首部。

首部字段数:只有 8 个。

IPv6 对首部的主要更改:

  • 取消了首部长度字段;

  • 取消了服务类型字段;

  • 取消了总长度字段,改用有效载荷长度字段;

  • 把 TTL 字段改称为跳数限制字段;

  • 取消了协议字段,改用下一个首部字段;

  • 取消了检验和字段;

  • 取消了选项字段,而用扩展首部来实现选项功能。

40 字节长的 IPv6 基本首部:

  • 版本(version): 4 位。它指明了协议的版本,对 IPv6 该字段总是 6。

  • 通信量类(traffic class):8 位。这是为了区分不同的 IPv6 数据报的类别或优先级。目前正在进行不同的通信量类性能的实验。

  • 流标号(flow label):20 位。 “流”是互联网络上从特定源点到特定终点的一系列数据报, “流”所经过的路径上的路由器都保证指明的服务质量。所有属于同一个流的数据报都具有同样的流标号。

  • 有效载荷长度(payload length):16 位。它指明 IPv6 数据报除基本首部以外的字节数(所有扩展首部都算在有效载荷之内),其最大值是 64 KB。

  • 下一个首部(next header):8 位。相当于 IPv4 的协议字段或可选字段。

  • 跳数限制(hop limit):8 位。源站在数据报发出时即设定跳数限制。路由器在转发数据报时将跳数限制字段中的值减 1。当跳数限制的值为零时,就要将此数据报丢弃。

  • 源地址:128 位。是数据报的发送站的 IP 地址。

  • 目的地址:128 位。是数据报的接收站的 IP 地址。

IPv6 的六种扩展首部:

  • 逐跳选项、路由选择、分片、鉴别、封装安全有效载荷、目的站选项 。

5.2 IPv6 的地址

三种基本类型:

  • 单播 (unicast):传统的点对点通信。

  • 多播 (multicast):一点对多点的通信。

  • 任播 (anycast):IPv6 增加的一种类型。任播的终点是一组计算机,但数据报在交付时只交付其中的一个。通常是按照路由算法得出的距离最近的一个。

(1) 节点与接口

IPv6 将实现 IPv6 的主机和路由器均称为节点。

一个节点可能有多个与链路相连的接口。

IPv6 地址是分配给节点上接口的。

  • 一个具有多个接口的节点可以有多个单播地址。

  • 其中的任何一个地址都可以当作到达该节点的目的地址。

(2) 冒号十六进制记法

在 IPv6 中,每个地址占 128 位,地址空间大于 3.4×1038 。

使用冒号十六进制记法(colon hexadecimal notation,简写为 colon hex):16 位的值用十六进制值表示,各值之间用冒号分隔。

两个技术:零压缩,点分十进制记法的后缀

(3) 零压缩

零压缩 (zero compression):一串连续的零可以用一对冒号取代。

注意:在任一地址中,只能使用一次零压缩。

(4) 点分十进制记法的后缀

结合使用点分十进制记法的后缀在 IPv4 向 IPv6 的转换阶段特别有用。

示例:0:0:0:0:0:0:128.10.2.1转换为::128.10.2.1

CIDR 的斜线表示法仍然可用,但取消了子网掩码。

(5) IPv6 地址分类

(6) IPv6 单播地址的划分方法

5.3 从 IPv4 向 IPv6 过渡

方法:逐步演进,向后兼容。

  • 向后兼容:IPv6 系统必须能够接收和转发 IPv4 分组,并且能够为 IPv4 分组选择路由。

两种过渡策略:

  • 使用双协议栈。

  • 使用隧道技术。

(1) 双协议栈

使用双协议栈进行从 IPv4 到 IPv6 的过渡。

(2) 隧道技术

5.4 ICMPv6

IPv6 也需要使用 ICMP 来反馈一些差错信息。新的版本称为 ICMPv6。

新旧版本中的网络层的比较:

ICMPv6 报文的分类:

6. 互连网的路由选择协议

6.1 有关路由选择协议的几个基本概念

路由选择协议属于网络层控制层面的内容。

(1) 理想的路由算法

稳定、计算简单、正确、完整、公平。

关于“最佳路由”:

  • 不存在一种绝对的最佳路由算法。

  • 所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。

路由选择非常复杂:

  • 需要所有节点共同协调工作的。

  • 环境不断变化,而这种变化有时无法事先知道。

  • 当网络发生拥塞时,很难获得所需的路由选择信息。

路由算法分类(自适应):

  • 静态路由选择策略。

    • 非自适应路由选择;

    • 不能及时适应网络状态的变化;

    • 简单,开销较小。

  • 动态路由选择策略。

    • 自适应路由选择;

    • 能较好地适应网络状态的变化;

    • 实现较为复杂,开销较大。

(2) 分层次的路由选择协议

互联网:

  • 采用自适应的(即动态的)、分布式路由选择协议。

  • 把整个互联网划分为许多较小的自治系统 AS,采用分层次的路由选择协议。

分为 2 个层次:

  • 自治系统之间的路由选择 或 域间路由选择 (interdomain routing);

  • 自治系统内部的路由选择 或 域内路由选择 (intradomain routing);

自治系统 AS (Autonomous System):

  • 自治系统AS是在单一技术管理下的许多网络、IP地址以及路由器,而这些路由器使用一种自治系统内部的路由选择协议和共同的度量。每一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略。

2 大类路由选择协议:

  • 内部网关协议 IGP

    • Interior Gateway Protocol

    • 在一个自治系统内部使用的路由选择协议

    • 常用:RIP,OSPF

  • 外部网关协议 EGP

    • External Gateway Protocol

    • 在不同自治系统之间进行路由选择时使用的协议

    • 使用最多:BGP-4

自治系统和内部网关协议、外部网关协议 :

  • 自治系统之间的路由选择也叫做域间路由选择 (interdomain routing)。

  • 自治系统内部的路由选择叫做域内路由选择 (intradomain routing) 。

6.2 内部网关协议 RIP

(1) 协议 RIP 的工作原理

路由信息协议 RIP (Routing Information Protocol) 是一种分布式的、基于距离向量的路由选择协议。

  • 互联网的标准协议。

  • 最大优点:简单。

  • 要求网络中的每个路由器都要维护从它自己到其他每一个目的网络的距离记录。

RIP“距离”的定义:

  • 路由器到直接连接的网络的距离 = 1。

  • 路由器到非直接连接的网络的距离 = 所经过的路由器数 + 1。

  • RIP 协议中的“距离”也称为“跳数”(hop count),每经过一个路由器,跳数就加 1。

  • 好路由 = “距离短”的路由。最佳路由 = “距离最短”的路由。

  • 一条路径最多只能包含 15 个路由器。

  • “距离”的最大值为 16 时即相当于不可达。

  • RIP 不能在两个网络之间同时使用多条路由,只选择距离最短”的路由。

路由 A-B-E 的距离 = 2,路由 A-C-D-E 的距离 = 3。

最佳路由为 A-B-E。

RIP 协议的三个特点:

  • 仅和相邻路由器交换信息。

  • 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。

  • 按固定时间间隔交换路由信息,例如,每隔 30 秒。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息。

路由表的建立:

  1. 路由器在刚刚开始工作时,路由表是空的。

  2. 然后,得到直接连接的网络的距离(此距离定义为 1)。

  3. 之后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。

  4. 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。

  5. RIP 协议的收敛 (convergence) 过程较快。“收敛”就是在自治系统中所有的结点都得到正确的路由选择信息的过程。

路由表主要信息:

路由表更新规则:

使用距离向量算法找出到达每个目的网络的最短距离。

(2) 距离向量算法

对每个相邻路由器(假设其地址为 X)发送过来的 RIP 报文,路由器的操作如下:

  1. 修改 RIP 报文中的所有项目(即路由):把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1。

  1. 对修改后的 RIP 报文中的每一个项目,重复以下步骤:

若路由表中没有目的网络N,则把该项目添加到路由表中。否则
    若路由表中网络 N 的下一跳路由器为 X,则用收到的项目替换原路由表中的项目。否则
        若收到项目中的距离小于路由表中的距离,则用收到项目更新原路由表中的项目。否则
            什么也不做。
  1. 若 3 分钟还未收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为 16(表示不可达)。

  1. 返回。

算法基础:Bellman-Ford 算法(或 Ford-Fulkerson 算法)。

  • 算法要点:

    • 设 X 是结点 A 到 B 的最短路径上的一个结点。

    • 若把路径 A→B 拆成两段路径 A→X 和 X→B,则每一段路径 A→X 和 X→B 也都分别是结点 A 到 X 和结点 X 到 B 的最短路径。

示例:已知路由器 R6 有表a所示的路由表。现在收到相邻路由器 R4 发来的路由更新信息,如表b所示。试更新路由器 R6 的路由表。

路由表更新。

RIP2 报文:

RIP2 支持无分类域间路由选择 CIDR,提供简单的鉴别,支持多播。

RIP2 的报文用使用 UDP 传送(使用 UDP 端口 520)。

  • 组成:首部和路由 2 个部分。

  • 路由部分:由若干个路由信息组成。每个路由信息共 20 个字节。

    • 地址族标识符(又称为地址类别)字段用来标志所使用的地址协议。

    • 路由标记填入自治系统的号码。

    • 后面为具体路由,指出某个网络地址、该网络的子网掩码、下一跳路由器地址以及到此网络的距离。

  • 一个 RIP 报文最多可包括 25 个路由,因而 RIP 报文的最大长度是 4+20 x25=504 字节。如超过,必须再用一个 RIP 报文来传送。

  • RIP2 具有简单的鉴别功能。

(3) 坏消息传播得慢

RIP 协议特点:好消息传播得快,坏消息传播得慢。

  • 问题:坏消息传播得慢(慢收敛)。

当网络出现故障时,要经过比较长的时间才能将此信息(坏消息)传送到所有的路由器。

这就是好消息传播得快,而坏消息传播得慢。这是 RIP 的一个主要缺点。

RIP 协议的优缺点:

  • 优点:

    • 实现简单,开销较小。

  • 缺点:

    • 网络规模有限。最大距离为 15(16 表示不可达)。

    • 交换的路由信息为完整路由表,开销较大。

    • 坏消息传播得慢,收敛时间过长。

6.3 内部网关协议 OSPF

(1) 内部网关协议 OSPF

开放最短路径优先 OSPF (Open Shortest Path First)是为克服 RIP 的缺点在 1989 年开发出来的。

  • 原理很简单,但实现很复杂。

  • 使用了 Dijkstra 提出的最短路径算法 SPF。

  • 采用分布式的链路状态协议 (link state protocol)。

  • 现在使用 OSPFv2。

三个主要特点:

  • 采用洪泛法 (flooding),向本自治系统中所有路由器发送信息。

  • 发送的信息是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。

链路状态:说明本路由器都和哪些路由器相邻,以及该链路的度量 (metric)。

  • 当链路状态发生变化或每隔一段时间(如30分钟),路由器才用洪泛法向所有路由器发送此信息。

链路状态数据库 (link-state database) :

  • 每个路由器最终都能建立。

  • 全网的拓扑结构图。

  • 在全网范围内是一致的(这称为链路状态数据库的同步)。

  • 每个路由器使用链路状态数据库中的数据构造自己的路由表(例如,使用Dijkstra的最短路径路由算法)。

链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。

重要优点:OSPF 更新过程收敛速度快。

OSPF 将自治系统划分为两种不同的区域 (area):

主干区域 (backbone area) 标识符= 0.0.0.0,作用=用来连通其他下层区域。

  • OSPF 中的路由器:区域边界路由器 ABR (area border router)

  • OSPF 中的路由器:主干路由器 BR (backbone router)

  • OSPF 中的路由器:自治系统边界路由器 ASBR (AS border router)

划分区域优点和缺点:

  • 优点:

    • 减少了整个网络上的通信量。

    • 减少了需要维护的状态数量。

  • 缺点:

    • 交换信息的种类增多了。

    • 使 OSPF 协议更加复杂了。

分层次划分区域的好处:

使每一个区域内部交换路由信息的通信量大大减小,因而使 OSPF 协议能够用于规模很大的自治系统中。

OSPF的其他特点:

  • 对于不同类型的业务可计算出不同的路由。

  • 可实现多路径间的负载均衡(load balancing)。

  • 所有在 OSPF 路由器之间交换的分组都具有鉴别的功能。

  • 支持可变长度的子网划分和无分类编址 CIDR。

  • 32 位的序号,序号越大状态就越新。全部序号空间在 600 年内不会产生重复号。

(2) OSPF 的五种分组类型
  • 问候 (Hello) 分组。

  • 数据库描述 (Database Description) 分组。

  • 链路状态请求 (Link State Request) 分组。

  • 链路状态更新 (Link State Update) 分组。

  • 链路状态确认 (Link State Acknowledgment)分组。

OSPF 分组用 IP 数据报传送:

OSPF 工作过程:

  • 确定邻站可达。

    • 相邻路由器每隔 10 秒钟要交换一次问候分组。

    • 若有 40 秒钟没有收到某个相邻路由器发来的问候分组,则可认为该相邻路由器是不可达的。

  • 同步链路状态数据库。

    • 同步:指不同路由器的链路状态数据库的内容是一样的。

    • 两个同步的路由器叫做完全邻接的 (fully adjacent) 路由器。

不是完全邻接的路由器:它们虽然在物理上是相邻的,但其链路状态数据库并没有达到一致。

  • 更新链路状态。

    • 只要链路状态发生变化,路由器就使用链路状态更新分组,采用可靠的洪泛法向全网更新链路状态。

    • 为确保链路状态数据库与全网的状态保持一致,OSPF 还规定:每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态。

OSPF 链路状态只涉及相邻路由器,与整个互联网的规模并无直接关系,因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。

OSPF 没有“坏消息传播得慢”的问题,收敛数度快。

OSPF 使用可靠的洪泛法发送更新分组:

指定的路由器 DR:

  • 多点接入的局域网采用了指定的路由器 DR (designated router) 的方法,使广播的信息量大大减少。

  • 指定的路由器代表该局域网上所有的链路向连接到该网络上的各路由器发送状态信息。

6.4 外部网关协议 BGP

BGP 是不同自治系统的路由器之间交换路由信息的协议。

  • BGP 较新版本是 2006 年 1 月发表的 BGP-4(BGP 第 4 个版本),即 RFC 4271 ~ 4278。

  • 可以将 BGP-4 简写为 BGP。

(1) 协议 BGP 的主要特点
  • 用于自治系统 AS 之间的路由选择。

  • 只能是力求选择出一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要计算出一条最佳路由。

    • 互联网的规模太大,使得自治系统AS之间路由选择非常困难。

    • 自治系统AS之间的路由选择必须考虑有关策略。

  • 采用了路径向量 (path vector) 路由选择协议。

BGP 发言者 (BGP speaker):

  • 对等 BGP 发言者(边界路由器)在 AS 之间交换信息。

eBGP 连接和 iBGP 连接:

  • 在 AS 之间, BGP 发言者在半永久性 TCP 连接(端口号为179)上建立 BGP 会话(session)。这种连接又称为 eBGP 连接。

  • 在 AS 内部,任何相互通信的两个路由器之间必须有一个逻辑连接(也使用 TCP 连接)。AS 内部所有的路由器之间的通信是全连通的。这种连接常称为 iBGP 连接。

  • eBGP (external BGP) 连接:运行 eBGP 协议,在不同 AS 之间交换路由信息。

  • iBGP (internal BGP) 连接:运行 iBGP 协议, 在 AS 内部的路由器之间交换 BGP 路由信息。

IGP、iBGP 和 eBGP 的关系:

  • 在 AS 内部运行:

    • 内部网关协议 IGP(可以是协议 OSPF 或 RIP)。

    • 协议 iBGP。

  • 在 AS 之间运行:

    • 协议 eBGP。

eBGP 和 iBGP:

  • 同一个协议 BGP(使用的报文类型、使用的属性、使用的状态机等都完全一样)。

  • 但它们在通报前缀时采用的规则不同:

    • 在 eBGP 连接的对等端得知的前缀信息,可以通报给一个 iBGP 连接的对等端。反过来也是可以的。

    • 但从 iBGP 连接的对等端得知的前缀信息,则不能够通报给另一个 iBGP 连接的对等端。

  • R3 从 eBGP 连接的对等端 R4 得到的前缀信息可以通报给 iBGP 连接的对等端 R1 或 R2。

  • R3 从 iBGP 连接的对等端 R1 和 R2 得到的前缀信息可以通报给 eBGP 连接的对等端 R4。

  • 但 R3 从 iBGP 连接的对等端 R1 得到的前缀信息不允许再通报给另一个 iBGP 连接的对等端 R2。

BGP 路由信息:

BGP 路由 = [ 前缀, BGP属性 ] = [ 前缀, AS-PATH, NEXT-HOP ]

  • 前缀:指明到哪一个子网(用 CIDR 记法表示)。

  • BGP 属性:最重要的两个属性是自治系统路径 AS-PATH下一跳 NEXT-HOP

  • AS2 可经 IP3a 到前缀 X 的路由 = [前缀, AS-PATH, NEXT-HOP] = [X, AS3, IP3a]

  • AS2 可经 IP3a 到前缀 X 的路由 = [前缀, AS-PATH, NEXT-HOP] = [X, AS3, IP3a]

  • 路由 1:AS1 可经 IP2a 到前缀 X 的路由 = [前缀, AS-PATH, NEXT-HOP] = [X, AS2 AS3, IP2a]

  • AS2 可经 IP3a 到前缀 X 的路由 = [前缀, AS-PATH, NEXT-HOP] = [X, AS3, IP3a]

  • 路由 1:AS1 可经 IP2a 到前缀 X 的路由 = [前缀, AS-PATH, NEXT-HOP] = [X, AS2 AS3, IP2a]

  • 路由2:AS1 可经 IP3c 到前缀 X 的路由 = [前缀, AS-PATH, NEXT-HOP] = [X, AS3, IP3c]

  • AS2 可经 IP3a 到前缀 X 的路由 = [前缀, AS-PATH, NEXT-HOP] = [X, AS3, IP3a]

  • 路由 1:AS1 可经 IP2a 到前缀 X 的路由 = [前缀, AS-PATH, NEXT-HOP] = [X, AS2 AS3, IP2a]

  • 路由2:AS1 可经 IP3c 到前缀 X 的路由 = [前缀, AS-PATH, NEXT-HOP] = [X, AS3, IP3c]

  • 路由器 R1a 的转发表中,沿 BGP 路由 1 到达前缀 X 的项目是:(匹配前缀X,下一跳路由器 R1b)或(匹配前缀X,转发接口 0)。

(2) 三种不同的自治系统 AS
  • 末梢 AS:不会把来自其他 AS 的分组再转发到另一个 AS。必须向所连接的 AS 付费。

  • 多归属 AS (multihomed AS):同时连接到两个或两个以上的 AS。增加连接的可靠性。

  • 穿越 AS:为其他 AS 有偿转发分组。

  • 对等 AS:经过事先协商的两个 AS,彼此之间的发送或接收分组都不收费。

BGP 路由避免兜圈子的方法:

  • AS3 检查收到的 BGP 路由的 AS-PATH 中已经有了自己,立即删除掉这条路由,从而避免兜圈子路由的出现。

在属性 AS-PATH 中,不允许出现相同的 AS 号。

(3) BGP 的路由选择
  • 本地偏好 (local preference) 值最高的路由 (默认值=100)

  • AS 跳数最小的路由

  • 使用热土豆路由选择算法(分组在 AS 内的转发次数最少)

  • 路由器 BGP ID 数值最小的路由。具有多个接口的路由器有多个 IP 地址,BGP ID 就使用该路由器的 IP 地址中数值最大的一个。

本地偏好 (local preference) 值最高:

  • AS1 选择通过路由器 R1d 到达 X 的 BGP 路由。

AS 跳数最小:

  • AS1 选择通过路由器 R1c 到达 X 的 BGP 路由。

  • 但事实上,分组在 AS4 中反而要经过更多次数的转发。

  • 说明协议 BGP 不存在真正的最佳路由选择。

热土豆路由选择算法:

  • R1a 选择 R1c 作为离开 AS1 的最佳选择,其 BGP 转发表中对应的项目应当是:(匹配前缀 X,下一跳路由器 R1c)。

  • R1b 选择 R1d 作为离开 AS1 的最佳选择,其 BGP 转发表中对应的项目应当是:(匹配前缀 X,下一跳路由器 R1d)。

AS 跳数最小:

  • AS1 选择通过路由器 R1c 到达 X 的 BGP 路由。

  • 但事实上,分组在 AS4 中反而要经过更多次数的转发。

  • 说明协议 BGP 不存在真正的最佳路由选择。

(4) BGP-4 的四种报文

OPEN (打开)

  • 用来与相邻的另一个 BGP 发言者建立关系,使通信初始化。

UPDATE (更新)

  • 用来通告某一路由的信息,以及列出要撤销的多条路由。

KEEPALIVE (保活)

  • 用来周期性地证实邻站的连通性。

NOTIFICATION (通知)

  • 用来发送检测到的差错。

BGP 报文具有通用首部:

6.5 路由器的构成

路由器工作在网络层,用于互连网络。

  • 是互联网中的关键设备。

  • 路由器的主要工作:转发分组。

把从某个输入端口收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器的某个合适的输出端口转发给下一跳路由器。

(1) 路由器的结构

“转发”和“路由选择”的区别:

  • 转发:

    • 根据转发表将用户的 IP 数据报从合适的端口转发出去。

    • 仅涉及到一个路由器。

    • 转发表是从路由表得出的。

    • 转发表必须包含完成转发功能所必需的信息,每一行必须包含从要到达的目的网络到输出端口和某些 MAC 地址信息(如下一跳的以太网地址)的映射。

  • 路由选择:

    • 按照路由选择算法,根据网络拓扑的变化情况,动态地改变所选择的路由,并由此构造出整个的路由表。

    • 涉及到很多路由器。

    • 路由表一般仅包含从目的网络到下一跳(用 IP 地址表示)的映射

输入端口对线路上收到的分组的处理:

输出端口将交换结构传送来的分组发送到线路:

(2) 交换结构

常用交换方法有三种:通过存储器、通过总线、通过纵横交换结构。

通过存储器:

  • 当路由器的某个输入端口收到一个分组时,就用中断方式通知路由选择处理机。然后分组就从输入端口复制到存储器中。

  • 路由器处理机从分组首部提取目的地址,查找路由表,再将分组复制到合适的输出端口的缓存中。

  • 若存储器的带宽(读或写)为每秒 M 个分组,那么路由器的交换速率(即分组从输入端口传送到输出端口的速率)一定小于 M/2。

通过总线:

  • 数据报从输入端口通过共享的总线直接传送到合适的输出端口,而不需要路由选择处理机的干预。

  • 当分组到达输入端口时若发现总线忙,则被阻塞而不能通过交换结构,并在输入端口排队等待。

  • 因为每一个要转发的分组都要通过这一条总线,因此路由器的转发带宽就受总线速率的限制。

通过纵横交换结构 (crossbar switch fabric):

常被称为互连网络 (interconnection network)。

  • 它有 2N 条总线,控制交叉节点可以使 N 个输入端口和 N 个输出端口相连接。

  • 当输入端口收到一个分组时,就将它发送到水平总线上。

  • 若通向输出端口的垂直总线空闲,则将垂直总线与水平总线接通,把该分组转发到这个输出端口。若输出端口已被占用,分组在输入端口排队等待。

  • 特点:是一种无阻塞的交换结构,分组可以转发到任何一个输出端口,只要这个输出端口没有被别的分组占用。

7. IP 多播

7.1 IP 多播的基本概念

  • 1988 年,Steve Deering 首次提出 IP 多播的概念。

  • 多播 (multicast):以前曾译为组播。

  • 目的:更好地支持一对多通信。

  • 一对多通信:一个源点发送到许多个终点。

多播可大大节约网络资源:

  • 采用单播方式,向 90 台主机传送同样的视频节目,需要发送 90 个单播。

  • 采用多播方式,只需发送一次到多播组。路由器复制分组。局域网具有硬件多播功能,不需要复制分组。

当多播组的主机数很大时(如成千上万个),采用多播方式就可明显地减轻网络中各种资源的消耗。

IP 多播:

  • 在互联网上进行多播就叫做 IP 多播。

  • 互联网范围的多播要靠路由器来实现。

  • 能够运行多播协议的路由器称为多播路由器 (multicast router)。

  • 多播路由器也可以转发普通的单播 IP 数据报。

  • 从 1992 年起,在互联网上开始试验虚拟的多播主干网 MBONE (Multicast Backbone On the InterNEt)。

多播 IP 地址:

  • 在 IP 多播数据报的目的地址需要写入多播组的标识符。

  • 多播组的标识符就是 IP 地址中的 D 类地址(多播地址)。

    地址范围:224.0.0.0 ~ 239.255.255.255

  • 每一个 D 类地址标志一个多播组。

多播地址只能用于目的地址,不能用于源地址。

多播数据报:

  • 多播数据报和一般的 IP 数据报的区别:

    • 目的地址:使用 D 类 IP 地址。

    • 协议字段 = 2,表明使用网际组管理协议 IGMP。

  • 尽最大努力交付,不保证一定能够交付多播组内的所有成员。

  • 对多播数据报不产生 ICMP 差错报文。在 PING 命令后面键入多播地址,将永远不会收到响应。

7.2 在局域网上进行硬件多播

  • IANA 拥有的以太网地址块的高 24 位为 00-00-5E

  • TCP/IP 协议使用的以太网地址块的范围是

    00-00-5E-00-00-0000-00-5E-FF-FF-FF

  • IANA 只拿出 01-00-5E-00-00-0001-00-5E-7F-FF-FF (223 个地址)作为以太网多播地址。或者说,在 48 位的多播地址中,前 25 位都固定不变,只有后 23 位可用作多播。

D 类 IP 地址与以太网多播地址的映射关系:

  • 收到多播数据报的主机,还要在 IP 层对 IP 地址进行过滤,把不是本主机要接收的数据报丢弃。

4.7.3 网际组管理协议 IGMP 和多播路由选择协议

(1) IP 多播需要两种协议

网际组管理协议 IGMP (Internet Group Management Protocol)

  • 使多播路由器知道多播组成员信息(有无成员)。

多播路由选择协议

  • 使多播路由器协同工作,把多播数据报用最小代价传送给多播组的所有成员。

IGMP 使多播路由器知道多播组成员信息:

  • IGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机参加或退出了某个多播组。IGMP 不知道 IP 多播组包含的成员数,也不知道这些成员都分布在哪些网络上。

多播路由选择协议更为复杂:

  • 路由器 R 不应当向网络 N3 转发多播组 M1 的分组,因为网络 N3 上没有多播组 M1 的成员。

  • 多播转发必须动态地适应多播组成员的变化(这时网络拓扑并未发生变化),因为每一台主机可以随时加入或离开一个多播组。

  • 多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,还要考虑这个多播数据报从什么地方来和要到什么地方去。

  • 多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员的接入网络。

(2) 网际组管理协议 IGMP
  • 1989 年公布的 RFC 1112(IGMPv1)已成为了互联网的标准协议。

  • 1997 年公布的 RFC 2236(IGMPv2,建议标准)对 IGMPv1 进行了更新。

  • 2002 年 10 月公布了 RFC 3376(IGMPv3,建议标准)。

IGMP 使用 IP 数据报传递其报文:

  • 在 IGMP 报文加上 IP 首部构成 IP 数据报。

  • 但 IGMP 也向 IP 提供服务。

  • 因此,不把 IGMP 看成是一个单独的协议,而是整个网际协议 IP 的一个组成部分。

IGMP 工作可分为两个阶段:

第一阶段:加入多播组。

  • 当某个主机加入多播组时,该主机向多播组的多播地址发送 IGMP 报文,声明自己要成为该组的成员。

  • 本地的多播路由器收到 IGMP 报文后,将组成员关系转发给互联网上的其他多播路由器。

第二阶段:探询组成员变化情况。

  • 本地多播路由器周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。

  • 只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。

  • 本地多播路由器周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。

  • 但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。

IGMP 采用的一些具体措施,以避免增加大量开销:

  • 所有通信都使用 IP 多播。只要有可能,都用硬件多播来传送。

  • 对所有的组只发送一个请求信息的询问报文。默认询问速率是每 125 秒发送一次。

  • 当同一个网络上连接有多个多播路由器时,能迅速和有效地选择其中的一个来探询主机的成员关系。

  • 分散响应。在 IGMP 的询问报文中有一个数值 N,它指明一个最长响应时间(默认值为 10 秒)。当收到询问时,主机在 0 到 N 之间随机选择发送响应所需经过的时延。若一台主机同时参加了几个多播组,则主机对每一个多播组选择不同的随机数。对应于最小时延的响应最先发送。

  • 采用抑制机制。同一个组内的每一个主机都要监听响应,只要有本组的其他主机先发送了响应,自己就不再发送响应了。

(3) 多播路由选择
  • 实际上就是要找出以源主机为根节点的多播转发树。

  • 不同的多播组对应于不同的多播转发树。

  • 同一个多播组,对不同的源点也会有不同的多播转发树。

M 个源,N 个多播组,需要 MⅹN 棵以源为根的多播转发树。

转发多播数据报时使用三种方法:

洪泛与剪除。

  • 适合于较小的多播组,所有组成员接入的局域网也是相邻接的。

  • 开始时,路由器转发多播数据报使用洪泛的方法(这就是广播)。

  • 为避免兜圈子,采用反向路径广播 RPB (Reverse Path Broadcasting) 的策略。

  • RPB 的要点:检查,转发:

  • RPB 的要点:形成以源为根节点的多播转发树:

如果存在几条同样长度的最短路径,选择 IP 地址最小的。 最后就得出了以源为根节点的、用来转发多播数据报的多播转发树。

  • RPB 的要点:剪枝与嫁接:

    • 剪枝:如果在多播转发树上的某个路由器发现它的下游树枝(即叶节点方向)已没有该多播组的成员,就把它和下游的树枝一起剪除。

    • 嫁接:当某个树枝有新增加的组成员时,可以再接入到多播转发树上。

反向路径广播 RPB 和剪除:

隧道技术 (tunneling)。

  • 隧道技术适用于多播组的位置在地理上很分散的情况。

基于核心的发现技术。

  • 对于多播组的大小在较大范围内变化时都适合。

  • 对每一个多播组 G 指定一个核心 (core) 路由器,并给出它的 IP 单播地址。

  • 核心路由器按照前面讲过的 2 种方法创建出对应于多播组 G 的转发树(核心路由器为根节点)。

为一个多播组构建一棵转发树,而不是为每个(源,组)组合构建一棵转发树。

构建转发树开销较小,扩展性较好。

  • 如果有一个路由器 R1 向核心路由器发送数据报,那么它在途中经过的每一个路由器都要检查其内容。

  • 当数据报到达参加了多播组 G 的路由器 R2 时,R2 就处理这个数据报。

    • 如果 R1 发出的是一个多播数据报,其目的地址是 G 的组地址,R2 就向 G 的成员转发这个多播数据报。

    • 如果 R1 发出的数据报是一个请求加入多播组 G 的数据报,R2 就把这个信息加到它的路由中,并用隧道技术向 R1 转发每一个多播数据报的副本。

几种多播路由选择协议:

  • 距离向量多播路由选择协议 DVMRP (Distance Vector Multicast Routing Protocol)。互联网上使用的第一个多播路由选择协议。

  • 基于核心的转发树 CBT (Core Based Tree)

  • 开放最短通路优先的多播扩展 MOSPF (Multicast Extensions to OSPF)

  • 协议无关多播-稀疏方式 PIM-SM (Protocol Independent Multicast-Sparse Mode) 。唯一成为互联网标准的一个协议。

  • 协议无关多播-密集方式 PIM-DM (Protocol Independent Multicast-Dense Mode)

8. 虚拟专用网 VPN 和网络地址转换 NAT

8.1 虚拟专用网 VPN

  • 由于 IP 地址的紧缺,一个机构能够申请到的IP地址数往往远小于本机构所拥有的主机数。

  • 考虑到互联网并不很安全,一个机构内也并不需要把所有的主机接入到外部的互联网。

  • 如果一个机构内部的计算机通信也是采用 TCP/IP 协议,那么这些仅在机构内部使用的计算机就可以由本机构自行分配其 IP 地址。

本地地址与全球地址:

  • 本地地址:仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向互联网的管理机构申请。

  • 全球地址:全球唯一的 IP 地址,必须向互联网的管理机构申请。

  • 问题:如何区分本地地址和全球地址?

  • 解决:RFC 1918 指明了一些专用地址 (private address)。

专用地址只能用作本地地址,而不能用作全球地址。

互联网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。

RFC 1918 指明的专用 IP 地址:

专用网:

  • 采用专用 IP 地址的互连网络称为专用互联网或本地互联网,或更简单些,就叫做专用网。

  • 专用 IP 地址也叫做可重用地址 (reusable address)。

虚拟专用网 VPN:

  • 利用公用互联网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网 VPN (Virtual Private Network)。

  • 专用网:指这种网络是为本机构的主机用于机构内部的通信,而不是用于和网络外非本机构的主机通信。

  • 虚拟:表示实际上没有使用通信专线,只是在效果上和真正的专用网一样。

虚拟专用网 VPN 的构建:

  • 如果专用网不同网点之间的通信必须经过公用的互联网,但又有保密的要求,那么所有通过互联网传送的数据都必须加密。

  • 必须为每一个场所购买专门的硬件和软件,并进行配置,使每一个场所的 VPN 系统都知道其他场所的地址。

用隧道技术实现虚拟专用网:

VPN 类型:

  • 内联网 (intranet):同一个机构的内部网络所构成的 VPN。

  • 外联网 (extranet):一个机构和某些外部机构共同建立的 。

  • 远程接入 VPN (remote access VPN):允许外部流动员工通过接入 VPN 建立 VPN 隧道访问公司内部网络,好像就是使用公司内部的本地网络访问一样。

8.2 网络地址转换 NAT

在专用网上使用专用地址的主机如何与互联网上的主机通信(并不需要加密)?

  • 再申请一些全球 IP 地址。但这在很多情况下是不容易做到的

  • 采用网络地址转换 NAT。这是目前使用得最多的方法。

网络地址转换 NAT (Network Address Translation):

  • 1994 年提出。

  • 需要在专用网连接到互联网的路由器上安装 NAT 软件。

  • 装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球 IP 地址。

  • 所有使用本地地址的主机在和外界通信时,都要在 NAT 路由器上将其本地地址转换成全球 IP 地址,才能和互联网连接。

网络地址转换的过程:

  • 在内部主机与外部主机通信时,在 NAT 路由器上发生了两次地址转换:

    • 离开专用网时:替换源地址,将内部地址替换为全球地址。

    • 进入专用网时:替换目的地址,将全球地址替换为内部地址。

网络地址转换 NAT:

  • 当 NAT 路由器具有 n 个全球 IP 地址时,专用网内最多可以同时有 n 台主机接入到互联网。

  • 可以使专用网内较多数量的主机轮流使用 NAT 路由器有限数量的全球 IP 地址。

通过 NAT 路由器的通信必须由专用网内的主机发起,因此,专用网内部的主机不能充当服务器用。

网络地址与端口号转换 NAPT:

  • NAT 并不能节省 IP 地址。

  • NAPT 可以使多台拥有本地地址的主机,共用一个 全球 IP 地址,同时和互联网上的不同主机进行通信。

  • 使用运输层端口号的 NAT 叫做网络地址与端口号转换 NAPT (Network Address and Port Translation),而不使用端口号的 NAT 就叫做传统的 NAT (traditional NAT)。

NAPT 地址转换表:

  • NAPT 把专用网内不同的源 IP 地址都转换为相同的全球 IP 地址,将 TCP 源端口号转换为新的 TCP 端口号(互不相同)。

  • 收到从互联网发来的应答时,从 IP 数据报的数据部分找出运输层端口号,从 NAPT 转换表中找到正确的目的主机。

9. 多协议标签交换 MPLS

  • MPLS (MultiProtocol Label Switching):互联网建议标准。

  • 多协议:在 MPLS 的上层可以采用多种协议。

  • 标签:MPLS 利用面向连接技术,使每个分组携带一个叫做标签 (label) 的小整数。标签交换路由器用标签值检索转发表,实现分组的快速转发。

MPLS 特点:

  • MPLS 并没有取代 IP,而是作为一种 IP 增强技术。

  • 特点:

    • 支持面向连接的服务质量;

    • 支持流量工程,平衡网络负载;

    • 有效地支持虚拟专用网 VPN。

9.1 MPLS 的工作原理

  • 当网络很大时,查找路由表要花费很多时间。

  • 在出现突发通信时,缓存会溢出,引起分组丢失、传输时延增大和服务质量下降。

(1) MPLS 基本工作过程

MPLS 特点:

  • 在 MPLS 域的入口处,给每一个 IP 数据报打上固定长度标签。

  • 对打上标签的 IP 数据报在第二层(链路层)用硬件进行转发。

  • 采用硬件技术对打上标签的 IP 数据报进行转发就称为标签交换。

  • 可以使用多种数据链路层协议,如 PPP、以太网、ATM 以及帧中继等。

MPLS 协议的基本原理:

MPLS 域:

  • MPLS 域 (MPLS domain) :指该域中有许多彼此相邻的路由器,并且所有的路由器都是支持 MPLS 技术的标记交换路由器 LSR (Label Switching Router)。

  • LSR 同时具有标记交换和路由选择这两种功能。标记交换功能是为了快速转发,路由选择功能是为了构造转发表。

MPLS 的基本工作过程:

  • 找出标签交换路径 LSP。

    • 各 LSR 使用标签分配协议 LDP (Label Distribution Protocol) 交换报文,找出和标签相对应的标签交换路径 LSP (Label Switched Path)。整个标签交换路径就像一条虚连接一样。

  • 打标签,然后转发。

    • 入口节点 (ingress node) 给进入 MPLS 域的 IP 数据报打上标签(实际上是插入一个 MPLS 首部),并按照转发表把它转发给下一个 LSR。以后的所有 LSR 都按照标签进行转发。

    • 给 IP 数据报打标签的过程叫做分类 (classification)。

  • 标签对换。

    • 一个标签仅在两个 LSR 之间才有意义。

    • LSR 要做两件事:转发,更新标记。

    • 更新标记:把入标记更换成为出标记。称之为标签对换 (label swapping)。

项目含义:从入接口 0 收到一个入标签为 3 的 IP 数据报,转发时,应当把该 IP 数据报从出接口 1 转发出去,同时把标签对换为 1。

  • 去除标签。

    • 当分组离开 MPLS 域时,MPLS 出口节点 (egress node) 把分组的标签去除。

    • 把 IP 数据报交付给非 MPLS 的主机或路由器。

这种“由入口 LSR 确定进入 MPLS 域以后的转发路径”称为显式路由选择 (explicit routing)

与互联网中通常使用的“每一个路由器逐跳进行路由选择”有着很大的区别。

(2) 转发等价类 FEC

给 IP 数据报打标签的过程叫做分类 (classification)。

  • 第三层(网络层)分类:只使用 IP 首部中的源和目的 IP 地址等。

  • 大多数运营商实现了第四层(运输层)分类:除了要检查 IP 首部外,运输层还要检查 TCP 或 UDP 端口号。

  • 有些运营商则实现了第五层(应用层)分类:进一步地检查数据报的内部并考虑其有效载荷。

转发等价类 FEC (Forwarding Equivalence Class) :路由器按照同样方式对待的分组的集合。

按照同样方式对待含义:从同样接口转发到同样的下一跳地址,并且具有同样服务类别和同样丢弃优先级等。

例如:

  • 目的 IP 地址与某一个特定 IP 地址的前缀匹配的 IP 数据报;

  • 所有源地址与目的地址都相同的 IP 数据报;

  • 具有某种服务质量需求的 IP 数据报。

划分 FEC 的方法不受限制,由网络管理员来控制。

入口节点并不是给每一个 IP 数据报指派一个不同的标签,而是将属于同样 FEC 的 IP 数据报都指派同样的标签。

FEC 和标签是一一对应的关系。

FEC 用于负载平衡:

  • 自定义的 FEC 可以更好地管理网络的资源。这种均衡网络负载的做法也称为流量工程 TE (Traffic Engineering) 或通信量工程。

9.2 MPLS 首部的位置与格式

MPLS 不要求下层的网络都使用面向连接的技术。

MPLS 采用封装技术:在把 IP 数据报封装成以太网帧之前,先要插入一个 MPLS 首部。

从层次的角度看,MPLS 首部处在第二层和第三层之间。

MPLS 首部的格式:

给 IP 数据报打上标记就是在以太网帧首部和 IP 数据报首部之间插入一个 4 字节的 MPLS 首部。

  • 标签值(占 20 位):可以同时容纳高达 220 个流(即 1048576 个流)。

  • 试验(占 3 位):保留用作试验。

  • 栈S(占 1 位):在有“标签栈”时使用。

  • 生存时间 TTL(占 8 位):用来防止 MPLS 分组在 MPLS 域中兜圈子。

4.9.3 新一代的 MPLS

MPLS 存在的问题:

  • 控制协议(如 LDP)比较复杂,扩展性差,运行维护较困难。

  • 协议 LDP 无法做到基于时延或带宽等要求的流量调度。

  • 为灵活地选择流量的转发路径,还需要再使用资源预留协议 RSVP。但是:

pRSVP 的信令非常复杂,每个节点都要维护一个庞大的链路信息数据库。

pRSVP 只会选择一条最优路径,不支持等价多路径路由选择 ECMP (Equal-Cost Multipath Routing) 。

段路由选择协议 SRL:

  • 新一代的 MPLS:段路由选择协议 SR (Segment Routing)。

  • 段 (segment):标签,是转发指令的一种标识符。

  • SR 工作原理:

    • 基于标签交换,但不需要使用协议 LDP。

    • 由源节点为发送的报文指定路径,并将路径转换成有序的段列表 (Segment List),即 MPLS 标签栈,它被封装在分组首部。

    • 网络中的其他节点就执行首部中的指令(即标签)进行转发。

控制器:

即 SDN 控制器。负责:

  • 收集并掌握全网的拓扑信息和链路状态信息,计算出分组应传送的整个路径。

  • 给分组分配 SR 标签,指明分组从源点到终点的路径。

SR 向 IPv6 演进,这就是 SRv6。

SRv6 直接利用 IPv6 字段作为标签寻址 (Locator)。

10. 软件定义网络 SDN 简介

软件定义网络 SDN(Software Defined Network)由斯坦福大学N. McKeown 于 2009 年首先提出。

谷歌于 2010 ~ 2012 年的数据中心网络 B4 进行了运行验证。

优点:

  • 提高网络带宽利用率;

  • 网络运行更加稳定;

  • 管理更加高效简化;

  • 运行费用明显降低。

10.1 SDN 与 协议 OpenFlow

SDN:

  • 是一个体系结构,是一种设计、构建和管理网络的新方法或新概念。

  • 把控制层面和数据层面分离,而让控制层面利用软件控制数据层面中的许多设备。

OpenFlow:

  • SDN 体系结构中控制层面和数据层面之间的通信接口。

  • 使控制层面的控制器可以对数据层面中的物理或虚拟设备进行直接访问和操纵。

  • 在逻辑上是集中式的、基于流的。

注意:

  • SDN 不是 OpenFlow。

  • SDN 未规定必须使用 OpenFlow。

协议 OpenFlow:

OpenFlow 数据层面:匹配 + 动作:

  • 数据层面的分组交换机或 OpenFlow 交换机完成“匹配 + 动作”。称为广义转发。

  • 匹配

    对不同层次(链路层,网络层,运输层)首部中的字段进行匹配。

  • 动作

    转发,重写,丢弃等。

OpenFlow 数据层面—流表:

  • 流表 (flow table):规定“匹配 + 动作”。

  • 流:穿过网络的一种分组序列,而在此序列中的分组都共享分组首部某些字段的值。

流表由远程控制器管理:

  • SDN 远程控制器通过一个安全信道,使用 OpenFlow 协议来管理 OpenFlow 交换机中的流表。

流表结构:

  • 首部字段值:一组字段(12 个),用来使入分组的对应首部与之相匹配。匹配不上的分组被丢弃,或发送到远程控制器做更多的处理。

  • 计数器:一组计数器,可包括已经与该表项匹配的分组数量,以及从该表项上次更新到现在经历的时间。

广义转发具有多样性和灵活性。其优点是显而易见的。

示例:

简单转发:

负载均衡:

防火墙:

10.2 SDN 体系结构

SDN 体系结构的四个关键特征:

  • 基于流的转发。流表规定转发规则。

  • 数据层面与控制层面分离。二者不在同一个设备中。

  • 网络控制功能位于数据层面交换机之外,用软件实现。

  • 可编程的网络。

SDN 与传统网络的差别:

SDN:

  • 功能分散。交换机、SDN 控制器、网络控制应用程序都是可以分开的实体。

  • 可以由不同的厂商和机构来提供。

传统网络:

  • 控制层面、数据层面、协议的实现都垂直集成在一个机器里。

  • 由单独的厂商提供。

10.3 SDN 控制器

通信层:

  • 完成 SDN 控制器与受控网络设备之间的通信。

  • 通信层与数据层面的接口叫做南向接口,基本上采用 OpenFlow。

网络范围的状态管理层:

  • 完成核心功能。

  • 管理和维护链路、主机、交换机等网络状态。

  • 确定和维护流表等。

到网络控制应用程序层的接口:

  • SDN 控制器与网络控制应用程序交互的接口称为北向接口。

  • 该 API 接口允许网络控制应用程序对状态管理层里的网络状态和流表进行读写操作。

11. 补充

  • 网络层向上提供的服务有哪两种?试比较其优缺点。

    网络层向上提供的服务主要有两种:虚电路服务和数据报服务。这两种服务各有其特点和优缺点。

    虚电路服务(面向连接的服务)

    • 定义:虚电路服务是在数据传输前先建立一条虚拟电路,然后沿着这条虚拟电路传输数据,传输完成后再释放这条虚拟电路。

    • 优点

      • 可靠性高:通过建立连接、传输数据、最后释放连接的过程,虚电路服务能够保证数据的可靠性,确保数据不会丢失、出错或乱序。

      • 有序性:数据传输是有序的,接收端能够按照发送端的顺序接收到数据。

      • 流量控制:通过连接的建立和释放,虚电路服务可以进行流量控制,防止网络拥塞。

    • 缺点

      • 开销较大:建立和释放连接需要引入一定的开销,特别是在短消息通信的场景下可能显得不经济。

      • 路由器复杂:由于需要维护虚拟电路的状态信息,路由器的设计和实现会相对复杂。

      • 网络成本高:由于需要预约双方通信所需的一切网络资源,网络成本可能会相对较高。

      • 实时性较差:由于建立连接的过程可能引入较大的延迟,虚电路服务可能不适用于实时性要求较高的应用。

    数据报服务(无连接的服务)

    • 定义:数据报服务则是将每个数据包独立发送,不需要先建立虚拟电路,也不保证每个数据包的接收顺序。

    • 优点

      • 开销小:由于不需要建立和释放连接,数据报服务的通信开销相对较小。

      • 灵活性高:每个数据包可以独立选择路径进行传输,提高了网络的灵活性。

      • 网络负荷较小:由于不需要维护虚拟电路的状态信息,网络负荷相对较小。

      • 实时性较好:没有连接建立的延迟,适用于实时性要求较高的应用。

    • 缺点

      • 可靠性较差:由于没有连接的维护,数据报服务的数据传输可能不可靠,数据包可能会丢失或乱序。

      • 无序性:数据传输是无序的,接收端需要进行排序处理。

      • 缺乏流量控制:数据报服务缺乏流量控制机制,可能导致网络拥塞。

    综上所述,网络层向上提供的虚电路服务和数据报服务各有其优缺点。在选择时,需要根据具体的应用场景和需求来进行权衡。如果需要可靠传输数据且对有序性有较高要求,可以选择虚电路服务;如果希望降低通信开销、提高实时性且对可靠性要求不是特别高,可以选择数据报服务。

  • 网络互连有何实际意义?进行网络互连时,有哪些共同的问题需要解决?

    网络互连的实际意义

    网络互连,即将不同的计算机网络连接在一起,形成一个更大的、逻辑上统一的网络,具有深远的实际意义。以下是几个主要方面:

    1. 资源共享:通过网络互连,不同网络中的用户可以共享彼此的资源,如文件、打印机、数据库等,从而提高资源利用效率。

    2. 信息交换:网络互连使得不同网络中的用户可以方便地交换信息,无论是文字、图片、音频还是视频,都可以实时或近乎实时地传输。

    3. 扩大覆盖范围:网络互连可以将多个小型的、局部的网络连接在一起,形成一个覆盖更广的大型网络,从而满足更大范围内的通信需求。

    4. 提高可靠性:通过网络互连,可以实现网络的冗余和备份,当某个网络出现故障时,其他网络可以接管其任务,保证通信的连续性。

    5. 促进业务发展:网络互连为电子商务、远程教育、远程医疗等新兴业务提供了基础设施,推动了这些业务的快速发展。

    进行网络互连时需要解决的共同问题

    在进行网络互连时,需要解决一系列共同的问题,以确保网络的顺畅运行和高效利用。以下是几个主要问题:

    1. 网络协议:不同的网络可能使用不同的通信协议,因此在进行网络互连时,需要解决协议转换和兼容性问题,以确保不同网络之间的数据能够正确传输。

    2. 地址分配:每个网络设备都需要一个唯一的地址来标识其身份,以便在网络中进行通信。在网络互连时,需要解决地址的分配和管理问题,以避免地址冲突和混乱。

    3. 路由选择:网络互连后,数据包需要在不同的网络之间传输。因此,需要解决路由选择问题,即确定数据包从源网络到目标网络的最佳路径。

    4. 流量控制:网络互连后,不同网络之间的数据传输量可能会非常大。因此,需要解决流量控制问题,以防止网络拥塞和数据丢失。

    5. 网络安全:网络互连后,不同网络之间的数据交换变得更加频繁和复杂,这也给网络安全带来了更大的挑战。因此,需要解决网络安全问题,如加密、认证、防火墙等,以保护网络和数据的安全。

    综上所述,网络互连具有深远的实际意义,但在进行网络互连时也需要解决一系列共同的问题,以确保网络的顺畅运行和高效利用。

  • 作为中间设备,转发器、网桥、路由器和网关有何区别?

    作为网络中的中间设备,转发器、网桥、路由器和网关各自具有独特的功能和作用,它们之间的主要区别体现在工作层次、处理数据的方式以及应用场景上。

    一、工作层次

    1. 转发器:执行物理层协议,负责物理层的数据中继。它通常被用于放大或再生信号,以确保数据在传输过程中不会丢失或损坏。

    2. 网桥:工作于数据链路层,负责数据链路层的数据中继。它能够根据MAC地址表进行数据包转发,从而减少网络中的冲突和广播风暴问题。

    3. 路由器:工作于网络层,负责网络层的数据中继。它能够根据IP地址学习和转发数据包,以实现不同网络之间的通信和数据交换。

    4. 网关:通常工作在网络的边缘,负责网络层以上的数据中继。它不仅可以进行路由转发,还可以进行协议转换、数据加密、数据过滤等功能。

    二、处理数据的方式

    1. 转发器:只是简单地将数据包从一个接口转发到另一个接口,不进行任何逻辑判断和处理。

    2. 网桥:能够学习和存储MAC地址,并根据MAC地址表进行数据包转发。它通常用于连接局域网,以改善网络性能和提高网络安全性。

    3. 路由器:根据网络拓扑结构和路由协议进行智能的数据包转发和路由选择。它能够连接广域网或互联网,是现代网络中必不可少的核心设备。

    4. 网关:除了进行路由转发外,还可以进行协议转换和数据格式转换,以实现不同网络之间的通信和数据交换。此外,网关还可以提供其他网络服务,如网络地址转换(NAT)、安全策略实施等。

    三、应用场景

    1. 转发器:由于不具备智能处理能力,在现代网络中已经很少使用。但在某些特定场景下,如长距离信号传输中,转发器仍然具有一定的应用价值。

    2. 网桥:通常用于连接局域网,特别是在需要将一个大型局域网分割成多个小型局域网时,网桥可以发挥重要作用。此外,无线网桥还常用于扩展网络覆盖范围,特别是在有线网络不便或无法布线的环境下。

    3. 路由器:广泛应用于连接不同类型的网络,如局域网、广域网和互联网等。它是实现网络互联和数据交换的关键设备。

    4. 网关:通常用于连接不同类型的网络,如将局域网连接到互联网,或将IPv4网络连接到IPv6网络等。此外,网关还常用于智能家居系统中,作为控制中枢来连接和控制各种智能设备。

    综上所述,转发器、网桥、路由器和网关在网络中各自扮演着不同的角色,具有不同的功能和应用场景。了解它们的区别有助于更好地理解和应用这些网络设备。

  • 试简单说明下列协议的作用:IP, ARP 和ICMP。

    以下是IP、ARP和ICMP三种协议的作用的简单说明:

    IP协议

    IP(Internet Protocol)是互联网中最基础的协议之一,主要作用包括:

    1. 寻址和路由:IP协议负责在网络中寻址和路由数据包,将数据包从源主机传输到目标主机。它定义了数据包的格式、寻址方式和路由规则,是互联网通信的基础。

    2. 数据分片和重组:IP协议负责将数据包分割成适合网络传输的小块(分片),并在目标主机上将这些小块重新组合成完整的数据包(重组)。这样可以适应不同网络的传输需求,确保数据能够顺利传输到目标主机。

    3. 数据包交换:IP协议采用数据包交换的方式进行数据传输,不需要建立专门的物理连接。这种数据包交换的方式使得网络能够更加灵活和高效地传输数据。

    4. 支持不同类型网络:IP协议支持不同类型的网络,包括以太网、无线网络、广域网等,使得不同类型的网络能够互相通信和交换数据。

    ARP协议

    ARP(Address Resolution Protocol,地址解析协议)是一种用于将IP地址映射到物理MAC地址的协议。在计算机网络中,每个设备都有一个唯一的MAC地址,用于在局域网内进行数据通信。而IP地址则是用于在更大范围的网络中标识设备的地址。ARP协议的主要作用包括:

    1. IP地址解析:将IP地址解析为MAC地址,以便在局域网内进行数据通信。

    2. 维护ARP表项:维护IP地址与MAC地址的映射关系的缓存,即ARP表项。

    3. 检测重复IP地址:实现网段内重复IP地址的检测,以确保网络中的设备具有唯一的IP地址。

    ICMP协议

    ICMP(Internet Control Message Protocol,互联网控制消息协议)是TCP/IP协议族中的一种协议,用于在IP网络中传输控制和错误信息。ICMP的主要作用包括:

    1. 发送控制信息:在网络上发送控制信息,如回显请求和回显应答,用于测试网络的连通性和性能。

    2. 发送错误信息:传输错误信息,如目的不可达、重定向、超时等,用于指示网络连接中的问题。

    3. 网络诊断和测试:ICMP协议常用于网络诊断和测试,如使用ping命令测试网络的连通性,以及使用traceroute命令跟踪数据包在网络中的路径。

    这些协议共同作用,确保了互联网的正常运行和数据的有效传输。

  • IP 地址如何表示?

    IP地址是给互联网上的每一台主机(或路由器)的每一个接口分配的一个在全世界范围内唯一的标识符。IP地址的表示方法主要与其版本和格式有关,目前主要有IPv4和IPv6两种版本。

    IPv4地址的表示

    IPv4地址由32位二进制数构成,但为了方便人类阅读和使用,它通常以点分十进制的形式表示。具体表示方法如下:

    • 将32位的二进制数分成4组,每组8位。

    • 将每组8位的二进制数转换成一个十进制数。

    • 用点(.)将这四个十进制数连接起来,形成点分十进制的IP地址表示形式。

    例如,一个IPv4地址的二进制形式为11000000.10101000.00000001.00000001,那么它的点分十进制表示形式就是192.168.1.1。

    IPv6地址的表示

    IPv6地址由128位二进制数构成,为了简化表示,它通常以8组十六进制数的形式表示,每组包含16位二进制数(即2个十六进制数)。具体表示方法如下:

    • 将128位的二进制数分成8组,每组16位。

    • 将每组16位的二进制数转换成一个十六进制数(每4位二进制数对应一个十六进制数)。

    • 用冒号(:)将这八个十六进制数连接起来,形成IPv6地址的表示形式。

    例如,一个IPv6地址的二进制形式为00100000:00000000:00000000:00000000:00000000:00000000:00000001:00000001,那么它的十六进制表示形式就是2000::1:1(这里使用了零压缩法,即连续的零可以用双冒号“::”表示)。

    分类的IP地址

    在IPv4地址中,还根据地址的不同用途和范围,将其分为A、B、C、D、E五类。其中A、B、C类地址是单播地址,用于标识单个网络接口;D类地址是多播地址,用于标识一组网络接口;E类地址是保留地址,用于将来可能的用途。

    • A类地址:网络号字段为1个字节,网络号字段的第一位是0,主机号字段为3个字节。其范围是1.0.0.0到126.0.0.0。

    • B类地址:网络号字段为2个字节,网络号字段的前2位是10,主机号字段为2个字节。其范围是128.0.0.0到191.255.0.0。

    • C类地址:网络号字段为3个字节,网络号字段的前3位是110,主机号字段为1个字节。其范围是192.0.0.0到223.255.255.0。

    注意事项

    • 在实际使用中,全0和全1的主机号字段通常有特殊含义,如全0表示本网络地址或本主机地址,全1表示广播地址。

    • 特殊的IPv4地址如127.0.0.1是本地环回地址,用于测试本机的网络协议栈是否正常工作。

    总的来说,IP地址的表示方法与其版本和格式密切相关,了解并掌握这些表示方法对于进行网络通信和故障排除至关重要。

  • IP地址的主要特点是什么?

    IP地址的主要特点可以归纳如下:

    1. 唯一性:每个IP地址在全球范围内是唯一的,这确保了网络中的每个设备都能被准确识别和定位。这种唯一性使得数据包能够正确地从一个设备传输到另一个设备,而不会发生混淆或错误。

    2. 逻辑地址:IP地址是一种逻辑地址,它并不直接对应于物理网络中的任何特定位置或设备。相反,它是由软件实现的,用于在网络层进行数据包的路由和转发。这种逻辑地址的特性使得IP地址可以在不同的物理网络之间灵活地使用和重新分配。

    3. 网络号和主机号:每个IP地址都由网络号和主机号两部分组成。网络号用于标识设备所连接的网络,而主机号则用于标识该网络中的特定设备。这种结构使得网络管理员可以更容易地管理和组织网络中的设备。

    4. 平等性:在IP地址中,所有分配到的网络号的网络都是平等的。无论是广域网还是局域网,它们都被视为平等的网络实体。这种平等性使得数据包可以在不同类型的网络之间自由地传输和交换。

    5. 位置无关性:IP地址本身并不包含有关主机位置的信息。它仅仅是一个标识符,用于在网络中唯一地标识一个设备。因此,即使设备的物理位置发生变化,只要其IP地址保持不变,它仍然可以被网络中的其他设备正确地识别和访问。

    6. 层次性:IP地址的层次性体现在其网络号和主机号的划分上。这种层次性使得网络管理员可以更容易地划分和管理网络中的子网和主机。同时,它也使得数据包在网络中的传输更加高效和有序。

    7. 可变性:虽然IP地址在分配后通常保持不变,但在某些情况下(如设备移动、网络重组等),IP地址可能会发生变化。这种可变性使得网络管理员可以根据需要灵活地重新分配IP地址,以适应网络的变化和发展。

    综上所述,IP地址的主要特点包括唯一性、逻辑地址、网络号和主机号的划分、平等性、位置无关性、层次性以及可变性等。这些特点共同构成了IP地址在网络通信中的基础地位和重要作用。

  • 试说明IP地址与 MAC地址的区别。为什么要使用这两种不同的地址?

    IP地址与MAC地址在网络通信中各自扮演着重要的角色,它们之间存在显著的区别,以下是关于两者区别的详细分析:

    一、IP地址与MAC地址的区别

    1. 地址结构

      • IP地址:采用32位(IPv4)或128位(IPv6)二进制表示,通常使用点分十进制(IPv4)或冒号分隔的十六进制(IPv6)表示。

      • MAC地址:采用48位二进制表示,通常使用冒号分隔的十六进制表示。

    2. 作用范围

      • IP地址:用于在互联网中标识和定位设备,支持跨网络通信。

      • MAC地址:用于在局域网中标识网络适配器(网卡),主要用于局域网内的数据传输。

    3. 分配方式

      • IP地址:通常由互联网服务提供商(ISP)或网络管理员进行分配,可以是动态分配的(如通过DHCP)。

      • MAC地址:由设备制造商在生产过程中分配,每个网络适配器都有一个唯一的MAC地址,且通常不可更改。

    4. 少数性

      • IP地址:在互联网范围内,IP地址的少数性由互联网协议版本(IPv4或IPv6)和分配机构(ISP)共同保证。同一时刻,不同设备之间可以拥有相同的私有IP地址,但在互联网上,每个设备必须拥有唯一的公网IP地址。

      • MAC地址:在局域网内,MAC地址的少数性由设备制造商保证。不同设备具有不同的MAC地址,这样可以确保局域网内不会出现冲突。然而,不同局域网之间的设备可能具有相同的MAC地址,但由于MAC地址在互联网上是不可见的,所以不会产生冲突。

    5. 工作层次

      • IP地址:工作在网络层(第三层)的协议,负责将数据包从源设备路由到目标设备。

      • MAC地址:工作在数据链路层(第二层)的协议,主要用于局域网内部的通信。

    6. 协议使用

      • IP地址:使用Internet Protocol(IP)协议,定义了数据在网络中的传输方式和寻址规则。

      • MAC地址:使用媒体访问控制(Media Access Control,MAC)协议,定义了在局域网中如何访问共享介质和标识网络设备。

    二、使用这两种不同地址的原因

    1. 层次化寻址:网络通信是一个复杂的过程,涉及到多个层次。IP地址在网络层提供逻辑寻址,使得不同网络之间的设备能够相互通信。而MAC地址在数据链路层提供物理寻址,确保在同一局域网内的设备能够直接通信。这种层次化的寻址方式提高了网络通信的效率和灵活性。

    2. 跨网络通信:IP地址的设计使得跨网络通信成为可能。当数据包需要跨越不同的网络时,路由器会根据IP地址来转发数据包。而MAC地址则主要用于局域网内部的通信。因此,同时具备IP地址和MAC地址使得网络设备既能在局域网内高效通信,又能参与跨网络的数据交换。

    3. 灵活性与可扩展性:IP地址的动态分配(如通过DHCP)提供了极大的灵活性。当设备移动到不同的网络时,它可以自动获取新的IP地址,而无需手动配置。同时,IP地址的分层结构也使得网络具有很好的可扩展性。相比之下,MAC地址是固定的,无法满足这种灵活性的需求。

    4. 安全性考虑:在某些情况下,出于安全性考虑,可能需要隐藏或更改设备的MAC地址(例如,在使用公共Wi-Fi时,更改MAC地址可以增加一定的隐私保护)。而IP地址则可以通过网络地址转换(NAT)等技术来实现地址的映射和隐藏。

    综上所述,IP地址与MAC地址在网络通信中各自具有独特的作用和优势。它们共同协作,确保了网络通信的准确性、效率和可靠性。

  • IP地址方案与我国电话号码体制的主要不同点是什么?

    您的回答已经非常详尽地解释了IP地址与MAC地址的区别以及它们在网络通信中的重要作用。以下是对您回答的简要总结,并补充了一些可能的实际应用场景,以进一步加深理解:

    IP地址与MAC地址的区别及作用

    1. 地址结构与表示:

      • IP地址:32位(IPv4)或128位(IPv6),点分十进制(IPv4)或冒号分隔的十六进制(IPv6)表示。

      • MAC地址:48位,冒号分隔的十六进制表示。

    2. 作用范围:

      • IP地址:互联网中标识和定位设备,支持跨网络通信。

      • MAC地址:局域网中标识网络适配器,主要用于局域网内的数据传输。

    3. 分配方式:

      • IP地址:ISP或网络管理员分配,可动态(如DHCP)或静态分配。

      • MAC地址:设备制造商分配,唯一且不可更改(除非硬件更换)。

    4. 少数性:

      • IP地址:互联网上唯一,但私有IP地址可在不同局域网内重复使用。

      • MAC地址:局域网内唯一,不同局域网间可能重复,但不影响通信。

    5. 工作层次:

      • IP地址:网络层(第三层),负责路由数据包。

      • MAC地址:数据链路层(第二层),负责局域网内的数据帧传输。

    6. 协议使用:

      • IP地址:Internet Protocol(IP)协议。

      • MAC地址:Media Access Control(MAC)协议。

    使用这两种地址的原因

    1. 层次化寻址:提高网络通信的效率和灵活性,IP地址负责跨网络通信,MAC地址负责局域网内通信。

    2. 跨网络通信:IP地址使设备能够跨越不同网络进行通信,而MAC地址则确保在局域网内的设备能够直接通信。

    3. 灵活性与可扩展性:IP地址的动态分配提供了灵活性,使设备能够轻松适应不同的网络环境。同时,IP地址的分层结构使网络具有很好的可扩展性。

    4. 安全性考虑:在某些情况下,隐藏或更改MAC地址可以增加隐私保护,而IP地址则可以通过NAT等技术实现地址的映射和隐藏。

    实际应用场景

    • IP地址:

      • 当你在浏览器中访问一个网站时,你的设备会向DNS服务器发送一个查询请求,以获取该网站的IP地址。然后,你的设备会使用这个IP地址与网站服务器建立连接,并发送HTTP请求以获取网页内容。

      • 在企业网络中,网络管理员可能会使用静态IP地址来配置服务器或关键网络设备,以确保它们始终具有相同的IP地址,从而便于管理和访问。

    • MAC地址:

      • 当你的设备连接到局域网时,它会向网络中的交换机发送一个ARP(地址解析协议)请求,以获取目标设备的MAC地址。交换机会根据ARP表或广播ARP请求来找到目标设备的MAC地址,并将数据帧发送到目标设备。

      • 在一些安全敏感的场景中,如企业网络或公共Wi-Fi,管理员可能会使用MAC地址过滤来限制哪些设备可以连接到网络。只有具有特定MAC地址的设备才能被允许访问网络。

    综上所述,IP地址和MAC地址在网络通信中各自扮演着重要的角色,它们共同协作以确保网络通信的准确性、效率和可靠性。了解它们的区别和作用对于理解网络通信的机制和优化网络性能至关重要。

  • IP数据报中的首部检验和并不检验数据报中的数据。这样做的最大好处是什么?坏处是什么?

    IP数据报中的首部检验和并不检验数据报中的数据,这一设计有其特定的好处和坏处。

    最大好处

    提高转发效率和减少计算工作量

    • IP数据报的首部检验和主要用于确保数据报头部的完整性,而不涉及数据部分。由于头部信息对于数据报的路由和传输至关重要(如源地址、目的地址、协议类型等),因此确保其正确性至关重要。

    • 不检验数据部分可以显著减少计算工作量,因为数据部分可能非常庞大,而头部信息则相对固定且较小。这样可以加快数据报的转发速度,提高网络的整体效率。

    坏处

    数据部分错误不能及时发现

    • 由于IP数据报的首部检验和不检验数据部分,因此如果数据部分在传输过程中发生错误,这种错误将不会被及时检测到。这可能导致接收方接收到错误的数据,而发送方和中间路由器可能无法意识到这一点。

    • 数据部分的错误可能需要由更高层的协议(如传输层的TCP)来检测和纠正。这增加了上层协议的复杂性,并可能导致额外的延迟和开销。

    总结

    IP数据报中的首部检验和不检验数据部分的设计,旨在提高网络转发的效率和减少计算工作量。然而,这种设计也带来了数据部分错误不能及时发现的问题。在实际应用中,需要权衡这些利弊,并根据具体的应用场景和需求来选择合适的网络协议和传输策略。例如,在需要高可靠性和数据完整性的场景中,可能会选择使用具有更强错误检测和纠正能力的协议(如TCP),而在对实时性和效率要求更高的场景中,则可能会选择使用IP等更轻量级的协议。

  • 当某个路由器发现一个IP数据报的检验和有差错时,为什么采取丢弃的办法而不是要求源站重传此数据报?计算首部检验和为什么不采用CRC检验码?

    当某个路由器发现一个IP数据报的检验和有差错时,采取丢弃的办法而不是要求源站重传此数据报,以及计算首部检验和不采用CRC检验码的原因,主要可以从以下几个方面来解释:

    为什么采取丢弃的办法?

    1. 源地址可能错误:IP首部中的源地址是数据报路由的重要依据。如果源地址错误,那么请求错误的源地址重传数据报是没有意义的,因为无法找到正确的源站。

    2. 网络效率考虑:在网络通信中,路由器的主要任务是快速转发数据报。如果路由器发现检验和有差错就要求源站重传,那么会增加网络的延迟和负载,降低网络的效率。而采取丢弃的办法可以迅速处理错误数据报,避免对网络资源造成进一步的影响。

    为什么不采用CRC检验码?

    1. 计算复杂度:CRC检验码需要使用多项式除法进行计算,逐站使用代价较高。而IP数据报在网络中传输时,需要经过多个路由器和交换机,如果每个节点都使用CRC检验码进行校验,那么会大大增加网络的计算负担。

    2. 时间消耗:利用CRC检验码进行校验需要消耗较多的路由器系统时间。而IP数据报的传输对实时性有一定要求,如果因为校验而消耗过多时间,那么会影响数据的传输效率。因此,为了节省时间,IP数据报的首部检验和不采用CRC检验码。

    3. 简化计算:IP数据报的首部检验和主要目的是确保头部信息的完整性,而不是对数据进行全面的错误检测。因此,采用一种相对简单且高效的校验方法即可满足需求。而CRC检验码虽然具有较高的错误检测能力,但其计算复杂度也相对较高。因此,在IP数据报的首部检验和中不采用CRC检验码,而是采用一种更简单的校验方法(如反码求和取反)。

    综上所述,当路由器发现IP数据报的检验和有差错时,采取丢弃的办法可以提高网络的效率和可靠性;而不采用CRC检验码则是为了降低计算复杂度、节省时间并简化计算过程。这些设计都是为了更好地适应网络通信的需求和特点。

  • 什么是最大传送单元MTU?它和IP数据报首部中的哪个字段有关系?

    最大传送单元MTU(Maximum Transmission Unit)是数据链路层帧格式中规定的数据字段最大长度。具体来说,当IP数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过该帧格式所规定的MTU值。

    MTU和IP数据报首部中的“总长度”字段有关系。IP数据报的首部中包含多个字段,其中“总长度”字段表示的是IP数据报的总长度,包括首部长度和数据长度。当IP数据报的总长度超过数据链路层所规定的MTU值时,就需要对IP数据报进行分片,以确保每个分片都能通过数据链路层进行传输。因此,MTU限制了IP数据报在封装成链路层帧时的最大长度,而IP数据报首部中的“总长度”字段则用于指示这个长度是否超过了MTU的限制。

    在实际应用中,不同的网络设备和网络协议可能会有不同的MTU值。例如,以太网的MTU通常为1500字节。如果IP数据报的总长度超过了MTU值,那么就需要在发送端进行分片处理,将数据报分成多个较小的分片进行传输,然后在接收端再重新组装成完整的IP数据报。这一过程增加了网络传输的复杂性和开销,因此在实际应用中需要尽量避免IP数据报的总长度超过MTU值。

  • 在互联网中将IP数据报分片传送的数据报在最后的目的主机进行组装。还可以有另一种做法,即数据报片通过一个网络就进行一次组装。试比较这两种方法的优劣。

    在互联网中,将IP数据报分片传送并在最后的目的主机进行组装,与数据报片通过一个网络就进行一次组装,这两种方法各有其优劣。

    在最后的目的主机进行组装

    优势

    • 开销较小:对于所传数据报来讲,仅需要进行一次分段和一次组装,因此分段和组装的开销相对较小。

    劣势

    • 时间开销大:如果主机在最终组装时发现分组丢失,则整个数据报需要重新传输,这会导致较大的时间开销。

    • 网络性能影响:由于需要在目的主机进行组装,如果分片数量较多,可能会占用目的主机的较多资源,影响网络性能。

    数据报片通过一个网络就进行一次组装

    优势

    • 及时重传:若通过一个网络后组装时发现分段丢失,可以及时地重传数据报,时间开销相对较小,同时提高了传输的可靠性。

    • 减少目的主机负担:由于在网络中就进行了组装,因此减少了目的主机的组装负担和资源消耗。

    劣势

    • 开销较大:分段和组装的次数要由各个网络所允许的最大数据报长度来决定,因此分段和组装的开销相对较大。

    • 性能消耗:频繁的分片和组装可能会增加网络节点的处理负担,影响网络的整体性能。

    综合比较

    • 可靠性:后者在发现分段丢失时可以及时重传,因此在可靠性方面表现更优。

    • 效率:前者在分段和组装方面的开销较小,但在丢失分组时需要重新传输整个数据报,可能导致较大的时间开销;而后者虽然分段和组装开销较大,但每次只重传丢失的分段,因此时间开销相对较小。

    • 资源消耗:前者主要消耗目的主机的资源,而后者则可能增加网络节点的资源消耗。

    在实际应用中,可以根据具体场景和需求来选择合适的方法。例如,在需要高可靠性的场景中,可以选择后者;而在对实时性和效率要求较高的场景中,可以考虑前者,但需要在网络设计和配置中采取相应的措施来减少分片的发生和提高传输的可靠性。

  • (1)试解释为什么 ARP高速缓存每存入一个项目就要设置10~20分钟的超时计时器。这个时间设置得太长或太短会出现什么问题?

    ARP(地址解析协议)高速缓存用于存储局域网内各网络设备的IP地址到其对应物理地址(MAC地址)的映射关系。每当ARP高速缓存存入一个新的项目时,会为该项目设置一个10到20分钟的超时计时器。这一设计有其特定的原因和考虑:

    设置超时计时器的原因

    1. 保持缓存的时效性:网络设备的物理地址可能会发生变化(例如,设备被替换或重新配置)。设置超时计时器可以确保缓存中的信息不会永久有效,从而允许设备在物理地址变化后能够更新其ARP缓存。

    2. 节省缓存空间:ARP缓存的空间是有限的。通过为每个项目设置超时计时器,当项目过期且不再被需要时,它们可以从缓存中被删除,从而为新的项目腾出空间。

    3. 减少网络流量:如果ARP缓存中的信息一直有效,那么设备在需要与其他设备通信时可能不会发送ARP请求来查询对方的物理地址。然而,这可能会导致在设备物理地址发生变化后,通信仍然尝试使用旧的物理地址,从而导致通信失败。通过设置超时计时器,可以确保设备在必要时能够发送ARP请求来更新其缓存中的信息,从而减少因使用过时信息而导致的网络流量。

    时间设置得太长或太短的问题

    • 时间设置得太长

      • 缓存信息过时:如果超时时间设置得太长,那么当网络设备的物理地址发生变化时,其他设备可能需要很长时间才能更新其ARP缓存中的信息。这可能导致通信失败或延迟。

      • 缓存空间浪费:长时间不使用的项目将占据ARP缓存的空间,导致缓存空间被浪费。

    • 时间设置得太短

      • 频繁发送ARP请求:如果超时时间设置得太短,那么设备可能需要频繁地发送ARP请求来查询其他设备的物理地址。这将增加网络的流量和负载。

      • 性能下降:频繁的ARP请求和缓存更新可能会导致设备的性能下降,特别是在网络负载较高的情况下。

    因此,ARP高速缓存的超时计时器设置需要权衡这些因素,以确保缓存的时效性、节省空间以及减少网络流量和性能影响。10到20分钟的时间范围通常被认为是一个合理的折衷。

    (2)举出至少两种不需要发送ARP请求分组的情况(即不需要请求将某个目的PP地址解析为相应的 MAC 地址)。

    在以下两种情况下,不需要发送ARP(地址解析协议)请求分组来将某个目的IP地址解析为相应的MAC地址:

    1. 源主机的ARP高速缓存中已经有了该目的IP地址的项目

      • 当源主机需要向某个目的IP地址发送数据时,它会首先检查自己的ARP高速缓存。如果缓存中已经存在该目的IP地址对应的MAC地址,那么源主机就可以直接使用该MAC地址来封装数据帧,而无需发送ARP请求分组。

    2. 源主机和目的主机使用点对点链路

      • 在点对点链路中,源主机和目的主机之间只有一条直接的物理连接。在这种情况下,源主机通常已经知道了目的主机的MAC地址(例如,在链路建立时通过某种协议或配置获取)。因此,当源主机需要向目的主机发送数据时,它可以直接使用已知的MAC地址来封装数据帧,而无需发送ARP请求分组。

    需要注意的是,除了以上两种情况外,还有其他一些特殊情况也可能不需要发送ARP请求分组。例如,在某些网络协议或配置中,可能使用了静态ARP表或类似机制来预先配置IP地址和MAC地址的映射关系。在这种情况下,源主机也可以直接使用这些预配置的映射关系来封装数据帧。然而,这些特殊情况相对较为少见,并且通常依赖于特定的网络环境和配置。

  • 主机A发送IP数据报给主机B,途中经过了5个路由器。试问在P数据报的发送过程中总共使用了几次 ARP?

    在主机A发送IP数据报给主机B的过程中,如果途中经过了5个路由器,那么总共会使用6次ARP(地址解析协议)。

    具体来说:

    1. 主机A发送数据时:主机A需要知道第一个路由器(即默认网关)的MAC地址。由于主机A的ARP缓存中可能不包含该路由器的MAC地址,因此主机A需要发送一个ARP请求来获取它。这是第一次使用ARP。

    2. 每个路由器转发数据时:当第一个路由器接收到来自主机A的IP数据报时,它会检查数据报的目的IP地址,并确定下一个路由器(或目的主机B,如果数据报已经到达最终网络)。为了将数据报转发给下一个路由器,第一个路由器需要知道该路由器的MAC地址。同样地,如果第一个路由器的ARP缓存中不包含该路由器的MAC地址,它会发送一个ARP请求来获取它。这是第二次使用ARP。

    类似地,每个后续的路由器在转发数据报时都需要知道下一个路由器的MAC地址,并可能需要发送ARP请求来获取它(如果其ARP缓存中不包含该信息)。

    1. 直至数据报到达主机B:当数据报到达最终网络并准备发送给主机B时,最后一个路由器需要知道主机B的MAC地址。如果最后一个路由器的ARP缓存中不包含主机B的MAC地址,它会发送一个ARP请求来获取它。这是第六次使用ARP(假设前面的路由器都没有缓存到相关MAC地址,都需要发送ARP请求)。

    需要注意的是,如果某个路由器或主机已经在其ARP缓存中存储了所需的MAC地址(例如,由于之前的通信或静态配置),则它不会再次发送ARP请求。然而,在这个问题中,我们假设每个路由器和主机在开始时都不知道彼此的MAC地址,因此每次都需要发送ARP请求来获取它。

    综上所述,在主机A发送IP数据报给主机B的过程中,如果途中经过了5个路由器,并且每个路由器和主机在开始时都不知道彼此的MAC地址,那么总共会使用6次ARP。

  • IGP 和EGP 这两类协议的主要区别是什么?

    IGP(内部网关协议)和EGP(外部网关协议)是两类用于在不同网络范围内进行路由信息交换的协议。它们的主要区别体现在以下几个方面:

    一、定义与范围

    1. IGP

      • 全称:Interior Gateway Protocol(内部网关协议)。

      • 定义:在一个自治系统(Autonomous System,AS)内部使用的路由选择协议。

      • 范围:仅限于自治系统内部,与互联网中其他自治系统使用的路由选择协议无关。

    2. EGP

      • 全称:External Gateway Protocol(外部网关协议)。

      • 定义:用于不同自治系统之间交换路由信息的协议。

      • 范围:涉及多个自治系统,处理连接到不同自治系统的边界路由器之间的路由信息。

    二、目的与功能

    1. IGP

      • 主要目的:在单一自治系统内提供内部路由信息。

      • 功能:确保自治系统内的路由器能够相互通信,并找到最佳路径以传输数据。

    2. EGP

      • 主要目的:在不同自治系统之间传递路由信息,使得数据包能够跨越不同的自治系统。

      • 功能:允许自治系统之间的路由器交换路由信息,以便数据包能够正确地从一个自治系统传输到另一个自治系统。

    三、使用情境与特点

    1. IGP

      • 使用情境:通常用于小到中型网络,用于管理自治系统内部的路由信息。

      • 特点:

        • 形成一个层次结构,如OSPF使用区域,EIGRP使用自治系统内部的可达性信息。

        • 追求最佳路由,确保数据包在自治系统内部能够高效地传输。

    2. EGP

      • 使用情境:通常用于更大规模的网络,涉及多个自治系统。

      • 特点:

        • 更加平等,不涉及类似的层次结构。

        • 允许外部网关只通告在网关自治系统内完全可到达的目的网络,对外部网关加以限制。

        • 早期是主要的自治系统间路由协议,但随着时间的推移,逐渐被BGP(Border Gateway Protocol)所取代。

    四、协议示例

    1. IGP

      • 常见的IGP协议包括RIP(Routing Information Protocol,路由信息协议)、OSPF(Open Shortest Path First,开放最短路径优先)和EIGRP(Enhanced Interior Gateway Routing Protocol,增强型内部网关路由协议)。

    2. EGP

      • 早期的EGP版本较为简单,存在很多局限性,如不支持循环拓扑结构等。

      • 随着时间的发展,EGP逐渐被BGP所取代,BGP成为当前广泛使用的自治系统间路由协议。

    综上所述,IGP和EGP在定义、范围、目的、功能、使用情境和特点等方面存在显著差异。它们分别解决了自治系统内部和自治系统间的路由信息交换问题,并在不同规模和范围的网络环境中发挥着重要作用。

  • 试简述 RIP,OSPF和BGP路由选择协议的主要特点。

    RIP、OSPF和BGP是三种不同的路由选择协议,它们各自具有独特的主要特点。以下是对这三种协议主要特点的简述:

    RIP(路由信息协议)

    1. 基于距离向量:

      • RIP是一种基于距离向量的路由选择协议,它使用“跳数”作为度量标准来衡量到达目标网络的距离。

    2. 简单性:

      • RIP协议相对简单,易于配置和管理,适用于小型网络。

    3. 广播更新:

      • RIP路由器通过广播方式向相邻路由器发送路由更新信息,所有收到信息的路由器都会更新其路由表。

    4. 定期更新:

      • RIP路由器按照固定的时间间隔(如30秒)发送路由更新信息,以确保路由表的时效性。

    5. 限制:

      • RIP协议的最大跳数限制为15跳,超过此限制的网络被认为不可达。

      • 不支持VLSM(可变长子网掩码)和CIDR(无类别域间路由)。

    OSPF(开放最短路径优先)

    1. 基于链路状态:

      • OSPF是一种基于链路状态的路由选择协议,它使用链路状态信息来计算最短路径。

    2. 洪泛更新:

      • OSPF路由器通过洪泛方式向自治系统内的所有路由器发送链路状态信息,确保所有路由器都能获得完整的网络拓扑信息。

    3. 快速收敛:

      • 当网络拓扑发生变化时,OSPF能够迅速检测到并重新计算最短路径,实现快速收敛。

    4. 支持多路径:

      • OSPF支持多路径选择,可以根据网络负载情况动态调整路由。

    5. 区域划分:

      • OSPF支持将网络划分为多个区域,以减少路由更新的范围和提高网络的可扩展性。

    6. 安全性:

      • OSPF支持密码认证和区域划分,可以保护网络的安全性。

    BGP(边界网关协议)

    1. 自治系统间路由:

      • BGP是一种用于自治系统之间交换路由信息的协议,它允许不同自治系统的路由器之间共享路由信息。

    2. 路径向量:

      • BGP采用路径向量路由选择协议,它考虑AS路径来选择最佳路由。

    3. 策略控制:

      • BGP允许网络管理员根据策略来控制路由的选择和流量的调度。

    4. 可扩展性:

      • BGP具有高度可扩展性,能够支持大型网络和复杂的路由策略。

    5. 增量更新:

      • BGP使用增量更新方式,仅当路由信息发生变化时才发送更新信息,减少了网络带宽的占用。

    6. 多路径选择:

      • BGP也支持多路径选择,可以根据网络负载和策略动态调整路由。

    综上所述,RIP、OSPF和BGP各自具有不同的特点和适用场景。RIP适用于小型网络,具有简单性和易配置性;OSPF适用于大型企业网络和ISP网络,具有快速收敛、多路径选择和安全性等优点;BGP则适用于自治系统之间的路由选择,具有高度可扩展性、策略控制和流量调度等功能。

  • RIP使用UDP,OSPF使用P,而BGP使用TCP。这样做有何优点?为什么RIP周期性地和邻站交换路由信息而 BGP却不这样做?

    RIP使用UDP、OSPF使用IP(更准确地说是OSPF直接使用IP报文封装其协议数据单元而不依赖特定的传输层协议)、BGP使用TCP,这些选择以及RIP周期性地和邻站交换路由信息与BGP不这样做的原因,均源于它们各自的设计目标和网络环境的适应性。以下是对这些优点的详细分析:

    RIP使用UDP的优点

    • 开销小:UDP是一种无连接的协议,不需要建立和维护连接状态,因此开销较小。这对于资源有限的网络设备和环境尤为重要。

    • 满足RIP要求:RIP协议本身的设计相对简单,主要关注于相邻路由器之间的路由信息交换。使用UDP可以满足这种基于距离向量的路由协议的基本需求。

    OSPF使用IP的优点

    • 灵活性和开销小:OSPF作为一种基于链路状态的路由协议,需要频繁地交换链路状态信息以构建完整的网络拓扑图。直接使用IP报文封装其协议数据单元,可以避免额外的传输层开销,同时提供足够的灵活性来适应不同的网络环境和需求。

    • 避免传输层延迟:由于OSPF需要快速收敛和准确反映网络拓扑的变化,使用IP可以避免传输层可能引入的额外延迟。

    BGP使用TCP的优点

    • 可靠交付:TCP是一种面向连接的协议,具有可靠交付的特性。BGP作为自治系统间的路由协议,需要携带大量的路由信息,并确保这些信息能够准确无误地传输到对端。使用TCP可以提供这种可靠性保障。

    • 减少带宽消耗:通过TCP的可靠交付机制,BGP可以减少因信息丢失或错误而导致的重复传输,从而节省带宽资源。

    RIP周期性地和邻站交换路由信息的原因

    • 确保路由信息的一致性:RIP采用周期性广播路由信息的方式,以确保所有路由器的路由表能够保持一致性。当网络拓扑发生变化时,这种周期性的更新机制可以确保路由器能够及时发现并更新路由信息。

    • 适应小型网络环境:在小型网络环境中,RIP的周期性更新机制相对简单且有效。由于网络规模较小,路由器之间的通信延迟和带宽消耗相对较低,因此这种更新机制是可行的。

    BGP不这样做的原因

    • 避免不必要的开销:BGP不需要周期性地和邻站交换路由信息,因为它采用了基于TCP的可靠交付机制。这种机制可以确保路由信息的准确无误地传输,而无需通过周期性的更新来确认信息的有效性。

    • 适应大型网络环境:在大型网络环境中,BGP需要处理大量的路由信息和复杂的路由策略。如果采用周期性的更新机制,将会导致巨大的通信开销和延迟。因此,BGP采用了基于事件驱动的更新机制,只在路由信息发生变化时才进行更新。

    综上所述,RIP、OSPF和BGP在选择传输层协议和更新机制时,均充分考虑了各自的设计目标和网络环境的适应性。这些选择使得它们能够在不同的网络环境中发挥最佳的性能和效果。

  • IGMP协议的要点是什么?隧道技术在多播中是怎样使用的?

    IGMP(Internet Group Management Protocol,网际组管理协议)和隧道技术是多播通信中的关键组成部分。以下是关于IGMP协议的要点以及隧道技术在多播中的使用方式的详细解释:

    IGMP协议的要点

    1. 多播通信的支持:

      • IGMP是用来进行多播的协议,采用多播协议可以明显地减轻网络中各种资源的消耗。IP多播实际上只是硬件多播的一种抽象,它允许数据从一个源点同时发送到多个目的地。

    2. 分组类型:

      • IGMP只有两种分组,即询问分组(Query)和响应分组(Report)。询问分组由多播路由器发送,用于询问本地网络上的主机是否加入了某个多播组;响应分组由主机发送,用于响应路由器的询问,表明自己加入了某个多播组。

    3. 协议层次:

      • IGMP属于整个网际协议IP的一个组成部分,也是TCP/IP协议栈中的一个标准协议。它使用IP数据报传递其报文,即IGMP报文加上IP首部构成IP数据报,但它也向IP提供服务。

    4. 工作范围:

      • IGMP并非在互联网范围内对所有多播组成员进行管理的协议。它的作用范围局限于本地局域网,用于让连接在本地局域网上的多播路由器知道本局域网上是否有主机参加或退出了某个多播组。

    5. 动态管理:

      • IGMP协议能够动态地管理多播组成员关系。当主机加入或离开多播组时,它会通过发送IGMP报文来通知多播路由器。多播路由器则根据这些信息来更新其路由表,以确保多播数据能够准确地发送到所有组成员。

    隧道技术在多播中的使用

    1. 应用场景:

      • 隧道技术适用于多播组的位置在地理上很分散的情况,或者当多播数据需要在不支持多播的网络中传输时。例如,当两个支持多播的网络之间通过一个不支持多播的网络相连时,就需要使用隧道技术来传输多播数据。

    2. 工作原理:

      • 在多播中使用隧道技术时,多播路由器会对多播数据报进行再次封装,即加上一个普通数据报的首部,使之成为一个向单一目的站发送的单播数据报。这个封装后的单播数据报可以通过不支持多播的网络传输到另一个多播路由器。

      • 当单播数据报到达目的多播路由器时,该路由器会剥去其首部,恢复成原来的多播数据报,并继续向多个目的站转发。

    3. 优点:

      • 隧道技术使得多播数据能够在不支持多播的网络中传输,从而扩大了多播通信的应用范围。同时,它还能够保证多播数据的完整性和准确性,确保数据能够准确地发送到所有组成员。

    综上所述,IGMP协议和隧道技术是多播通信中的重要组成部分。IGMP协议用于动态地管理多播组成员关系,确保多播数据能够准确地发送到所有组成员;而隧道技术则使得多播数据能够在不支持多播的网络中传输,从而扩大了多播通信的应用范围。

  • 什么是 VPN?VPN有什么特点和优缺点?VPN有几种类别?

    什么是VPN

    VPN是Virtual Private Network(虚拟专用网络)的缩写,它是一种通过公共网络(例如互联网)创建私密连接的技术。当用户连接到VPN时,VPN客户端会在用户计算机和VPN服务器之间建立一个加密的连接,这个连接被称为VPN隧道。该隧道通过使用加密协议(如OpenVPN、IPSec等)将用户的数据包加密,确保数据在传输过程中的安全性。

    VPN的特点

    1. 安全保障:VPN使用加密技术来保护用户的网络流量,防止数据在传输过程中被窃取或篡改。

    2. 服务质量保证(QOS):VPN网络可以为企业数据提供不同等级的服务质量保证,以满足不同业务对服务质量的需求。

    3. 可扩充性和灵活性:VPN能够支持通过Intranet和Extranet的任何类型的数据流,方便增加新的节点,并支持多种类型的传输介质。

    4. 可管理性:从用户角度和运营商角度,VPN都可以方便地进行管理、维护和反馈。

    VPN的优缺点

    优点

    1. 提高网络安全性:VPN使用加密技术,可以保护用户的网络流量免受黑客的窃取和篡改。

    2. 增强隐私保护:VPN可以隐藏用户的真实IP地址,增强用户的网络隐私和匿名性。

    3. 绕过地理限制:通过连接到位于其他地理位置的服务器,用户可以绕过地理限制访问受限制的网站、流媒体内容或服务。

    4. 降低网络通信成本:VPN可以在公共网络上建立私密的通信管道,从而降低网络通信成本。

    5. 支持远程办公:员工可以通过VPN连接到公司内部网络,远程访问公司资源,方便协同办公。

    缺点

    1. 速度下降:由于VPN需要加密和解密数据,用户的网速可能会受到影响。尤其是在连接到远程服务器时,延迟和速度下降的问题更为明显。

    2. 法律和政策风险:在一些国家,使用VPN可能是违法的,或者受到严格的监管。用户在使用VPN时,需了解所在国家的法律法规,以免触犯相关规定。

    3. 隐私风险:并非所有VPN服务提供商都能提供真正的隐私保护。一些VPN可能会记录用户的活动数据,甚至将这些数据出售给第三方。因此,选择一个值得信赖的VPN服务非常重要。

    VPN的类别

    根据使用的协议和实现方式,VPN可以分为多种类型,常见的有以下几种:

    1. 远程访问VPN:用于连接远程用户与企业内部网络之间的安全通信。远程用户可以通过公共网络访问私有网络资源,同时数据传输通过加密和隧道技术保证安全性。

    2. 网站对网站VPN(也被称为站点对站点VPN):用于连接不同地点的局域网(LAN)或企业网络。它使得多个办事处或分公司的网络能够相互连接,实现数据的安全共享。

    3. 个人VPN:在公共网络上为个人用户提供安全和匿名上网服务的VPN。个人VPN通常通过加密技术保护用户的网上活动,并隐藏用户的真实IP地址,提供更高的隐私保护。

    综上所述,VPN作为一种通过公共网络创建私密连接的技术,在提高网络安全性、增强隐私保护、绕过地理限制等方面具有显著优势。然而,用户在使用VPN时也需要注意其可能带来的速度下降、法律和政策风险以及隐私风险等问题。在选择VPN服务时,应谨慎考虑其安全性、稳定性和信誉度等因素。

  • 什么是NAT?什么是NAPT?NAT的优点和缺点有哪些?NAPT有哪些特点?

    NAT

    NAT(Network Address Translation,网络地址转换)是一种将私有网络地址(如局域网内部地址)转换成公共网络地址(如互联网地址)的技术。它通常用于连接私有网络与公共网络之间的路由器上,以实现多台计算机共用一个公网IP地址上网。

    NAT的优点

    1. 节省全球IP地址资源:通过NAT,一个全球合法的IP地址可以被多台专用网内部主机分享使用,从而有效地节省了IP地址资源。

    2. 提高网络安全性:NAT可以在一定程度上隐藏内部网络的真实IP地址,使得外部网络难以直接攻击内部网络。同时,NAT还可以配合防火墙等安全设备,进一步提高网络的安全性。

    NAT的缺点

    1. 破坏端到端通信原则:由于地址转换,源和目标之间的直接IP级通信被打破,这可能导致某些需要端到端通信的应用程序出现问题。

    2. 某些应用的兼容性问题:某些应用程序期望能够访问原始IP地址或需要端到端的通信,可能会在NAT环境中遇到问题。例如,一些P2P(点对点)文件共享和视频流等应用程序可能会受到NAT的限制。

    3. 难以跟踪和日志记录:由于多个设备可能共享一个公共IP地址,这使得外部监视和日志记录变得复杂。当需要追踪某个特定设备的网络活动时,可能会遇到困难。

    4. 引入延迟:尽管这种延迟通常很小,但NAT处理和转换过程可能会引入一些额外的延迟,影响网络的响应速度。

    5. 限制并发连接数:NAT设备需要跟踪每个活动连接,如果连接数量太多,可能会耗尽NAT表的资源,从而限制并发连接数。

    NAPT

    NAPT(Network Address and Port Translation,网络地址与端口号转换)是一种在NAT的基础上进一步对TCP或UDP端口号进行转换的技术。它将应用上升到传输层,工作范围已经涉及到传输层的范畴。

    NAPT的特点

    1. 同时转换地址和端口:NAPT在转发IP数据报时,不仅转换IP地址,还转换端口号。对于出专用网的数据,NAPT将专用网内不同的源IP地址转换为同样的全球IP地址,并将源主机端口号转换为不同的新的端口号。对于入专用网的应答,NAPT根据不同的目的端口号从NAPT转换表中找到正确的目的主机。

    2. 适用于公网地址数量少、私网用户数量大的场景:由于NAPT可以允许多个内部计算机共享一个公共IP地址,并通过不同的端口号进行区分,因此它特别适用于公网地址数量有限而需要上网的私网用户数量较大的场景。

    综上所述,NAT和NAPT都是重要的网络地址转换技术,它们在网络通信中发挥着重要的作用。然而,它们也各自存在一些优缺点和限制条件,需要根据具体的网络环境和需求进行选择和配置。

  • 建议的IPv6协议没有首部检验和。这样做的优缺点是什么?

    IPv6协议建议没有首部检验和,这一设计的优缺点如下:

    优点

    1. 提高安全性:

      • 取消首部检验和意味着攻击者无法通过篡改数据包来伪造或篡改数据,因为检验和的缺失使得篡改后的数据包更容易被网络层识别为无效,从而被丢弃。这在一定程度上增强了网络的安全性。

    2. 简化处理过程:

      • 路由器在处理数据包时,不需要进行额外的检验和计算,从而降低了处理延迟,提高了转发效率。

    3. 提高传输效率:

      • 没有首部检验和的数据包大小更小,这有助于减少网络中的数据传输量,提高传输效率。

    4. 减少网络拥塞:

      • 较小的数据包大小减少了网络拥塞的可能性,因为每个数据包占用的网络资源更少,网络能够更高效地处理更多的数据包。

    缺点

    1. 降低错误检测能力:

      • 没有首部检验和意味着路由器无法检测到数据包在传输过程中是否发生了错误。这可能导致数据传输的不稳定性,因为错误的数据包可能会被错误地接收和处理。

    2. 增加攻击面:

      • 虽然取消首部检验和提高了安全性,但同时也增加了攻击面。攻击者可能利用这一漏洞进行更复杂的网络攻击,如中间人攻击等。然而,这并非直接由取消首部检验和引起,而是由于IPv6协议的其他特性或实现方式可能存在的漏洞所致。

    3. 兼容性问题:

      • 在IPv4向IPv6过渡期间,可能存在兼容性问题。由于IPv6协议没有首部检验和,而IPv4协议有,这可能导致一些基于IPv4的应用或服务在IPv6环境下无法正常工作。然而,这并非由取消首部检验和本身直接引起,而是由于协议差异和过渡策略所致。

    综上所述,IPv6协议没有首部检验和的设计在提高安全性、简化处理过程、提高传输效率和减少网络拥塞方面具有显著优势。然而,这也带来了一些挑战,如降低错误检测能力、增加攻击面和兼容性问题等。因此,在实施IPv6协议时,需要综合考虑这些优缺点,并采取相应的措施来应对潜在的风险和挑战。

  • 在IPv4 首部中有一个“协议”字段,但在IPv6的固定首部中却没有。这是为什么?

    在IPv4首部中有一个“协议”字段,但在IPv6的固定首部中却没有,这主要是由于IPv6协议的设计者对首部字段进行了简化和优化。

    IPv4的“协议”字段长度为8位,用来指明IPv4数据报的数据载荷是何种协议数据单元(PDU)。这意味着,当IPv4数据包被路由器转发时,路由器需要根据这个字段来确定下一步应该将数据包传递给哪个协议进行处理。

    然而,在IPv6中,设计者采用了更为灵活和可扩展的方式来实现这一功能。IPv6使用了一个称为“下一代协议”(Next Header)的字段来指示下一层协议的类型。这个字段也位于IPv6的头部中,但其位置和功能与IPv4的“协议”字段有所不同。IPv6的下一代协议字段可以指示任何类型的协议,包括IP协议、UDP协议、TCP协议、ICMP协议等。这种设计能够更好地支持未来的协议扩展和创新。

    此外,IPv6的头部字段相对于IPv4更加简洁。IPv6去除了IPv4中一些不常用或可选的字段,如头部校验和、总长度、标识、标志和片偏移等,使得IPv6的头部更加紧凑和高效。这种设计减少了路由器的处理开销,提高了网络性能。

    因此,虽然IPv6的固定首部中没有“协议”字段,但其通过引入下一代协议字段来实现了更为灵活和可扩展的协议指示功能。这种设计使得IPv6能够更好地适应未来网络技术的发展和创新。

  • 当使用 IPv6 时,协议 ARP 是否需要改变?如果需要改变,那么应当进行概念性的改变还是技术性的改变?

    当使用IPv6时,ARP(地址解析协议)确实需要改变。以下是对这一问题的详细分析:

    一、为何需要改变ARP

    1. IPv6地址长度增大:IPv6地址的长度为128位,远大于IPv4的32位。因此,在IPv6环境中,将IPv6地址映射到物理地址(如MAC地址)的过程与IPv4有所不同。

    2. 协议结构差异:IPv6与IPv4在协议结构上存在显著差异,这导致ARP协议在IPv6中无法直接应用。

    二、改变的性质

    1. 技术性改变:由于IPv6地址长度的增大和协议结构的差异,ARP协议在IPv6中需要进行技术性改变。具体来说,需要设计新的协议来处理IPv6地址与物理地址之间的映射关系。

    2. 概念性保持:虽然ARP协议在IPv6中需要进行技术性改变,但从概念上讲,其目标仍然是实现逻辑地址(如IPv6地址)与物理地址之间的映射。因此,可以说在概念上并没有发生根本性的改变。

    三、IPv6中的替代协议

    在IPv6中,ARP协议已被邻居发现协议(NDP)所替代。NDP不仅实现了ARP协议的功能,还提供了更多的网络功能和服务,如地址解析、地址自动配置、邻居不可达检测等。

    综上所述,当使用IPv6时,ARP协议确实需要改变,并且这种改变主要是技术性的。同时,从概念上讲,虽然ARP的目标在IPv6中仍然适用,但实现方式已经发生了显著变化。在IPv6中,邻居发现协议(NDP)已经取代了ARP协议的地位。

  • IPv6 只允许在源点进行分片。这样做有什么好处?

    IPv6只允许在源点进行分片,这一设计带来了多方面的好处,具体如下:

    1. 简化中间节点处理:

      • 在IPv6中,分片操作被限制在源点进行,这意味着中间路由器无需承担分片任务。这大大简化了中间节点的处理流程,降低了路由器的复杂性和成本。

      • 路由器只需负责转发数据包,而无需进行额外的分片处理,从而提高了路由器的转发效率和稳定性。

    2. 减少路由器开销:

      • 分片与重装是非常耗时的操作。IPv6把这一功能从路由器中删除,并移到网络边缘的主机中,这就可以大大加快网络中IP数据报的转发速度。

      • 降低了路由器的处理负担,减少了因分片操作而引入的延迟和错误概率。

    3. 提升网络性能:

      • 通过在源点进行分片,IPv6能够确保数据包在传输过程中不会因超过链路的MTU(最大传输单元)而被丢弃或重传。

      • 这减少了因分片不当而导致的网络拥塞和丢包现象,提升了网络的整体性能和稳定性。

    4. 优化资源利用:

      • 源点分片允许更灵活地利用网络资源。源节点可以根据路径MTU动态调整分片大小,以适应不同链路的传输要求。

      • 这有助于优化网络带宽的利用,提高数据传输的效率和可靠性。

    5. 增强网络安全性:

      • 在源点进行分片还可以增强网络的安全性。由于分片操作在源点完成,中间路由器无法对数据包进行篡改或插入恶意代码。

      • 这有助于保护数据的完整性和机密性,防止网络攻击和数据泄露。

    综上所述,IPv6只允许在源点进行分片的设计带来了简化中间节点处理、减少路由器开销、提升网络性能、优化资源利用和增强网络安全性等多方面的好处。这些优势使得IPv6能够更好地适应现代网络环境的需求和发展趋势。

  • 从 IPv4 过渡到 IPv6 的方法有哪些?

    从IPv4过渡到IPv6是一个复杂的过程,需要考虑多种因素,包括网络设备、操作系统、应用程序以及用户设备等。以下是从IPv4过渡到IPv6的主要方法:

    一、双栈策略

    双栈策略是指在网元中同时具有IPv4和IPv6两个协议栈。这样,网元既可以接收、处理和发送IPv4的数据分组,也可以接收、处理和发送IPv6的数据分组。对于主机(终端)来说,“双栈”是指其可以根据需要来对业务产生的数据进行IPv4封装或者IPv6封装。

    双栈策略的主要优点是可以实现IPv4和IPv6的共存和互通,同时能够支持已有的网络平滑升级支持IPv6。其实现方式包括使用双栈路由器和双栈主机。双栈路由器同时运行IPv4和IPv6协议栈,可以根据数据流的目的地址来选择使用哪个协议栈进行路由。双栈主机则可以在同一主机上同时使用IPv4和IPv6协议。

    在实施双栈策略时,需要注意选择合适的操作系统和网络设备,以确保它们支持双栈协议。同时,需要确保网络中的所有设备都使用相同的双栈协议版本,以避免出现不兼容的情况。此外,还需要注意网络安全问题,因为同时运行两个协议栈可能会增加安全风险。

    二、隧道策略

    隧道策略是IPv4/v6综合组网技术中经常使用到的一种机制。所谓“隧道”,简单地讲就是利用一种协议来传输另一种协议的数据技术。在隧道策略中,IPv6数据分组被封装在IPv4数据分组中,然后通过IPv4网络进行传输。到达隧道出口(隧道终点)后,IPv4数据分组被解封装,取出里面的IPv6数据分组。

    这种策略可以实现IPv4和IPv6的互通,但需要在隧道的入口维护一些与隧道相关的信息,如记录隧道MTU等参数。隧道策略的实现方式包括使用路由器、交换机和防火墙等网络设备。这些设备需要在IPv4网络中创建一个隧道,用于封装和传输IPv6数据分组。

    隧道策略的优点是可以利用现有的IPv4网络基础设施来传输IPv6数据分组。然而,它也有一些缺点。首先,它需要在隧道的入口和出口处进行封装和解封装操作,这会增加网络延迟和故障风险。其次,隧道策略需要维护一些与隧道相关的信息,这会增加网络管理的复杂性。最后,隧道策略可能会增加网络的带宽消耗,因为需要进行封装和解封装操作的数据分组要比原始数据分组大得多。

    三、协议翻译技术

    协议翻译技术是对IPv6和IPv4报头进行相互翻译,实现IPv4/IPv6协议和地址的转换。这种技术可以解决IPv4地址短缺的问题,但需要实现复杂的协议翻译技术。

    协议翻译技术分为有状态翻译和无状态翻译两种实现方式。有状态翻译是指在进行协议翻译时需要维护状态信息的一种翻译方式。在有状态翻译中,翻译设备需要记录每个连接的状态信息,包括源IP地址、目标IP地址、端口号等。当收到一个数据分组时,翻译设备会根据状态信息将其从IPv4地址转换为IPv6地址或从IPv6地址转换为IPv4地址。有状态翻译的优点是能够实现复杂的协议转换和处理,但需要维护大量的状态信息,增加了实现的复杂度和故障风险。

    无状态翻译则是指在进行协议翻译时不维护状态信息的一种翻译方式。在无状态翻译中,翻译设备不需要记录任何连接的状态信息。当收到一个数据分组时,翻译设备会根据其目标IP地址将其从IPv4地址转换为IPv6地址或从IPv6地址转换为IPv4地址。无状态翻译的优点是不需要维护状态信息,减少了实现的复杂度和故障风险。但是,无状态翻译只能进行简单的协议转换和处理,无法实现复杂的协议转换和处理需求。

    四、其他技术

    除了上述三种主要方法外,还有一些其他技术也可以用于从IPv4过渡到IPv6,如NAT64技术和DNS64技术。

    • NAT64技术通过在IPv6网络的边缘部署NAT64设备,将IPv6流量转换为IPv4流量,实现IPv6网络对IPv4资源的访问。

    • DNS64技术则是一种将IPv6域名解析为IPv4地址的技术,使得IPv6客户端可以通过IPv4地址访问IPv4服务器。

    这两种技术适用于需要访问IPv4资源的IPv6网络环境。

    综上所述,从IPv4过渡到IPv6的方法多种多样,包括双栈策略、隧道策略、协议翻译技术以及NAT64和DNS64技术等。每种方法都有其独特的优势和适用场景,网络管理者可以根据实际需求和网络环境选择合适的过渡策略。

  • 多协议标签交换 MPLS 的工作原理是怎样的?它有哪些主要的功能?

    多协议标签交换(MPLS)是一种在开放的通信网上利用标签引导数据高速、高效传输的新技术。以下是对MPLS工作原理及其主要功能的详细介绍:

    一、MPLS的工作原理

    1. 标签分配与转发等价类(FEC)

      • MPLS将具有相同转发处理方式的分组归为一类,称为转发等价类(FEC)。

      • FEC的划分方式非常灵活,可以是以源地址、目的地址、源端口、目的端口、协议类型或VPN等为划分依据的任意组合。

      • 标签是一个长度固定,仅具有本地意义的短标识符,用于唯一标识一个分组所属的FEC。标签长度为4个字节,包括标签值、优先级(Exp)、栈底标识(S)和生存时间(TTL)等字段。

    2. 标签分发与交换

      • 标签分发协议(LDP)是MPLS的控制协议,负责FEC的分类、标签的分配以及标签转发信息表(LFIB)的建立和维护,以及标签交换路径(LSP)的建立和维护。

      • 在MPLS域中,各标签交换路由器(LSR)使用LDP交换报文,并找出和特定标签相对应的路径,即LSP。

      • 当一个IP数据报进入到MPLS域时,MPLS入口节点(Ingress LER)就给它打上标签(插入一个MPLS首部),并按照转发表把它转发给下一个LSR。以后的所有LSR都按照标签进行转发。

      • 分组每经过一个LSR,LSR就要转发并更换新的标签(将入标签更换为出标签),这称为标签对换。

    3. 标签的移除

      • 当IP数据报离开MPLS域时,MPLS出口节点(Egress LER)就把MPLS的标签去除,把IP数据报交付非MPLS的主机或路由器,以后就按照普通的转发方法进行转发。

    二、MPLS的主要功能

    1. 提高转发速度

      • MPLS通过在网络边缘分析IP报文头,并为其分配固定长度的标签,然后在整个转发过程中,交换节点仅根据标签进行转发,从而节约了处理时间,提高了转发速度。

    2. 支持多种网络协议与业务

      • MPLS不仅可以支持多种网络层层面上的协议(如IPv4、IPv6、IPX等),还可以兼容第二层的多种数据链路层技术(如PPP、ATM、帧中继、以太网等)。

      • MPLS提供了一种方式,将IP地址映射为简单的具有固定长度的标签,用于不同的包转发和包交换技术。

    3. 保证信息传输的安全性

      • MPLS作为一种隧道技术,可以在一定程度上保证信息传输的安全性。通过MPLS建立的VPN可以实现私有网络间数据流在公网上的安全传送。

    4. 实现流量工程与负载均衡

      • MPLS支持基于标签的流量工程,可以根据网络状况和业务需求灵活地选择流量的转发路径。

      • 通过设置不同的FEC和LSP,MPLS可以实现网络的负载均衡,避免某些路径过载。

    5. 提供服务质量(QoS)保证

      • MPLS可以与差分服务(Diff-Serv)相结合,为不同的业务提供不同的服务质量保证。

      • 通过在MPLS标签中携带QoS信息,网络中的节点可以根据这些信息为不同的业务提供相应的服务策略。

    综上所述,MPLS通过标签交换的方式实现了数据的高速、高效传输,并支持多种网络协议与业务。同时,MPLS还具有保证信息传输安全性、实现流量工程与负载均衡以及提供QoS保证等主要功能。

  • SDN 的广义转发与传统的基于终点的转发有何区别?

    SDN(软件定义网络)的广义转发与传统的基于终点的转发之间存在显著的区别,主要体现在以下几个方面:

    一、核心机制与架构差异

    1. SDN广义转发

      • 核心:基于软件定义的网络架构,通过网络功能虚拟化来增强网络的灵活性和可编程性。

      • 实现方式:在SDN中,广义转发通常与OpenFlow等协议相结合。数据层面的分组交换机(如OpenFlow交换机)完成“匹配+动作”的转发过程,其中流表规定了匹配条件和相应的动作。

      • 优点:具有高度的灵活性和可编程性,能够根据业务需求快速调整网络转发策略。

    2. 传统基于终点的转发

      • 核心:依赖于硬件设备的固定转发逻辑,主要通过路由表进行转发决策。

      • 实现方式:传统的路由器或交换机根据IP数据报的目的地址查找路由表,确定下一跳的转发路径。

      • 优点:在简单网络环境中,基于终点的转发具有高效、稳定的特点。

    二、转发策略与灵活性

    1. SDN广义转发

      • 转发策略:可以根据业务需求动态调整流表,实现复杂的转发逻辑。

      • 灵活性:支持多种转发策略,如基于源地址、目的地址、协议类型、端口号等多种字段的匹配和转发。

      • 可编程性:允许网络管理员通过编程方式定义和修改转发策略,提高了网络的灵活性和可扩展性。

    2. 传统基于终点的转发

      • 转发策略:主要依赖于静态路由表,转发策略相对固定。

      • 灵活性:在复杂网络环境中,基于终点的转发可能无法满足多变的业务需求。

      • 可编程性:传统网络设备通常不支持通过编程方式修改转发策略,限制了网络的灵活性和可扩展性。

    三、应用场景与优势

    1. SDN广义转发

      • 应用场景:适用于需要高度灵活性和可编程性的网络环境,如云计算、数据中心、物联网等。

      • 优势:能够快速响应业务需求的变化,实现网络资源的动态优化和配置。

    2. 传统基于终点的转发

      • 应用场景:适用于简单、稳定的网络环境,如小型局域网、企业内网等。

      • 优势:在简单网络环境中具有高效、稳定的特点,且成本相对较低。

    综上所述,SDN的广义转发与传统的基于终点的转发在核心机制、转发策略与灵活性以及应用场景与优势等方面存在显著差异。SDN的广义转发以其高度的灵活性和可编程性,在复杂多变的网络环境中具有显著优势;而传统基于终点的转发则适用于简单、稳定的网络环境。

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐