4.1 名词解释

  1. 虚电路(Virtual Circuit) : 在两个终端设备的逻辑或物理端口之间,通过建立的双向的透明传输通道。虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。
  2. IP(Internet Protocol ) : 网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一,是 TCP/IP 体系结构网际层的核心。配套的有 ARP,RARP,ICMP,IGMP。
  3. ARP(Address Resolution Protocol) : 地址解析协议。地址解析协议 ARP 把 IP 地址解析为硬件地址。
  4. ICMP(Internet Control Message Protocol ) :网际控制报文协议 (ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告)。
  5. 子网掩码(subnet mask ) :它是一种用来指明一个 IP 地址的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合 IP 地址一起使用。
  6. CIDR( Classless Inter-Domain Routing ):无分类域间路由选择 (特点是消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,并使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号)。
  7. 默认路由(default route) :当在路由表中查不到能到达目的地址的路由时,路由器选择的路由。默认路由还可以减小路由表所占用的空间和搜索路由表所用的时间。
  8. 路由选择算法(Virtual Circuit) :路由选择协议的核心部分。因特网采用自适应的,分层次的路由选择协议。
  9. TCP/IP 体系:能够在不同网络间实现通信的协议簇,因为其中 TCP / IP 协议最具有代表性,所以以此命名。

4.2 网络层概述

4.2.1 网络层提供的服务

TCP/IP 协议中的网络层向上只提供简单灵活的无连接的尽最大努力交付的数据报服务。网络层不提供服务质量的承诺,不保证分组交付的时限所传送的分组可能出错,丢失,重复和失序。进程之间通信的可靠性由运输层负责。

4.2.2 虚拟互连网络

从一般的概念来讲,将网络互相连接起来要使用一些中间设备。根据中间设备所在的层次,可以有以下四种不同的中间设备:

  • 物理层使用的中间设备叫做转发器(repeater)。
  • 数据链路层使用的中间设备叫做网桥或桥接器(bridge)。
  • 网络层使用的中间设备叫做路由器(router)。
  • 在网络层以上使用的中间设备叫做网关(gateway)。用网关连接两个不兼容的系统需要在高层进行协议的转换。

当中间设备是转发器或网桥时,这仅仅是把一个网络扩大了,而从网络层的角度看,这仍然是一个网络,一般并不称之为网络互连。网关由于比较复杂,目前使用得较少。因此现在我们讨论网络互连时,都是指用路由器进行网络互连和路由选择。路由器其实就是一台专用计算机,用来在互联网中进行路由选择。

如果参加互连的计算机网络都使用相同的 IP 协议,那么我们可以把互连之后的计算机网络看成一个虚拟互连网络(简称为 IP网)。这里虚拟的意思是:客观上依然存在物理网络上的异构性,只不过是利用 IP 协议让这些网络看起来是一个统一的网络。当 IP 网上面的主机进行通信的时候,就像在单个网络通信一样。
如果在这种覆盖全球的 IP 网的上层使用TCP协议,这就是现在的互联网(Internet)。
IP网.png

4.2.3 IP 地址

在TCP / IP体系中,IP地址是一个最基本的概念。上面也提到过,整个互联网看起来就像是一个单一的网络,IP地址就是给在互联网上每一个主机分配的一个唯一标识符,有了IP地址就能在互联网上方便的进行寻址。IP地址的编址方式经过了三个阶段,这里介绍第一种,也是最基本的分类的IP地址。

4.2.3.1 分类的IP地址

IP地址可以分成两段:IP地址 = <网络号>, <主机号>

  • 网络号:主机所连接到的网络,也就是指明主机是在哪个网络中,网络号在整个互联网范围内必须唯一。
  • 主机号:主机的编号,也就是指明主机是网络中的哪一个,同样需要保证在当前网络中的唯一性。

分类的IP地址,分类就体现下图。
分类的IP地址.png
如上图:

  • 把IP地址分成了A、B、C、D、E 五类。
  • A、B、C类的网络号分别为1、2、3个字节长(1个字节=8位二进制),其中最前面的是1-3位的类别位,分别为0、10、110。
    • 类别位,就是区分当前地址属于哪一类地址。
  • A、B、C类的主机号分别为3、2、1字节长。
  • D类地址前4位为1110,主要用于进行多播。
  • E类地址前4位为1111,保留以后使用。

实际上,在表示IP地址的时候,并不是使用其自身的32位二进制表示,而是每8位换算成10进制,最终变成4个十进制数,更容易书写。

4.2.3.2 IP地址的数量

