计算机网络(物理层)
物理层
物理层最核心的工作内容就是解决比特流在线路上传输的问题
基本概念
何为物理层?笼统的讲,就是传输比特流的。
可以着重看一下物理层主要任务的特性
传输媒体
传输媒体举例:
引导型传输媒体
引导型传输媒体指的是信号通过某种物理介质进行引导的传输方式。这些介质可以是导线、光纤等,它们能够限制信号在特定的路径上传播。以下是一些常见的引导型传输媒体的例子:
-
双绞线(Twisted Pair):由两根绝缘铜线缠绕在一起组成的电缆,用于抵抗电磁干扰。常见的类型包括UTP(Unshielded Twisted Pair,非屏蔽双绞线)和STP(Shielded Twisted Pair,屏蔽双绞线)。注意:双绞线在传入信号时,信号的振幅应该足够大时才容易被检测到。
-
同轴电缆(Coaxial Cable):由内导体、绝缘层、网状屏蔽层和外护套组成的电缆,用于传输较高频率的信号。同轴电缆在现代有线电视和早期的以太网中使用较多。
-
光纤(Fiber Optic Cable):由玻璃或塑料制成的纤维,用于通过光信号传输数据。光纤具有高带宽、远距离传输和抗电磁干扰的特点,常用于高速和长距离的网络连接。如果光纤需要中继可以使用掺铒光纤放大器。(光纤自带修正折射角度的特性)
非引导型传输媒体
非引导型传输媒体指的是信号在没有物理介质引导的情况下通过空气或其他介质传播的方式。这些介质不限制信号的传播路径,因此信号可以在空间中自由传播。以下是一些常见的非引导型传输媒体的例子:
-
无线电波(Radio Waves):利用电磁波在空气中传播信号的方式,广泛应用于无线通信,如Wi-Fi、蓝牙、4G/5G移动网络等。
-
红外线(Infrared):使用红外线波段的电磁波进行短距离通信,常见于遥控器和一些近距离无线数据传输。
编码与调制
想要利用信道传输数据,就必须将数据转换为能在传输媒体上传输的信号。信道可以分成模拟信道和数字信道
数字数据(比特)转换成数字信号的过程,称为编码
数字数据(比特)转换成模拟信号的过程,称为调制
模拟信道:电话线,广播电视线等
数字信道:互联网,无线WIFI等
码元的定义:一段波所代表的基本信息,一段码元包含了某些信息。在使用时间域的波形表示数字信号时,代表不同离散数值的基本波形。简单来说,码元就是一段调制好的基本波形,可以表示比特信息。
同时,码元也是承载信息的基本单位。
常用编码有哪些?
调制
基本调制方法,一个码元内可以包含的信息是很少的,无法包含很多信息
频率、相位、振幅,三选二进行微调。调制技术的目的就是为了让一个有限的码元内部,尽可能多的携带数据。但是:
信道的极限容量
信号波形失去了码元之间的清晰界限,这种现象叫做码间串扰,说人话就是被干扰的太厉害分不清了
为了避免这种码间串扰的情况,提出了奈氏准则
香农公式推算出了理想状态下信道的信号传输极限
香农公式与奈氏准则的区别
传输方式
串行&并行
- 串行传输
串行传输就是单个线路上比特流进行传输(一个一个比特依次发送)
- 并行传输
并行传输就是多条线路同时传输比特流(一次发送n个比特)
同步传输&异步传输
-
同步(不管用什么方式,保证收发双方对每一个比特在线路上持续的时间达成一致)
-
异步(异步传输是以独立的字节为单位(8bit)每个字节的内部仍要同步)
单工&半双工&全双工
- 单工
只能接收,类似广播,不能回复 - 半双工
收发不同步,类似对讲机,接的时候不能回复,对方说完了才能回复 - 全双工
收发同步进行,类似手机,可以同步收发
信道复用技术
复用是通信技术中的基本概念,复用可以节约传播介质。让大家合起来用一个共享信道进行通信。
左边是单个信道的场景。其容量较小。
右边是共享信道的场景。容量更大,但费用也高。
频分复用
频分复用(Frequency Division Multiplexing,FDM),将传输线路的频带资源划分成多个子频带,从而在一个大容量信道上,划分出多个子信道。
用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。
频分复用的所有用户在同样的时间占用不同的带宽资源(请注意,这里的带宽是频带带宽而不是数据的发送速率),并且频分复用是并行的,所以不考虑时延。
频分复用FDM示意图
注意:频分复用要求总频带宽度要大于各个子信道频带宽度之和。并且一般为了保证各子信道中所传输的信号互不干扰,会要求在各子信道之间设立隔离带。
如下图,传输信号经过调制解调器使用不同频率调制,形成不同频率的声波,然后把不同频率的声波叠加成一个声波进行传输。
在接收端收到信号以后,使用过滤器针对不同频率进行过滤,然后使用相同的频率进行解调,从而还原发送端传播的声波信息。
时分复用
时分复用则是将时间划分为一段段等长的时分复用帧(Time Division Multiplexing, TDM帧)。每一个时分复用的用户在每一个TMD帧中占用固定序号的时隙。每一个用户占用的时间空隙是周期性地出现(其周期就是TDM帧的长度对应的时间)。
TDM信号也成为等时信号。时分复用的所有用户是在不同的时间占用同样的频带宽度。(可用的带宽全给占用了,所有用户都一样)
发送端不同用户的信息存放位置是有规律的,接收端根据规律来取对应用户的数据。每一个TDM帧的固定位置都有固定的用户。如图:
不同用户的数据存放的位置始终是不变的,虽然时间短,但是带宽大
数据的排列图示
时分复用的实现机制
存取双方都遵从一定的时钟速率进行存取值
左边的是复用器(发送端),右边是分用器(接收端)。二者必须成对使用。
简而言之,复用器负责将多个信号合并为一个信号以便于传输,而分用器则负责将合并的信号分离,恢复为原始的多个信号,以便分发给不同用户。
时分复用的问题
时分复用可能会造成线路资源的浪费。使用时分复用系统传送计算机数据时,由于计算机数据的突发性质,用户对分配到的子信道的利用率一般是不高的。可以看到,当某个用户无数据发送时,在时分复用帧中,分配给该用户的时隙只能处于空闲状态。其他用户即使有数据要发送,也不能使用这些空闲的时隙。(因为TDM帧中,每个用户的时隙都是定好的专属时隙,即使空闲了,其他人也不能直接用)
如下图:
针对利用率不高的问题,提出了统计时分复用。
统计时分复用
统计时分复用(Statistic TDM ,STDM),能明显的提高利用率,集中器常使用这种统计时分复用。
首先注意,STDM帧中的时隙,并不是固定的分配给某个用户的。
统计时分复用使用STDM帧来传送复用的数据。但每一个STDM帧中的时隙数小于连接在集中器上的用户数。各用户有了数据就随时发往集中器的输入缓存,然后集中器按顺序依次扫描输入缓存,把缓存中的输入数据放入STDM帧,对没有数据的级存就跳过去。当一个帧的数据放满了(时间槽满了,集中器缓存空了的同时达到了STDM帧的最小帧要求等等情况),就把数据发送出去。
在不同信号前多加了一个信号标识,通过标识来区分不同用户的数据,不同数据不再占用一个固定的位置,数据存放是没有规律的,因此每个时隙中必须包含用户的地址信息,从而达到高效利用信道的目的。
波分复用
波分复用WDM,实际上就是光的频分复用,将n个光线调制到不同的波长上,然后用光波分复用器将技术光束合并成一道光。同时,接收端需要用光解调器,分离成不同波长的光。
波分复用的简略示意图
码分复用
码分复用的提出背景:当 时域、频域 无法再分时,寻求一种新的方法在同一信道传输多个信号(共享信道)
码分复用(Code Division Multiplexing , CDM码分复用),也叫码分多址(Code Division Multiplexing Access, CDMA码分多址)来称呼该技术,主要用于无线通信。
· 可以实现多个用户同时使用同样频率进行通信
· 如何实现?—— 通过各用户的码序列进行区分。并且由于多个用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰,且抗干扰能力强。
CDMA原理
1、每个比特(0或1)以一组码序列发送
在CDMA中,每一个比特时间
再划分成m个短的间隔
,称为码片(Chip),通常m的值是64或者128(m位编码将每位比特划分为m),后面为了简便运算,设m为8。
码片:一个数据信号(如逻辑1或0)通常要用多个编码信号来进行编码,那么其中的一个编码信号就称为一个码片
2、一个数据信号(如逻辑1或0)通常要用多个编码信号来进行编码,如这个站要发送1,就发送该码片的原码,如要发送0,就发送给码片的反码。
所以不难发现,因为0和1的定义变了,原来的1可能就只需要1个比特,现在的1在新的码片定义下需要8个比特。因此,其对应的发送速率就要提升至原来的n倍,才能保持和原来一样的发送速率。(只针对用CDMA的站点)
使用 CDMA 的每一个站被指派一个 唯一
的 m bit 码片序列
,也就是这个站点自己独有的码片序列
一个站若要发送 比特 1,就发送它自己的 m bit 码片序列
;若要发送bit 0,就发送其码片序列的二进制反码
。因此,为避免不通CDMA站点之间混淆,给每一站分配的码片序列不仅必须各不相同,还必须互相正交
Q:为啥要正交?
A:通过分配互相正交的码片序列,通信系统可以实现多用户的同时通信,即使它们在同一时间使用相同的频率,也可以将其区分出来。这是因为接收端可以根据接收到的信号与预先知道的码片序列进行内积运算,从而将特定用户的信号从其他用户的信号中区分出来。
通常将码片中的 0
写成 -1
,将 1
写成 +1
如何选择码片序列
各用户的码片序列都是唯一的,要求我们可以通过(两个向量如果正交,那么他们的数量级为0,或者说向量内积为0)这个想法去实现。只需要每个用户码片之间相互正交即可
正交的实现(站点接收后,根据提前得到的码片序列,对收到的信号进行计算):
第一个式子计算结果是1,所以得到了比特1的数据
第二个式子计算结果是-1,所以代表得到了比特0的数据
第三个式子计算结果是0,所以代表当前收到的信号是别人的,舍弃
流程图
注意,这里T站是其他站点,目的是为了对比和T站规格化内积的对比,并且T站发出的信号,最后会和S站叠加在一起放在共享信道上传输
叠加后的信号,因为是叠加的,所以直接利用提前收到的S站码片序列对其进行正交计算即可。根据结果来判断本次叠加信号是否有S站发出的信号
扩频
除了发送速率要按照码片的n倍提升以外,总的发送信号因为是叠加的关系,如图所示,不难发现其频带宽度也需要对应累加扩大,因为是叠加。
这里只是简单表述其概念,真实的扩频要比这个复杂
相关文章:

