OSI七层网络协议

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 在前一篇博客运维往事 一次负载均衡坏点检测事故中我提到了在生产环境中在第四层和第七层做healthCheck,这个第四层和第七层到底是什么意思呢?除了第四层第七层之外,其他的几层到底是什么?这几层到底做了啥?

在前一篇博客运维往事 一次负载均衡坏点检测事故中我提到了在生产环境中在第四层和第七层做healthCheck,这个第四层和第七层到底是什么意思呢?除了第四层第七层之外,其他的几层到底是什么?这几层到底做了啥?

 OSI把整个网络分为7层,但tcp/ip只分为4层,osi的七层从上到下分别是 应用层,表示层,会话层 传输层,网络层,数据链路层,物理层 ,如下图。

 0e1d5eef01f2ac3881601bc4415db0f7_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpbmRvbw==,size_16,color_FFFFFF,t_70.jpg

 但是TCP/IP有不同的分层模型,分别为 应用层,传输层,网络层,网络接口层

 ba069333393dfb9cf4a3e95813b1faac_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpbmRvbw==,size_16,color_FFFFFF,t_70.jpg

 其实就是讲OSI中的应用层 表示层 会话层统称为应用层,或者是将数据链路层和网络层通称为网络接口层。接下来我们就以OSI 7层模型为例,来简单说下网络协议。为什么选7层而不是4层,我觉得划分越详细越容易理解其中的细节。这估计也是为什么将网络分层的原因。


应用层

我们先从离大多数人最近的一层开始,这也是大多数人能接触到的一层。应用层最关注的起始是数据的用途,比如应用层常见的协议 http https ftp ssh socks…… 。应用参的协议都是给用户提供某种功能,其实还是封装了下层的网络协议。


表示层

我觉得表示层和会话层这两层被强制从应用层划分出来还是有点别扭的,因为有时候它俩就像是应用层的东西,有些协议也没法彻底定性为表示层或者应用层。回到表示层,见名知意,这层主要关注于数据是如何“表示”的,数据是二进制形式还是文本形式!是加密还是没有加密! 我觉得像是google的protobuf、facebook的thrift,还有大家所熟知的json,以及https会用到的RSA、椭圆加密加密都能被勉强归到表示层。


会话层

会话层有点抽象,它主要关注的是数据交换双方是如何传输数据的,它向上屏蔽了端到端的连接信息,但这里和tcp连接却不一样,会话层的协议会关注到数据内容,而tcp所关注的数据只有网络报文。 会话层常见协议比如各种RPC协议,例如gRPC,上文提到的thrift等,还有mysql的连接池。 很明显这些协议其实就是向上层屏蔽了服务器之间的数据寻址。


传输层

这层要保证的是把数据从一台机器传输到另一台服务器上,至于数据丢不丢,乱不乱序,不同的协议有不同的做法。大家耳熟能详的tcp和udp就是传输层的协议,他们俩都是网络中数据传输的协议,但是有很大的区别,tcp有丢包重传机制,保序,拥塞控制,所以是很可靠的协议。但它的优点也导致了它的缺点,正是因为它那么可靠,所以它效率低,所以就有了不可靠的udp协议,它只管发数据,收不收到不管,堵不堵不管,虽然不可靠,但是效率高啊。

 大家在qq或者微信语音视频的时候感觉视频声音卡,就是因为用的是udp协议,网络不好丢包严重。很多游戏也是用的udp协议,所以有时候会感觉飘啊。现在很多大厂基于udp也做了好多改在,在udp基础上实现部分tcp的功能,来都达到tcp可靠和udp高效之间的权限,比如之前就传出http3.0要使用google的QUIC协议来传输数据。


网络层

网络层关注的是网络的寻址,IP协议就是在这一层,IP地址也是这一层的产物,路由器、集线器就是运行在网络层的硬件。网络层除了大家都知道的IP协议外,还有DHCP协议(很多人应该在路由器里见过这个),还有很多人都不太知道ARP协议。

 网络层之间,数据都是通过ip+端口号传输的。


数据链路层

