盘它!OSI参考模型,TCP/IP以及3GPP规范

一:理解OSI分层思想和TPC/IP

1.1:分层思想

分层思想
在这里插入图片描述

1.2:应用场景

甲某通过计算机的电脑端微信给乙某发了两个字“你好”

1.2.1:通过每层的数据传输将“你好”如何输出

应用层

最直观的理解就是人机交互界面,或者说是系统程序窗口。甲某将“你好”两个字输入电脑微信软件。

表示层
计算机如何处理“你好”两个字? 答案就是“翻译”! 人类有人类的语言,计算机也有自己的语言。计算机是不懂汉语的,但它会识别二进制的 0 和 1 ,那么甲某在计算机的微信上打了“你好”这两个字,计算机接收到后开始通过二进制转换成自己的语言。这一步就是翻译,当然,表示层还有其他的功能,例如安全加密,压缩等。

会话层
计算机知道你要发送的东西之后,就需要准备发送了。那么,第一步就是要找到对方(乙某),并和对方建立会话关系。直接理解:会话属于软件层面,允许不同机器上的用户之间建立会话关系。

传输层
传输层可理解为是同一个软件中的两个端口进行数据传输。我用微信发送的消息,你也需要用微信来接收。那么就是电脑端微信用户之间的传输。

网络层
传输层已经准备就绪了,可是我们知道微信用户千千万,甲某和乙某中间还存在很多的其他用户,我们怎么实现贾某的文字就能准确的发送到乙某的微信上呢? 这就是需要网络层的 IP 地址了。只要知道了乙某的 IP 地址,就可以选择最佳路径进行准确的数据传输了。

数据链路层
网络层接收到数据后需要继续往下传输,需要使用工具,就是数据链路层的网卡,继续进行传输。

物理层
数据到达物理层后,变成信号传输,通过bit流。
数据到达目标主机后,开始进行一个逆向的过程。
即数据到达对方主机后,从物理层传输到数据链路层–网络层–传输层–会话层–表示层–应用层。
此时,数据到达乙某的电脑,乙某就可以看到甲某发送的“你好”两个字了。

1.3:OSI七层参考模型模型和TCP/IP模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.4:TCP/IP vs OSI模型

在这里插入图片描述
值得注意的是,OSI参考模型没有考虑任何-组特定的协议,因此OSI更具有通用性。而TCP/IP参考模型与TCP/IP协议簇吻合得很好,虽然该模型不适用于其他任何协议栈,但如今的网络多以TCP/IP协议簇作为基础,这使得在分层设计上没有过多考虑协议的OSI分层理念,所以没有广泛地应用于实际工作中。相反,人们更多地应用TCP/IP分层模型在实际工作中分析问题、解决问题。

1.5:TCP/IP协议族的组成

在这里插入图片描述

二:对于数据的传输过程从而更快的熟悉OSI

2.1:每层所进行传输的数据单元

在这里插入图片描述
在这里插入图片描述

2.2:数据如何进行封装的

因每一层的传输数据单元不同,所以需要封装TCP报文头部,以此使下一层能够看懂识别。

应用层:数据被“翻译”为网络世界使用的语言—二进制编码数据

传输层:上层数据被分割成小的数据段,并为,每个分段后的数据封装TCP报文头部

网络层:上层数据被封装上新的报文报文头部—IP头部

数据链路层:上层数据被封装一个MAC头部,其内部有一个关键的字段信息—MAC地址(物理地址)

它由一组48位的二进制数组成

物理层:无论之前封装的报文头部还是上层的数据信息都是由二进制数组成的,在物理层,将这些二进制数字组成的比特流转换成电信号在网络上传输

在这里插入图片描述

2.3:数据如何进行解封装

物理层:首先将电信号转换成二进制数据,并将数据送至数据链路层。

数据链路层:将查看目标MAC地址,判断其是否与自己的MAC地址吻合,并据此完成后
续处理。如果数据报文的目标MAC地址就是自己的MAC地址,数据的MAC头部将被“拆掉”,并将剩余的数据送至上一层:如果目标MAC地址不是自己的MAC地址,对于终端设备来说,它将会丢弃数据。

网络层:目标IP地址将被核实是否与自己的IP地址相同,从而确定是否送至上一层。

传输层:首先要根据TCP头部判断数据段送往哪个应用层协议或应用程序,然后将之前被分组的数据段重组。

应用层:这些二进制数据将经历复杂的解码过程,以还原成发送者所传输的最原始的信息。
在这里插入图片描述

三:深入理解OSI

第一层:物理层
是参考模型的最低层。该层是网络通信的数据传输介质,由连接不同结点的电缆与设备共同构成。主要跟功能是:利用传输介质为数据链路层提供物理连接,负责处理数据传输并监控数据出错率,以便数据流的透明传输。传输数据的单位是比特(Bits)

