【计算机网络】——数据链路层(应用:介质访问控制)

news2025/1/10 20:39:01

//仅做个人复习和技术交流,图片取自王道考研,侵删

一、大纲

1、介质访问控制

        信道划分介质访问控制

        随机访问介质访问控制

2、局域网

3、广域网

4、数据链路层设备

二、介质访问控制

省流:把广播信道通过介质访问控制机制 逻辑上转换为 点对点的信道。

介质访问控制:采取一定措施,使得两个节点之间的通信不会发生相互干扰的情况。

用来决定广播信道中信道分配的协议属于数据链路层的一个子层,称为 介质访问控制子层(Medium Access Control ,MAC)

图片来自王道

1、信道划分介质访问控制

点对点链路: 两个相邻节点通过一个链路相连,没有第三者。
应用:PPP协议,常用于广域网。

广播式链路:所有主机共享通信介质。
应用:早期的总线以太网、无线局域网,常用于局域网。典型拓扑结构:总线型、星型(逻辑总线型)

信道划分介质访问控制:将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。

多路复用:

把多个信号组合在一条物理信道上进行传输,使得多个计算机或终端设备共享信道资源,提高信道利用率。

采用多路复用技术可以把多个输入通道的信息整合到一个复用通道中,在接收端收到的信息分离出来,并传送到对应的输出通道。

信道划分的实质就是:通过分频、分时、分码等方法把原来的一条广播信道,逻辑上分为几条用于两个节点之间通信的互不干扰的子信道,实际上就是把广播信道 转换成 点对点信道

四种信道划分介质访问控制:

1、FDM 频分多路复用

”并行”

2、时分多路复用

“并发”

3、波分多路复用

4、CDM码分多路复用

//具体等后续补充。

2、随机访问介质控制

随机访问介质控制属于争用型协议

1、ALOHA协议

1)纯ALOHA协议

完全自由发送,一段时间内如果没收到确认,则认为发生碰撞,出现碰撞后就等待一个随机时间,再重新发送,直到全部发送成功。

2)时隙AloHa协议

1.纯ALOHA比时隙ALOHA吞吐量更低,效率更低。
2.纯ALOHA想发就发,时隙ALOHA只有在时间片段开始时才能发。

2、CSMA协议

CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。

MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。

载波监听多路复用:

ALOHA协议的随心所欲发送,不会考虑其他站点是否在发送帧,出现碰撞概率很高。

若每个站点在发送前都监听一下公共信道,发现信道空闲后再发送,就会大大降低冲突可能,从而提高信道的利用率。

(1)1-坚持CSMA

一个站点要发送数据时,首先监听信道:信道空闲,立即发送;如果信道忙,则等待,同时继续监听;如果发生碰撞,那么随机等待一段时间后,再重新开始监听信道。

1-坚持的含义是:监听到信道忙后,继续坚持监听信道;监听到信道空闲后,发送帧的概率为1,即立即发送数据。

2)非坚持CSMA

非坚持指的是对于监听信道忙之后就不继续监听。


非坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。
空闲则直接传输,不必等待。
忙则等待一个随机的时间之后再进行监听


优点:采用随机的重发延迟时间可以减少冲突发生的可能性。
缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低.

3)p坚持CSMA

p-坚持指的是对于监听信道空闲的处理。

p-坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。

空闲则以p概率直接传输,不必等待,概率1-p等待到下一个时间槽再传输。

忙则持续监听直到信道空闲再以p概率发送。

若冲突则等到下一个时间槽开始再监听并重复上述过程。

优点:既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的这种方案。

三者对比

3、CSMA/CD

适用于总线型网络或半双工网络

CS载波侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据

MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。总线型网络

CD:碰撞检测(冲突检测),【边发送边监听】 适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。半双工网络

如果出现碰撞,就等待随机一端时间后,重新尝试发送数据。

流程概括

先听后发,边听边发,冲突停发,随机重发。

1)准备发送:适配器从网络层获得一个分组,封装成帧,放入适配器的缓存

