3.2.4 TCP/IP参考模型
ARPANET中使用的早期协议在网络互联的时候遇到了问题,所以需要一种新的参考体系结构,能够以无缝的方式将多个网络连接起来。在经过两个基本的协议之后,这个体系结构逐渐演变成TCP/IP参考模型,成为今天互联网的基石。TCP/IP参考模型在OSI模型出现之前很久就被设计出来,它不仅被所有广域计算机网络的鼻祖ARPANET所使用,也被ARPANET的继承者——全球范围内的Internet所使用。
TCP/IP模型也采用了分层的结构,定义了4层,包括应用层、传输层、互联网层和网络访问层,如图3-7所示。与OSI模型对比可以发现,两个模型的传输层是比较对应的,而OSI参考模型中会话层和表示层的一些功能出现在了TCP/IP的应用层中,另外OSI参考模型中会话层的某些功能出现在了TCP/IP的传输层中。TCP/IP的互联网层对应了OSI参考模型中的网络层。网络访问层对应了OSI参考模型中的数据链路层。
图3-7 OSI参考模型与TCP/IP参考模型的分层结构
(1)应用层
应用层允许用户接入互联网的服务,相当于OSI模型中的会话层、表示层和应用层的组合。TCP/IP模型并没有会话层和表示层。来自OSI模型的经验已经证明这种观点是正确的。对于大多数应用来说,这两层并没有太多用处。应用层包含了许多直接面向用户需求的协议,如远程终端协议(TELNET)、文件传输协议(FTP)、简单邮件传输协议(SMTP,Simple Mail Transfer Protocol)、超文本传输协议(HTTP)等,常见的应用层协议如表3-2所示。
表3-2 常见的应用层协议
(2)传输层
传输层提供了报文段的端到端的传输服务,允许设备间建立逻辑连接,将数据传输至特定进程,就如同OSI模型的传输层中的情形一样。
传输层中主要定义了两个端到端的传输协议。第1个是传输控制协议(TCP,Transport Control Protocol),它是一个可靠的、面向连接的协议,允许一台机器发出的数据流正确无误地传输到互联网上的另一台机器上。第2个协议是用户数据报协议(UDP,User Datagram Protocol),它是一个不可靠的、无连接的协议,以一种称为“尽最大努力交付”的方式简单地发送数据,而在接收方没有任何检验。因而TCP比UDP更加可靠,但是速度要慢一些并且更加复杂。
(3)互联网层
互联网层是将整个网络体系结构贯穿在一起的关键层,处理跨越多个网络机器之间的路由问题,实现了数据报的端到端传输。在功能上类似于OSI的网络层。互联网层主要定义了网际协议(IP,Internet Protocol),它是一个无连接、不可靠的数据报协议,提供了数据封装、无连接传输以及逻辑寻址、路由的功能。此外,还包含了一些支撑协议,如路由协议、因特网控制报文协议(ICMP,Internet Control Message Protocol)等。
(4)网络访问层
网络访问层也称网络接口层或主机至网络层,TCP/IP参考模型并没有明确规定这里应该有哪些内容,它只是指出,主机必须通过某个协议连接到网络上,以便可以将分组发送到网络上。TCP/IP参考模型没有定义任何特定的协议,支持所有标准的和专用的协议。根据不同的主机、不同的网络使用的协议也不尽相同。因此在这一层局域网技术、广域网技术和连接管理协议都可以发挥作用。
TCP/IP字面上代表了TCP和IP两个协议。但实际上通常所说的TCP/IP是指TCP/IP协议栈,它包含了一系列构成互联网基础的网络协议。可以分层次地画出具体的协议来表示TCP/IP协议栈,如图3-8所示,这种形状的TCP/IP协议栈表明IP协议是互联网的核心。虽然相互连接的网络可以是异构的,但互联的网络都使用相同的IP协议,因此互联以后的计算机网络在网络层上看起来好像是一个统一的虚拟互联网络,也就是逻辑互联网络。TCP/IP协议允许IP协议在由各式各样的网络构成的互联网上运行(所谓的IP over everything),同时TCP/IP协议也可以为各式各样的应用提供服务(所谓的everything over IP)。
图3-8 TCP/IP协议栈结构示意图