分层
网络协议通常分不同层次进行开发,每一层分别
负责不同的通信功能。一个协议族,比如T C P / I P,是
一组不同层次上的多个协议的组合。T C P / I P通常被认
为是一个四层协议系统,如图1 - 1所示。
每一层负责不同的功能:
1) 链路层,有时也称作数据链路层或网络接口层,
通常包括操作系统中的设备驱动程序和计算机
中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。
2) 网络层,有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。在
T C P / I P协议族中,网络层协议包括I P协议(网际协议),I C M P协议(I n t e r n e t互联网控
制报文协议),以及I G M P协议(I n t e r n e t组管理协议)。
3 ) 运输层主要为两台主机上的应用程序提供端到端的通信。在T C P / I P协议族中,有两个
互不相同的传输协议: T C P(传输控制协议)和U D P(用户数据报协议)。
T C P为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分
成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟
等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。
而另一方面, U D P则为应用层提供一种非常简单的服务。它只是把称作数据报的分组
从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任何必需的可靠
性必须由应用层来提供。
这两种运输层协议分别在不同的应用程序中有不同的用途,这一点将在后面看到。
4 ) 应用层负责处理特定的应用程序细节。几乎各种不同的T C P / I P实现都会提供下面这些
通用的应用程序:
• Telnet 远程登录。
• FTP 文件传输协议。
• SMTP 简单邮件传送协议。
• SNMP 简单网络管理协议。
四种不同层次上的协议。F T P是一种应用层协议, T C P是一种运输层协
议,I P是一种网络层协议,而以太网协议则应用于链路层上。T C P / I P协议族是一组不同的协
议组合在一起构成的协议族。尽管通常称该协议族为T C P / I P,但T C P和I P只是其中的两种协
议而已(该协议族的另一个名字是I n t e r n e t协议族(Internet Protocol Suite))。
T C P和U D P是两种最为著名的运输层协议,二者都使用I P作为网络层协议。
虽然T C P使用不可靠的I P服务,但它却提供一种可靠的运输层服务。本书第1 7~2 2章将
详细讨论T C P的内部操作细节。然后,我们将介绍一些T C P的应用,如第2 6章中的Te l n e t和
R l o g i n、第2 7章中的F T P以及第2 8章中的S M T P等。这些应用通常都是用户进程。
U D P为应用程序发送和接收数据报。一个数据报是指从发送方传输到接收方的一个信息
单元(例如,发送方指定的一定字节数的信息)。但是与T C P不同的是,U D P是不可靠的,它
不能保证数据报能安全无误地到达最终目的。本书第11章将讨论U D P,然后在第1 4章(D N S :
域名系统),第1 5章( T F T P:简单文件传送协议),以及第1 6章(BO OT P:引导程序协议)
介绍使用U D P的应用程序。S N M P也使用了U D P协议,但是由于它还要处理许多其他的协议,
因此本书把它留到第2 5章再进行讨论。
I P是网络层上的主要协议,同时被T C P和U D P使用。T C P和U D P的每组数据都通过端系统
和每个中间路由器中的I P层在互联网中进行传输。在图1 - 4中,我们给出了一个直接访问I P的应
用程序。这是很少见的,但也是可能的(一些较老的选路协议就是以这种方式来实现的。当然
新的运输层协议也有可能使用这种方式)。第3章主要讨论I P协议,但是为了使内容更加有针对
性,一些细节将留在后面的章节中进行讨论。第9章和第1 0章讨论I P如何进行选路。
I C M P是I P协议的附属协议。I P层用它来与其他主机或路由器交换错误报文和其他重要信息。
第6章对I C M P的有关细节进行讨论。尽管I C M P主要被I P使用,但应用程序也有可能访问它。我
们将分析两个流行的诊断工具,P i n g和Tr a c e r o u t e(第7章和第8章),它们都使用了I C M P。
I G M P是I n t e r n e t组管理协议。它用来把一个U D P数据报多播到多个主机。我们在第1 2章中
描述广播(把一个U D P数据报发送到某个指定网络上的所有主机)和多播的一般特性,然后
在第1 3章中对I G M P协议本身进行描述。
A R P(地址解析协议)和R A R P(逆地址解析协议)是某些网络接口(如以太网和令牌环
网)使用的特殊协议,用来转换I P层和网络接口层使用的地址。我们分别在第4章和第5章对
这两种协议进行分析和介绍。
表1-1 TCP/IP四层模型和OSI七层模型对应表
OSI 七层网络模型 | Linux TCP/IP 四层概念模型 | 对应网络协议 |
应用层( Application ) | 应用层 | TFTP, FTP, NFS, WAIS |
表示层( Presentation ) | Telnet, Rlogin, SNMP, Gopher | |
会话层( Session ) | SMTP, DNS | |
传输层( Transport ) | 传输层 | TCP, UDP |
网络层( Network ) | 网际层 | IP, ICMP, ARP, RARP, AKP, UUCP |
数据链路层( Data Link ) | 网络接口 | FDDI, Ethernet, Arpanet, PDN, SLIP, PPP |
物理层( Physical ) | IEEE 802.1A, IEEE 802.2 到 IEEE 802.11 |
网络接口把数据链路层和物理层放在一起,对应TCP/IP概念模型的网络接口。对应的网络协议主要是:Ethernet、FDDI和能传输IP数据包的任何协议。
2.网际层
网络层对应Linux TCP/IP概念模型的网际层,网络层协议管理离散的计算机间的数据传输,如IP协议为用户和远程计算机提供了信息包的传输方法,确保信息包能正确地到达 目的机器。这一过程中,IP和其他网络层的协议共同用于数据传输,如果没有使用一些监视系统进程的工具,用户是看不到在系统里的IP的。网络嗅探器 Sniffers是能看到这些过程的一个装置(它可以是软件,也可以是硬件),它能读取通过网络发送的每一个包,即能读取发生在网络层协议的任何活动,因 此网络嗅探器Sniffers会对安全造成威胁。重要的网络层协议包括ARP(地址解析协议)、ICMP(Internet控制消息协议)和IP协议(网 际协议)等。
3.传输层
传输层对应Linux TCP/IP概念模型的传输层。传输层提供应用程序间的通信。其功能包括:格式化信息流;提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认信 息,如果分组丢失,必须重新发送。传输层包括TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议),它们是传输层中最主要的协议。TCP建立在IP之上,定义了网络上程序到程序的数据传输格式和规则,提供了IP数据 包的传输确认、丢失数据包的重新请求、将收到的数据包按照它们的发送次序重新装配的机制。TCP 协议是面向连接的协议,类似于打电话,在开始传输数据之前,必须先建立明确的连接。UDP也建立在IP之上,但它是一种无连接协议,两台计算机之间的传输 类似于传递邮件:消息从一台计算机发送到另一台计算机,两者之间没有明确的连接。UDP不保证数据的传输,也不提供重新排列次序或重新请求的功能,所以说 它是不可靠的。虽然UDP的不可靠性限制了它的应用场合,但它比TCP具有更好的传输效率。
4.应用层
应用层、表示层和会话层对应Linux TCP/IP概念模型中的应用层。应用层位于协议栈的顶端,它的主要任务是应用。一般是可见的,如利用FTP(文件传输协议)传输一个文件,请求一个和目 标计算机的连接,在传输文件的过程中,用户和远程计算机交换的一部分是能看到的。常见的应用层协议有:HTTP,FTP,Telnet,SMTP和 Gopher等。应用层是Linux网络设定最关键的一层。Linux服务器的配置文档主要针对应用层中的协议。TCP/IP模型各个层次的功能和协议如 表1-2所示。
表1-2 TCP/IP模型各个层次的功能和协议
层次名称 | 功 能 | 协 议 |
网络接口 ( Host-to-Net Layer ) | 负责实际数据的传输,对应 OSI 参考模型的下两层 | HDLC (高级链路控制协议) PPP (点对点协议) SLIP (串行线路接口协议) |
网际层 ( Inter-network Layer ) | 负责网络间的寻址 数据传输,对应 OSI 参考模型的第三层 | IP (网际协议) ICMP (网际控制消息协议) ARP (地址解析协议) RARP (反向地址解析协议) |
传输层 ( Transport Layer ) | 负责提供可靠的传输服务,对应 OSI 参考模型的第四层 | TCP (控制传输协议) UDP (用户数据报协议) |
应用层 ( Application Layer ) | 负责实现一切与应用程序相关的功能,对应 OSI 参考模型的上三层 | FTP (文件传输协议) HTTP (超文本传输协议) DNS (域名服务器协议) SMTP (简单邮件传输协议) NFS (网络文件系统协议) |