目录
摘要
Linux 提供集成进各类网络结构中所需的联网工具和功能。 使用网卡、调制解调器或其他设备的网络访问可以通过 YaST 来配置。也可以手动进行配置。 在本章中,仅描述基础机制和相关网络配置文件。
Linux 和其他 Unix 操作系统均使用 TCP/IP 协议。 该协议不是单个网络协议,而是提供多种服务的一系列网络协议。 表 20.1 “TCP/IP 系列协议中的若干协议”中所列的协议专用于在两台计算机之间通过 TCP/IP 交换数据。由 TCP/IP 连接而成的网络构成了全球网络,也称作“因特网”。
RFC 代表注释请求。 RFC 由一些文档组成,用来描述各种因特网协议和操作系统及其应用程序的实施过程。 RFC 文档用来描述如何设置因特网协议。 要进一步了解某个协议,请参见相应的 RFC 文档。这些文档可在 http://www.ietf.org/rfc.html 获得。
表 20.1. TCP/IP 系列协议中的若干协议
|
协议 |
描述 |
|---|---|
|
传送控制协议:面向连接的安全协议。要传输的数据首先由应用程序作为数据流发送,然后由操作系统转换为相应的格式。数据到达目标主机上的相应应用程序时采用最初发送时的原始数据流格式。TCP 确定在传输过程中是否有任何数据丢失或发生混乱。只要涉及到数据序列就会实施 TCP。 | |
|
用户数据报协议:无连接、不安全的协议。要传送的数据以应用程序生成的数据包的形式发送。 不能保证数据以正确的顺序到达接收方,也可能丢失数据。UDP 适用于面向记录的应用程序。 它的等待时间比 TCP 稍短。 | |
|
因特网控制消息协议:这实际上不是一个面向最终用户的协议,而是一个特殊的控制协议,用来发出错误报告,还可以控制参与 TCP/IP 数据传送的计算机的行为。 此外,它还提供一种特殊的回应方式,可以通过 ping 程序查看该方式。 | |
|
因特网组管理协议:此协议控制实施 IP 多路广播时的计算机行为。 |
如图 20.1 “TCP/IP 的简化层次模型”中所示,数据交换在不同的层中进行。 实际的网络层是通过 IP(因特网协议)的不安全数据传送。 IP 的上面是 TCP(传送控制协议),它能够确保一定程度的数据传送安全性。 IP 层又受底层硬件相关协议(例如以太网)的支持。
该图为每一层都提供了一到两个示例。 层次按照抽象程度排序。 最底层非常接近硬件。 最上层则几乎就是硬件的完全抽象化。 每一层都有自己的特殊功能。 每一层的特殊功能多隐含在其描述中。 数据链路层和物理层表示所用的物理网络(如以太网)。
几乎所有硬件协议都在面向数据包的基础上发挥作用。 要传送的数据收集在包中(一次无法发送所有数据)。TCP/IP 包最大约为 64 KB。 包通常要小得多,因为可能受到网络硬件的限制。以太网上的数据包最大约为 1500 字节。 通过以太网发送数据时,TCP/IP 包不能超过这个限额。 如果传送更多数据,操作系统需要发送更多的数据包。
为使层实现其指定功能,必须在数据包中保存与每层相关的附加信息。 这些信息保存在数据包的报头中。 每一层都在每个新包的开头附加一小块称为协议报头的数据。 演示了一个通过以太网电缆传送的示例 TCP/IP 数据包。图 20.2 “TCP/IP 以太网包” 校验和位于包的末尾而不是开头, 这样更便于网络硬件处理。
当应用程序通过网络发送数据时,数据会穿越每个层次,所有传递都在 Linux 内核中实施(只有物理层除外)。 每一层都负责准备好数据,以便传递到下一层。 最底层最后负责发送数据。 接收数据时则逆向执行整个过程。 正像剥洋葱皮那样,在每一层中都要从传输数据中删除协议报头。 最后,传输层负责使数据可供目标上的应用程序使用。 通过这种方式,每一层只与其上一层或下一层通讯。 对于应用程序,无论数据是通过 100 Mbit/s(兆位/秒)的 FDDI 网络传送还是通过 56 Kbit/s(千位/秒)的调制解调器线路传送,都与此无关。 同样,只要数据包的格式正确,传送哪种数据对数据线也无关紧要。
各节的论述仅限于 IPv4 网络。 有关 IPv6 协议(IPv4 的后续协议)的信息,请参见 第 20.2 节 “IPv6 -下一代的因特网”。
因特网上的每台计算机都有一个唯一的 32 位地址。 这些 32 位(或 4 字节)地址通常按 例 20.1 “编写 IP 地址” 的第二行所示的格式书写。
例 20.1. 编写 IP 地址
IP Address (binary): 11000000 10101000 00000000 00010100 IP Address (decimal): 192. 168. 0. 20
在十进制格式中,四字节以十进制数书写,其间以句点分隔。 IP 地址被指派给主机或网络接口。 它在全球只能使用一次。这条规则也有例外,但这些例外与下文无关。
IP 地址中的点表示分级系统。直到 20 世纪 90 年代,IP 地址仍然有严格的分类。 但是,此系统经证实太过死板,已经废止。现已改为使用无类别路由 - (CIDR,无类别域间路由)。
网络掩码用于定义子网的地址范围。 如果两台主机位于同一子网中,它们可直接相互访问。如果它们位于不同子网中,则需要用于处理此子网的所有通讯的网关地址才能相互访问。要检查两个 IP 地址是否位于同一个子网中,只需分别将两个地址与网络掩码进行“AND”操作。 如果结果相同,则两个 IP 地址在同一个本地网络中。 如果结果不同,则仅能通过网关连接远程 IP 地址和远程接口。
要了解网络掩码如何工作,可查看例 20.2 “将 IP 地址链接到网络掩码”。 网络掩码有 32 位,它确定属于网络的 IP 地址是多少。 对于所有为 1 的位,将它们在 IP 地址中的相应位标记为属于网络。 对于所有为 0 的位,标记为属于子网。 这意味着为 1 的位越多,子网就越小。 因为网络掩码总是由多个连续的 1 位组成,所以也可仅计算网络掩码中的位数。 在例 20.2 “将 IP 地址链接到网络掩码”中,第一个 24 位也可写作 192.168.0.0/24。
例 20.2. 将 IP 地址链接到网络掩码
IP address (192.168.0.20): 11000000 10101000 00000000 00010100 Netmask (255.255.255.0): 11111111 11111111 11111111 00000000 --------------------------------------------------------------- Result of the link: 11000000 10101000 00000000 00000000 In the decimal system: 192. 168. 0. 0 IP address (213.95.15.200): 11010101 10111111 00001111 11001000 Netmask (255.255.255.0): 11111111 11111111 11111111 00000000 --------------------------------------------------------------- Result of the link: 11010101 10111111 00001111 00000000 In the decimal system: 213. 95. 15. 0
再举个例子:通过同一以太网电缆相连的所有计算机通常都位于同一子网中,可直接访问。 即使用交换机或网桥物理分隔该子网,这些主机仍然可以直接访问。
仅在网关是为目标网络配的时,才能访问本地子网外部的 IP 地址。 通常情况下,只有一个网关处理所有外部流量。 然而,也可能为不同的子网配置多个网关。
如果配置了网关,所有的外部 IP 包将发送到相应的网关。 此网关随后会尝试以相同的方式转发该包(从主机到主机)直到到达目标主机或超过该包的 TTL(存活时间)。
表 20.2. 特定地址
|
地址类型 |
描述 |
|---|---|
|
这是网络掩码和该网络中的任意地址,如 例 20.2 “将 IP 地址链接到网络掩码” 中的 | |
|
这大体表示“访问此子网内的所有主机”。要生成此地址,需要将网络掩码反转为二进制格式,并使用逻辑 OR 链接到基本网络地址。 因此,以上示例会生成 192.168.0.255。该地址无法指派给任何主机。 | |
|
地址 |
由于 IP 地址必须在全球范围内唯一,您不能随机选择地址。 共有三个地址域可用于建立基于 IP 的专用网络。 这些地址无法与因特网上的其他地址建立任何连接,因为它们不能通过因特网传送。 这些地址域在 RFC 1597 中指定,并且列在表 20.3 “专用 IP 地址域”中。
表 20.3. 专用 IP 地址域
|
网络/网络掩码 |
域 |
|---|---|
|
|
|
|
|
|
|
|
|