OSI七层网络模型

时间:2024-04-11 11:10:32

一、OSI 七层模型
开放系统互连参考模型 (Open System Interconnect 简称OSI),为开放式互连信息系统提供了一种功能结构的框架。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
OSI参考模型定义了开放系统的层次结构和各层所提供的服务。OSI参考模型的一个成功之处在于,它清晰地分开了服务接口协议这3个容易混淆的概念。服务描述了每一层的功能,接口定义了某层提供的服务如何被高层访问,而协议是每一层功能的实现方法。
OSI模型的特点:
①每层的对应实体之间都通过各自的协议进行通信。
②各个计算机系统都有相同的层次结构。
③不同系统的相应层次具有相同的功能。
④同一系统的各层次之间通过接口联系。
⑤相邻的两层之间,下层为上层提供服务,上层使用下层提供的服务。
OSI模型具有如下优点:
(1)分工合作,责任明确。性质相似的工作划分在同一层,性质不同的工作则划分到不同层,这样每一层的功能都是明确的,每一层都有其负责的工作范围,一旦出现问题,很容易找到问题所在的层,仅对此层加以改善即可
(2)对等交谈。计算机通过网络进行通信时,按照对等交谈的原则,即同一层找同层,通过各对等层的协议来进行通信,比如,两个对等的网络层使用网络协议通信。
(3)逐层处理,层层负责。在OSI中,两个实体通信必须涉及下一层,只有相邻层之间可以通信,下层向上层提供服务,上层通过接口调用下层的服务层间不能有越级调用关系,每层功能的实现都是在下层提供服务的基础上完成的。即每一层都是利用下层提供的服务来完成本层功能,并在此基础上为上层提供进一步的服务。
OSI七层网络模型
发送方从最高层开始,从上到下按顺序传输数据,每一层接收到由上层处理的数据时,添加该层的首部并可能会对数据进行处理(如表示层)。而接收端则将顺序反过来,从首层开始,将数据的内容与该层对应的首部拆开,传给上一层。
简单理解可以这样,想象A将要寄一个易碎品寄给B,A所在的快递站寄件时有由七个人组成的打包流程,每个人只管接收上一个人的打包好的物件,并在外面套一个大一点盒子,传给下一个人。当物件寄到B所在的快递站时,同样也有七个人负责拆盒子,每个人只拆一个,最后将物件给到B手上。
分层的必要性:
分层后,如若某层产生变化,也不会波及整个系统。明确界定各层的作用,有助于系统的健壮性。
一、应用层
OSI七层网络模型
应用层的任务是通过应用进程间的交互来完成特定网络应用,也就是为应用提供服务应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统 DNS,支持万维网应用的 HTTP 协议,支持电子邮件的 SMTP 协议等等。
1.域名系统
域名系统是因特网的一项核心服务,它作为可以将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的 IP 数串。
2.http 协议
超文本传输协议( HyperText Transfer Protocol )是互联网上应用最为广泛的一种网络协议。所有的 WWW(万维网) 文件都必须遵守这个标准。
3.应用层交互的数据单元称为报文
4.前端开发接触的协议主要以 HTTP 为主,那么把浏览器看作一个应用,当用户发起请求时,通过 HTTP协议获得数据以供浏览器使用,这就是应用层的用途。而请求时发生错误,对错误进行处理,也是应用层需要负责的。
二、表示层
OSI七层网络模型
表示层的作用是将应用处理的信息转换为适合网络传输的格式,或者将来自下一层的数据转换为上层能处理的格式。它主要负责数据格式的转换。具体来说,就是讲设备固有的数据格式转换为网络标准格式。表示层仅对应用层信息内容的形式进行变换,而不改变其内容本身。常见的协议有 ASCII、SSL/TLS 等。
在开发中,浏览器请求回一堆数据,是解析成文本还是图片,就由表示层决定。数据的压缩、加密、打包等功能也都在这层完成。