A类地址
A类地址的网络号字段占1个字节,除去第一位,还剩7位可以使用。但实际上可指派的网络号 2^7 - 2 = 126个。减2的原因:IP 地址中的全0表示本网络;网络号为127(01111111)保留作为本地软件环回测试(本机地址),以一个环回地址作为目的地址的 IP 数据报,本机就直接处理了,不会发送到网络上。
A类地址的主机号占3个字节,每个A类网络中的最大主机数为 2^24 - 2 = 16777214。这里减2的原因:全0的主机号字段表示本主机所在的网络;全1的主机号字段表示本网络上所有的主机。
IP 地址空间共有2^32 (即4294967296)个地址。整个A类地址空间共有 2^31 个地址,占整个IP地址空间的50%。
B类地址
B类地址的网络号字段有2个字节,但前面两位(10)已经固定了,只剩下14位可以进行分配。因为网络号字段后面的14位无论怎样取值也不可能出现使整个⒉字节的网络号字段成为全0或全1,因此这里不存在总数减 ⒉的问题。但实际上B类网络地址128.0.0.0是不指派的,而可以指派的B类最小网络地址是128.1.0.0 。因此B类地址可指派的网络数为2^14 - 1,即16383
B类地址的每一个网络上的最大主机数是 2^16 - 2,即 65534。这里需要减2是因为要扣除全0和全1的主机号。
整个B类地址空间共约有2^30个地址,占整个IP地址空间的25%。
C类地址
C类地址有3个字节的网络号字段,最前面的3位是(110),还有21位可以进行分配。C类网络地址 192.0.0.0 也是不指派的,可以指派的C类最小网络地址是192.0.1.0,因此C类地址可指派的网络总数是 2^21 - 1,即2097151
每一个C类地址的最大主机数是2^8 - 2,即 254
整个C类地址空间共约有 2^29 个地址,占整个IP地址的12.5%。

IP地址范围.png

不使用的特殊IP地址.png

4.2.3.3 IP地址的特点

IP 地址有以下几个特点:

  • 每一个IP地址都由网络号和主机号两部分组成。从这个意义上说,IP地址是一种分等级的地址结构。分两个等级的好处是:
    • 第一,IP地址管理机构在分配IP地址时只分配网络号(第一级),而剩下的主机号(第二级)则由得到该网络号的单位自行分配。这样就方便了IP地址的管理。
    • 第二,路由器根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间以及查找路由表的时间。
  • 实际上IP地址是标志一台主机(或路由器)和一条链路的接口。当一台主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号必须是不同的。这种主机称为多归属主机(multihomed host)。
    • 典型的多归属主机就是路由器,每个路由器正常情况下至少应当连接到两个网络(这样才能在不同网络间转发分组),因此至少应当有两个不同的IP地址。
  • 按照互联网的观点,一个网络是指具有相同网络号net-id 的主机的集合,因此,用转发器或网桥连接起来的若干个局域网仍为一个网络,因为这些局域网都具有同样的网络号。具有不同网络号的局域网必须使用路由器进行互连
  • 在IP地址中,所有分配到网络号的网络(不管是范围很小的局域网,还是可能覆盖很大地理范围的广域网)都是平等的。所谓平等,是指互联网同等对待每一个IP地址。

4.2.3.4 IP 地址与 MAC 地址

对比:
IP 地址是网络层及以上层使用的地址,是一种逻辑地址。IP 地址是由网络管理员分配的地址,可以改变。IP 地址放在 IP 数据包的首部
MAC 地址是数据链路层和物理层使用的地址。MAC 地址是固定在 适配器的 ROM 中,不可改变。MAC 地址放在 MAC 帧的首部。

转换:
实际运用过程中,可能会遇到一个问题:已经知道了一个机器的 IP 地址,怎么获取其对应的 MAC 地址?
这就需要用到一个协议:ARP 协议(Address Resolution Protocol、地址解析协议)。 还有一个通过 MAC 地址获取 IP 地址的 RARP 协议,目前已经代替了。

每个主机都有一个ARP 高速缓存,里面存放了同一个局域网上各主机的 IP 地址和 硬件地址的映射表,并且这个表经常更新。
当主机 A 需要向主机 B 发送 IP 数据报时,先在 ARP 高速缓存中查找其对应的 MAC 地址,如果有则写入MAC帧中;如果没有,则自动运行 ARP,进行以下操作:

  • ARP 进程向本局域网广播一个 ARP 请求分组,这个分组里面包含了A的IP地址、A的 MAC 地址以及想知道 IP 地址为 B 的 MAC 地址。
  • 本局域网上所有主机均能收到这个分组,只有本机 IP 和请求分组中的 IP 相同的主机才收下这个分组。
  • 收下分组的主机向A单播一个响应,在这个响应中写入自己的 MAC 地址。
  • A 收到这个响应后,就在 ARP 高速缓存中写入 B 的 IP 地址 和 MAC 地址的映射。

