7.4 TCP/IP模型
尽管OSI参考模型得到了全世界的认同,但是互联网历史上和技术上的事实开发标准则是TCP/IP(传输控制协议/因特网协议)模型。TCP/IP模型及其协议簇使得世界上任意两台计算机间的通信成为可能,并且通信速度接近光速。
7.4.1 TCP/IP模型简介
TCP/IP模型是由美国国防部创建的,所以有时又称DoD(Department of Defense)模型,其是迄今为止发展最成功的通信协议,被用于构筑目前最大的、开放的互联网络系统Internet。TCP/IP是一组通信协议的代名词,这组协议使任何具有网络设备的用户能访问和共享Internet上的信息,其中最重要的协议是传输控制协议(TCP)和因特网协议(IP)。TCP和IP是两个独立且紧密结合的协议,负责管理和引导数据报文在Internet上的传输。两者使用专门的报文头定义每个报文的内容。TCP负责和远程主机的连接,IP负责寻址,使报文被送到其该去的地方。
TCP/IP分为不同的层次进行开发,每一层负责不同的通信功能。但TCP/IP协议简化了层次设备(只有4层),由下而上分别为网络层、互连层、传输层、应用层,如图7-12所示。应该指出,TCP/IP是OSI模型之前的产物,所以两者间不存在严格的层对应关系。在TCP/IP模型中并不存在与OSI中的物理层和数据链路层相对应的部分,相反,由于TCP/IP的主要目标是致力于异构网络的互连,所以同OSI中的物理层与数据链路层相对应的部分没有作任何限定。
图7-12
在TCP/IP模型中,网络接口层是TCP/IP模型的最底层,负责接收从网络层交来的IP数据报并将IP数据报通过底层物理网络发送出去,或者从底层物理网络上接收物理帧,抽出IP数据报,交给网络层。网络接口层使采用不同技术和网络硬件的网络之间能够互连,它包括属于操作系统的设备驱动器和计算机网络接口卡,以及处理具体事务的硬件物理接口。
网络层负责独立地将分组从源主机送往目的主机,为分组提供最佳路径的选择和交换功能,并使这一过程与它们所经过的路径和网络无关。TCP/IP模型的网络层在功能上类似OSI参考模型中的网络层,即检查网络拓扑结构,以决定传输报文的最佳路由。
传输层的作用是在源结点和目的结点的两个对等实体间提供可靠的端到端的数据通信。为保证数据传输的可靠性,传输层协议也提供了确认、差错控制和流量控制等机制。
传输层从应用层接收数据,并且在必要的时候把它分成较小的单元,传递给网络层,并确保到达对方的各段信息准确无误。应用层为用户提供网络应用,并为这些应用提供网络支撑服务,把用户的数据发送到低层,为应用程序提供网络接口。由于TCP/IP将所有与应用相关的内容都归为一层,所以在应用层要处理高层协议、数据表达和对话控制等任务。
7.4.2 各层主要协议
TCP/IP事实上是一个协议系列或协议簇,目前包含了一百多个协议,用来将各种计算机和数据通信设备组成实际的TCP/IP计算机网络。TCP/IP模型各层的一些重要协议如图7-13所示。
图7-13
1.网络层协议
TCP/IP的网络层中包括各种物理网协议,例如Ethernet、令牌环、帧中继、ISDN和分组交换网X.25等。当各种物理网被用作传输IP数据报的通道时,就可以认为是属于这一层的内容。
2.互连层协议
互连层协议包括多个重要协议,主要协议有4个,即IP、ARP、RARP和ICMP。
・网际协议(Internet Protocol,IP):是其中的核心协议,IP协议规定网际层数据分组的格式。
・Internet控制消息协议(Internet Control Message Protocol,ICMP):提供网络控制和消息传递功能。
・地址解释协议(Address Resolution Protocol,ARP):用来将逻辑地址解析成物理地址。
・反向地址解释协议(Reverse Address Resolution Protocol,RARP):通过RARP广播,将物理地址解析成逻辑地址。
3.传输层协议
传输层的主要协议有TCP和UDP。
・传输控制协议(Transport Control Protocol,TCP):是面向连接的协议,用三次握手和滑动窗口机制来保证传输的可靠性并进行流量控制。
・用户数据报协议(User Datagram Protocol,UDP):是面向无连接的不可靠传输层协议。
4.应用层协议
应用层协议包括了众多的应用与应用支撑协议。常见的应用协议有:文件传输协议(FTP)、超文本传输协议(HTTP)、简单邮件传输协议(SMTP)、远程登录(TELNET)协议;常见的应用支撑协议包括域名服务(DNS)和简单网络管理协议(SNMP)等。
7.4.3 TCP/IP网络模型数据封装
在TCP/IP网络模型(见图7-14)中,网络必须执行以下5个转换步骤以完成数据封装的过程。
1.生成数据
当用户发送一个电子邮件时,它的字母或数字字符被转换成可以通过互联网传输的数据。
2.为端到端的传输将数据打包
通过对数据打包来实现互联网的传输。通过使用段传输功能确保在两端的信息主机的电子邮件系统之间进行可靠的通信。
图7-14
3.在报头上附加目的网络地址
数据被放置在一个分组或者数据报中,其中包含了带有源和目的逻辑地址的网络报头,这些地址有助于网络设备在动态选定的路径上发送这些分组。
4.附加目的数据链路层地址(MAC地址)到数据链路报头
每一个网络设备必须将分组放置在帧中,该帧的报头包括在路径中下一台直接相连设备的物理地址。
5.传输比特
帧必须转换成一种1和0的模式,才能在介质(通常为线缆)上进行传输。时钟功能(Clocking Function)使得设备可以区分这些在介质上传输的比特,物理互联网络上的介质可能随着使用的不同路径而有所不同。例如,电子邮件信息可以起源于一个局域网(LAN),通过校园骨干网,到达广域网(WAN)链路,直到到达另一个远端局域网(LAN)上的目的主机为止。