OSI网络七层协议详解


七层OSI七层

1. 物理层

我们首先要解决两台物理机之间的通信需求,具体也就是机器A向机器B发送比特流,机器B能收到这些比特流,这便是物理层要做的事情。
物理层主要定义了物理设备的标准,如网线的类型,光纤的接口类型,各种传输介质的传输速率等。他的主要作用是传输比特流及二进制数据。将这些数据流转化为电流强弱进行传输。到达目的机器后,再转化为0101的机器码。也就是我们常说的数模转换与模数转换。这层的数据叫做比特。网卡就是在这一层工作的。

在传输比特流过程中,会产生错传, 数据传输不完整的可能。因此数据链路层应运而生。

2. 数据链路层

数据链路层定义了如何格式化数据以进行传输,以及如何控制对物理介质的访问,这一层通常还提供错误检测和纠正,以确保数据传输的可靠性。本层将比特数据转成了帧。交换机在这一层工作 ,对帧解码并根据帧中包含的信息把数据发送到正确的接收方。

随着网络节点的不断增加,点对点通信的时候,是需要多个节点的。那么如何找到目标节点,如何选择最佳路径,便成为了首要需求,此时,便有了网络层。

3. 网络层

其主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方。网络层通过综合考虑,发送优先权、网络拥塞程度、服务质量、以及可选路由的花费,来决定从一个网络中节点A到另一个网络中节点B最佳路径。由于网络层处理并智能指导数据传送,路由器连接网络各端,所以路由器属于网络层。此层的数据,称之为数据包。本层需要关注的协议主要是tcp/ip协议里中的ip协议。

随着网络通信需求的进一步扩大,通信过程中需要发送大量的数据,如海量文件传输,可能需要很长时间,而网络在通信的过程中,会中断好多次。此时为了保证传输大量文件时的准确性,需要对发出的数据进行切分,切割为一个一个的段落,进行发送。

那么其中一个段落丢失了应该怎么办,要不要重新传,每个段落要按照顺序到达吗?这个便是传输层要考虑的问题。

4. 传输层

传输层解决了主机间的数据传输,数据见的传输可以是不同网络的,传输层还解决了传输质量的问题。该层是OSI模型中最重要的一层。
传输协议同时进行流量控制,或是基于接收方可接收数据的快慢程度,规定适当的发送速率,除此之外,传输层按照网络能处理的最大尺寸,将较长的数据包进行强制分割。例如, 以太网无法接收大于1500字节的数据包,发送方节点的传输层,将数据分割成较小的数据片,同时对每一数据片安排一个序列号,以便数据到达接收方节点的传输层时,能以正确的顺序重组,该过程称为排序。传输层中需要我们关注的协议有:tcp/ip中的tcp协议和udp协议。

现在我们已经保证给正确的计算机发送正确的封装过后的信息了,但是用户级别的体验?难道每次都要调用tcp去打包?然后调用ip协议去找路由?自己去发?用户曾main当然不行,所以我们要建立一个自动收发包,自动寻址的功能。于是发明了会话层。

5. 会话层

会话层的作用就是建立和管理应用程序之间的通信,现在能保证应用程序自动收发包和自动寻址了,但我要用linux给windows发包,两个系统语法不一致,于是,发明了表示层。

6. 表示层

表示层帮我们解决不同系统之间的通信语法问题。在表示层,数据将按照网络能理解的方案进行格式化。这种格式化也因所使用网络的类型不同而不同。
此时,虽然发送方知道自己发送的是什么东西,转换成字节数组之后有多长,但接收方不知道,所以应用层的网络协议诞生了。

7. 应用层

应用层规定发送方和接收方必须使用一个固定长度的消息头,消息头必须使用某种固定的组成,而且消息头里必须记录消息体的长度等一系列信息。以方便接收方能够正确的解析发送方发送的数据,应用层旨在让你更方便的应用从网络中接收的数据,至于数据的传递,没有该层你也可以直接在两台电脑间传,只不过传来传去也是一堆01字节数据。该层需要我们重点关注的是与之相对应的tcp/ip协议中的http协议。

OSI只是概念性,并没有实现,

8. OSI的“实现” :TCP/IP

tcp/ip有四层:链路层(OSI中的物理层和链路层), 网络层,传输层,应用层(包括OSI中的会话层、表示层和应用层)
先自上而下,后自下而上处理头部。

相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页