三、会话层
OSI七层网络模型
会话层作用是负责建立和断开通信连接(数据流动的逻辑通路),以及数据的分割等数据传输相关的管理。常见的协议有 ADSP、RPC 等。

四、传输层
OSI七层网络模型
传输层(transport layer)的主要任务就是负责向两台主机进程之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。只在通信双方节点进行处理,而不需在路由器上处理。此层有两个具有代表性的协议: TCP 与 UDP。
1.TCP(Transmisson Control Protocol)

1.1 TCP 是面向连接的(需要先建立连接);
1.2 每一条 TCP 连接只能有两个端点,每一条 TCP 连接只能是一对一
1.3 TCP提供可靠交付的服务。通过TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达;
1.4 TCP 提供全双工通信。TCP 允许通信双方的应用进程在任何时候都能发送数据。TCP 连接的两端都有发送缓存和接收缓存,用来临时存放双方通信的数据;
1.5 面向字节流。TCP 中的“流”(Stream)指的是流入进程或从进程流出的字节序列。
2.UDP(User Datagram Protocol)
2.1 UDP 是无连接的;
2.2 UDP 是尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态;
2.3 UDP 是面向报文的;
2.4 UDP 没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如直播,实时视频会议等);
2.5 UDP 支持一对一、一对多、多对一和多对多的交互通信;
2.6 UDP 的首部开销小,只有 8 个字节,比 TCP 的 20 个字节的首部要短。
3.传输层有一个重要作用,就是指定通信端口。以请求服务器数据为例,服务器有处理多种协议的能力,如之前应用层所说的HTTP,FTP,TELNET 等,但到底你是用什么协议呢?服务器并不知道。但如果你指定了端口,如 80,服务器就会知道你是想用 HTTP 协议的,自然会转给对应协议的处理程序进行处理。

五、网络层
OSI七层网络模型
网络层的任务就是选择合适的网间路由和交换结点主要负责寻址和路由选择,确保计算机通信的数据及时传送。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在 TCP/IP 体系结构中,由于网络层使用 IP 协议,因此分组也叫 IP 数据报 ,简称数据报。

互联网是由大量的异构(heterogeneous)网络通过路由器(router)相互连接起来的。互联网使用的网络层协议是无连接的网际协议(Intert Prococol)和许多路由选择协议,因此互联网的网络层也叫做网际层或 IP 层。

网络层将数据从发送端的主机发送到接收端的主机,两台主机间可能会存在很多数据链路,但网络层就是负责找出一条相对顺畅的通路将数据传递过去。传输的地址使用的是IP地址。IP地址通过不断转发到更近的IP地址,最终可以到达目标地址。如何选择这条路,就看网络层了。

六、数据链路层
OSI七层网络模型
该层负责物理层面上互连的节点之间的通信传输。例如与1个以太网相连的两个节点间的通讯。在两个相邻节点之间传送数据时,数据链路层将网络层接下来的 IP 数据报组装成帧,在两个相邻节点间的链路上传送帧。每一帧包括数据和必要的控制信息(如同步信息,地址信息,差错控制等)。在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。

数据链路层会将0、1序列划分为具有意义的数据帧传送给对端(数据帧的生成与接收)。举个例子可能会更好理解,暂且把需要传输的数据看作为不同来源的水,如果直接倒入池子中时,是无法重新分辨出不同来源的水的。但如果将不同来源的灌入瓶子中并打上记号,那就能区分出不同来源的水。这也就是为什么要划分为具有意义的数据帧传送给对端。同时要注意的是,数据链路层只负责将数据运送给物理相连的两端,并不负责直接发送到最终地址。

七、物理层
OSI七层网络模型
在物理层上所传送的数据单位是比特。 物理层(physical layer)的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。

参考链接:https://juejin.im/post/59eb06b1f265da430f313c7f
https://juejin.im/post/5c591fda6fb9a049dc02b1cc