四、网络层
TCP/IP 体系的网络层提供的是数据报服务。采用的设计思路是:网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。数据报和分组是同义词。
网际协议 IP 是 TCP/IP 体系中两个最重要的协议之一,也是最重要的互联网标准协议之一。严格来说,这里所讲的 IP 其实是 IP 的第 4 个版本,应记为 IPv4。但在讲述 IP 协议的各种原理时,往往不在 IP 后面加版本号。
与 IP 协议配套使用的还有三种协议:
- 地址解析协议 ARP(Address Resolution Protocol)
- 网际控制报文协议 ICMP(Internet Control Message Protocol)
- 网际组管理协议 IGMP(Internet Group Management Protocol)
这三种协议和 IP 协议的关系是:IP 经常要使用 ARP,ICMP 和 IGMP 要使用 IP。因为网际协议 IP 是用来使互连起来的许多计算机网络能够进行通信的,因此 TCP/IP 体系中的网络层常常被称为网际层(Internet layer)或 IP 层。
网络层使用的中间设备叫做路由器(router)。由于历史的原因,有时也会把网络层使用的路由器称为网关。
IP 地址地编址方法共经历了三个历史阶段:
- 分类的 IP 地址。这是最基本的编址方法,在 1981 年通过。
- 子网的划分。这是对最基本的编址方法的改进,其标准 RFC 950 在 1985 年通过。
- 构成超网。这是比较新的无分类编址方法。1993 年提出后很快得到推广应用。
网络IP划分
- A类、B类和 C类地址都是单播地址,是最常用的。
- A类、B类和 C类地址的网络号字段分别为 1 个、2 个和 3 个字节长,而在网络号字段的最前面有 1 ~ 3 位的类别号,其数值分别规定为 0,10 和 110。
- A类、B类和 C类地址的主机号字段分别为 3 个、2 个和 1 个字节长。
- A(1.0.0.1–126.255.255.254),B(128.0.0.1–191.255.255.254),C(192.0.0.1–223.255.255.254)。
- 私有地址:A(10.X.X.X);B(172.16.0.0–172.31.255.255);C(192.168.X.X)。
- D类地址(前 4 位是 1110 )用于多播。224.0.0.1–239.255.255.254
- E类地址(前 4 位是 1111 )保留位以后用。240.00.01–255.255.254
将 IP 地址划分位若干的固定类,其中 A、B、C类地址都由两个固定长度的字段组成,第一个是网络号(net-id),它标志主机(或路由器)所连接到的网络。一个网络号在整个互联网范围必须是唯一的。第二个字段是主机号(host-id),它标志该主机(或路由器)。一台主机号在它前面的网络号所指明的网络范围内必须唯一的。
特殊的 IP 地址:
网络号 | 主机号 | 源地址使用 | 目的地址使用 | 代表的意思 |
---|---|---|---|---|
0 | 0 | 可以 | 不可 | 本网络上的本主机 |
0 | host-id | 可以 | 不可 | 本网络上的某台主机 host-id |
全 1 | 全 1 | 不可 | 可以 | 只在本网络上进行广播 |
net-id | 全 1 | 不可 | 可以 | 对 net-id 上的所有主机进行广播 |
127 | 非全 0 或全 1的任何数 | 可以 | 可以 | 用于本地软件环回测试 |
地址解析协议 ARP
在实际应用中,常常遇到这样的问题:已经知道了一个机器的 IP 地址,需要找出其相应的硬件地址。地址解析协议 ARP 就是用来解决这样的问题的。
每一台主机都设有一个 ARP 高速缓存(ARP cache),里面有本局域网上的各主机和路由器的 IP 地址到硬件地址的映射表,这些都是该主机目前知道的一些地址,并且这个映射表还经常动态更新(新增或超时删除)。
当主机 A 向本局域网上的某台主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就在 ARP 高速缓存中查出其对应的硬件地址,再把这个硬件地址写入 MAC 帧,然后通过局域网把该 MAC 帧发往此硬件地址。如果没有,主机 A 就自动运行 ARP,然后按以下步骤找出主机 B 的硬件地址:
- ARP 进程在本局域网上广播发送一个 ARP 请求分组。
- 在本局域网上的所有主机 上运行的 ARP 进程都收到此 ARP 请求分组。
- 主机 B 的 IP 地址与 ARP 请求分组中