计算机网络(物理层)
物理层 物理层最核心的工作内容就是解决比特流在线路上传输的问题 基本概念 何为物理层?笼统的讲,就是传输比特流的。 可以着重看一下物理层主要任务的特性 传输媒体 传输媒体举例: 引导型传输媒体 引导型传输媒体指的是信号通过某种…...

OpenGL-ES 学习(6)---- 立方体绘制
目录 立方体绘制基本原理立方体的顶点坐标和绘制顺序立方体颜色和着色器实现效果和参考代码 立方体绘制基本原理 一个立方体是由8个顶点组成,共6个面,所以绘制立方体本质上就是绘制这6个面共12个三角形 顶点的坐标体系如下图所示,三维坐标…...

《数据结构与算法基础 by王卓老师》学习笔记——类C语言有关操作补充
1.元素类型说明 2.数组定义 3.C语言的内存动态分配 4..C中的参数传递 5.传值方式 6.传地址方式 例子...

高频面试题基本总结回顾2(含笔试高频算法整理)
干货分享,感谢您的阅读! (暂存篇---后续会删除,完整版和持续更新见高频面试题基本总结回顾(含笔试高频算法整理)) 备注:引用请标注出处,同时存在的问题请在相关博客留言…...

《深入浅出MySQL:数据库开发、优化与管理维护(第3版)》
深入浅出MySQL sql执行流程第一步:通过连接器进行连接第二步:解析器解析 SQL第三步:执行SQL 行记录存储格式行溢出日志数据库三大范式第一范式第二范式第三范式 索引索引分类B树索引BTree vs Hash需要索引1、字段需要频繁的查询操作2、字段用…...

