俗人俗语谈技术之TCP/IP协议结构

TCP/IP网络协议的通俗解释,已经授权发表于《电脑商情报·家用电脑》。

上回咱们谈到了网络的七层OSI参考模型。但模型再怎么说也只是模型,并不是具体的设备,要将其应用到实际的网络中,则必须以模型为参考,构建一套用于网络互连的协议集。历史上,曾经出现过许多网络协议集,但最终取得巨大成功的,只有TCP/IP,它成为了Internet的基础。

但TCP/IP协议并不是参考OSI七层模型设计的。实际上,这个世界上也没有恰好针对OSI模型编写的协议。不过TCP/IP协议采用的模型却有类似于OSI模型的进程(所有优秀的模型都如此),可以通过转换与OSI模型实现对应。因此,在学习TCP/IP协议时,还是与OSI参考模型脱不了干系。

那么,TCP/IP协议到底与什么模型相映射呢?嘿嘿,DARPA是也!提起这DARPA,可真是大名鼎鼎,它是Department of Defense Advanced Research Projects Agency的缩写,中文则叫做美国国防部高级计划研究署。我们现在所用的Internet,就起源于它当年主持研究和实施的的一项工程。当时,为了实现网络的互连,DAPRA采用了TCP/IP协议,此协议映射至一个四层的互连模型,就是DARPA模型。TCP/IP协议中不同的协议集可以分别映射至DARPA模型中的四层,四层的DARPA模型又可以转换为七层的OSI参考模型。它们之间的关系,可以用下面的图图说明。

TCP/IP协议、DAPRA和OSI模型之间的关系
图 TCP/IP协议、DAPRA和OSI模型之间的关系

我们可以看到,在DAPRA模型中,网络接口层与OSI模型中的物理层和数据链路层相当,Internet层和传输层则对应于网络层和传输层,应用层包含了OSI模型的三层,即会话层、表示层和应用层。讲TCP/IP协议,通常也按照这四层来进行。

最下面的一层是网络接口层,顾名思义,完成媒介访问,封装帧以及通信等等,以太网、PPP拨号、无线网络连接等使用的物理连接和数据链路协议,都在这一层。

第二层是Internet层。这层最重要的协议是Internet协议,即平时我们所说的IP,它提供网络上的数据报(IP包)传递服务。每个IP包的头部包含有信息传递的源地址和目的地址(都是IP地址),通过DNS和路由,就可以完成数据的网络传输。除了IP,此层还有IGMP(Internet 组管理协议)、ICMP(Internet 控制报文协议)和ARP,常用的ping命令就是通过ICMP协议工作。

在第二层的IP包中,封装有TCP或UDP数据段,这就进入了第三层--传输层。在这一层,TCP(传输控制协议)或UDP(用户数据报协议)将数据流分成一个个小的数据段,封装在IP包中进行传输,并且一个数据段还可以分成一个或多个IP包。当IP包通过路由将数据传输到目的地时,会根据TCP或UDP包头中的源端口和目的端口信息,请求和获取不同的应用。由于机制的不同,TCP是一个可靠的协议,它有错误检查和握手确认来保证数据完整的到达目的地,通常用于HTTP、FTP等对传输要求高的应用;UDP则不可靠,它不能保证数据报的接收顺序同发送顺序相同,甚至不能保证它们是否全部到达,因此常用于一些要求不高的应用,如QQ等即时聊天服务。

然后,到了最高的应用层,这里没有什么好说的,HTTP、FTP、SMTP、SNMP等等应用,都在此实现,下面的三层则是它们的基础。

我们会发现,在上述协议集中,位于第二层的IP和第三层的TCP协议,具有举足轻重的作用,这也是人们把这个协议集命名为TCP/IP协议的原因。