OSI 7层模型是各种通信协议的设计参考,这里的协议包括TCP-IP协议族,OSI参考模型将通信协议中必要的功能分为7层,每一层都指定了该层要实现的功能以及不同层之间功能实现的边界。
1、什么是协议?
这里的协议是指通信协议,上面介绍了OSI参考模型是各种通信协议的参考,那什么是通信协议呢?
协议就是异构计算机与计算机之间通过网络实现通信时事先达成的一种“约定”,遵循这一系列“约定”使得异构计算机之间也能实现相互通信,这里异构计算机是指不同厂商的设备、不同的CPU以及不同的操作系统组成的计算机。
协议作为通信行业的标准自然有专门的机构颁布认证,ISO(国际标准化组织)颁布了一套OSI协议对通信行业的协议做了标准化,但是并未普及,虽然OSI协议作为行业标准未受到推广,但是作为OSI协议设计指导方针的OSI(Open System Interconnect)参考模型却被常用于网络协议的制定中。目前互联网最普及的通信协议是TCP/IP协议,由IETF(The Internet Engineering Task Force,国际互联网工程任务组)颁布的,TCP/IP协议自然也是参考了OSI七层模型,在此基础上TCP/IP模型优化成了4层,这部分后面介绍。
2、OSI模型为什么设计成分层的?
这里总结为以下两点:
- 解耦。将OSI模型设计为7层,各层之间的设计开发互不影响,即使某一层的设计发生了重大变化,主要保证上一层的输入和下一层的输出跟之前兼容就ok,这样设计出来的系统扩展性和灵活性比较强;
定界。通过分层,能够明确各个层要实现的功能,更易于单独实现每个分层的协议,界定各个分层的具体责任和义务。
3、OSI参考模型内容
OIS七层模型从上到下依次为:应用层、表示层、会话层、传输层、网络层、数据链路层和物理层,一般软件开发工程师关注更多的是应用层、表示层、会话层和传输层,网络工程师关注更多的是网络层、数据链路层和物理层,七层模型如下:
3.1 应用层
应用层(Application layer)是最接近用户的,应用层是给各种应用程序提供对应的网络服务的,而网络服务是由各种应用层的协议支持的。网络服务和对应的协议举几个例子:文件传输是由FTP协议支持的,浏览器打开网页是由HTTP或者HTTPS协议支持的,电子邮件是由SMTP协议支持的,远程终端登录是由Telnet协议(远程登录协议)支持的。
3.2 表示层
表示层(Presentation layer)主要有3个功能:数据转换(翻译)、数据压缩和数据加解密。
(1)数据转换
将应用层发来的各种格式的数据转换成统一的格式,也可以说是将应用层的数据格式化,比如将各种数字、字符组成的数据统一转换成二进制流。
(2)数据压缩
将要传输的数据容量压缩,以此提高传输速率。数据压缩分为有损压缩和无损压缩两张。
(3)数据加解密
对涉及安全隐私的数据,在发送端进行加密,在接收端进行解密。3.3 会话层
会话层(Session layer)主要有以下2个功能:
负责建立、断开和管理表示层实体之间的通信会话;
- 对两个通信实体的身份验证及授权,这里的授权比如服务器授予登录用户下载文件的权限;
会话层建立的是面向用户的链接,但底层还是靠传输层去建立这个链接。
3.4 传输层
传输层(Transport layer)通过分段、流量控制和差错控制来保证通信的可靠性。传输层的代表性协议比如TCP协议、UDP协议。
(1)分段
传输层将从会话层收到的数据分成“段”,每个段包含源端口号、目的端口号和序列号,端口号是为了指向正确的应用程序,序列号是为了以正确的顺序组合这些“段”,以便于在接收端组装成正确的信息。
(2)流量控制
传输层控制传输数据的速率,比如服务端传输数据的速率为100Mbps,而连接到这个服务端的客户端最大只能接受50Mbps的数据,传输层会告诉服务端将传输速率降到50Mbps以下。
(3)差错控制
传输层提供差错控制功能,比如传输时某些数据没有到达,传输层将启用自动重复请求方案来重新传输丢失或损坏的数据。
3.5 网络层
网络层(Network layer)是根据路由算法选择一条最合适的传输路径,将数据包从源端发送到目的端,网络层主要实现两个功能:寻址和路由。网络层的代表协议是IP协议。
(1)寻址
这里寻的是什么地址?是每一个主机对应的逻辑地址:IP。在不同的子网中通信时,为了识别网络中的每一台主机,每一个子网中的主机都会被分配一个唯一的逻辑地址:IP,一台主机对应一个IP。
(2)路由
将数据包从源端发送到目的端可能有多种路径,网络层根据路由算法选择一条最佳路径进行数据传输。
3.6 数据链路层
数据链路层的协议定义了通过通信媒介互连的设备之间传输的规范,通信媒介包括双绞线电缆、同轴电缆等,数据链路层同时也会进行差错检测。
3.7 物理层
物理层(Physical Layer)是利用物理传输介质为数据链路层提供物理连接,传输比特流信息。物理层会尽可能屏蔽掉具体传输介质和物理设备的差异,使其上面的数据链路层不必考虑网络的具体传输介质是什么。
4、TCP/IP协议族的模型
上面提到OSI协议并未得到推广,互联网中应用最广泛的协议是TCP/IP协议。TCP/IP协议不是仅指TCP、IP这两个协议,而是包含了利用IP进行通信时所必须用到的协议群的统称,比如TCP、UDP、FTP和HTTP等协议,这些协议组成了TCP/IP协议族。前面提到了TCP/IP协议族是由IETF颁布的,那些需要标准化的协议,被列入RFC(Request For Comment)文档记录。
TCP/IP网络通信模型有5层,其与OSI七层模型的关系如下,图来自参考链接2。

可以看到,TCP/IP模型将OSI模型中的应用层、表示层和会话层合并为应用层,其他层与OSI模型保持一致
参考
https://www.bilibili.com/video/BV1qJ411J7Tt?from=search&seid=4647444363182776930 www.bilibili.com
OSI七层模型与TCP/IP五层模型 - SevenFormer - 博客园 www.cnblogs.com
https://blog.csdn.net/guosenzq/article/details/49496543 blog.csdn.net