VBA技术资料MF171:创建指定工作表数的工作簿
我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…...

【效率提升】新一代效率工具平台utools
下载地址:utools uTools这款软件,是一款功能强大且高度可定制的效率神器,使用快捷键alt space(空格) 随时调用,支持调用系统应用、用户安装应用和市场插件等。 utools可以调用系统设置和内置应用,这样可以方便快捷的…...

Jmeter插件管理器,websocket协议,Jmeter连接数据库,测试报告的查看
目录 1、Jmeter插件管理器 1、Jmeter插件管理器用处:Jmeter发展并产生大量优秀的插件,比如取样器、性能监控的插件工具等。但要安装这些优秀的插件,需要先安装插件管理器。 2、插件的下载,从Availabale Plugins中选择ÿ…...

Android中ViewModel+LiveData+DataBinding的配合使用(kotlin)
Android 中 ViewModel、LiveData 和 Data Binding 的配合使用(Kotlin) 摘要 本文将介绍如何在 Android 开发中结合使用 ViewModel、LiveData 和 Data Binding 进行数据绑定和状态更新。我们将详细探讨这三者之间的关系,并展示如何在 Kotlin…...

Elasticsearch 避免常见查询错误和陷阱
Elasticsearch 作为一款强大的搜索引擎和分析工具,已经被广泛应用于各种场景中。然而,在使用 Elasticsearch 进行查询时,如果不注意一些常见的错误和陷阱,可能会导致查询效率低下、结果不准确甚至系统性能下降。本文旨在总结一些常…...