2)信道检测:若检测到信道空闲,它就开始发送这个帧,若信道忙,它就持续检查直到信道上没有能量信号,然后开始发送此帧。

3)发送过程中,适配器仍然持续检测信道,只有两种可能:

+ 发送成功:在争用期内一直没有检测到碰撞信号,一定发送成功

+发送失败:在争用期检测到碰撞,此时立刻停止发送,适配器执行指数退避算法。

一段时间后返回步骤2,若重传16次不成功,则停止重传,向上报告。

如何确定不会发生碰撞?

争用期/冲突窗口/碰撞窗口: 2τ (τ为单程端到端传播时延)

经过争用期这段时间还未检测出碰撞,才能确定这次不会发生碰撞。

最短帧长

争用期内可发送的数据长度,在争用期内如果检测到碰撞,站点就会停止发送,此时发出去的数据一定小于最短帧长,因此凡是长度小于这个最短帧长的帧都是由于冲突异常终止的无效帧。

计算公式: 最短帧长 =总线传播时延x 数据传输速率x2

以太网规定最短帧长=64B,如果帧长不够,将在MACz子层对数据字段后面进行填充,达到64B。

从冲突中恢复:截断二进制指数规避算法

1.确定基本退避(推迟)时间为争用期 2t。
2.定义参数k,它等于重传次数,但k不超过10,即k=min[重传次数,10]。当重传次数不超过10时,k等于重传次数;当重传次数大于10时,k就不再增大而一直等于10。

3.从离散的整数集合[0,1,2-1]中随机取出一个数,重传所需要退避的时间就是r倍的基本退避时间,即2rte
4.当重传达16次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错.

【举例】

第一次重传,k=1,r从0,1}选;
重传推迟时间为0或2τ,在这两个时间中随机选一个:

若再次碰撞,则在第二次重传时,k=2,r从[0,1,2,3]选: 重传推迟时间为0τ或2τ或4τ或 6τ,在这四个时间中随机选一个:

若再次碰撞,则第三次重传时,k=3,r从{0,1,2,3,4,5,6,7}选.....

若连续多次发生冲突,就表明可能有较多的站参与争用信道使用此算法可使重传需要推迟的平均时间随重传次数的增大而增大,因而减小发生碰撞的概率,有利于整个系统的稳定

4、CSMA/CA

适用于无线局域网 

检测碰撞变为 碰撞避免:协议的设计要精良降低碰撞的发生的可能性。

802.11无线局域网使用 链路层确认/重传(ARQ)方案,即每个站点通过无线局域网发送完一帧,就要收到对方的确认帧后,才能继续发送下一帧。

帧间间隔IFS:

为避免碰撞 ,802.11规定,所有站完成发送后,必须间隔一段很短时间(继续监听)才能发送下一帧。

间隔时间由短至长

1)SIFS (短IFS): 最短的 FS,用来分隔属于一次对话的各帧,使用 SIFS 的类型有 ACK帧、CTS 帧、分片后的数据,以及所有回答 AP 探询帧的等。

2)PIFS (点协调IIFS): 中等长度的 IFS,在 PCF 操作中使用。

3)DIFS (分布式协调 IFS): 最长的 IFS,用于异步竞争访问的时延。

处理隐蔽站:

发送数据前,先检测信道是否空闲。

空闲则发出RTS(request to send),RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息;信道忙则等待。


接收端收到RTS后,将响应CTS (clear to send)


发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)。接收端收到数据帧后,将用CRC来检验数据是否正确,正确则响应ACK帧

发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)。

CSMA/CD 和CSMA/CA的异同点

相同点:
CSMA/CD与CSMACA机制都从属于CSMA的思路,其核心是先听再说

换言之,两个在接入信道之前都须要进行监听。当发现信道空闲后,才能进行接入。


不同点:
1.传输介质不同:CSMA/CD 用于总线式以太网[有线],而CSMA/CA用于无线局域网[无线]。

