# 网络层

从源到目标主机进行 packet 的传输。

# 网络层的设计要点

  1. 分组封装 (packetizing/encapsulation).
  2. 路由选择 (routing): 路由协议不全是网络层的协议。
  3. 转发 (forwarding): 偏向动作的描述。
  4. 差错控制 (error control)
  5. QoS 在网络层上加入 virtual layer, 用来解决网络安全问题。

网络层向传输层提供的服务决定其设计要点。其提供的服务应包括以下考虑:

  • 服务应该独立于网络层的路由技术。
  • 应向传输层屏蔽路由相关信息 (路由数量、类型和拓扑关系等)。
  • 传输层的网络地址应存在统一编码方案。

# 存储转发型的分组交换机制

存储转发型的分组交换机制 (Store-and-Forward Packet Switching) 是不同路由器 (router) 的组网连接进行资源调度的机制。其提供两种服务:

  • 无连接的服务 (Connection-less services): 采用数据报 (datagram) 进行数据交换。
    • 是不可靠的网络,会出现失序 (out of order)、丢失 (lost)、错误 (destroyed) 的情况。
    • 其代表是 IP 协议
    • 无连接服务实现的核心是路由算法,有如下特点:
      • 尽最大努力交付 (best effort delivery): 各个
  • 面向连接的服务 (Connection-oriented services): 采用虚电路 (virtual circuit) 进行数据交换。
    • 不会出现失序的情况,因为线路是唯一的。因此可以保障 QoS.
    • 其代表是 X.25, Frame Relay, ATM MPLS.

# 向传输层提供服务的目标

网络层向传输层提供服务包括以下三个目标:

  • 向上提供的服务应该独立于路由器技术
  • 应该向传输层屏蔽路由器的数量、类型和拓扑关系
  • 传输层可用的网络地址应该有一个统一编址方案,甚至可以跨越 LAN 和 WAN.

# 路由算法

路由算法 (routing algorithm) 负责确定一个入境数据包应该被发送到哪一条输出线路上。

# 泛洪算法

# 拥塞控制

# 拥塞控制的概念

当网络中同时出现过多的数据包,导致数据包被延迟或消失,从而降低网络传输效率的情况称为拥塞 (congestion). 网络层传输层承担拥塞控制的主要责任。

拥塞控制不同于流量控制。拥塞控制是对网络整体的控制方式,而流量控制则是点对点的控制。

# 拥塞控制的主要途径

拥塞控制包括如下主要途径:

  • 流量感知的路由 (traffic-aware routing)
  • 准入控制 (admission control)
  • 流量调节 (traffic throttling)
  • 负载脱落 (loading shedding)

# Internet 的网络层

我们主要研究 Internet 网络层的 IPv4 协议。

# IPV4

IPv4 的特点是不可靠,无确认,无连接。只进行数据封装。唯一的优点是协议机制简单。

路由策略:有路则走,无路则丢

引出了 ICMP、IGMP、ARP、DHCP 协议。

# IP 数据报首部结构

IP 数据报的 header 可以分为两部分:长度为 20Bytes固定部分和长度为 1~40Bytes可变部分

# IP 地址

这里说的 IP 地址是 IPV4 的地址。其为 32 位长度的地址。为方便表示,每 8 位为一段采用点隔开,称为点分十进制记法。

# IP 地址分类

IP 地址可以分为 A, B, C, D, E 类地址。

  • A 类地址网络号字段长 8 位,主机号字段长 24 位,首位为 0 , 前 8 位为 0 至 127, 最多容纳 272=1262^7-2 = 126 个网络 (网络号为 0000 00000111 1111 留作他用)。可用的主机号共 22422^{24}-2 个 (全 0 和全 1 的表示网络本身和全体主机)。
  • B 类地址网络号字段长 16 位,主机号字段长 16 位,首位为 10 , 前 8 位为 128 至 191.
  • C 类地址网络号字段长 24 位,主机号字段长 8 位,首位为 110 , 前 8 位为 192 至 224.
  • D 类地址为多播地址,首位为 1110 .
  • E 类地址为保留地址,首位为 1111 .

子网掩码

子网划分使路由表变大了。

无分类的两级编址。

动态分配 IP 地址。

  • 受限广播地址 (limited broadcasting address): 地址形式唯一,为 255.255.255.255 .
  • 直接广播地址 (directed broadcasting address): 网络号有效,主机号全为 1 . 即子网中的最后一个地址,用来使路由器将一个来
    自其他网络的分组以广播方式发送给特定网络上的所有主机。
  • 回送地址 (loopback address): A 类 IP 地址中的 127.0.0.0 是一个保留地址,它即回送地址。用于网络软件测试和本地进程间通信使用。
  • 网络地址:即网络号 (主机号全为 0 ), 是子网的第一个地址。
  • 子网的第一个可用地址:网络地址的后一个地址。
  • 子网的最后一个可用地址:直接广播地址前的一个地址。
  • 子网掩码:网络位全 1 , 主机位全 0 .

