计算机网络之物理层——基于《计算机网络》谢希仁第八版
- (꒪ꇴ꒪ ),Hello我是祐言QAQ
- 我的博客主页:C/C++语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍
- 快上🚘,一起学习,让我们成为一个强大的攻城狮!
- 送给自己和读者的一句鸡汤🤔:集中起来的意志可以击穿顽石!
- 作者水平很有限,如果发现错误,请在评论区指正,感谢🙏
计算机网络体系结构的物理层就是要解决在各种传输媒体上传输比特零和一的问题,进而给数据链路层提供透明传输比特流。所谓透明,是指数据链路层看不见也无需看见物理层究竟用的是什么方法来传输比特零和一,他只管享受物理层提供的比特流传输服务。
此外物理层是计算机网络体系结构中最底层的层次,负责在物理媒介上传输原始的比特流。它的主要任务是将数据链路层传递下来的数据封装成适合在物理媒介上传输的信号,并确保这些信号能够被接收端正确地解码。
一、物理层的基本概念及主要任务
物理层主要关注数据的传输方式和传输介质的特性。它定义了数据传输的机械特性、电气特性、功能特性和过程特性。具体而言,物理层需要解决以下问题:
机械特性:指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置等;
电气特性:指明在接口电缆的各条线上出现的电压的范围(传输速度、距离限制);
功能特性:指明某条线上出现的某一电平的电压表示何种意义(规定接口的信号线作用);
过程特性:指明对于不同功能的各种可能事件的出现顺序(时序关系)。
通过定义这些特性,物理层为数据链路层提供了透明的比特流传输服务,使得上层协议可以在不同的物理媒介上进行通信,而无需关心底层的具体实现细节。其次物理层的主要任务包括:
比特流的传输:物理层负责将数据链路层传递下来的比特流转换为适合在物理媒介上传输的信号,并在接收端将这些信号转换回比特流。 物理连接的建立、维持和释放:物理层需要管理物理连接的生命周期,包括连接的建立、维持和释放。信号的编码和调制:物理层需要将比特流编码为适合传输的信号,并可能需要对信号进行调制,以适应不同的传输媒介。传输速率的控制:物理层需要控制数据的传输速率,以适应不同的传输媒介和设备的能力。
二、数据通信的基本知识
在深入了解物理层之前,首先需要掌握一些数据通信的基本概念。
2.1 数据通信系统的模型
一个典型的数据通信系统包括源系统、传输系统和目的系统。源系统负责生成要传输的数据,传输系统负责将数据从源系统传输到目的系统,目的系统负责接收并处理数据。

源系统一般包括一下两个部分:
(1)源点(source):源点设备产生要传输的数据,例如,从PC机的键盘输入汉字,PC机产生输出的数字比特流。源点又称为源站,或信源。
(2)发送器:通常源点产生的数字比特流要通过发送器编码后才能够在传输系统中进行传输。典型的发送器就是调制器。现在好多PC机使用内置的调制解调器(包括调制器和解调器),用户在PC机外面看不见调制解调器。
目的系统一般包括一下两个部分:
(1)接收器:接收传输系统传送过来的信号,并把它转换为能够被目的设备处理的信息。典型的接收器就是解调器,它把来自传输线路上的模拟信号进行解调,提取出在发送端置入的消息,还原出发送端产生的数字比特流。
(2)终点:终点设备从接收器获取传送来的数字比特流,然后把信息输出。
2.2 信道的概念
信道是指用于传输信息的物理媒介。根据传输方向的不同,信道可以分为单工、半双工和全双工。单工信道只能单向传输,半双工信道可以双向传输但不能同时进行,全双工信道则可以同时双向传输。

2.3 编码与调制
在实际通信系统中,编码和调制通常是结合使用的,以实现更高的传输效率和可靠性。例如,在无线通信中,常采用自适应调制与编码(AMC,Adaptive Modulation and Coding)技术,根据信道条件动态调整编码和调制方式,以优化传输性能。

