7层通信
在七层osi模型中是如何实现通信的呢。参考上图。
首先,发送方从第七层(应用层)到第一层由上至下发送数据,而接收端刚好相反从下至上接收数据。发送端再处理上一层传过来的数据时可以附上当前分层的协议所必须的“首部”信息。接收端对收到的数据进行数据“首部”与“内容”的分离,再转发给上一层,并最终将发送端的数据恢复为原状。
应用层
假设A要给B发送一个邮件,发送的邮件分为两部分,一部分是内容,另一部分是收件人。内容是与通信无关的内容,而将内容发送给B则是与通信有关的内容。
从用户输入完成要发送的内容并“点击”发送按钮的那一刻开始,就进入了应用层协议的处理。该协议会在所要传送的数据的前端附加一个首部(标签)信息。该首部标签表明了“内容”和“收件人B”。当接收端的应用层处理是,会获取内容,并且得知该邮件是A发给我的,并且将邮件内容保存的硬盘中。如果无法写入硬盘,则会返回一个错误给发送方。这就是应用层的作用。
表示层
在我们的生活中,应用的软件不同也会导致数据的表现形式不同。例如有字处理的软件只能由该字处理器厂商所提供的特定版本的软件打开来读取。
那么电子邮件如果遇到类似问题该怎么解决呢?
首先是利用表示层,将数据从某个计算机特定的数据格式转换为网络通用的标准格式后再发送出去。
接收端主机收到数据以后再将网络标准格式恢复为该计算机特定的数据格式, 然后在进行相应的处理。
表示层有自己统一的网络数据格式和某一台计算机某一款软件特有的数据格式之间的相互转换分层。
表示层与表示层之间为了识别编码格式也会附加首部信息,从而将实际传输的数据转交给下一层或上一层处理。
这就是表示层的作用。
会话层
下面我们来分析在两端主机的会话层之间是如何高效地惊醒数据交互、采用何种方法传输数据的。
假定用户A新建了5封电子邮件准备发送给用户B。这5封邮件的发送顺序可以有很多种。例如,可以每发一封建立一次连接,随后断开连接,也可以连接好之后一次把5封邮件全部发送。决定采用何种连接方法就是会话层的责任。
会话层在其收到数据前端也会附加首部信息或标签信息后在转发给下一层。而这些首部或标签中记录这数据传送顺序的信息。
===================================================================================
到此为止,我们通过例子说明了在应用层写入的数据会经由表示层格式化编码 、再由会话层标记发送顺序后才被发送出去的大致过程。 然而,会话层只对何时建立连接、何时发送数据等问题进行管理,并不具有实际传输数据的功能。真正负责在网络上传输数据具体的是会话层以下的”无名英雄“。
传输层
主机A确保与主机B之间的通信并准备发送数据。这一过程叫做”建立连接“。有了这个通信连接就可以使主机A发送的电子邮件到达主机B中、并由主机B的邮件处理程序获取最终数据。此外,当通信传输结束后,有必要将连接断开。
如上,进行建立连接或断开的处理,在两个主机之间创建逻辑上的通信连接即是传输层的主要作用。此外,传输层为确保所传输的数据到达目标地址,会在通信两端的计算机进行确认,如果数据没有到达,它会负责重发。
保证数据传输的可靠性是传输层的一个重要作用。为了确保可靠性,在这一层也会为所要传输的数据附加首部以识别这一分层的数据。
网络层
网络层的作用是在网络与网络相互连接的环境中,将数据从发送端主机发送的接收端主机。
在实际发送数据时,目的地址至关重要。这个地址是进行通信的网络唯一指定的序号。只要这个目的地址确定了,就可以在众多 计算机中挑选出该目标地址所对应的计算机发送数据。网络层也会将其从上层收到的数据和地址信息等一起发送给下面的数据链路层,进行后面的处理。
数据链路层,物理层
通信传输实际上是通过物理的传输介质实现的。数据链路层的作用就是在这些通过介质互联的设备之间进行数据处理。
物理层中,将数据0和1转换为电压和脉冲光传输给物理的传输介质,而相互直连的设备之间使用地址实现传输。这种地址被称为MAC地址,也可称为物理地址或硬件地址。