第四章 网络层
互联网采用的设计思路:
网络层要设计得尽量简单,向其上层只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。进程之间通信的可靠性由运输层负责。
网际协议 IP
与网际协议 IPv4 配套的 3 个协议:
1.地址解析协议 ARP (Address Resolution Protocol)
2.网际控制报文协议 ICMP (Internet Control Message Protocol)
3.网际组管理协议 IGMP (Internet Group Management Protocol)
虚拟互连网络
如何将异构的网络互相连接起来?
可以通过使用中间设备,具体如下图所示:
IP 地址
32位二进制代码,8 位为一组
互联网上的每台主机(或路由器)的每个接口分配一个在全世界唯一的 IP 地址
IP 地址采用 2 级结构
n位网络号+32-n位主机号
分类的 IP 地址
A 类地址的网络号字段 net-id 为 1 字节,主机号字段 host-id 为 3 字节
B 类地址的网络号字段 net-id 为 2 字节,主机号字段 host-id 为 2 字节
C 类地址的网络号字段 net-id 为 3 字节,主机号字段 host-id 为 1 字节
各类 IP 地址的指派范围
分类的 IP 地址的优点和缺点
无分类编址 CIDR
消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,可以更加有效地分配 IPv4 的地址空间,但无法解决 IP 地址枯竭的问题。
IP地址:网络前缀+主机号
网络前缀
地址块
CIDR 把网络前缀都相同的所有连续的 IP 地址组成一个 CIDR 地址块。
一个 CIDR 地址块包含的 IP 地址数目,取决于网络前缀的位数。
例如:128.14.32.0/20 组成的地址块(共 2^12 个地址),可指派的地址数是2^12 – 2 个。
地址掩码 (address mask)
目的:让机器从 IP 地址迅速算出网络地址。
由一连串 1 和接着的一连串 0 组成,而 1 的个数就是网络前缀的长度。
例如:
/20 地址块的地址掩码:11111111 11111111 11110000 00000000
重点:
网络地址 = (二进制的 IP 地址) AND (地址掩码)
网络前缀越短,地址块所包含的地址数越多。
IP 地址与 MAC 地址
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 位。
基于终点的转发
分组在互联网中是逐跳转发的。
基于终点的转发:基于分组首部中的目的地址传送和转发。
网际控制报文协议 ICMP
ICMP (Internet Control Message Protocol) 允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP 是互联网的标准协议。但 ICMP 不是高层协议,而是 IP 层的协议。
ICMP 报文的种类
差错报告报文,询问报文。
IPv6
1.更大的地址空间。 将地址从 IPv4 的 32 位 增大到了 128 位。
2.扩展的地址层次结构。可以划分为更多的层次。
3.灵活的首部格式。定义了许多可选的扩展首部。
4.改进的选项。允许数据报包含有选项的控制信息,其选项放在有效载荷中。
5.允许协议继续扩充。更好地适应新的应用。
6.支持即插即用(即自动配置)。不需要使用 DHCP。
7.支持资源的预分配。支持实时视像等要求保证一定的带宽和时延的应用。
8.IPv6 首部改为 8 字节对齐。首部长度必须是 8 字节的整数倍。
版本(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 地址。
虚拟专用网 VPN
利用公用互联网作为本机构各专用网之间的通信载体,这样的专用网又称为虚拟专用网 VPN (Virtual Private Network)。
网络地址转换 NAT
多协议标签交换 MPLS
MPLS (MultiProtocol Label Switching):互联网建议标准。
多协议:在 MPLS 的上层可以采用多种协议。
标签:MPLS 利用面向连接技术,使每个分组携带一个叫做标签 (label) 的小整数。标签交换路由器用标签值检索转发表,实现分组的快速转发。