计算机需要处理和传输用户的文字图片音频和视频,他们统称为消息,而数据是运送消息的实体,相较于人类比较熟悉的十进制数据,而计算机只能处理二进制数据,也就是比特零和比特一。
计算机中的网卡将比特零和比特一变换成相应的电信号发送到网线,也就是说信号是数据的电磁表现。由信源发出的原始电信号称为基带信号,基带信号又可分为两类:
(1)数字基带信号,例如计算机内部CPU与内存之间传输的信号;
(2)模拟基带信号,例如麦克风收到声音后产生的音频信号。
此外信号需要在信道中进行传输,信道可分为数字信道和模拟信道两种。在不改变信号性质的前提下,对数字基带信号波形进行变换,称为编码。编码后产生的信号仍为数字信号,可以在数字信道中传输;把数字信号的频率范围搬移到较高的频段,并转换为模拟信号,称为调制。调制后产生的信号是模拟信号,可以在模拟信道传输。
2.3.1 基本调制方法介绍
(1)常用编码方式
不归零制:正是1,负是0
归零制:正脉冲是1,负脉冲是0
曼切斯特编码:位周期中心向上跳是0,向下是1
查分曼切斯特:中心都跳变,边界跳变是0,不跳变是1
(2)调制方法
调制是将信息信号转换为适合在传输媒介上传输的形式的过程。其主要目的是使信号能够在特定的传输媒介上有效传播,并抵抗噪声和干扰。
模拟调制是通过改变载波信号的某一特性(如幅度、频率或相位)来表示信息信号的过程。 常见的模拟调制方式包括:
调幅(AM):通过改变载波的幅度来表示信息信号;
调频(FM):通过改变载波的频率来表示信息信号;
调相(PM):通过改变载波的相位来表示信息信号。
数字调制是将数字信息映射到模拟信号的过程。 常见的数字调制方式包括:
幅度键控(ASK):通过改变载波的幅度来表示不同的数字状态;
频率键控(FSK):通过改变载波的频率来表示不同的数字状态;
相位键控(PSK):通过改变载波的相位来表示不同的数字状态;
正交幅度调制(QAM):结合幅度和相位调制,在同一频率上同时传输多个比特。
2.4 信道的极限容量
香农定理(Shannon Theorem)是信息论的基石之一,它指出,信道的最大传输速率与信道带宽和信噪比有关。具体而言,信道的最大传输速率等于带宽乘以信噪比的对数值。
(1)香农定理的公式
在加性高斯白噪声(AWGN)信道中,信道的最大传输速率(即信道容量)C与信道带宽B和信噪比S/N之间的关系可以用以下公式表示:

C:信道容量,单位为比特每秒(bps)。
B:信道带宽,单位为赫兹(Hz)。
S:信号功率,单位为瓦特(W)。
N:噪声功率,单位为瓦特(W)。
S/N:信噪比,即信号功率与噪声功率的比值。
该公式表明,信道的最大传输速率取决于信道的带宽和信噪比。增大带宽或提高信噪比都可以提高信道的容量。然而,增大带宽时,噪声功率也会相应增加,因此,信道容量的提升并非线性。
(2)香农极限
在给定的信道带宽和信噪比条件下,存在一个理论上的最大传输速率,即香农极限。当传输速率接近或达到香农极限时,误码率会急剧增加。因此,实际通信系统的设计需要在传输速率和误码率之间进行权衡。它告诫工程人员,在有噪声的实际信道上,无论采用多么复杂的编码技术,都不能突破上述公式给出的信息传递速率的绝对极限。
三、物理层的传输媒体
传输媒体又称介质,物理层使用不同的传输媒体来传输信号,主要包括:导引型传输媒体和非导引型传输媒体。
3.1 导引型传输媒体
(1)双绞线
比较古老但是常用,即把两根互相绝缘的铜导线排放在一起,用规则的方法绞合(twist)起来构成双绞线,绞合度越高,数据传输率越高。

(2)同轴电缆
由内导体、绝缘层、外导体和外护套组成,抗干扰能力强,适用于长距离传输。

(3)光纤
光纤凭借其高带宽、长距离传输、抗干扰、安全性、轻便性和耐腐蚀性,成为现代通信系统中不可或缺的关键组件。

3.2非导引型传输媒体
(1)无线电波
无线电波通信利用电磁波在空间传播,实现信息的远距离传输。它广泛应用于广播、电视、移动通信和卫星通信等领域。