机械性能:接口的形状,尺寸的大小,引脚的数目和排列方式等;

电气性能:接口规定信号的电压、电流、阻抗、波形、速率好平衡特性等;

工程规范:接口引脚的意义、特性、标准。

工作方式:确定数据位流的传输方式,如:半双工、全双工等。

物理层协议:美国电子工业协会(EIA)的RS232/RS422/RS423等;

国际电报电话咨询委员会(CCITT)的X.25/X.21等;

物理层的数据单位是位(BIT),典型设备时集线器HUB。

这主要是和硬件有关,与软件关系不大。

第二层:数据链路层
是参考模型的第二层。主要功能是:在物理层提供的服务基础上,在通信的实体间建立数据链路连接,传输的数据单位是“帧”,并采用差错控制与流量控制方法,使有差错的物理线路变成无差错的数据链路。

链路层屏蔽传输介质的物理特征,使数据可靠传送。

内容包括介质访问控制、连接控制、顺序控制、流量控制、差错控制和仲裁协议等。

链路层协议有:协议有面向字符的通讯协议(PPP)和面向位的通讯协议(HDLC)。

仲裁协议:CSMA/CD(Carrier Sense Multiple Access with Collision Detection)、Token Bus、Token Ring

链路层数据单位是帧,实现对MAC地址的访问,典型设备是交换机SWITCH。

第三层:网络层
是参考模型的第三层。主要功能是:为数据在节点之间传输创建逻辑链路,通过路由选择算法为分组通过通信子网选择最适当的路径,以及实现拥塞控制、网络互连等功能。

网络层管理连接方式和路由选择。

连接方式:虚电路和数据报服务。

虚电路是面向连接的,数据通讯一次路由,通过会话建立的一条通路。数据报是非连接的,每个数据报都有路由能力。网络层的数据单位是包,使用的是IP地址,典型设备时路由器Router。

这一层可以进行流量控制,但流量控制更多的是使用第二层或第四层。

第四层:传输层
是参考模型的第四层。主要功能是:向用户提供可靠地端到端服务,处理数据包错误、数据包次序,以及其他一些关键传输问题。传输层向高层屏蔽了下层数据通信的细节。因此,它是计算机通信体系结构中关键的一层。

提供端到端的服务,可以实现流量控制、负载均衡。

传输层信息包括端口、控制字和校验和。

传输层协议主要是TCP和UDP。

传输层位于OSI的第四层,这层使用的设备时主机本身。

第五层:会话层
是参考模型的第五层。主要功能是:负责维扩两个结点之间的传输连接,以便确保点到点传输不中断,以及管理数据交换等功能。

会话层主要内容时通过 绘画进行身份验证、绘画管理和确定通讯方式。一旦建立连接,会话层的任务就是管理会话。

第六层:表示层
是参考模型的第六层。主要功能是:用于处理在两个通信系统中交换信息的表示方法,主要包括数据格式变换、数据加密与解密、数据压缩与恢复等功能。

表示层主要是解释通讯数据的意义,如代码转换、格式变换等,使不同的终端可以表示。

还包括加密与解密、压缩与解压等。

第七层:应用层
是参考模型的最高层。主要功能是:为应用软件提供了很多服务,比如文件服务器、数据库服务、电子邮件与其他网络软件服务。

应用层应该是直接面向用户的程序或服务,包括系统程序和用户程序,比如www、FTP、DNS、POP3和SMTP等都是应用层服务。

数据再发送时是数据从应用层至物理层的一个大包的过程,接收时是数据从物理层至应用层的一个解包过程。

从功能角度可以分为三组:1/2层解决网络通信问题,3/4层解决传输问题,5/6/7层处理对应用进程的访问。

从控制角度可分为二组:1/2/3层是通信子网,4/5/6/7是主机控制层。

四:了解OSI的历史

OSI模型最初是因为美国人的两台机器之间有进行通信的需求。

需求1:
两个硬件之间如何进行通信,具体就是一台发比特流,另一台能够收到。于是就有了物理层:主要是定义设备标准,如网线的额接口类型、管线的接口类型、各种传输介质的传输速率等。它的主要租用是传输比特流,就是从1/0转化为电流强弱来进行传输,到达目的之后再转化为1/0,也就是我们常说的数模转换。这一层的数据是比特。

需求2:
现在通过电线我能发数据流了,但是我还是希望能通过无线电波,通过其他介质来进行传输。然后我还要保证传输过去的比特流是正确的,需要由纠正错误的功能。

数据链路层:定义了如何让格式化数据进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。

需求3:
现在我能发正确的比特流数据到另一台计算机了,但是当我发大量数据的时候,可能需要很长时间,例如:一个视频格式的,网络会中断好多次,实际上,即使有了物理层和数据链路层,网络还是经常中断,只是中断的时间是毫秒级别的。

