OSI模型主要用来解释数据是如何从一台计算机发送到另一台计算机上的,该模型将通信协议必要的功能分成了7层,同一层之间遵守的约定我们称其为协议,上下层之间的约定我们称其为接口。
一、应用层
1.应用层
以发送一封邮件来举例子的,比如A要发送一封邮件给B。邮件内容是:“早上好”,收件人是:B,那么就要就在发送的数据首部写如收件人信息和信息内容。从A按下发送的瞬间开始,这个通信就进入了应用层,相应的,B通过邮箱的查看邮件功能来查看邮件内容和寄件人等信息也属于应用层。所以A写入数据时的方式和B查看数据的方式就要遵循相同的规则,这个规则就是应用层的协议。
2.表示层
顾名思义表示层就是要对发送的数据进行行表示,比如,计算机有大小端之分,如果以小端发送B以大端来解析这段数据的话就会导致错误,所以需要表示层将要发送的数据转换为网络通用的格式(大端),然后在B收到数据解析时候转成B主机的格式。再比如,就对汉字来说有utf-8,GBK等格式,解析的时候也需要知道这段数据该怎么去译码,所以表示层还需要做类似这样的处理。
3.会话层
会话层主要是决定采用何种连接方式,举例来说,A要给B发送5封邮件,那么A可以与B建立5个连接,然后发送5个,也可以建立一个连接,然后先后发送5封邮件。
二、传输层
对比会话层,会话层主要决定了断开和连接的时机,而具体的断开和连接就由传输层来负责了。比如,我们发"早上好",因为某些原因只发送了"早上",B在收到后发现数据少了一部分,此时会发送消息告诉A少了一部分,A会补发丢失的"A"。
三、网络层
网络层负责端对端的传输,最直观的感受应该是ping通不通。
四、数据链路层、物理层
数据链路层的传输单元是帧,就是将一个大的IP包分成一帧一帧。
通信传输实质上还是通过物理的传输介质来实现的,物理层中将数据0、1转换为电压和脉冲光传播给物理的传输介质。
五、我的理解
简单来理解TCP/IP协议就类似我们打电话,本质上是通过声波来传播的,但是我们为了保证可以相互沟通就规定了各种协议,确保不同语言之间也可以理解。OSI模型中就是通过各层协议来实现统一、并且通过种种手段来确保通信的可靠。从一个原始数据,层层打包这条数据的信息,把信息写在数据头部,然后通过物理介质传给目标主机,目标主机在按照固定的协议层层解析,获得能理解的、正确的原始数据。