TCP/IP模型与OSI参考模型有许多相似之处。
首先,二者都采用分层的体系结构,将庞大且复杂的问题划分为若干个较容易处理的,范围较小的问题,而且分层的功能也大体相似。
其次,二者都是基于独立的协议栈的概念。
再次,二者都是可以解决异构网络的互联,实现世界上不同厂家生产的计算机之间的通信。
两个模型除了具有这些基本的相似之处,也有很多差别。
第一,OSI参考模型的最大功能就是精确地定义了三个主要概念:服务、协议和接口,这与现代的面向对象程序设计思想非常吻合。而TCP/IP模型在这三个概念却没有明确区分,不符合软件工程的思想。
第二,OSI参考模型产生在协议发明之间,没有 偏向于任何特定的协议,通用性良好。但设计者在协议方面没有太多的经验,不知道把哪些功能放到那一层更好。TCP/IP模型正好相反。首先出现的是协议,模型实际上是对已有协议的描述,因此不会出现协议不能匹配模型的情况,但该模型不适合任何其他非TCP/IP的协议栈。
第三,TCP/IP模型在设计之初就考虑到多种异构网的互联问题,并将网际协议IP作为一个单独的重要层次。OSI参考模型最初只考虑到用一种标准的公用数据网络将各种不同的系统互联。后来OSI参考模型认识到网际协议IP的重要性,因此只好在网络层中划分出一个子层来完成类似于TCP/IP模型中IP的功能。
第四,OSI参考模型在网络层支持无连接和面向连接的通信,但在传输层仅有面向连接的通信。而TCP/IP模型认为可靠性是端到端的问题,因此它在网际层仅有一种无连接的通信模式,但在传输层支持无连接和面向连接两种模式。
无论是OSI参考模型,还是TCP/IP模型都不是完美的,对二者的讨论和批评都很多。OSI参考模型的设计者从工作的开始,就试图建立一个全世界的计算机网络都遵循的统一标准。从技术角度来看,它们喜欢追求一种完美的理想状态,这也导致基于OSI参考模型的软件效率极低。OSI参考模型缺乏市场和商业动力,结构复杂,实现周期长,运行效率低,这是它没有能够达到理想目标的重要原因。
在学习计算机网络时,往往采取折中的方法,即综合OSI和TCP/IP的优点,采用一种只有五层协议的体系结构,即我们所熟知的物理层、数据链路层、网络层、传输层和应用层。