# CIDR 技术

# NAT 技术

网络地址转换 (Network Address Translation, NAT) 用来实现网络私有地址和公有地址的转换。

# IPv6

# Internet 控制协议 (路由协议)

# 自治系统

每个网络独立于其它网络运营,因此称为一个自治系统 (Autonomous System, AS).

# ICMP 协议

网际控制报文协议 (Internet Control Message Protocol, ICMP) 用来提高 IP 数据报交付成功的可能。

# DHCP 协议

动态主机配置协议 (Dynamic Host Configuration Protocol, DHCP) 可以实现服务器向客户端动态分配配置信息,提供了即插即用联网 (plug-and-play networking) 的机制。配置信息包括:

  • IP 地址
  • 子网掩码
  • 默认路由器的 IP 地址
  • 域名服务器的 IP 地址

# 网关协议

网关 (gateway) 是路由器的旧称。

域内路由协议又称内部网关协议 (Interior Gateway Protocol, IGP), 域间路由协议又称外部网关协议 (Exterior Gateway Protocol, EGP). 主要的网关协议包括:

  • IGP (内部网关协议)
    • RIP (路由信息协议)
    • OSPF (开放最短路径优先协议)
    • IS-IS (中间系统到中间系统)
    • IGRP (内部网关路由协议)
  • EGP (外部网关协议)
    • BGP (边界网关协议)

# RIP 协议

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

RIP 协议中关于距离的定义和规则如下:

  • 好路由为距离短的路由。最佳路由为距离最短的路由。
  • 一条路径最多只能包含 15 个路由器。
  • 距离的最大值为 16 时即相当于不可达。
  • RIP 不能在两个网络之间同时使用多条路由,只选择距离最短的路由。

RIP 协议的三个特点:

  1. 仅和相邻路由器交换信息。
  2. 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
  3. 固定时间间隔交换路由信息,例如,每隔 30 秒。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息。

# OSPF 协议

OSPF 协议传输的信息包括五种类型:

信息类型描述
HelloUsed to discover who the neighbors are
Link state updateProvides the sender's costs to its neighbors
Link state ackAcknowledges link state update
Database descriptionAnnounces which updates the sender has
Link state requestRequests information from the partner

OSPF 协议的三个主要特点:

  • 采用洪泛法 (flooding), 向本自治系统中所有路由器发送信息。
  • 发送的信息是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
    • 链路状态:说明本路由器都和哪些路由器相邻,以及该链路的度量 (metric), 包括费用距离延时带宽
  • 当链路状态发生变化或每隔一段时间 (如 30 分钟),路由器才用洪泛法向所有路由器发送此信息。

# 链路状态数据库

链路状态数据库 (link-state database) 有如下特点:

  • 每个路由器最终都能建立。
  • 全网的拓扑结构图。
  • 在全网范围内是一致的(这称为链路状态数据库的同步)。
  • 每个路由器使用链路状态数据库中的数据构造自己的路由表 (例如
    ,使用 Dijkstra 的最短路径路由算法)

# 三级网络

  1. OSPF 是开放系统最短路径优先协议
  2. OSPF 使用分布式链路状态协议。
  3. OSPF 要求路由器发送的信息是本路由器与哪些路由器相邻,以及链路的度量值 (OSPF 使用的度量值包括费用、距离、延时、带宽)。
  4. OSPF 使用洪泛法发送信息。
  5. OSPF 协议要求让路由器建立一个链路状态数据库,该数据库实际上是全网的拓扑结构图。
  6. OSPF 将一个自治系统划分为多个区域 (area), 每个区域有一个 32 位的区域标识符,每个区域内的路由器通常不超过 200 个。
  7. 使用 OSPF 的路由器只需要建立本区域内的链路状态数据库,负责各区域之间通信的路由器叫做区域边界路由器,只需要将来自本区域的信息发送给下一个区域的区域边界路由器,同样不需要获取其他区域的链路状态数据库。

# BGP 协议

边界网关协议 (Border Gateway Protocol, BGP) 属于外部网关协议。Internet 中最常用的外部网关协议为 BGP-4. BGP 协议采用路径矢量协议 (path vector protocol, 又称路由向量协议),与 RIP 不同。

BGP 路由选择协议执行中使用的四个分组为

  • 打开 (open): 与另一个 BGP 发言人建立关系
  • 更新 (update): 发送要更新的某一条路由信息或要删除的多条路由信息
  • 保活 (keepalive): 周期性的证实相邻的边界路由器存在
  • 通知 (notification): 发送检测到的错误

BGP 发言人需要定期交换 keepalive 分组以确认双方的相邻关系。交换采用的协议为 TCP.