2载波检测方式不同:因传输质不同,CSMA/CD与CSMA/CA的检测方式也不同。CSMA/CD通过申缆中电乐的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化:而CSMA/CA采用能量检测(ED)、载波检测 (Cs)和能量载波混合检测三种检测信道空闲的方式。

3.CSMA/CD检测冲突,CSMA/CA避免冲突,二者出现冲突后都会进行有上限的重传。

5、轮询访问:令牌传递协议

物理拓扑上,不一定是环,但是逻辑链路一定是环。

令牌:Token


一个特殊的MAC控制帧,控制信道的使用,确保同一时刻只有一个结点独占信道


今牌环网无碰撞


每个结点都可以在一定的时间内 令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌。
问题:
1.令牌开销 2.等待延迟 3.单点故障
应用于令牌环网 (物理星型拓扑,逻辑环形拓扑)
采用令牌传送方式的网络常用于负载较重、通信量较大的网络中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1020348.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Window 10安装MySQL 5.7

1、访问如下链接进行下载:Mysql官方下载地址 官方地址下载的东西没有那么多病毒~。这东西见仁见智吧哈哈~。有些人不怕这个。 注意安装上面这个下面的是test 2、填写mysql的环境变量 具体操作步骤如下: 在桌面按下快捷键“WinR”输入“control sysdm…

JVM内存模型(JMM)

目录 一、运行时数据区域划分 ​编辑 二、线程私有的 1、程序计数器 2、虚拟机栈(VM Stack) 3、本地方法栈 三、线程公有的 1、堆 2、元空间 Java程序把内存控制权利交给JVM虚拟机,一旦出现内存泄漏和溢出方法的问题&#xff0…

Webpack使用output配置打包代码信息和自动清理打包目录

一、修改代码打包后的文件名 二、自动清理打包目录 如果我们将打包文件名修改再进行打包,会发现之前不同名的打包文件会进行保留 在output对象中配置clean属性可自动清理打包目录 三、指定打包文件的目录 四、指定多个打包文件文件名

爬虫 — 多线程

目录 一、多任务概念二、实现多任务方式1、多进程 (Multiprocessing)2、多线程(Multithreading)3、协程(Coroutine) 三、多线程执行顺序四、多线程的方法1、join()2、setDaemon()3、threading.enumerate() …

npm发布vue3自定义组件库--方法一

npm发布vue3自定义组件库 创建项目 vue create test-ui自定义组件 创建自定义组件,组件名称根据你的需求来,最好一个组件一个文件夹,下图是我的示例。 src/components 组件和你写页面一样,所谓组件就是方便实用,不…

Unity Bolt 实现UI拖拽功能

最近在学习使用Bolt插件实现五代码对UGUI Image元素实现拖拽。先看效果 录制_2023_09_15_17_50_45_29 下面是实现方式介绍: 1:注册RectTransformUtility 在使用Bolt插件实现UI拖拽的功能,需要使用 RectTransformUtility.ScreenPointToLoca…

网络安全深入学习第五课——热门框架漏洞(RCE— Apache Shiro 1.2.4反序列化漏洞)

文章目录 一、序列化和反序列化二、反序列化漏洞原理三、Apache Shiro 1.2.4反序列化漏洞1、漏洞描述:2、漏洞影响的版本3、Shiro反序列化漏洞原理4、工作原理:5、shiro反序列化的特征: 四、Apache Shiro 1.2.4反序列化漏洞手工复现1、使用DN…

做好制造项目管理的5个技巧

制造过程通常由不同的要素组成,如采购材料、与供应商合作、优化生产线效率等。制造商还需要处理库存、物流和分销。 为了确保制造项目在预算范围内按时完成,并且不遗漏任何环节,企业必须建立项目管理流程,以帮助改善组织流程和效…

社区版MyApps低代码平台,免费即刻拥有!

编者按:本文主要介绍了MyApps推出的免费社区版的优势,为企业数字化转型提供了解决方案。立即登录MyApps低代码平台,就能获取永久免费的低代码平台。 1.MyApps社区版的优势 1.1不受限制,畅享自由 无用户限制、无安装限制、全面应用…