【PyQt】20-QTimer(动态显示时间、定时关闭)
QTimer 前言一、QTimer介绍二、动态时间展示2.1 代码2.2 运行结果 三、定时关闭3.1 介绍他的两种用法1、使用函数或Lambda表达式2、带有定时器类型(高级) 3.2 代码3.3 运行结果 总结 前言 好久没学习了。 一、QTimer介绍 pyqt里面的多线程可以有两种实…...

[深度学习] 自编码器Autoencoder
自编码器(Autoencoder)是一种无监督学习算法,主要用于数据的降维、特征提取和数据重建。自编码器由两个主要部分组成:编码器(Encoder)和解码器(Decoder)。其基本思想是将输入数据映射…...

模型微调、智能体、知识库之间的区别
使用开源模型微调和使用知识库与智能体(agent)的区别主要体现在工作原理、应用场景和实现目标上。以下是对这三者的详细对比: 开源模型微调 定义: 微调是对预训练模型(例如BERT、GPT等)进行额外训练&…...

七日世界Once Human跳ping、延迟高、丢包怎么办?
七日世界是一款开放世界为轴点的生存射击游戏,玩家将进入一个荒诞、荒芜的末日世界,在这里与好友一起对抗可怖的怪物和神秘物质星尘的入侵,给这个星球留下最后的希望,共筑一片安全的领地。不过有部分玩家在游玩七日世界的时候&…...

