OSI七层体系结构中各层的基本功能
一、应用层
-
定义了各种应用层协议(用于规范数据格式)来为网络应用程序提供了各种服务支持
如,HTTP(s)对应Web服务、FTP是文件传输服务、SMTP对应电子邮件收发,Telnet来支持Internet远程登陆服务等
二、表示层
- 完成上层的"程序"和下层的"网络"之间的"翻译"工作,提供格式化的表示和转换数据服务,如数据的字符转换、压缩、解压、加密、解密等,实现数据格式的通用转换。例如:
- 在远程登陆主机时,Telnet定义了NVT(网络虚拟终端)格式,来消除不同计算机和操作系统的差异(比如想要结束文本的一行时,有些系统使用回车,有的系统使用换行)。客户端主机会将要发送的命令转换为NVT格式再发送给服务端主机,到达目的地时再由服务端主机转换回本地系统所需的格式,服务端发送命令给客户端时也同理。
- 浏览在线视频网站时,我们的系统将网站上的数据用其对应的标准来"解读",如图片格式(JPG、PNG、GIF等),如视频格式(MP4、AVI等),这样以后,"010101"的二进制数据就变成了我们看到的图片、视频。
- SSL/TLS协议为HTTP提供安全机制,如下是基于TLS的HTTPS。
- 在远程登陆主机时,Telnet定义了NVT(网络虚拟终端)格式,来消除不同计算机和操作系统的差异(比如想要结束文本的一行时,有些系统使用回车,有的系统使用换行)。客户端主机会将要发送的命令转换为NVT格式再发送给服务端主机,到达目的地时再由服务端主机转换回本地系统所需的格式,服务端发送命令给客户端时也同理。
三、会话层
-
会话(Session)管理
-
建立会话:完成会话与下层的"连接(Connection)"的映射
-
发送和接受数据
-
终止连接或会话
如果将网络数据传输的过程比喻为两个城市之间的货物运输,那么一个连接就是两城市间的一条道路,而一个会话就是一辆在道路上行驶的载货卡车,一条道路上可以允许多辆卡车通过,每辆卡车也不一定要依赖于某条道路(两城之间可以有多条道路)。
-
- 身份验证和用户授权:在会话建立之前,服务器会验证用户的身份,并根据用户的授权信息对其进行相应的授权
比如用于会话控制的SSL/TLS协议,在通信会话中提供安全性,包括加密和身份验证。
四、运输层
-
将上层数据封装成段(Segment),将来自下层的包解封装
-
定义了端口(Port)概念,面向应用进程实现端到端的数据传输
-
定义了面向连接的TCP和面向无连接的UDP协议,将段按照其各自需求(想要"传输可靠稳定"还是"传输效率更高")发送
-
TCP有复杂的反馈机制,提供了基本的流量和差错控制,能实现可靠传输
-
流量控制:运输层可以控制正在传输的数据量,例如当服务器发送数据的速率和客户端处理数据的速率相差较大时,那么运输层就会"叫慢/叫快"服务器,尽量实现二者速率的接近,以免出现数据丢失的情况。
-
差错控制:如果一些数据没有成功到达目的地运输层会自动重传这些数据。
-
在网络上下载大型文件这类对可靠性要求很高的常常是基于TCP
- UDP不提供反馈,不关心数据是否成功送达,传输效率很高
视频通话、网络直播这类对实时性要求很高的场景常常是基于UDP
-
五、网络层
-
将上层数据封装成包(Package),将来自下层的帧解封装
-
定义了IP协议,实现主机在网络中的寻址,让其在"逻辑"上有一个地址
-
定义了各种路由协议(RIP、OSPF、IS-IS、IGRP和BGP等),以期实现网络传输路径的最优化选择
-
网络层的常见设备:三层交换机(Layer 3 Switch),路由器(Router)等
ARP协议,实现IP地址与MAC地址的互相转换
六、数据链路层
- 将上层的数据封装成帧(Frame),将来自下层的"无意义的bit流"转换为"有意义的字节流"
- 实现数据的透明传输,消除传输过程中某些实际存在的阻碍对传输本身的影响
- 实现基本的差错检测
- 定义了LLC和MAC,MAC是网络设备的唯一"ID"
- 数据链路层的常见设备:二层交换机(Layer 2 Switch)、网桥(Bridge)等
七、物理层
-
将上层的数据转换为比特(Bit)流
-
在物理上真正互联网络链路,使用电信号(双绞线)、光信号(光纤)及无线电信号(无线电磁波)等方式传输这些比特流
-
物理层的常见设备:中继器(Repeater)、集线器(Hub)、调制解调器(Modem),光纤(Optical Fiber)等