第一章 概述
1. TCP/IP 协议族的四个层次
2. 网络互联
构造互联网最简单的方法是把两个或多个网络通过路由器进行连接。路由器为不同类型的物理网络提供连接:以太网、令牌环网、点对点的链接 (SLIP) 和 FDDI( 光纤分布式数据接口 ) 等。
图 1 是一个包含两个网络的互连网:一个以太网和一个令牌环网,通过一个路由器互相连接。
图 1 通过路由器连接的两个网络
连接网络的另一个途径是使用网桥。网桥是在链路层上对网络进行互连,而路由器则是在网络层上对网络进行互连。网桥使得多个局域网组合在一起,这样对上层来说就好像是一个局域网。
3. 互联网地址
IP 地址长 32bit 。 IP 地址并不采用平面形式的地址空间,如 1 、 2 、 3 等。 IP 地址具有一定的地址结构,五类不同的互联网地址格式如图 2 所示。各类 IP 地址的范围如图 3 所示。
图 2 五类互联网地址
图 3 各类 IP 地址的范围
4. 分用
当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用。
第二章 链路层
1. 以太网
以太网这个术语一般是指数字设备公司 (Digital Equipment Corp.) 、英特尔公司 (Intel Corp) 和 Xero 公司在 1982 联合公布的一个标准。它是当今 TCP/IP 采用的主要的局域网技术。它采用一种称作 CSMA/CD 的媒体接入方法,其意思是带冲突检测的载波侦听多路访问。它的速率为 10Mb/s ,地址为 48bit 。以太网 IP 数据报的封装是在 RFC 894 中定义的。
图 1 以太网的封装格式 (RFC894)
2. 最大传输单元 MTU
以太网对数据帧的长度有限制,其最大值为 1500 字节,如图 1 所示。链路层这种特性称作 MTU ,最大传输单元。如果 IP 层有一个数据报要传,而且数据报的长度比链路层的 MTU 还大,那么 IP 层就需要进行分片 (fragmentation) ,把数据报分成若干片,这样每一片都小于 MTU 。
3. 路径 MTU
当在同一个网络上的两台主机互相进行通信时,该网络的 MTU 是非常重要的。但是如果两台主机之间的通信要通过多个网络,那么每个网络的链路层就可能有不同的 MTU 。重要的不是两台主机所在网络的 MTU 的值,重要的是两台通信主机路径中的最小 MTU 。它被称为路径 MTU 。
从 A 到 B 的路由可能与从 B 到 A 的路由不同,因此路径 MTU 在两个方向上不一定是一致的。
第3章 IP网际协议
1. 不可靠、无连接的服务
IP 协议提供一种不可靠、无连接的数据报传送服务。
不可靠的意思是它不能保证 IP 数据报能成功地到达目的地。 IP 仅提供最好的传输服务。如果发生某种错误时,如某个路由器暂时用完了缓冲区, IP 有一个简单的错误处理算法:丢弃该数据报,然后发送 ICMP 消息报给信源端。任何要求的可靠性必须由上层来提供 ( 如 TCP) 。
无连接的意思是 IP 并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的,数据报可以不按发送顺序接收。
2. IP 数据报格式
IP 数据报的格式如图 1 所示。普通的 IP 首部长为 20 个字节,除非含有选项字段。
图 1 IP 数据报格式及首部中的各字段
3. IP 路由选择
如果目的主机与源主机直接相连 ( 如点对点链路 ) 或都在一个共享网络上 ( 以太网或令牌环网 ) ,那么 IP 数据报就直接送到目的主机上。否则,主机把数据报发往一路由器,由路由器来转发该数据报。
IP 可以从 TCP 、 UDP 、 ICMP 和 IGMP 接收数据报 ( 即在本地生成的数据报 ) 并进行发送,或者从一个网络接口接收数据报(待转发的数据报)并进行转发。在进行路由选择决策时,主机和路由器都使用路由表。在表中有三种类型的路由:特定主机型、特定网络型和默认路由型。路由表中的表目具有一定的优先级。在选择路由时,主机路由优先于网络路由,最后在没有其他可选路由存在时才选择默认路由。
当数据报来自某个网络接口时, IP 首先检查目的 IP 地址是否为本机 IP 地址之一或者 IP 广播地址。如果确实是这样,数据报就送到由 IP 首部协议字段所指定的协议模块进行处理。如果数据报的目的不是这些地址,那么 (1) 如果 IP 被设置为路由器的功能,那么就对数据报进行转发,按上一段所述方式;否则 (2) 数据报被丢弃。
IP 路由选择是通过逐跳来实现的。数据报在各站的传输过程中目的 IP 地址始终不变,但是封装和目的链路层地址在每一站都可以改变。
4. 路由表
路由表中的每一项都包含下面这些信息:
(1) 目的 IP 地址。它既可以是一个完整的主机地址,也可以是一个网络地址,由该表目中的标志字段来指定。主机地址有一个非 0 的主机号,而网络地址的主机号为 0 。
(2) 下一跳路由器的 IP 地址,或者有直接连接的网络 IP 地址。下一条路由器是指一个在直接相连网络上的路由器。
(3) 标志。其中一个标志指明目的 IP 地址是网络地址还是主机地址,另一个标志指明下一站路由器是否为真正的下一站路由器,还是一个直接相连的接口。
(4) 为数据报的传输指定一个网络接口。
5. 子网寻址
两句话:
划分子网的事实对于所有子网以外的 Internet 路由器都是透明的;子网对于子网内部的路由器是不透明的。
6. 特殊情况的 IP 地址
经过子网划分后,下面介绍 7 个特殊的 IP 地址,如图 2 所示。在图 2 中, 0 表示所有比特位全为 0 ; -1 表示所有比特位全为 1 ; netid 、 subnetid 和 hostid 分别表示不为全 0 或全 1 的对应字段。子网号栏为空表示该地址没有进行子网划分。
图 2 特殊情况的 IP 地址