在高速缓存中的每一个映射地址都有生存时间,超过这个时间的映射地址将被删除,解决了 IP 地址和 MAC 地址变化的问题。

4.2.3.5 IP 数据报

前面提到了很多次 IP 数据报,这里就来看一下 IP 数据报有哪些内容。
一个 IP 数据报由首部和数据两部分组成,其中首部的固定部分有20字节,后面有一些可选的字段。
IP数据报.png
如上图所示:IP 数据报的首部的固定部分的各字段:

  • 版本:占4位,指 IP 协议的版本,通信双方必须使用同一版本的 IP 协议。目前广泛使用的是 IPv4,版本号为4。
  • 首部长度:占4位,最大值为15。这里表示的数的单位是(4字节)。因为首部固定长度为20字节,所以这里的值最小为5。最大值为15时,表明整个首部长度为60字节,其中可选字段为40字节。当首部长度不是4字节的整数倍时,需要利用最后的填充字段加以填充。
  • 区分服务:占8位,一般不使用。
  • 总长度:占16位,指的是首部 + 数据部分的总长度,单位为字节。整个 IP 数据报的最大长度为 2^16 - 1 = 65535 字节。
    • IP 规定所有主机都必须支持最小 576 字节的报文,但大多数现代主机支持更大的报文。
    • IP 报文长度 大于 下层的数据链路协议的最大传输单元(MTU)字段的值时,报文就必须被分片。
  • 标识:占16位。当 IP 数据报过长时,会进行分片,每个分片都拥有相同的标识,表明是来自同一个数据报,保证后面能重新被组装成原来的数据报。
  • 标志:占3位。最低位记为 MF(More Frame),MF = 1 表示后面还有分片,MF = 0 表示后面没有分片了。中间位记为 DF(Don’t Frame),只有当DF = 0时才允许分片。最高位暂时无意义。
  • 片偏移:占16位。一个较长的分组在分片之后,某个片在原分组中的相对位置。也就是说,相对于用户数据字段的起点。片偏移以8个字节作为偏移单位,换言之,每个分片的长度一定是 8 的倍数。

数据报分片.png

  • 生存时间:占8位。常用的英文缩写TTL(Time To Live)。路由器在每次转发数据报之前都将TTL - 1,当TTL = 0时则丢弃该数据报。TTL 最大值为2^8 -1 = 255。有发送源点设置该值,可以防止无法交付的数据报在互联网中兜圈子。
  • 协议:占8位。指出该数据报携带的数据是使用哪种协议。

IP数据报协议字段.png

  • 首部检验和:占16位。只检验数据报的首部,不包括数据部分。数据报每经过一个路由器,路由器都要重新计算首部检验和,与存储的值进行对比,正确则保留,错误则丢弃。
  • 源地址:占32位。
  • 目标地址:占32位。

4.2.3 解决 IP 地址耗尽的问题

4.2.3.1 划分子网

划分子网是方式是从主机号中借用几位作为子网号,相应的主机号也就减少几位。这里两级 IP 地址就变成了三级 IP 地址。
子网 IP 地址 = <网络号>, <子网号>,<主机号>

4.2.3.1 CIDR

CIDR(无分类域间路由选择 ) 是解决目前 IP 地址紧缺的一个好办法。CIDR 记法把 IP 地址后面加上斜线“/”,然后写上前缀所所占的位数。前缀(或网络前缀用来指明网络),前缀后面的部分是后缀,用来指明主机。CIDR 把前缀都相同的连续的 IP 地址组成一个“CIDR 地址块”,IP 地址分配都以 CIDR 地址块为单位。

4.2.3.3 IPv6

要解决 IP 地址耗尽的问题,最根本的办法是采用具有更大地址空间的新版本 IP 协议-IPv6。
IPv6 所带来的变化有 ① 更大的地址空间(采用 128 位地址)② 灵活的首部格式 ③ 改进的选项 ④ 支持即插即用 ⑤ 支持资源的预分配 ⑥IPv6 的首部改为 8 字节对齐。

4.2.4 VPN

VPN(虚拟专用网络) 利用公用的互联网作为本机构专用网之间的通信载体。VPN 内使用互联网的专用地址。一个 VPN 至少要有一个路由器具有合法的全球 IP 地址,这样才能和本系统的另一个 VPN 通过互联网进行通信。所有通过互联网传送的数据都需要加密。

4.2.5 MPLS

MPLS(多协议标记交换)特点是:① 支持面向连接的服务质量 ② 支持流量工程,平衡网络负载 ③ 有效的支持虚拟专用网 VPN。MPLS 在入口节点给每一个 IP 数据报打上固定长度的“标记”,然后根据标记在第二层(链路层)用硬件进行转发(在标记交换路由器中进行标记交换),因而转发速率大大加快。

参考