1.3.1 TCP/IP组件的4个层次及功能
网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。一个协议组件,比如TCP/IP,是一组不同层次上的多个协议的组合。TCP/IP通常被认为是一个4层协议系统,每一层负责不同的功能。
1.链路层
有时也称该层为数据链路层或网络接口层。它通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。
2.网络层
有时也称该层为互联网层。它处理分组在网络中的活动,例如分组的路由选择。在TCP/IP组件中,网络层协议包括IP(网际协议)、ICMP(Internet控制报文协议),以及IGMP(Internet组管理协议)。
3.传输层
主要为两台主机上的应用程序提供端到端的通信。在TCP/IP组件中,有两个互不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。
TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据,分成合适的小块交给下面的网络层,确认接收到的分组,设置发送,最后确认分组的超时时钟等。由于传输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。
而另一方面,UDP则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任何确定的可靠性必须由应用层来提供。这两种传输层协议分别在不同的应用程序中有不同的用途,这一点将在后面介绍。
4.应用层
负责处理特定的应用程序细节。几乎各种不同的TCP/IP实现都会提供下面这些通用的应用程序。
● Telnet:远程登录。
● FTP:文件传输协议。
● SMTP:用于电子邮件的简单邮件传输协议。
● SNMP:简单网络管理协议。
另外,TCP/IP的功能还有许多其他应用,将在后面章节中介绍,下面仅介绍两个。
(1)局域网上运行FTP的两台主机
这里,列举一个FTP客户程序和另一个FTP服务器程序。大多数的网络应用程序都被设计成客户—服务器模式。服务器为客户提供某种服务,在本例中就是访问服务器所在主机上的文件。在远程登录应用程序(Telnet)中,为客户提供的服务是登录到服务器主机上。
在同一层上,双方都有对应的一个或多个协议进行通信。例如,某个协议允许TCP层进行通信,而另一个协议则允许两个IP层进行通信。
应用程序通常是一个用户执行,而下三层则一般在操作系统内核中执行。尽管这不是必需的,但通常都是这样处理的,例如UNIX操作系统。
顶层与下三层之间还有另一个关键的不同之处:应用层关心的是应用程序的细节,而不是数据在网络中的传输活动;下三层对应用程序一无所知,但它们要处理所有的通信细节。
有4种不同层次的协议;FTP是一种应用层协议,TCP是一种传输层协议,IP是一种网络层协议,而以太网协议则应用于链路层上。TCP/IP组件是一组不同的协议组合在一起构成的协议族。尽管通常称该协议组件为TCP/IP,但TCP和IP只是其中的两种协议而已。该协议组件的另一个名字是Internet协议族(Internet Protocol Suite)。
网络接口层和应用层的目的是很显然的:前者处理有关通信媒介的细节(以太网、令牌环网等);后者处理某个特定的用户应用程序(FTP、Telnet等)。然而,从表面上看,网络层和传输层之间的区别却不那么明显。为什么要把它们划分成两个不同的层次呢?为了理解这一点,必须把视野从单个网络扩展到一组网络。
(2)通过路由器连接的两个网络
20世纪80年代,网络不断增长的原因之一是大家都意识到只有一台孤立的计算机构成的“孤岛”没有太大意义,于是就把这些孤立的系统组在一起形成网络。随着发展,到了20世纪90年代,又逐渐认识到这种由单个网络构成的新的较大的“岛屿”同样没有太大的意义,于是,人们又把多个网络联在一起形成一个网络的网络,或称做互联网(Internet)。一个互联网就是一组通过相同协议族互联在一起的网络。
构造互联网最简单的方法是把两个或多个网络通过路由器进行连接。它是一种特殊的用于网络互联的硬件盒。路由器的好处是为不同类型的物理网络提供连接:以太网、令牌环网、点对点链接、FDDI(光纤分布式数据接口),等等。这些盒子也称作IP路由器(IP Routers)。
这里使用路由器(Router)术语,从历史上说,这些盒子称作网关(Gateways),在很多TCP/IP文献中都使用这个术语。网关这个术语只用来表示应用层网关——一个连接两种不同协议组件的进程(例如,TCP/IP和IBM的SNA)。它为某个特定的应用程序服务(常常是电子邮件或文件传输)。
包含两个网络的互联网:一个以太网和一个令牌环网,通过一个路由器互相连接。尽管这里是两台主机通过路由器进行通信,实际上以太网中的任何主机都可以与令牌环网中的任何主机进行通信。可以划分出端系统(End System,两边的两台主机)和中间系统(Intermediate System,中间的路由器)。应用层和传输层使用端到端(end-to-end)协议。但是,网络层提供的却是逐跳(hop-by-hop)协议,两个端系统和每个中间系统都要使用它。
在TCP/IP组件中,网络层IP提供的是一种不可靠的服务。也就是说,它只是尽可能快地把分组从源节点送到目的节点,但是并不提供任何可靠性保证。而另一方面,TCP在不可靠的IP层上提供了一个可靠的传输层。为了提供这种可靠的服务,TCP采用了超时重传、发送和接收端到端的确认分组等机制。由此可见,传输层和网络层分别负责不同的功能。
从定义上看,一个路由器具有两个或多个网络接口层(因为它连接了两个或多个网络)。任何具有多个接口的系统英文都称是multihomed(多接口的)。一个主机也可以有多个接口,但一般不称作路由器,除非它的功能只是单纯地把分组从一个接口传送到另一个接口。同样,路由器并不一定指那种在互联网中用来转发分组的特殊硬件盒。大多数的TCP/IP实现也允许一个多接口主机来担当路由器的功能,但是主机为此必须进行特殊的配置。在这种情况下,既可以称该系统为主机(当它运行某一应用程序时,如FTP或Telnet),也可以称之为路由器(当它把分组从一个网络转发到另一个网络时)。在不同的场合下可以使用不同的术语。
互联网的目标之一是在应用程序中隐藏所有的物理细节。虽然这一点在由两个网络组成的互联网中并不很明显,但是应用层不能关心(也不关心)一台主机是在以太网上。而另一台主机是在令牌环网上,它们通过路由器进行互联。随着增加不同类型的物理网络,可能会有20个路由器,但应用层仍然是一样的。物理细节的隐藏使得互联网功能非常强大,也非常有用。
连接网络的另一个途径是使用网桥。网桥是在链路层上对网络进行互联,而路由器则是在网络层上对网络进行互联。网桥使得多个局域网(LAN)组合在一起,这样对上层来说就好像是一个局域网。