使用 Charles 去修改响应信息(真实工作使用场景1)

目录 背景 理论 Breakpoint功能 Map功能 实践 原理 背景 测试过程中,遇到接口透传数据,修改请求中的值可以使用Postman来进行,当业务场景遇到修改响应里的值的时候,就需要借助Charles来进行。 以下将会阐述具体的步…

七天学会C语言-第三天(循环语句)

1. 用 while 语句循环做数学运算&#xff1a; 使用while语句&#xff0c;您可以创建一个循环&#xff0c;它会重复执行一段代码&#xff0c;直到指定的条件不再满足。 例 1&#xff1a; 求 246100。 #include <stdio.h>int main() {int n 1, sum 0, a 2;while (n &…

第六章 关系数据库理论

第六章 关系数据库理论 6.1 问题的提出 关系模式的表示 关系模式由五部分组成&#xff0c;是一个五元组&#xff1a;R&#xff08;U&#xff0c;D&#xff0c;DOM&#xff0c;F&#xff09;。&#xff08;1 关系名R是符号化的元组语义。U为一组属性。D为属性组U中的属性所来自…

K8s的网络——Underlay和Overlay网络

0. 基础知识 1&#xff09;网络7层基础知识 在网络7层协议基础里&#xff0c; 第一层物理链路&#xff1b;第二层是数据链路层&#xff0c;在第一层的基础上引入MAC地址做数据转发。MAC地址在局域网内具有唯一性&#xff0c;主机A发送数据时&#xff0c;会向局域网内进行广播…

idea显示git分支信息(GitToolBox插件)

效果图 说明 本身idea在右下角会有git分支信息&#xff0c;但是显示的当前打开文件的分支信息&#xff0c;并且不够显眼 解决 1、安装插件(GitToolBox插件) 2、修改idea.properties project.tree.structure.show.urlfalse ide.tree.horizontal.default.autoscrollingfalse将…

【数据结构】堆的应用+TOP-K问题+二叉树遍历

欢迎来到我的&#xff1a;世界 希望作者的文章对你有所帮助&#xff0c;有不足的地方还请指正&#xff0c;大家一起学习交流 ! 目录 前言堆的时间复杂度向下调整算法的时间复杂度向上调整算法的时间复杂度 堆的应用堆排序TOP—K问题链式二叉树二叉树的节点&#xff1a;初始化节…

ThreadLocal线程局部变量

1.原理 ThreadLocal是用来保存当前线程数据的&#xff0c;每一个线程的内部都有一个ThreadLocalMap&#xff0c;当前这个map中存储了以当前ThreadLocal作键&#xff0c;具体的数据作值的一个个Entry对象。 为什么非得以ThreadLocal对象作键呢&#xff1f;因为一个线程可能使用了…

手游联运平台是什么?

手游联运平台是一种服务于手游联运的专业平台&#xff0c;旨在为游戏开发商、发行商和代理商提供联运合作所需的技术、工具和资源。这些平台通常提供以下功能和服务&#xff1a; 游戏接入和管理&#xff1a;允许游戏开发商将他们的游戏接入联运平台&#xff0c;以便发行到不同的…

linux 环境变量详解/etc/proflie

Linux 环境变量是可以在多个文件中进行配置的&#xff0c;如/etc/proflie&#xff0c;/etc/profile.d/*.sh&#xff0c;~/.bashrc&#xff0c;~/.bash_profile等但是这些之间有什么区别呢 bash的运行模式可以分为 login shell 和 non-login shell。 例如&#xff1a;通过终端&a…

【送书活动】强势挑战Java,Kotlin杀回TIOBE榜单Top 20!学Kotlin看哪些书?

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

王道考研操作系统

王道考研操作系统 计算机系统概述操作系统的概念操作系统的特征操作系统的发展历程操作系统内核中断和异常![在这里插入图片描述](https://img-blog.csdnimg.cn/162452b4c60144e0bd500e180127c447.png)系统调用操作系统结构虚拟机错题 进程与线程进程控制进程通信线程和多线程模…