本节详细介绍了 TCP/IP 中包括的协议。虽然是一些概念性信息,但是您应该了解协议的名称,还应该了解每种协议的作用。
"TCP/IP" 是一组网络协议常用的首字母缩略词,这些协议组成了 Internet 协议套件。许多文章都使用术语 "Internet" 来描述协议套件和全局广域网。在本书中,"TCP/IP" 专指 Internet 协议套件。"Internet" 是指广域网以及管理 Internet 的机构。
要将 TCP/IP 网络与其他网络互连,必须为网络获取一个唯一的 IP 地址。编写此内容时,您可从 Internet 服务提供商 (Internet service provider, ISP) 获取此地址。
如果要将网络中的主机加入 Internet 域名系统 (Domain Name System, DNS),则必须获取并注册唯一的域名。InterNIC 通过一系列全球注册机构来协调域名注册。有关 DNS 的更多信息,请参阅《系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)》。
大多数网络协议套件的结构都由一系列层组成,有时统称为协议栈。每一层都针对特定用途而设计,并且同时存在于发送系统和接收系统上。一个系统上的某个特定层发送或接收的对象与另一个系统上的对等进程发送或接收的对象完全相同。这些活动的发生与所考虑的层的上下层中的活动无关。实际上,系统上每一层的活动都独立于同一系统上的其他层,并且与其他系统上的同一层并行执行操作。
大多数网络协议套件的结构都由多个层组成。国际标准化组织 (International Organization for Standardization, ISO) 设计了使用结构化层的开放系统互连 (Open Systems Interconnection, OSI) 参考模型。OSI 模型介绍了网络活动的七层结构。每个层都与一个或多个协议关联。对于协作网络间所有类型的数据传送,这些层执行的数据传送操作相同。
OSI 模型列出了从顶层(第 7 层)到底层(第 1 层)的协议层。下表显示了此模型。
表 1–1 开放系统互连参考模型
层编号 |
层名称 |
说明 |
---|---|---|
7 |
由每个人均可使用的标准通信服务和应用程序组成。 |
|
6 |
确保将信息以系统可识别的形式传送到接收系统。 |
|
5 |
管理协作系统之间的连接和终止。 |
|
4 |
管理数据的传送,同时还确保收到的数据与传送的数据完全相同。 |
|
3 |
管理网络间的数据寻址和传送。 |
|
2 |
处理网络介质间的数据传送。 |
|
1 |
定义网络硬件的特征。 |
OSI 模型定义了并不特定于任何网络协议套件的概念性操作。例如,OSI 网络协议套件可实现 OSI 模型的所有七个层。TCP/IP 使用 OSI 模型的一些层,并且还会组合其他层。其他网络协议(如 SNA)会添加第八层。
OSI 模型通过一系列协议描述了理想的网络通信。TCP/IP 并不直接对应于此模型。TCP/IP 或者将几个 OSI 层组合为一个层,或者根本不使用某些层。下表显示了 Oracle Solaris : 实现的 TCP/IP 层。该表列出了从最顶层(应用层)到最底层(物理网络层)的各层。
表 1–2 TCP/IP 协议栈
OSI 参考层编号 |
等效的 OSI 层 |
TCP/IP 层 |
TCP/IP 协议示例 |
---|---|---|---|
5、6、7 |
应用、会话、表示 |
NFS、NIS、DNS、LDAP、telnet、ftp、rlogin、rsh、rcp、RIP、RDISC、SNMP 等 |
|
4 |
传输 |
TCP、UDP、SCTP |
|
3 |
网络 |
IPv4、IPv6、ARP、ICMP |
|
2 |
数据链路 |
PPP、IEEE 802.2 |
|
1 |
物理 |
以太网 (IEEE 802.3)、令牌环、RS-232、FDDI 等等 |
该表显示了 TCP/IP 协议层和 OSI 模型中的等效层。另外,还显示了可用于 TCP/IP 协议栈各级别的协议的示例。通信事务中涉及的每个系统都运行协议栈的唯一实现。
物理网络层指定要用于网络的硬件的特征。例如,物理网络层可指定通信介质的物理特征。TCP/IP 的物理层介绍了一些硬件标准,如作为以太网网络介质规范的 IEEE 802.3 以及作为标准管脚连接器规范的 RS-232。
数据链路层标识包的网络协议类型,在此实例中为 TCP/IP。数据链路层还提供了错误控制和“成帧”。数据链路层协议的示例包括以太网 IEEE 802.2 成帧和点对点协议 (Point-to-Point Protocol, PPP) 成帧。
Internet 层也称为网络层或 IP 层,可为网络接受和传送包。该层包括功能强大的 Internet 协议 (Internet Protocol, IP)、地址解析协议 (Address Resolution Protocol, ARP) 和 Internet 控制消息协议 (Internet Control Message Protocol, ICMP)。
IP 协议及其关联的路由协议可能是整个 TCP/IP 套件中最重要的部分。IP 负责以下操作:
IP 寻址-IP 寻址约定是 IP 协议的一部分。设计 IPv4 寻址方案介绍了 IPv4 寻址,IPv6 寻址概述介绍了 IPv6 寻址。
包格式设置-IP 将包组装到称为数据报的单元中。Internet 层:准备传送包的位置中全面介绍了数据报。
分段-如果包太大而无法通过网络介质进行传输,则发送系统上的 IP 会将包分为较小的段。然后,接收系统上的 IP 会将这些段重构为原始包。
Oracle Solaris : 同时支持 IPv4 和 IPv6 寻址格式,这两种格式都在本书中进行了介绍。为避免对 Internet 协议进行寻址时出现混淆,请使用以下约定之一:
如果说明中使用了术语 "IP",则此说明既适用于 IPv4 又适用于 IPv6。
如果说明中使用了术语 "IPv4",则此说明仅适用于 IPv4。
如果说明中使用了术语 "IPv6",则此说明仅适用于 IPv6。
从概念上讲,地址解析协议 (Address Resolution Protocol, ARP) 位于数据链路层和 Internet 层之间。ARP 通过将以太网地址(长度为 48 位)映射到已知的 IP 地址(长度为 32 位),协助 IP 将数据报定向到相应的接收系统。
Internet 控制消息协议 (Internet Control Message Protocol, ICMP) 可检测并报告网络错误情况。ICMP 将报告以下情况:
第 8 章介绍了有关将 ICMP 用于错误检测的 Oracle Solaris : 命令的更多信息。
TCP/IP 传输层通过交换数据接收的确认信息并重新传送丢失的包,可确保包按顺序到达且不会出现错误。这种通信类型称为端对端。此级别的传输层协议栈包括传输控制协议 (Transmission Control Protocol, TCP)、用户数据报协议 (User Datagram Protocol, UDP) 以及流控制传输协议 (Stream Control Transmission Protocol, SCTP)。TCP 和 SCTP 可提供可靠的端对端服务。UDP 则会提供不可靠的数据报服务。
使用 TCP,应用程序可以像通过实际线路连接一样进行相互通信。TCP 发送数据的形式类似于逐个字符进行传送,而不是以独立的包进行发送。这种传输由以下各项组成:
起始点,用于打开连接
按字节顺序进行的完整传输
结束点,用于关闭连接。
TCP 会向传送的数据中附加一个头。此头包含许多参数,可帮助发送系统上的进程连接到接收系统上的对等进程。
TCP 通过在发送主机和接收主机之间建立端对端连接,确认包是否已到达其目的地。因此,TCP 被视为一种“可靠的、面向连接的”协议。
SCTP 是一种可靠的、面向连接的传输层协议,它为应用程序提供的服务与 TCP 提供的服务相同。此外,SCTP 还可以支持在具有多个地址或多宿主系统之间建立连接。发送系统和接收系统之间的 SCTP 连接称为关联。关联中的数据组织成多个块。由于 SCTP 支持多宿主,因此,某些应用程序(尤其是电信行业使用的应用程序)需要通过 SCTP 而不是 TCP 运行。
UDP 可提供数据报传送服务,并且不会检验接收主机和发送主机之间的连接。由于 UDP 不需要建立和验证连接,因此,发送少量数据的应用程序可使用 UDP。
应用层定义了任何用户均可使用的标准 Internet 服务和网络应用程序。这些服务与传输层协同工作以发送和接收数据。存在多种应用层协议。以下列表显示了应用层协议的示例:
标准 TCP/IP 服务,如 ftp、tftp 和 telnet 命令
UNIX "r" 命令,如 rlogin 和 rsh
名称服务,如 NIS 和域名系统 (domain name system, DNS)
目录服务 (LDAP)
文件服务,如 NFS 服务
简单网络管理协议 (Simple Network Management Protocol, SNMP),用于启用网络管理
路由器搜索 (Router Discovery, RDISC) 服务器协议和路由信息协议 (Routing Information Protocol, RIP) 路由协议
FTP 和匿名 FTP-文件传输协议 (File Transfer Protocol, FTP) 可以向远程网络以及从远程网络传输文件。此协议包括 ftp 命令和 in.ftpd 守护进程。使用 FTP,用户可以在本地主机的命令行中指定远程主机名和文件传送命令选项。然后,远程主机上的 in.ftpd 守护进程会处理来自本地主机的请求。与 rcp 不同,即使远程计算机没有运行基于 UNIX 的操作系统, ftp 仍会正常工作。除非远程系统已配置为允许匿名 FTP,否则,用户必须登录到远程系统以建立 ftp 连接。
您可以从连接到 Internet 的匿名 FTP 服务器获取大量资料。大学和其他机构都设置了这些服务器,以便向公共域提供软件、研究论文和其他信息。登录到此类型的服务器时,您可以使用登录名 anonymous,因此就有了术语“匿名 FTP 服务器”。
使用匿名 FTP 以及设置匿名 FTP 服务器并不在本手册的介绍范围之内。但是,许多书籍(如《The Whole Internet User's Guide & Catalog》等)都详细介绍了匿名 FTP。有关使用 FTP 的说明,请参见《系统管理指南:网络服务》。ftp(1) 手册页介绍了通过命令解释程序调用的所有 ftp 命令选项。ftpd(1M) 手册页介绍了由 in.ftpd 守护进程提供的服务。
Telnet-使用 Telnet 协议,终端和面向终端的进程可以在运行 TCP/IP 的网络上进行通信。此协议在本地系统上作为 telnet 程序实现,在远程计算机上则作为 in.telnetd 守护进程实现。Telnet 提供了一个用户界面,通过此界面两台主机可进行逐字符或逐行通信。Telnet 包括一组命令,telnet(1) 手册页对这些命令进行了全面介绍。
TFTP-简单文件传输协议 (Trivial File Transfer Protocol,tftp) 可提供类似于 ftp 的功能,但此协议不会建立 ftp 的交互式连接。因此,用户无法列出目录内容或更改目录。用户必须知道要复制的文件的全名。tftp(1) 手册页介绍了 tftp 命令集。
使用 UNIX "r" 命令,用户可以在其本地计算机上发出将在远程主机上运行的命令。这些命令包括:
rcp
rlogin
rsh
有关使用这些命令的说明,请参见 rcp(1)、rlogin(1) 和 rsh(1) 手册页。
DNS-域名系统 (domain name system, DNS) 是 Internet 为 TCP/IP 网络提供的名称服务。DNS 为 IP 地址服务提供主机名,另外还可用作数据库进行邮件管理。有关此服务的完整说明,请参见《系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)》。另请参见 resolver(3RESOLV) 手册页。
/etc 文件-最初的基于主机的 UNIX 名称系统是为独立的 UNIX 计算机开发的,后来逐步演变为可以用于网络。许多旧的 UNIX 操作系统和计算机仍在使用此系统,但是此系统并不适用于大型的复杂网络。
NIS-网络信息服务 (Network Information Service, NIS) 是独立于 DNS 开发的,并且其侧重点也稍有不同。DNS 侧重于使用计算机名称而不是数字 IP 地址来简化通信,而 NIS 侧重于对各种网络信息进行集中控制来更好地管理网络。NIS 存储有关计算机名称和地址、用户、网络本身以及网络服务的信息。NIS 名称空间信息存储在 NIS 映射中。有关 NIS 体系结构和 NIS 管理的更多信息,请参见《系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)》。
Oracle Solaris : 支持 LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)与 Sun 开放网络环境 (Sun Open Net Environment, Sun ONE) Directory Server 和其他 LDAP 目录服务器一起使用。名称服务和目录服务之间的区别在于功能范围不同。目录服务不仅提供与名称服务相同的功能,而且还提供其他功能。请参见《系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)》。
NFS 应用层协议可为 Oracle Solaris : 提供文件服务。有关 NFS 服务的完整信息,请参见《系统管理指南:网络服务》。
使用简单网络管理协议 (Simple Network Management Protocol, SNMP),可以查看网络的布局和关键计算机的状态。使用 SNMP,还可以通过基于图形用户界面 (graphical user interface, GUI) 的软件获取复杂的网络统计信息。许多公司都提供了实现 SNMP 的网络管理软件包。
路由信息协议 (Routing Information Protocol, RIP) 和路由器搜索 (Router Discovery, RDISC) 服务器协议是 TCP/IP 网络可用的两种路由协议。有关 Oracle Solaris 10 可用的路由协议的完整列表,请参阅表 5–1 和表 5–2。