10.1. 网络概述

10.1.1. OSI 模型

简单来说,协议是一套通信规则。

为了通过网络传输数据,例如从您的计算机发送电子邮件到世界另一端的某台计算机,需要许多不同的硬件和软件协同工作。

所有这些硬件和不同的软件程序都使用不同的语言。想象一下您的电子邮件程序:它能够通过特定的协议与计算机操作系统对话,但它无法与计算机硬件对话。我们需要操作系统中的一个特殊程序来执行此功能。反过来,计算机需要能够与电话线或其他互联网连接方式通信。在幕后,网络连接硬件需要能够通信,以便将您的电子邮件从一台设备传递到另一台设备,一直到目标计算机。

所有这些不同类型的通信协议都分为 7 层,这 7 层被称为开放系统互连参考模型,简称 OSI 模型。为了便于理解,此模型简化为 4 层协议描述,如下表所述

表 10-1. 简化的 OSI 模型

层名称层协议
应用层HTTP, DNS, SMTP, POP, ...
传输层TCP, UDP
网络层IP, IPv6
网络接入层PPP, PPPoE, 以太网

每一层只能使用其下层的功能;每一层只能向上层导出功能。换句话说:层与层之间仅与相邻层通信。让我们再次以您的电子邮件消息为例:您通过应用层输入它。在您的计算机中,它向下传递到传输层和网络层。您的计算机通过网络接入层将其放到网络上。这也是将消息在世界各地传输的层。在目的地,接收计算机将通过其自身的网络层接收消息,并将使用传输层和应用层将其显示给接收者。

Note实际上要复杂得多
 

包含以上和以下章节是因为您迟早会遇到一些网络术语;它们将为您提供一些起点,如果您想了解详细信息。

10.1.2. 一些流行的网络协议

Linux 支持许多不同的网络协议。我们仅列出最重要的协议

10.1.2.1. TCP/IP

传输控制协议网际协议是在互联网上通信的两种最流行的方式。许多应用程序,例如您的浏览器和电子邮件程序,都构建在此协议套件之上。

简单来说,IP 提供了将信息包从一台机器发送到另一台机器的解决方案,而 TCP 确保将数据包排列成流,以便来自不同应用程序的数据包不会混淆,并且数据包以正确的顺序发送和接收。

以下文档是了解有关 TCP 和 IP 的更多信息的一个良好起点

  • man 7 ip:描述了 Linux 上的 IPv4 协议实现(版本 4 目前是 IP 协议最广泛的版本)。

  • man 7 tcp:TCP 协议的实现。

  • RFC793、RFC1122、RFC2001(针对 TCP)以及 RFC791、RFC1122 和 RFC1112(针对 IP)。

    请求评论文档包含网络标准、协议、应用程序和实现的描述。这些文档由互联网工程任务组管理,这是一个国际社区,致力于互联网的顺利运行以及互联网架构的演进和发展。

    您的 ISP 通常有可用的 RFC 存档,或者您可以通过 http://www.ietf.org/rfc.html 浏览 RFC。

10.1.2.2. TCP/IPv6

没有人预料到互联网会发展得如此之快。当网络中存在大量计算机时,IP 被证明存在一些缺点,其中最重要的是为每台参与的机器分配唯一地址的可用性。因此,开发了 IP 版本 6 以满足当今互联网的需求。

不幸的是,并非所有应用程序和服务都支持 IPv6。目前,许多可以从升级到 IPv6 中受益的环境正在启动迁移。对于某些应用程序,仍在使用旧协议,而对于已经过重新设计的应用程序,新版本已经激活。因此,当检查您的网络配置时,有时可能会有点令人困惑,因为可以采取各种措施来隐藏一种协议,使其不与另一种协议混淆连接。

更多信息可以在以下文档中找到

  • man 7 ipv6:Linux IPv6 协议实现。

  • RFC1883 描述了 IPv6 协议。

10.1.2.3. PPP, SLIP, PLIP, PPPOE

Linux 内核内置支持 PPP(点对点协议)、SLIP(串行线路 IP)、PLIP(并行线路 IP)和 PPPOE(以太网上的 PPP)。PPP 是个人用户访问其 ISP(互联网服务提供商)的最流行方式,尽管在人口稠密的地区,它通常被 PPPOE 取代,PPPOE 是用于 ADSL(非对称数字用户线路)连接的协议。

大多数 Linux 发行版都提供了易于使用的工具来设置互联网连接。您基本上唯一需要的是用户名和密码来连接到您的互联网服务提供商 (ISP),以及在 PPP 的情况下需要电话号码。这些数据输入到图形配置工具中,该工具也很可能允许启动和停止与您的提供商的连接。

10.1.2.4. ISDN

Linux 内核内置了 ISDN 功能。Isdn4linux 控制 ISDN PC 卡,并且可以使用 Hayes 命令集("AT" 命令)模拟调制解调器。可能性范围从简单地使用终端程序到完全连接到互联网。

查看您的系统文档。

10.1.2.5. AppleTalk

Appletalk 是 Apple 互联网协议栈的名称。它允许对等网络模型,该模型提供基本功能,例如文件和打印机共享。每台机器都可以同时充当客户端和服务器,并且每台 Apple 计算机都包含必要的软件和硬件。

Linux 提供完整的 AppleTalk 网络支持。Netatalk 是 AppleTalk 协议套件的内核级实现,最初是为 BSD 衍生系统设计的。它包括对路由 AppleTalk、使用 AppleShare 服务 UNIX 和 AFS 文件系统以及服务 UNIX 打印机和访问 AppleTalk 打印机的支持。

10.1.2.6. SMB/NMB

为了与 MS Windows 环境兼容,可以在任何类 UNIX 系统上安装 Samba 套件,包括对 NMB 和 SMB 协议的支持。服务器消息块协议(也称为会话消息块、NetBIOS 或 LanManager 协议)在 MS Windows 3.11、NT、95/98、2K 和 XP 上用于共享磁盘和打印机。

Samba 套件的基本功能包括:与 Windows 机器共享 Linux 驱动器、从 Linux 机器访问 SMB 共享、与 Windows 机器共享 Linux 打印机以及与 Linux 机器共享 Windows 打印机。

大多数 Linux 发行版都提供了一个 samba 软件包,它完成了大部分服务器设置,并在默认情况下在启动时启动 smbd(Samba 服务器)和 nmbd(netbios 名称服务器)。Samba 可以通过图形方式、Web 界面或命令行和文本配置文件进行配置。守护程序使 Linux 机器在 MS Windows “我的网络位置/网上邻居”窗口中显示为 MS Windows 主机;来自 Linux 机器的共享将与 MS Windows 环境中任何其他主机上的共享没有区别。

更多信息可以在以下位置找到

  • man smb.conf:描述了主要 Samba 配置文件 smb.conf 的格式。

  • Samba 项目文档(或查看您本地的 samba.org 镜像)包含易于阅读的安装和测试指南,其中还解释了如何将您的 Samba 服务器配置为主要域控制器。所有手册页也在此处提供。

10.1.2.7. 其他协议

Linux 还支持业余无线电、WAN 互联网(X25、帧中继、ATM)、红外线和其他无线连接,但由于这些协议通常需要特殊的硬件,因此我们不会在本文档中讨论它们。