无线电波通信的优势包括:
-
无需物理介质:信息通过电磁波在空间传播,无需依赖物理线路;
-
覆盖范围广:能够覆盖广阔的地理区域,适用于远距离通信;
-
适应性强:可在各种环境条件下工作,适应性强。
(2)微波接力
微波接力指中继站把前一站发送的信号放大后再发送到下一站。微波是频率范围约为300 MHz至300 GHz的电磁波,波长介于1米至1毫米之间。其具有直线传播、易于定向和穿透性强等特性。微波广泛应用于通信、雷达、加热等领域。

微波的主要特性:
-
直线传播:微波沿直线传播,遇到障碍物时会被反射或吸收。
-
高频率:微波的频率高于无线电波,低于红外线。
-
穿透性强:微波能够穿透云层、雨雪等天气条件,适合用于卫星通信。
(3)卫星通信
卫星通信利用人造地球卫星作为中继站,通过转发或反射无线电波,实现地球站之间的通信。这种方式突破了地理限制,提供了广泛的覆盖范围,特别适用于偏远地区和海上通信。
卫星通信的主要特点:
-
广泛覆盖:卫星通信能够覆盖地球表面的大部分区域,尤其适用于地面通信设施难以到达的地区。
-
高带宽:卫星通信系统通常提供较大的带宽,支持高速数据传输,满足视频会议、互联网接入等高数据率应用的需求。
-
稳定性:卫星通信系统的中继站位于太空,受地面天气和地理条件影响较小,通信质量相对稳定。

不同的传输媒体具有不同的特性,如带宽、传输距离、抗干扰能力和成本等。物理层需要根据具体的应用场景选择合适的传输媒体。
四、信道复用技术
4.1 频分复用(FDM)
将信道的带宽划分为多个子带宽,每个子带宽用于传输不同的信号。

4.2 时分复用(TDM)
将时间划分为多个时隙,每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙,其中,TDM信号为等时信号。

4.3 波分复用(WDM)
在光纤通信中,使用使用一根光纤同时传输多个频率很接近的光载波信号,使光纤的传输能力成倍提高。

4.4 码分复用(CDM)
在CDM中,每个用户被分配一个唯一的码字,这些码字通常是正交的,即它们之间的内积为零。这种正交性确保了各用户信号的相互干扰最小化。发送时,用户的数据信号与其对应的码字进行乘法调制,生成扩频信号。接收端通过与相应的码字进行匹配解调,恢复出原始数据信号。

