开放式系统互联模型(OSI)是一个参考标准,解释协议相互之间应该如何相互作用。TCP/IP协议是美国国防部发明的,是让互联网成为了目前这个样子的标准之一
OSI:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
TCP/IP:网络接口层,网络层,传输层,应用层
相同点:
1.都是分层结构,并且工作方式一样,都要层与层之间很密切的协作关系。有相同的应用层,传输层,网络。
不同点:
1.对于OSI/RM模型有三个明确的核心概念.(1)服务,(2)接口,(3)协议。而TCP/IP对此没有明确的区分
2.OSI 先有模型,后有协议规范,适合于描述各种网络;TCP/IP 是先有协议集然后建立模型,不适用于非 TCP/IP 网络。
3.OSI模型的网络层提供两种服务类型:面向连接的虚电路交换或无连接的数据报交换。而TCP/IP的网络层使用的是IP协议,提供的是无连接的数据报交换。
4.针对传输层,TCP/IP模型在一开始就提出了面向连接和无连接服务,其中TCP协议提供面向连接的可靠数据传输服务,而UDP协议提供无连接的不可靠数据传输服务。相比之下,OSI模型最初只关注面向连接的服务,传输层采用了传输控制协议(TCP)作为标准协议,提供面向连接的可靠数据传输服务。直到很晚才开始制定无连接服务的标准,引入了用户数据报协议(UDP),提供无连接的不可靠数据传输服务。
为什么 TCP/IP 去除了表示层和会话层
OSI 参考模型在提出时,他们的理想是非常好的,但实际上,由于会话层、表示层、应用层都是在应用程序内部实现的,最终产出的是一个应用数据包,而应用程序之间是几乎无法实现代码的抽象共享的,这也就造成 OSI 设想中的应用程序维度的分层是无法实现的,例如,我们几乎不会认为数据的压缩、加密算法算是一种协议,而会话的概念则更为抽象,难以用协议来进行描述,所以在后来的 TCP/IP 协议框架的设计中,便将表示层和会话层与应用层整合在一起,让整个过程更为清晰明了。
总结:会话层,表示层和应用层都是在应用程序内部实现的,应用程序之间无法实现代码的抽象共享,因此应用程序维度无法实现分层。