本文是笔者在学习《图解TCPIP(第5版).乌尼日其其格》后的个人总结和转述
OSI是什么
OSI是一个开放式系统互联通信参考模型(Open System Interconnection Reference Model),一种概念模型,由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。
先上一张原书中的图
可能还是有些懵吧,我再来讲一下我自己对每一层的理解,这也是这篇博客的主要内容
-
应用层:软件、应用层面的操作。(如邮件软件中的邮件的收发,实现邮件的存储)
-
表示层:关注数据的具体表现形式,如把某个计算机的“特定数据格式”转换为“网络通用的标准数据格式”,也可以逆向转换,保持异构机型间的数据一致性。会在首部信息中附加编码格式。(文字转码)
-
会话层:决定如何传输,会在首部信息中附加数据传送顺序的信息。(发5封邮件,每发一次建立一次连接,或者用一个连接发5封)
-
传输层:真正开始负责在网络上传输数据是从这一层开始。进行建立连接或断开连接,在两个主机之间创建逻辑上的通信是其主要作用。确认数据得到达,负责进行重发。会在首部信息中附加所要传输的数据以识别。
-
网络层:在网络互连的环境中,将数据从发送端主机发送到接收端主机。网络层会将其从上层收到的数据和地址信息一起发送给下面的数据链路层,进行后面的处理。
-
数据链路层、物理层:物理层中,将数据的0、1转换为电压和脉冲光传给物理的传输介质,而相互直连的设备之间使用地址实现传输(MAC地址,即物理或硬件地址),在这一层中将把包含MAC地址信息的首部附加到网络层转发来的数据上,将其发送到网络。
-
注:网络层与数据链路层都是基于目标地址将数据发送给接收端的,但是网络层负责将整个数据发送给最终目标地址,而数据链路层则只负责发送一个分段内的数据。
上边有说到的“首部”这个东西,就有点像我们在http请求中的请求头和相应头,里面包括一些类似文字编码,客户端类型等数据,“首部”中的信息就是在这些层次中加上的。(如下为一次网络通信的流程图)
发送方从第7层、第6层到第1层由上至下按照顺序传输数据,而接收端则从第1层、第2层到第7层由下至上向每个上一级分层传输数据。每个分层上,在处理由上一层传过来的数据时可以附上当前分层的协议所必须的“首部”信息。然后接收端对收到的数据进行数据“首部”与“内容”的分离,再转发给上一分层,并最终将发送端的数据恢复为原状。
OSI与TCP/IP的比较
- OSI有7层,而TCP/IP简化了高层协议,减少通信的层次为4层,提升了通信效率。
- OSI是一种理想化的模型,它先定义参考模型,然后才是协议,这样就会比较难实现。而TCP/IP是先定义协议,于是迅速成为实际的主流网络协议标准。(OSI就像世界语,TCP/IP就像英语。)
- 通过因特网与其他计算机通信就必须遵守TCP/IP协议。