更多C/C++语言、Linux系统、数据结构和ARM板实战相关文章,关注专栏:
手撕C语言
玩转linux
脚踢数据结构
系统、网络编程
探索C++
计算机网络
6818(ARM)开发板实战
MATLAB实战
📢写在最后
- 今天的分享就到这啦~
- 觉得博主写的还不错的烦劳
一键三连喔~ - 🎉🎉🎉感谢关注🎉🎉🎉
相关文章:
计算机网络之物理层——基于《计算机网络》谢希仁第八版
(꒪ꇴ꒪ ),Hello我是祐言QAQ我的博客主页:C/C语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍快上🚘,一起学习,让我们成为一个强大的攻城狮࿰…...
区块链中的递归长度前缀(RLP)序列化详解
文章目录 1. 什么是RLP序列化?2. RLP的设计目标与优势3. RLP处理的数据类型4. RLP编码规则详解字符串的编码规则列表的编码规则 5. RLP解码原理6. RLP在以太坊中的应用场景7. 编码示例分析8. 总结 1. 什么是RLP序列化? 递归长度前缀(RLP&…...
分布式简单理解
基本概念 应⽤(Application)/系统(System) 为了完成⼀整套服务的⼀个程序或者⼀组相互配合的程序群。⽣活例⼦类⽐:为了完成⼀项任 务,⽽搭建的由⼀个⼈或者⼀群相互配的⼈组成的团队。 模块(Module)/组件…...
记录:Docker 安装记录
今天在安装 ollama 时发现无法指定安装目录,而且它的命令行反馈内容很像 docker ,而且它下载的模型也是放在 C 盘,那么如果我 C 盘空间不足,就装不了 deepseek-r1:70b ,于是想起来之前安装 Docker 的时候也遇到过类似问…...
Leetcode 二叉树展开为链表
java solution class Solution {public void flatten(TreeNode root) {//首先设置递归终止条件if(root null) return;//分别递归处理左右子树,//递归需要先处理子问题(子树的拉平),然后才能处理当前问题(当前节点的指…...
IEEE官方期刊缩写查询pdf分享
可以直接保存...
RabbitMQ 消息队列 优化发送邮件
express 发送邮件 最简单的异步发送邮件方法为何要使用 RabbitMQ?如何在 Node 项目中集成 RabbitMQ? 一、 不用 await 发送邮件 在实际开发之前,不妨先思考下,我们最终的目的是为了让邮件异步发送。那发送邮件这里有个await&am…...
【AI】常见的AI工具地址和学习资料链接
AI工具地址: DeepSeek:DeepSeekChatGPT-4o:https://openai.com/chatgpt/overview/Kimi:Kimi.ai - 会推理解析,能深度思考的AI助手豆包:豆包讯飞星火:讯飞星火大模型-AI大语言模型-星火大模型-科…...
NetLogon 权限提升漏洞
参考文章:CVE-2020-1472NetLogon权限提升漏洞_cve-2020-1472复现 谢公子-CSDN博客 域控机器账户:WIN-0V0GAORDC17 域控 ip:192.168.72.163 域内攻击者机器 ip:192.168.72.158,host:WIN10-01 攻击者 kali…...
【C++】 Flow of Control
《C程序设计基础教程》——刘厚泉,李政伟,二零一三年九月版,学习笔记 文章目录 1、选择结构1.1、if 语句1.2、嵌套的 if 语句1.3、条件运算符 ?:1.4、switch 语句 2、循环结构2.1、while 语句2.2、do-while 语句2.3、 for 循环2.4、循环嵌套…...
图论 之 迪斯科特拉算法求解最短路径
文章目录 题目743.网络延迟时间3341.到达最后一个房间的最少时间I 求解最短路径的问题,分为使用BFS和使用迪斯科特拉算法,这两种算法求解的范围是有区别的 BFS适合求解,边的权值都是1的图中的最短路径的问题 图论 之 BFS迪斯科特拉算法适合求…...
module ‘cv2.dnn‘ has no attribute ‘DictValue‘解决办法
module ‘cv2.dnn‘ has no attribute ‘DictValue‘解决办法 pip install opencv-python4.7.0.72 -i https://pypi.tuna.tsinghua.edu.cn/simple 测试: python -c"import cv2"...
Spring Boot 中事务的用法详解
引言 在 Spring Boot 中,事务管理是一个非常重要的功能,尤其是在涉及数据库操作的业务场景中。Spring 提供了强大的事务管理支持,能够帮助我们简化事务的管理和控制。本文将详细介绍 Spring Boot 中事务的用法,包括事务的基本概…...
【react18】如何使用useReducer和useContext来实现一个todoList功能
重点知识点就是使用useReducer来攻坚小型的公共状态管理,useImmerReducer来实现数据的不可变 实现效果 实现代码 项目工程结构 App.js文件 import logo from "./logo.svg"; import "./App.css"; import TodoLists from "./comps/TodoLi…...
Android GreenDAO 适配 AGP 8.0+
在 Android 中使用 GreenDao,由于 GreenDao 现在不维护,所以更新到新版本的 Gradle 经常出问题,在这记录一些升级遇到的问题,并且记录解决方案。 博主博客 https://blog.uso6.comhttps://blog.csdn.net/dxk539687357 一、‘:app…...
一篇搞懂vue3中如何使用ref、reactive实现响应式数据
ref 可实现 基本类型、对象类型响应式数据 reactive:只能实现 对象类型响应式 ref实现 基本类型 数据响应式: <template><div class"person"><h2>姓名:{{ name }}</h2><h2>年龄:{{ ag…...
【HeadFirst系列之HeadFirst设计模式】第7天之命令模式:封装请求,轻松实现解耦!
命令模式:封装请求,轻松实现解耦! 大家好!今天我们来聊聊设计模式中的命令模式(Command Pattern)。如果你曾经需要将请求封装成对象,或者希望实现请求的撤销、重做等功能,那么命令模…...
简单封装一个websocket构造函数
问题描述 最近维护一个老项目,发现项目中有大量重复代码,特别是websocket的调用这一块,同样的代码复制了十几个页面,于是自己封装了一个websocket调用的构造函数。 export default class CreateWebSocket {constructor(url) {//…...
Linux-Ansible自动化运维
文章目录 自动化运维Ansible 🏡作者主页:点击! 🤖Linux专栏:点击! ⏰️创作时间:2025年02月21日17点38分 自动化运维 自动化运维常用工具 Ansible 和 SaltStack 自动化运维优势: 服…...
uni-app(位置1)
文章目录 一、获取当前的地理位置、速度 uni.getLocation(OBJECT)二、打开地图选择位置 uni.chooseLocation(OBJECT)三、使用应用内置地图查看位置。uni.openLocation(OBJECT) 一、获取当前的地理位置、速度 uni.getLocation(OBJECT) App平台 manifest中配置好自己的地图厂商k…...
RabbitMQ服务异步通信
消息队列在使用过程中,面临着很多实际问题需要思考: 1. 消息可靠性 消息从发送,到消费者接收,会经理多个过程: 其中的每一步都可能导致消息丢失,常见的丢失原因包括: 发送时丢失: 生…...
CSS基础(浮动、相对定位、绝对定位、固定定位、粘性定位、版心、重置默认样式)
文章目录 1. 浮动(float)1.1 简介1.2 元素浮动后的特点1.3 脱离文档流示例图1.4 浮动产生的影响1.4.1 积极影响1.4.2 消极影响 1.5 解决浮动产生的影响1.5.1 清除浮动(Clearfix)1.5.2 创建新的块格式化上下文(BFC&…...
Spring Cloud — Hystrix 服务隔离、请求缓存及合并
Hystrix 的核心是提供服务容错保护,防止任何单一依赖耗尽整个容器的全部用户线程。使用舱壁隔离模式,对资源或失败单元进行隔离,避免一个服务的失效导致整个系统垮掉(雪崩效应)。 1 Hystrix监控 Hystrix 提供了对服务…...
RagFlow+Ollama 构建RAG私有化知识库
RagFlowOllama 构建RAG私有化知识库 关于RAG一、什么是RAGFlow一、RAGFlow 安装配置测服已有服务: mysql、redis、elasticsearch 二、RAGFlow 配置 ollama:本地运行大型语言模型的工具软件。用户可以轻松下载、运行和管理各种开源 LLM。降低使用门槛&…...
【Linux】【网络】不同子网下的客户端和服务器通信
【Linux】【网络】不同子网下的客户端和服务器通信 前两天在进行socket()网络编程并进行测试时,发现在不同wifi下两个电脑无法进行连接,大概去查找了如何解决 看到可以使用 frp 这个快速反向代理实现。 frp 可让您将位于 NAT 或防火墙后面的本地服务器…...
SpringBoot教程(十四) SpringBoot之集成Redis
SpringBoot教程(十四) | SpringBoot之集成Redis 一、Redis集成简介二、集成步骤 2.1 添加依赖2.2 添加配置2.3 项目中使用之简单使用 (举例讲解)2.4 项目中使用之工具类封装 (正式用这个)2.5 序列化 &…...
DeepSeek掘金——VSCode 接入DeepSeek V3大模型,附使用说明
VSCode 接入DeepSeek V3大模型,附使用说明 由于近期 DeepSeek 使用人数激增,服务器压力较大,官网已 暂停充值入口 ,且接口响应也开始不稳定,建议使用第三方部署的 DeepSeek,如 硅基流动 或者使用其他模型/插件,如 豆包免费AI插件 MarsCode、阿里免费AI插件 TONGYI Lin…...
OpenHarmony分布式数据管理子系统
OpenHarmony分布式数据管理子系统 简介 目录 组件说明 分布式数据对象数据共享分布式数据服务Key-Value数据库首选项关系型数据库标准数据化通路 相关仓 简介 子系统介绍 分布式数据管理子系统支持单设备的各种结构化数据的持久化,以及跨设备之间数据的同步、…...
如何有效利用MYSQL的连接数
连接数配置2500~3000 依然发现连接不够用? -- 查看当前最大连接数 SHOW VARIABLES LIKE MAX_CONNECTIONS; -- 查看当前总链接数 SHOW STATUS LIKE Threads_connected; -- 查看当前进程明细 SHOW PROCESSLIST; 合理设置以下参数: 1. MySQL 的参数设置 …...
【Java学习】多态
面向对象系列三 一、方法相同 二、方法重写 1.概念 2.条件 三、向上转型 1.概念 2.方式 四、方法绑定 五、多态 一、方法相同 方法相同要求方法名相同、参数列表相同、返回值类型相同(与两方法修饰的访问限定符相不相同、静态非静态状态相不相同无关),而且…...