机器人控制系列教程之关节空间运动控制器搭建(1)
机器人位置控制类型 机器人位置控制分为两种类型: 关节空间运动控制—在这种情况下,机器人的位置输入被指定为一组关节角度或位置的向量,这被称为机器人的关节配置,记作q。控制器跟踪一个参考配置,记作 q r e f q_{re…...

[linux]sed命令基础入门详解
sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这…...

Charles抓包工具系列文章(一)-- Compose 拼接http请求
一、背景 众所周知,Charles是一款抓包工具,当然是http协议,不支持tcp。(如果你想要抓tcp包,请转而使用wireshark,在讲述websocket的相关技术有梳理过wireshark抓包) 话说回来,char…...

OLMo:真正完全开源的大模型
最近,又有一家机构AI2(Allen Institute for AI)开源了一个LLM:OLMo,它的英文全称就叫Open Language Model。相比之前开源的大模型,OLMo的独特之处是完全开源,除了训练的模型,OLMo还开…...

51单片机STC89C52RC——12.1 数据存储芯片AT24C02
目的/效果 利用存储芯片AT24C02存储数据,LCD1602显示存储的数据。 一,STC单片机模块 二,AT24C02存储芯片 2.1 介绍 AT24C02是一个2K位串行CMOS E2PROM,内部含有256个8位字节,采用先进CMOS技术实质上减少了器件的功…...

融入云端的心跳:在Spring Cloud应用中集成Eureka Client
融入云端的心跳:在Spring Cloud应用中集成Eureka Client 引言 在微服务架构中,服务发现是一个关键组件,它允许服务实例之间相互发现并通信。Netflix Eureka是Spring Cloud体系中广泛使用的服务发现框架。Eureka提供了一个服务注册中心&…...

CocosCreator构建IOS的wwise教程
CocosCreator构建IOS教程 添加wwise教程: 1.添加include 2.添加SoundEngine 3.添加Profile-iphoneos下面lib下面的.a 4.导入js调用C++的文件 5.导入这些文件 6.初始化ios绝对路径和TTS语音合成对象 6.获得根目录绝对路径,加载pck需要找到绝对路径。怎么找绝对路径? #impor…...

掌握 SQL Server 中的 FLOOR 函数:数据舍入的艺术
掌握 SQL Server 中的 FLOOR 函数:数据舍入的艺术 引言 在数据分析和处理中,我们经常需要对数值进行精确控制,比如将数值舍入到特定的精度。SQL Server 提供了多种数学函数,其中 FLOOR 函数就是用来执行向上舍入操作的强大工具。…...

【折腾笔记】兰空图床使用Redis做缓存
前言 最近发现我部署在群晖NAS上的兰空图床程序在高并发的情况下会导致图片加载缓慢或出现图片加载失败的情况,于是我查阅了官方文档资料并进行了一系列的测试,发现兰空图床如果开启了原图保护功能,会非常的吃CPU的性能,尤其是在…...

【Ubuntu】如何用指令设置静态IP
这里介绍的是利用netplan 的配置文件一般在 /etc/netplan/ 目录下,文件名类似 01-network-manager-all.yaml。 用 nano/ vim 编辑器打开配置文件: sudo nano /etc/netplan/01-network-manager-all.yaml # 替换成你的文件名修改配置文件 network:versi…...

mechanize - 自动化与HTTP web服务器的交互操作
1、前言 随着自动化测试的普及与落地推广,出现了众多知名的自动化测试工具,如Selenium 、Robot Framework、Playwright等。本文将介绍一款在Python环境下的mechanize库,这个库能够模拟浏览器行为,支持发送HTTP请求、解析HTML页面和…...

【Android】保留elevation层级效果,舍弃阴影效果
关于elevation属性 elevation是高度,海拔的意思 该属性可以设置View在父容器中的层级,即z属性 当view的elevation高于其它view时,它将显示在最上方,并产生阴影效果 关闭阴影效果 view的高度阴影,通过outlineProvi…...

Java新手启航:Windows下JDK安装,开启编程之旅
你是不是对编程充满好奇,想要迈入Java的世界,却不知道从何开始?别担心,每一个Java大师都是从安装JDK开始的,而今天,我将手把手教你如何轻松完成JDK的安装,让你迈出编程之旅的第一步! 接下来&am…...

c++指针和引用之高难度(二)习题讲解
1.【单选题】 int a[4] { 1001,1002,1003,1004 }; int* p{ &a[1] }; p[1] ? A 1001 B 1002 C 1003 解析:这道题考察了指针和数组可以混用。p 指向了 数组 a[0] 的地址,也就是 1002 的地址,此时 *p p[0]…...

UNIAPP编译到微信小程序时,会多一层以组件命名的标签
UNIAPP编译到微信小程序时,会多一层以组件命名的标签 解决方案 可以配置virtualHost来配置 export default {options: {virtualHost: true} }...

工业自动化控制中心
目录 一 设计原型 二 后台源码 一 设计原型 二 后台源码 using System; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms;namespace 工业自动化控制中心 {public partial class Form1 : Form{public Form1(){InitializeComponent();}pri…...