数据链路层,又称为MAC层,原因是因为它和MAC地址相关。所有可以上网的机器都有一个全球唯一的MAC地址,它是在厂商生产网络设备的时候写死在硬件里的,虽然是不能改动的,但很多操作系统提供了修改的功能,都是软改。局域网中通信都是依靠mac地址的。

 可能有人很好奇,既然有了mac地址,为什么还会有ip地址?二者存其一不就行了!mac地址虽然是全球唯一的,但它并不具备寻址的功能,就比如身份证号码一样,给你一个身份证号码,你能知道这个人现在在哪吗?但ip地址就不一样了,它具备寻址的能力,就好比现实世界中的地址,北京市 朝阳区 大望路 xxx楼 15层 ……,你很容易就找过去。但是你想在这个地方找具体某个人就不行了,这个时候还得依靠mac地址(身份证号),如果不怕被揍大吼一声“身份证号是xxxx的是哪位啊?”。

 数据在局域网之间传输,除了ip地址得对的上之外,mac地址也得对的上。


物理层

这层离很多人包括大多数程序猿就很远了,这层规定了机械和电气规范,比如什么样的电信号表示0什么样是1、通用网线是什么标准,还有WIFI那几个很难记住的802.11/a b g n ac什么的。

 

最后附上一张神图

68ab6cdfbf3c56ec139fa546fec3852c_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpbmRvbw==,size_16,color_FFFFFF,t_70.png


目录
相关文章
|
7月前
|
网络协议 前端开发 数据处理
|
7月前
|
网络协议 数据安全/隐私保护 网络虚拟化
深入了解OSI模型:计算机网络的七大层次
OSI模型 OSI模型是一个网络通信的概念模型,用于描述计算机网络中各个不同层次之间的通信和功能。它将网络通信分为七个不同的层次,每个层次负责不同的任务,使得网络通信的设计、开发和管理更加模块化和可维护。以下是OSI模型的七个层次以及它们的主要功能: 1、物理层(Physical Layer): 功能:处理物理传输介质上的原始比特流,确保数据在传输媒体上能够以适当的方式传输。 示例设备:集线器、中继器、网线等。 主要任务:比特编码、电压规范、物理拓扑等。 2、数据链路层(Data Link Layer): 功能:负责将原始比特流分割成帧并添加地址信息,以便在直接连接的设备之间传输数据。 示例设
1201 0
|
2月前
|
运维 监控 网络架构
|
1月前
|
运维 网络协议 算法
7 层 OSI 参考模型:详解网络通信的层次结构
7 层 OSI 参考模型:详解网络通信的层次结构
124 1
|
4月前
|
网络协议 Java 关系型数据库
16 Java网络编程(计算机网络+网络模型OSI/TCP/IP+通信协议等)
16 Java网络编程(计算机网络+网络模型OSI/TCP/IP+通信协议等)
91 2
|
4月前
|
网络协议 安全 网络性能优化
OSI 模型详解:网络通信的七层架构
【8月更文挑战第31天】
1037 0
|
5月前
|
网络架构
OSI网络七层模型
OSI网络七层模型
130 9
|
5月前
|
网络协议 程序员 定位技术
学习网络的第一步:全面解析OSI与TCP/IP模型
**网络基础知识概览:** 探索网络通信的关键模型——OSI七层模型和TCP/IP五层模型。OSI模型(物理、数据链路、网络、传输、会话、表示、应用层)提供理论框架,而TCP/IP模型(物理、数据链路、网络、传输、应用层)更为实际,合并了会话、表示和应用层。两者帮助理解数据在网络中的传输过程,为网络设计和管理提供理论支持。了解这些模型,如同在复杂的网络世界中持有了地图。
104 2
|
7月前
|
存储 缓存 网络协议
网络 (基础概念, OSI 七层模型, TCP/IP 五层模型)
网络 (基础概念, OSI 七层模型, TCP/IP 五层模型)
68 1
|
6月前
|
网络协议 数据安全/隐私保护 网络架构
就该这样理解 OSI 七层参考模型、浅谈不同局域网之间的通信
就该这样理解 OSI 七层参考模型、浅谈不同局域网之间的通信