408 计算机网络 知识点记忆(4)
前言
本文基于王道考研课程与湖科大计算机网络课程教学内容,系统梳理核心知识记忆点和框架,既为个人复习沉淀思考,亦希望能与同行者互助共进。(PS:后续将持续迭代优化细节)
往期内容
408 计算机网络 知识点记忆(1)
408 计算机网络 知识点记忆(2)
408 计算机网络 知识点记忆(3)
核心知识记忆点
介质访问控制MAC
MAC地址属于数据链路层
信道划分介质访问控制
时分复用TDM 统计时分复用STDM
频分复用FDM
波分复用WDM
码分复用 不同码片序列相互正交 ST=0 码片向量自身内积为1 SS=1
随机介质访问控制 胜利者征用获得信道,进而获得信息发送权
争用型协议
ALOHA协议
纯ALOHA协议 不进行任何检测发送数据,冲突随机等待一段时间后重发
时隙ALOHA协议 将时间划分等长时隙 站点只能在每个时隙开始时才发送帧,冲突随机等待一段时间后重发
CSMA协议(载波监听多路访问)
1-坚持CSMA 信道空闲 发送 ;忙,继续监听
1-非坚持CSMA 信道空闲,发送;忙,放弃监听,随机时间后再监听
p-坚持CSMA 信道空闲,p概率发送;忙,继续监听
CSMA/CD 载波监听多路访问/冲突检测
总线型/半双工
先听后发 边听边发 冲突停发 随即重发
发送站开始发送数据后最多经过时间 2 τ 2\tau 2τ(端到端传播距离的2倍) 争用期/碰撞窗口
最短帧长/传输=最大单向传播时延*2(便发送便检测,不发送不检测)
10Mb/s以太网 51.2us争用期时间
截断二进制指数退避算法
2 τ r 2\tau r 2τr
k<=10, r ∈ [ 0 , 2 k − 1 ] \in [0,2^k-1] ∈[0,2k−1]随机
k>10, r ∈ [ 0 , 2 1 0 − 1 \in [0,2^10-1 ∈[0,210−1随机
k=16,直接放弃,报告上级网络层
以太网最小帧间隔96比特时间,接收缓存及时清理
1 准备发送
2 检测信道:忙,持续监测,直至空闲;若在9.6us时间内信道空闲(保持帧间最小间隔),发送该帧
3 发送过程中适配器继续检测信道:发送成功;失败,退避一段时间后继续2 16次失败
CSMA/CA协议 冲突避免
所有站检测到信道空闲后,还要等待一段时间(持续监听)才能发送帧,帧间间隔(IFS)
SIFS(短IFS) 28us ACK帧
PIFS(点协调IFS)
DIFS(分布式协调IFS)
发送方:先听后发,忙则退避:信道空闲,间隔DIFS,再发送;若不,随即退避(i次, [ 0 , 2 2 + k − 1 ] [0,2^{2+k}-1] [0,22+k−1],max 255 k=6)
接收方:停止等待协议,每收到一个返回ACK帧
1.若站点最初有数据要发送(而非有数据发送不成功再重传),且检测到信道空闲,等待DIFS后,发送整个数据帧
2.否则,CSMA/CA 信道忙,退避计时器不变;空闲,倒计时
3.退避倒计时归零,站点发送整个帧并等待确认
4.发送站收到ACK 则已被正确接收,发送下一帧从2开始;未收到ACK,重传
基本服务集BSS
拓展服务集ESS
服务集标识符SSID
隐蔽站问题:RTS和CTS
A AP B(A和B都检测到信道空闲)
解决办法:对信道进行预约
1.源站点发送数据之前,先监听信道,空闲等待DIFS后,广播RTS
2.AP正确收到RTS且信道空闲,等待SIFS,广播CTS
3.源站收到CTS后,等待SIFS,发送数据
4.Ap收到源站数据,等待SIFS发送ACK
源站在RTS帧填写持续时间为收到RTS后,SIFS+CTS+SIFS+数据帧+SIFS+ACK
AP填写CTS持续时间为收到CTS后,SIFS+数据帧+SIPS+ACK
其他站根据CTS设置网络分配向量NAV
802.11无线局域网的MAC帧
数据帧 传输数据
控制帧 负责区域的清空,虚拟载波监听维护以及信道接入,并给收到的数据帧予以确认 eg ACK帧 RTS帧 CTS帧
管理帧 用于加入或退出无线网络,以及处理AP之间连接的转移事宜 eg 信标帧 关联请求帧 身份认证帧
帧头:帧控制(2字节)持续期(2)地址1(6) 地址2 (6) 地址3(6)序号控制(2) 地址4(6)
数据:数据载荷(0–2312)
帧尾:FCS(4)
帧控制:协议版本(2b)类型(2)子类型(4)去往AP(1)来自AP(1)更多分片(1)重试(1)功率管理(1)更多数据(1)WEP(1)顺序(1)
轮询访问:令牌传递协议
1.当网络空闲时,环路中只有令牌帧循环传递
2.当令牌传递到有数据要发送的站点时,该站点就修改令牌中的一个标志位,并在令牌附加自己需要传输的数据,将令牌变成一个数据帧,发送出去
3.数据帧沿环路传输,接收到的站点,一边转发一查看帧的目的地址,若与自己相同,则接受站复制该数据帧,进一步处理
4.数据帧沿环路传输,直到该帧的源站点,原站点收到自己发出的帧后不再转发,通过检验返回帧查看数据传输过程是否出错,若出错,重传
5.源点站发送完数据后,重新生成一个令牌,并传递给下一站点,交出信道控制权
结语
介质访问控制(MAC)作为数据链路层的核心,是共享信道中秩序与效率的守护者。从时分复用到码分复用的频谱交响,从ALOHA的随机碰撞到CSMA/CD的冲突博弈,从CSMA/CA的无线避让到令牌传递的精密轮询,每一种协议都在诠释着“共享”与“竞争”的哲学平衡。无论是总线型以太网的二进制退避智慧,还是无线局域网的RTS/CTS预约艺术,技术的演进始终围绕一个目标:让多用户环境下的信道资源分配更公平、更高效、更可靠。
在CSMA/CD的碰撞窗口中,我们见证了有线网络的果断回溯;在CSMA/CA的帧间间隔里,我们领悟了无线通信的谦逊避让;而令牌环路的优雅流转,则展现了确定性时延场景的独特价值。802.11帧结构的多重地址设计、隐蔽站问题的创新攻克,无不体现着协议设计者对现实复杂性的深刻洞察与精准应对。
参考资料
1.王道考研课程
2.湖科大计算机网络课程
相关文章:
408 计算机网络 知识点记忆(4)
前言 本文基于王道考研课程与湖科大计算机网络课程教学内容,系统梳理核心知识记忆点和框架,既为个人复习沉淀思考,亦希望能与同行者互助共进。(PS:后续将持续迭代优化细节) 往期内容 408 计算机网络 知识…...
线性代数:分块矩阵,秩,齐次线性,非齐次线性的解相关经典例题
所以C错误,选D 排除A,B选项...
Nginx功能及应用全解:从负载均衡到反向代理的全面剖析
Nginx作为一款开源的高性能HTTP服务器和反向代理服务器,凭借其高效的资源利用率和灵活的配置方式,已成为互联网领域中最受欢迎的Web服务器之一。无论是作为HTTP服务器、负载均衡器,还是作为反向代理和缓存服务器,Nginx的多种功能广…...
深度学习数据集划分比例多少合适
在机器学习和深度学习中,测试集的划分比例需要根据数据量、任务类型和领域需求灵活调整。 1. 常规划分比例 通用场景 训练集 : 验证集 : 测试集 60% : 20% : 20% 适用于大多数中等规模数据集(如数万到数十万样本),平衡了训练数…...
CExercise_1_5 水仙花数
题目: 经典循环案例:请求出所有的水仙花数,并统计总共有几个。 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。 举例:153就是一个水仙花数,153 1 * 1 * 1 5 * 5 * 5 3 * 3 * 3 1 125…...
用C实现一个最简单的正则表达式引擎
用C实现一个简单的正则表达式引擎 下面我将实现一个极简的正则表达式引擎,仅支持以下基本功能: . 匹配任意单个字符* 匹配零个或多个前导字符^ 匹配字符串开头$ 匹配字符串结尾 完整代码实现 #include <stdio.h> #include <stdbool.h>bo…...
哈密尔顿路径(Hamiltonian Path)及相关算法题目
哈密尔顿路径要求访问图中每个顶点恰好一次,通常用于解决旅行商问题(TSP)或状态压缩DP问题。 哈密尔顿路径(Hamiltonian Path)是指在一个图中经过每个顶点恰好一次的路径。如果这条路径的起点和终点相同(即…...
MINIQMT学习课程Day10
开始获取股票数据课程的学习: 获取qmt账号的持仓情况后,我们进入下一步,如何获得当前账号的委托状况 还是之前的步骤,打开qmt,选择独立交易, 之后使用pycharm,编写py文件 导入包:…...
JAVA实战开源项目:智慧图书管理系统(Vue+SpringBoot) 附源码
本文项目编号 T 152 ,文末自助获取源码 \color{red}{T152,文末自助获取源码} T152,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...
Linux 系统管理综合实训 —— 基于 NAT 模式的多 IP 配置、Nginx 服务部署及存储管理
1. 虚拟机网络配置:NAT模式与多IP地址设置 将你的虚拟机的网卡模式设置为nat模式,给虚拟机网卡配置三个主机位分别为100、200、168的ip地址 设置静态IP [rootlocalhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.2.100/2…...
如何在windows 环境、且没有显卡的情况下用python跑通从ModelScope下载的大模型的调用
文章目录 背景介绍源代码:安装调试过程1.设置第三方镜像源2.预先安装:3.在python中创建代码:4.最终修改程序,将device_map从“cuda”改成“auto”,大模型调用1.5B(1___5B)的5.最终跑出结果解释:示例&#x…...
黑马点评redis改 part 1
本篇将主要阐述短信登录的相关知识,感谢黑马程序员开源,感谢提供初始源文件(给到的是实战第7集开始的代码)【Redis实战篇】黑马点评学习笔记(16万字超详细、Redis实战项目学习必看、欢迎点赞⭐收藏)-CSDN博…...
Apache Struts2 漏洞(CVE-2017-5638)技术分析
一、漏洞简介 CVE-2017-5638 是 Apache Struts2 中的一个远程命令执行漏洞,攻击者可以通过构造特定的 HTTP 请求头,利用Struts的 OGNL 表达式解析机制,在服务器端执行任意代码。 二、漏洞触发场景 漏洞存在于 Struts2 的 Jakarta Multipar…...
A2DP(Advanced Audio Distribution Profile)是蓝牙协议栈中用于音频传输的一个标准化协议
A2DP(Advanced Audio Distribution Profile)是蓝牙协议栈中用于音频传输的一个标准化协议,主要用于高质量音频流的无线传输。以下是A2DP协议的详细信息: 定义 A2DP协议允许音源设备(Source,简称SRC&#…...
【Ragflow】11. 文件解析流程分析/批量解析实现
概述 本文继续对ragflow文档解析部分进行分析,并通过脚本的方式实现对文件的批量上传解析。 文件解析流程 文件解析的请求处理流程大致如下: 1.前端上传文件,通过v1/document/run接口,发起文件解析请求 2.后端api\apps\docum…...
第三期:深入理解 Spring Web MVC [特殊字符](数据传参+ 特殊字符处理 + 编码问题解析)
✨前言:传参和状态管理,看似简单其实门道不少 在 Web 开发中,前端和后端最核心的交流方式就是“传参”,而“传参”除了涉及如何写代码获取参数,还藏着很多开发者容易忽略的细节: 为什么 URL 带了中文&…...
嵌入式学习笔记——ARM-中断与异常
文章目录 中断与异常的区别中断与 DMA 的区别中断能否睡眠?下半部能否睡眠?1. 中断处理程序不能睡眠2. 下半部(SoftIRQ、Tasklet、Workqueue) 中断处理注意点1. 快进快出2. 避免阻塞3. 正确返回值4. 如何处理大量任务5. 避免竞态问…...
Everything 安装教程与使用教程(附安装包)
文章目录 前言一、Everything 介绍二、Everything 安装教程1.Everything 安装包下载2.选择安装文件3.选择安装语言4.接受许可协议5.选择安装位置6.配置安装选项7.完成安装 三、Everything 使用教程1.启动软件2.简单关键词搜索3.按类型搜索 前言 在日常使用电脑时,随…...
嵌入式开发中栈溢出的处理方法
嵌入式开发中栈溢出的处理方法 目录 引言栈溢出的原理栈溢出的危害栈溢出检测方法 哨兵变量法栈着色法硬件监测机制编译器栈保护 裸机系统中的栈溢出处理操作系统中的栈溢出处理预防栈溢出的最佳实践结论 引言 在嵌入式系统开发中,栈溢出是一个常见且危险的问题…...
SQL语句(三)—— DQL
目录 基本语法 一、基础查询 1、查询多个字段 2、字段设置别名 3、去除重复记录 4、示例代码 二、条件查询 1、语法 2、条件列表常用的运算符 3、示例代码 三、分组查询 (一)聚合函数 1、介绍 2、常见的聚合函数 3、语法 4、示例代码 &…...
#python项目生成exe相关了解
在 Windows 上将 Python 项目 生成 EXE 可执行文件,主要使用 pyinstaller。以下是完整步骤: 📌 1. 安装 PyInstaller pip install pyinstaller如果已安装,可执行以下命令检查版本: pyinstaller --versionὌ…...
Opencv计算机视觉编程攻略-第九节 描述和匹配兴趣点
一般而言,如果一个物体在一幅图像中被检测到关键点,那么同一个物体在其他图像中也会检测到同一个关键点。图像匹配是关键点的常用功能之一,它的作用包括关联同一场景的两幅图像、检测图像中事物的发生地点等等。 1.局部模板匹配 凭单个像素就…...
JSON-lib考古现场:在2025年打开赛博古董店的奇妙冒险
各位在代码海洋里捡贝壳的探险家们!今天我们要打开一个尘封的Java古董箱——JSON-lib!这货可是2003年的老宝贝,比在座很多程序员的工龄还大!准备好穿越回Web 1.0时代,感受XML统治时期的余晖了吗? …...
Android: Handler 的用法详解
Android 中 Handler 的用法详解 Handler 是 Android 中用于线程间通信的重要机制,主要用于在不同线程之间发送和处理消息。以下是 Handler 的全面用法指南: 一、Handler 的基本原理 Handler 基于消息队列(MessageQueue)和循环器(Looper)工作,…...
汇编学习之《push , pop指令》
学习本章前线了解ESP, EBP 指令 汇编学习之《指针寄存器&大小端学习》-CSDN博客 栈的特点: 好比一个垂直容器,可以陆续放入物体,但是先放的物体通常会被后面放的物体压着,只有等上面后放的物品拿出来后,才能…...
Python循环控制语句
1. 循环类型概述 Python提供两种主要的循环结构: while循环 - 在条件为真时重复执行for循环 - 遍历序列中的元素 2. while循环 基本语法 while 条件表达式:循环体代码示例 count 0 while count < 5:print(f"这是第{count1}次循环")count 13. f…...
微信小程序(下)
目录 在事件处理函数中为 data 中的数据赋值 事件传参 bindinput 的语法格式 实现文本框和 data 之间的数据同步 条件渲染 结合 使用 wx:if hidden wx:if与 hidden 的对比 wx:for 手动指定索引和当前项的变量名 wx:key 的使用 WXSS 和 CSS 的关系 什么是 rpx 尺寸…...
【零基础入门unity游戏开发——2D篇】2D 游戏场景地形编辑器——TileMap的使用介绍
考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、…...
vector的介绍与代码演示
由于以后我们写OJ题时会经常使用到vector,所以我们必不可缺的是熟悉它的各个接口。来为我们未来作铺垫。 首先,我们了解一下: https://cplusplus.com/reference/vector/ vector的概念: 1. vector是表示可变大小数组的序列容器…...
ubuntu 22.04 解决LXC 报错CGroupV1 host system
解决CGroupV1 host system 报错 echo "cgroupv1 environment" sed -i s/^GRUB_CMDLINE_LINUX.*/GRUB_CMDLINE_LINUX_DEFAULT"quiet splash systemd.unified_cgroup_hierarchy0" / /etc/default/grub update-grub reboot 下载oracle 7 Linux 容器测试 l…...