那么,我还需要保证传输大量文件时的准确性。于是,我要对发出去的数据进行封装。就像发快递一样,一个个发送。

于是,发明了传输层(传输层在OSI模型中,是在网络层面上)。

比如TCP,是用于发送大量数据的,我发出去一万个包,另一台电脑就需要告诉我是否接收到一万个包,如果缺少3个包,就告诉我是第1001/234/8888个包丢了,那我再发一次。这样,就能保证对方把这个视频完整接收了。

例如UDP,适用于发送少量数据的。我发20个包出去,一般不会丢包,所以 ,我不管你收到多少,在多人互动游戏中,也经常受到UDP协议,因为一般都是简单的额信息,而且有广播的需求。如果用TCP,效率就会很低,因为它会不停地告诉主机我收到20个包,或者18个包,再发我两个!如果同时有1万台计算机都这样做,那么用TCP反而会降低效率,还不如用UDP,主机发出去就算了,丢几个包就卡一下,算了,下次再发包更新。

TCP协议是会绑定IP和端口的协议,下面会介绍IP协议。

需求4:
传输层是解决了打包的问题。但是如果我有多台计算机,怎么能找到我要发的那台?或者A要给F发信息,中间要经过B/C/D/E,但是中间还有好多节点,如K/J/Z/Y.我怎么选择最佳路径?这就是路由要做的事情。

于是,发明了网络层,也就是路由器,交换那些具有寻址功能的设备所实现的功能。这一层定义的是IP复制,通过IP地址寻址,所以产生了协议。

需求5:
现在已经能够给指定计算机发送正确的封装过的信息了,但是用户级别的体验并不是很好?难道我每次都要调用TCP去打包,然后调用IP协议去找路由,自己去发?当然不行,所以我们要建立一个自动收发包,自动寻址的功能。

于是发明了会话层。会话层的作用就是建立和管理应用程序之间的通信。

需求6:
现在我能保证应用程序自动收发包和寻址了,但是我要用Linux给window发包,两个系统语法不一致,就像安装包一样,EXE不能在Linux下用,shell在window也也是不能直接运行的。

于是需要表示层,帮我们解决不同系统之间的通信语法问题。

需求7:
现在所有必要条件都准备好了,我们可以写个Android程序,web程序去实现需求吧。

五:5G协议

5.1:5G技术规范

5.1.1:关于3GPP

●3GPP:第三代合作伙伴计划,通信行业标准化组织
●1998年12月成立

5.1.2:3GPP成员

●欧洲的ETSI(欧洲电信标准化委员会)
●日本的ARIB(无线行业企业协会)和TTC(电信技术委员会)
●中国的CCSA(中国通信标准化协会)
●韩国的TTA(电信技术协会)
●北美的ATIS(世界无线通讯解决方案联盟)
●印度的TSDSI(电信标准开发协会)

5.1.3:3GPP定义的5G技术规范,TS38系列的部分内容

●TS23.501: 系统总体介绍
●TS38.300:无线侧总体介绍
●TS38.401:无线侧架构
●TS38.211:物理信道结构
●TS38.104:基站射频要求

5.1.4:TS38系列下载地址

●https://www.3gpp.org/ftp/Specs/2017-12/Rel-15/38_ series/

5.2:3GPP定义的5G分为三大场景

➢增强型移动宽 带(eMBB, Enhance Mobile Broadband)

按照计划能够在人口密集区为用户提供1Gbps用户体验速率和10Gbps峰值速率,在流量热点区域,可实现每平方公里数十Tbps的流量密度。

➢海量物联网通信 (mMTC, Massive Machine Type Communication)

不仅能够将医疗仪器、家用电器和手持通讯终端等全部连接在一起,还能面向智慧城市、环境监测、智能农业、森林防火等以传感和数据采集为目标的应用场景,并提供具备超千亿

网络连接的支持能力。

Enhance Mobile Broadband)

按照计划能够在人口密集区为用户提供1Gbps用户体验速率和10Gbps峰值速率,在流量热点区域,可实现每平方公里数十Tbps的流量密度。

➢海量物联网通信 (mMTC, Massive Machine Type Communication)

不仅能够将医疗仪器、家用电器和手持通讯终端等全部连接在一起,还能面向智慧城市、环境监测、智能农业、森林防火等以传感和数据采集为目标的应用场景,并提供具备超千亿

网络连接的支持能力。

➢低时延、高可靠通信(uRLLC, Ultra Reliable & Low Latency Communication)主要面向智能无人驾驶、工业自动化等需要低时延高可靠连接的业务,能够为用户提供亳秒级的端到端时延和接近100%的业务可靠性保证。

5.3:空中接口

在这里插入图片描述

5.4:5G无线协议栈

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述