计算机网络之OSI七层模型
原文链接:计算机网络之OSI七层模型
OSI开放式互联参考模型
当前市面上存在着四层、五层、七层协议,而国际标准化组织ISO指定的OSI七层协议模型是业界提出来的概念性框架。整个模型分为七层,物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。
物理层
为了解决两台物理机之间的通信需求,具体就是机器A往机器B放松比特流,机器B能收到比特流,这便是物理层需要做的工作。
物理层主要定义了物理设备的标准,如网线的类型,光纤接口的类型,各种传输介质的传输速率等。
它的主要作用是传输比特流,即我们所说的“010101”这样的二进制数据,将它们转化为电流强弱进行传输,到达目的地后再转化为二进制数据,这就是数模转换和模数转换。
物理层的数据称为比特,网卡就是工作在物理层。
数据链路层
在传输比特流的过程中,会发生错传、传输不完整的情况,因此,数据链路层应运而生。
数据链路层定义了如何格式化数据进行传输,以及对物理介质的访问,通常还提供错误检查和纠正,以确保数据传输的可靠性。
本层将比特数据组成了帧,交换机在这一层工作,对帧进行接码,并将帧中的数据发送到正确的接收方。
网络层
随着网络节点的不断增加,点对点通讯时是需要经过多个节点的,那么如何找到目标节点?如何选择最佳路径?这戏问题成了首要需求,所以便有了网络层。
网络层的主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。网络层会综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费,来决定从一个网络中节点A到另一个网络中节点B的最佳路径。
网络层的数据称为数据包。由于网络层处理并智能知道数据传送,路由器连接网络各端,所以路由器属于网络层。
在这一层里我们需要注意TCP/IP协议里的IP协议。
传输层
随着网络通信需求的进一步扩大,通信过程中需要发送大量的数据,如海量文件传输等,这可能需要很长的时间,而网络在通信的过程中是会中断很多次的,此时为了保证传输大量文件的准确性,需要对发送出去的数据进行切分,切分为一个一个的段落,即segment,进行发送。那么其中一个段落丢失了该怎么办?要不要重发?每个段落要按照顺序达到吗?这些便是传输层需要考虑的问题。
传输层解决了数据间的传输,数据间的传输可以是不同网络的。传输层解决了数据传输的质量问题,该层是OSI模型中最重要的一层。
传输协议同时进行流量控制,或是基于接收方接收数据的快慢程度,规定适当的发送速率。除此之外,传输层按照网络能处理的最大尺寸,将较长的数据包进行强制分割,例如以太网无法接收大于1500字节的数据包,发送方的传输层将数据分割成较小的数据片,同时对每个数据片编号,以便数据到达接收方的传输层时能以正确的顺序重组,这个过程称为排序。
传输层需要关注的协议有TCP协议和UDP协议。
会话层
现在我们已经保证给正确的接受方发送正确封装过后的信息,但是我们每次调用TCP去打包,然后调用IP协议去找路由,自己去发吗?答案当然是否定的,所以我们要建立一个自动收发包,一个自动寻址的功能,于是发明了会话层。
会话层的作用就是建立和管理应用程序之间的通信。
表示层
不同操作系统之间通信语法是不同的,这个时候就需要表示层来帮我们解决这个问题。
在表示层,数据将按照网络能理解的方案进行格式化,这种格式化也因使用网络类型的不同而不同。
应用层
此时发送方虽然知道自己发送的是什么东西,转换成字节数组后有多长,但接受方肯定不知道。所以应用层诞生了。
它规定消息的发送方和接收方必须使用一个固定长度的消息头,消息头必须使用某种固定的组成,而且消息头里必须记录消息体的长度等一些列信息,方便接收方能正确解析数据,应用层旨在让你更方便地应用在网络中接收到的数据,对于数据的传递,没有该层也可以完成,只不过传输的都是由1和0组成的字节数组。
这一层需要我们重点关注的时http协议。
OSI开放式互联网参考模型
先自上而下,后自下而上处理数据头部
从应用层开始,都会对要传输的数据头部进行处理,加上本层的一些信息,最终物理层通过以太网电缆等介质将数据解析成比特流,在网络中传输。
数据传输到目标地址,并自下而上地将数据头部进行分离、解析。
TCP/IP
OSI的“实现”:TCP/IP
TCP/IP也是先自上而下,后自下而上处理头部数据。