[计算机网络]数据链路层

408考纲(数链层部分):

0 概论:数据链路层都干什么事,提供啥功能

比物理层再高一层就是数据链路层,咱们上一篇讲物理层,物理层直接接触传输介质,现在数据链路层是使用物理层的传输服务,然后实现更多的功能。物理层是只管把比特流传到传输介质上,我只管传,我不管传给谁,我也不管我传的时候别人是不是也正在传即是不是有冲突,我物理层就只管传,那么那些事谁来管呢?是你数据链路层。

所谓链路就是一条物理线路,数据链路是物理线路加上规程

提供两个相邻的网络节点或主机及其相连的网络节点之间的可靠通信

  • 将不可靠的物理链路变为可靠的逻辑链路
  •  流量控制:发送端可能发送过快,导致拥挤和丢失
  • 为网络层提供服务:
    • 将来自原机器的网络层的数据传送到目标机器的网络层
      • >1.无确认无连接的服务
        • (适用于误码率低的可靠信道)
      • >2.有确认无连接的服务

                           (适用于不可靠信道、无线信道)

                      >3.有确认面向连接的服务

                           (长延迟的不可靠信道)

                有确认就一定有链接,不存在有连接没确认的

  •        链路管理:建立链路、释放链路、介质访问控制

然后接下来咱们就一块一块来讲这些功能都是怎么实现的:

1 组帧:

组帧:从网络层接受数据,并加上有意义的比特位形成头部和尾部来携带地址和其他控制信息。一个含有这些附加控制信息的数据单元称为帧。

帧定界又称帧同步:就是在首尾各加点东西,然后读的时候先读到那个代表开始,然后又读了一次代表结束,使得接收方应该能从接收到的二进制比特流中区分出帧的起始和终止,

有四种方法:

1.1 字符计数

在帧头部加一个字符,就存帧总共的字符个数(当然计数字符自己也算)

1.2 字符填充

首尾各加一个特殊字符,然后信息位中如果发现有控制字符,就在前面加一个转义字符(转义字符本身也算控制字符)

1.3 零比特填充

首位各加一个01111110,然后信息位中每连续遇到5个1就加入一个0(防止有效载荷中出现标志比特)

零比特填充法更容易用硬件来实现,虽然原理跟字符填充法差不多但是性能优于字符填充法

1.4 违规编码

就比如曼彻斯特编码,本来前低后高=0,前高后低=1,没有前高后高或前低后低这种说法,但是我就加入这么一位,让它来代表开始和终止

因为违规,所以特殊

2 差错控制:

数据帧可能出现损坏、丢失、重复、乱序现象

比特差错:0变1了,或者1变0了

ARQ:自动重复请求

FEC:前向纠错

2.1 检错编码:

循环冗余码:

循环冗余校验码

奇偶校验码:

奇偶校验码讲解视频

2.2 纠错编码:

海明码:

海明码讲解视频

3 流量控制&差错控制:

这一块有几个协议,他们之间的关系应该是这样的:滑动窗口协议是一个大的概念,分为:

  • 停止等待协议
    • 发送窗口=1,接收窗口=1
  • 回退n协议(GBN)
    • 发送窗口=n,接收窗口=1
  • 选择重传协议(SR)
    • 发送窗口=n,接收窗口=n

4 介质访问控制(Media Access Control, MAC):

学到这的时候我一开始有个疑问说最直接接触传输介质的不是物理层么,为啥不由物理层来执行介质访问控制?网络分层体系结构的设计者就是这么设计的,这么设计也有一定的合理性,物理层是光管发,我如何发比特流变成各种形式的光信号电信号传到传输介质上,我只管发,至于给谁发、啥时候发、发的时候有没有跟别人产生冲突,我物理层是不管的,是由你数据链路层来管的,所以数据链路层可以说使用物理层提供的发送服务,然后实现了介质访问控、流量控制、差错控制这些更多的功能。

介质访问控制其实就是为了解决冲突,主要有以下这些手段。

有静态和动态之分,这里的静态和动态是怎么说法呢,就是怎么就静态怎么就动态了,就是说像静态这些多路复用,他给每个结点的分配是固定的,公平的,一直就是这个规则不会变,比如时分,咱们就设时间片为5s,你发5s我发5s咱俩轮着来,一直就这么执行。但是动态的话会根据实际情况,可能其他结点都不发就这个结点一直发,也可能多个结点像时分多路复用那样快速轮换,总之每个结点分到的对这个信道的配额会动态的不断变化,不是一成不变的,所以叫动态。

王道的思维导图不错,放这起个总览的作用:

4.1 信道划分介质访问控制(静态介质访问控制)

4.1.1 时分多路复用TDM

数字技术

共享频率,但不共享时间

4.1.2 频分多路复用FDM

模拟技术

共享时间,但不共享频率

4.1.3 波分多路复用WDM

光的频分多路复用

4.1.4 码分多路复用CDMA

4.2 随机介质访问控制(动态介质访问控制)

4.2.1 CSMA载波监听多路访问

CSMA主要有用的特性是监听信道,

在具体讲CSMA这个协议及其CA和CD变种之前,首先得明确两个概念,这两个概念各大教材包括王道都没讲明白,导致理解起来吃力,我自己耗费了很长时间才弄明白,总结在这里:

信道忙闲:

怎么算忙,怎么算闲?咱们说,一个结点监听信道,它只能监听自己这一个点,所以不管有没有结点正在发送,也不管信道上有没有数据在传播,只要这个结点检测到自己这里有来自其他结点的信号经过,那它就认为信道忙,要没有它就认为是空闲。

我初学时在这里陷入很大的误区,主要因为教材讲解的模糊、不明确,导致我以为“只要信道上有数据就叫忙”,“有结点正在发送就叫忙”。后来看了王道的视频(他甚至都没有明说)自己推断了半天才明白。

碰撞:

这里理解的难点是,实际的碰撞和结点检测到碰撞是两回事。

什么叫碰撞了,就是同一时刻,两股数据出现在了信道的同一位置,这就叫碰撞。

那么结点如何去检测到碰撞呢?是必须在它发送的过程中检测到有其他结点的信号到了自己这,它才能检测到发生了碰撞。

同样是由于教材和课程的不明确,我初学时在这里也有误区,以为碰撞检测是依赖争用期,只要从开始发时计时,经过争用期没有检测到其他信号就叫没有发生碰撞。

4.2.2 CSMA/CD

一般的CSMA是发送前监听信道,监听到闲了就发送,然后就不再监听了。

CD则是发送时还监听,就为了监听冲突/碰撞。

总体算法可以陈述如下:

忙怎么办?

忙继续监听,和1坚持一样

争用期和最小帧长:

看图3.22的倒数第二行,设想极端情况,当A发送的数据就差一点点到达B时,B突然发了一个bit。

根据上面说忙闲和碰撞的定义,A开始发送数据后需要经过\tau的时间,A发的数据能到达每个结点,使每个结点监听信道时都能监听到A的信号,从而不会发送。但是假如说,就在差0.00001秒到\tau时离A最远的B突然发了一个bit,那么这是发生碰撞的最极端情况了,这个bit要到达A还需要\tau的时间。所以争用期=2\tau,只要过了争用期A还没检测到其他结点的信号到自己这,A就能确定肯定没发生碰撞。

最小帧长就是说,根据检测碰撞的定义,一个结点必须在自己发送数据时同时检测到有其他结点的信号到自己这,它才能知道碰撞了,还是考虑上面那种极端情况,如果说,那来自B的一个bit到A时,A的数据早发完了,那么A就检测不到碰撞了。这属于是实际发生了碰撞但A检测不到。所以为了确保任何碰撞都能被检测到,就限制最小帧长为:争用期*带宽.

检测到碰了怎么办?

二进制指数回避算法,

            确定基本退避时间=争用期
            确定参数K=min[重传次数,10]
            确定倍数r,r从[0,1,2,3,---2^k-1]中随便取一个
            退避时间为:基本退避时间*r
            重传次数最高为16次,如果超过16次,向上层报错
 

4.2.3 CSMA/CA

王道计算机考研 计算机网络

CSMA/CA协议主要用在无线局域网中,那么

为什么不用CD?

1.因为无线网络中发送信号远强于接收信号(信号随距离减弱),且信号不稳定。假如我是结点A,我自己发送的信号很强,而别的结点的发送信号到我这里已经很弱了,那么我自己的发送信号干扰了别的结点的发送信号,我可能就听不到别的结点也在发送了。

2.隐蔽站问题:

所谓隐蔽站,就是说无线信号的传播有距离限制,比如就10m,那么我距离接入点8m,你距离接入点7m,咱俩相距15m,那么监听不监听都没用,因为反正咱俩听不到彼此,咱俩就有可能同时发送造成冲突。

CA和CD相比区别就是不去检测碰撞而尽量去避免碰撞,所采取的手段就是DIFS、随机退避和信道预约。

CD是监听,闲则立即发,忙则继续监听,CA是闲则等待DIFS然后发RTS,忙则随机退避,CA只要发了就不再去检测冲突。

这部分主要是CSMA/CD会考一些计算题比较难,需要把最小帧长的计算掌握清楚,别的就都是考概念

然后这块经常会各种MAC协议的优缺点,什么情况下适合选哪种,统一总结一下就是说:

高负载时,无碰撞协议好,

低负载时,碰撞协议好。因为低负载的时候往往无碰撞协议的信道利用率就低了。

4.2.4 令牌环网:

令牌环网,物理星型,逻辑环形

令牌包含:

标记位

发送方信息

接收方信息

数据

过程:

每个节点拿到令牌后有一段固定的令牌持有时间,这段时间可以给令牌里装数据,同时置标记位为忙

装完以后把令牌在环网里转一圈回到手里,置标记位为闲

然后顺着环网给下一个人

优缺点:

1.令牌开销

2.延迟,如果A想发,但令牌在D手里,那要等D->C->B->A

5 局域网(Local Area Network,LAN)

王道咸鱼老师总结的图,真的全:

为什么把局域网这个概念放到数链层来讲呢,因为要实现一个局域网,只需要物理层和数链层的协议就够了,局域网用不到网络层的路由功能。

IEEE802标准定义的局域网参考模型只对应于OSI参考模型的数据链路层和物理层,

LLC:

向网络层提供无确认无连接、面向连接、带确认无连接、高速传送四种不同的连接服务类型

MAC:

组帧拆帧、比特传输差错检测、透明传输、给帧加序号

然后我们现在真正开始进入到“网络”的阶段,之前学习的物理层和数链层的差错控制和介质访问控制都是基于两个结点之间通信来说的,现在我们才可以说真正开始研究“网络”了。

那么网络里面的一个结点发送帧有三种发帧方式:

单播&组播&多播:

单播:

一个结点,只发给网络里的一个结点

广播:

一个结点,发给网络里的其他全部结点

组播(多播):

一个结点,发给网络里的部分结点

在第一章计网概论里我们学过,局域网是个按作用范围划分的概念,一般是一个学校一个园区这样的范围,局域网分为:

5.1 有线局域网(以太网,IEEE802.3&DixEthernetV2)

其中以太网最为出名和常用,一般教材和课程里也只讲以太网,我们这里也是,但并不是说有线局域网就一定是以太网,事实上有线局域网还包括:

        令牌环(Token Ring, IEEE 802.5)

        FDDI(光纤分布数字接口, IEEE802.8)

所谓以太网,是一个技术标准,通俗来说就是一个规则集合,遵守这个规则集合的网络就是以太网,这个规则集合只规定了数据链路层和物理层的事,比如用什么MAC协议,用什么拓扑结构,用什么帧格式,以及用什么流量控制和差错控制手段,这些都是数链层和物理层要做的事,那么这些规则集合就是以太网。

这个规则集合还有不同版本,有802.3和DIX EtherNet V2,

这个规则集合还有一些子集,比如10BASE5,10BASE-T,这些子集规定了物理层的一些规则,这又体现了计算机的分层思想,技术标准也要分层。

总结来说以太网的特点:

        服务:无连接 无确认 不可靠

        编码:曼彻斯特编码

        拓扑:物理上星型或拓展星型,逻辑上都是总线

        交换技术:分组交换

        介质访问控制:CSMA/CD

5.1.1 传统以太网

这些,可以看成是以太网这个技术标准的多种分支

传统以太网采用广播方式通信,属于半双工通信

5.1.2 高速以太网

100BASE-T:

星形拓扑结构

保持最短帧长不变,但将一个网段的最大电缆长度减小到100m。

记住:T就是双绞线,F就是光纤

5.1.3 以太网的核心装备:网卡与MAC地址

然后以太网的实现,具体是依靠一个叫网卡的设备,简称网卡,准确来说应该叫有线网卡,指的是专门用于以太网连接的有线网卡,手机里面有一个用于连接wifi的无线网络适配器也被有人称作无线网卡,这两个网卡可不是一回事,我这里说的都是电脑的有线网卡。

网卡又称为网络适配器(Adapter)或网络接口卡(Network Interface Card, NIC),(讲真我超级讨厌这种起好几个名字的,明明说的都是同一个事物非要起好几个名)。

网卡工作在数链层和物理层,与局域网通过电缆或双绞线以串行方式通信,与计算机通过I/O总线以并行方式通信。

然后有线网卡有:串并转换,帧的发送与接受,帧的封装与拆封,介质访问控制,数据的编码解码,数据缓存 的功能。

然后最关键的来了,网卡上有介质访问控制地址(MAC地址,为什么叫MAC地址可以理解成是因为网卡控制着主机对于传输介质的访问,你要想通过传输介质给这台主机发数据必须知道其MAC地址)。这个MAC地址是每块网卡全球唯一的!MAC地址又称物理地址,总而言之就是MAC地址这个东西在主机所处的局域网里面唯一标识该主机,IP地址都不是全球唯一的,但每台设备的MAC地址是全球唯一,这东西是计网通信的基础。

MAC地址是48位,12个16进制数,前24位是厂商代码,后24位自行分配。

网络层有个协议叫ARP就是专门在通信过程中查MAC地址的。

5.1.4 以太网的帧

最小帧长和最大帧长:

以太网有最大帧长和最小帧长,最大帧长是规定死的1518B,也就是首尾控制信息一共6+6+2+4一共18B,数据字段最大只能装1500B,1500B+18=1518B,最小帧长是为了遵从CSMA/CD协议而设定的,最小帧长是64B,也就是数据字段最小也得46B。

帧格式:

以太网有两种帧格式,分别遵从两种技术标准,IEEE802.3和DIX EtherNet V2,不过巧的是这两种技术标准可以共存:

以太网的违规编码:

以太网传送帧的时候,每帧之间有一定的间隙,不是说不需要帧结束定界符哦!

目的地址&源地址:

6B,48bit,存放发送主机和目的主机的MAC地址

类型/长度:

IEEE802.3格式的帧就把类型换成长度,长度指的是数据字段的长度。

这两种标准可以共存,因为最大帧长是1500B,所以类型/长度字段如果小于1500,那就那肯定是长度,如果大于1500,那肯定存的是协议类型。

数据:

把IP数据报整个作为数据

FCS:

32位CRC校验码,校验的是目的地址+源地址+类型+数据

5.2 无线局域网

​5.2.1 有固定基础设施(基站)的无线局域网(IEEE802.11,WiFi)

固定基础设施:指预先建立的、能覆盖一定地理范围的固定基站

对于此类无线局域网,IEEE制定了802.11标准

使用星形拓扑结构

在MAC层使用CSMA/CA协议

AP:中心点基站称为Access Point , AP。AP是个数链层设备,它只是扩大网络范围,其实多个手机连到一个AP,就很类似于多个电脑连到一个交换机。反正最后要统一连到路由器上。

SSID:必须为每个AP分配一个不超过32字节的服务集标识符,也就是使用该AP的无线局域网的名字Service Set Identifier

BSS:基本服务集Basic Service Set,指的就是一个AP以及与此AP相连的几个移动站(就是图中一个圈里的),各站在本BSS之内的通信和与其他BSS内站的通信都要经过本BSS的AP

BSA:基本服务区Basic Service Area, 即一个BSS所能覆盖的区域,直径一般不超过100m

DS:Distribution System,然后每个BSS可以是孤立的,也可以AP与AP通过一个DS连接起来,构成一个扩展的服务集(ESS,Extended Service System),注意AP与AP是通过有线连接的,即DS是有线的。

Portal:门户,能将ESS连接到其他局域网,门户相当于一个网桥

802.11 帧格式:

802.11的帧格式基本就一个考点:三个地址

地址4是用于自组网络(意思就是不用学了)

发送地址和源地址不是一回事,发送地址是直接给到接收方的人,而源地址是数据的根源

参考咱吉大北一宿舍这块的校园wifi,我们宿舍小岳桌子下面那个盒子,我们的网线都连到那上面,上面写着wireless access point,就是个AP,当然它这个AP不是理论模型中传统的AP,它这个AP集成了扩大wifi信号范围和有线网交换机两种功能。现在就是这样,什么光猫,路由器,AP,交换机,早集成到一块了,不是以前那样你就管那功能我就管这功能的了。

5.2.2 无固定基础设施的自组织网络

6 广域网(Wide Area Network)

7 链路层设备

7.1 网桥:

透明网桥:

透明网桥的标准是IEEE 802.1d

7.2 交换机:

直通式:

爱让你计算延迟,直通式是只检查目的地址那6字节

存储转发式:

7.2.2 自学习算法:

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

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

相关文章

OpenAI大变革!继续与微软等,以非营利模式冲击AGI

今天凌晨2点,OpenAI宣布,将继续由非营利组织控制;现有的营利性实体将转变为一家公共利益公司;非营利组织将控制该公共利益公司,并成为其重要的持股方。 这也就是说OpenAI曾在去年提到的由非营利性转变成营利性公司&am…

库存怎么管?怎样才能做到有效的库存管理?

说到库存管理,估计大多数老板和管理者都有过“烦心事”。一方面,库存过多,货物堆积如山,堆在仓库里也不动,结果占地方还占用资金;另一方面,又有可能遇到客户急着要货,可是库存却紧张…

Kotlin-空值和空类型

变量除了能引用一个具体的值之外,还有一种特殊的值,那就是 null, 它代表空值, 也就是不引用任何对象 在Kotlin中, 对空值的处理是非常严格的,正常情况下,我们的变量是不能直接赋值为 null 的,否则无法编译通过, 这直接在编译阶段就避免了空指针问题 Kotlin中所有的类型默认都是…

[特殊字符]算法次元突破:螺旋矩阵的“能量解码术” vs 超立方体的“维度折叠指南”

🔍 引言 如果科幻电影中的能量矩阵是算法的考题,你会用螺旋指针破解它的DNA吗? 如果《星际穿越》的五维空间变成编程题,你敢用动态规划丈量时间的褶皱吗? 今天,我们将化身算法世界的能量解…

高光谱相机赋能烟叶分选:精准、高效与智能化的新突破

烟草产业作为中国重要的经济支柱,烟叶分选的质量与效率直接影响行业效益。传统人工分选存在效率低、主观性强、标准难以统一等问题,而机器视觉技术受限于可见光波段,难以捕捉烟叶深层特征。深圳中达瑞和科技有限公司推出的高光谱相机解决方案…

矩阵求导常用公式解析:标量、向量与矩阵的导数计算

矩阵求导常用公式解析:标量、向量与矩阵的导数计算 矩阵求导常用公式解析:标量、向量与矩阵的导数计算矩阵求导的布局问题1. 分子布局 vs 分母布局对比表2. 布局冲突的典型场景分析3. 混合布局的兼容性处理 一、标量对向量求导1. 线性函数求导2. 二次型函…

NocoDB:开源的 Airtable 替代方案

NocoDB:开源的 Airtable 替代方案 什么是 NocoDB?NocoDB 的主要特点丰富的电子表格界面工作流自动化应用商店程序化访问NocoDB 的应用场景使用 Docker 部署 NocoDB1. 创建数据目录2. 运行 Docker 容器3. 访问 NocoDB注意事项总结什么是 NocoDB? NocoDB 是一款功能强大的开源…

全格式文档转 Markdown 工具,Docker 一键部署,支持 API 调用

以下是简要介绍: 这是一款可以快速将任意文档文件转markdown格式内容的工具,提供API转换接口,方便集成与应用原理就是利用libreoffice、pandoc文件转换工具,把所有文档类型的文件逐步转化,最终转成markdown格式的内容…

MATLAB绘制饼图(二维/三维)

在数据分析与展示领域,饼图是一种直观且高效的可视化工具,能够在瞬间传递各部分与整体的比例关系。今天,我将分享一段 MATLAB 绘制二维及三维饼图的代码,助你轻松将数据以饼图形式呈现于众人眼前。 无论是二维饼图的简洁明了&…

AI笔记-1

Halide Perovskites (HPs) 卤化物钙钛矿 卤化物钙钛矿(HPs)已被 公认为 光伏和发光器件 中最有前途的材料之一 在本观点中,我们将探讨钙钛矿的定义,主要聚焦于由 较重卤素(Cl、Br和I)组成的钙钛矿亚群&…

excel表数据导入数据库

前两天,有个两DB之间的数据导出导入的需求。对方提供的是excel表,我这边是mysql数据库,excel表第一行是字段名,之后的行是记录的值。 其实没有多复杂,我先将exel转成csv,结果mysql导入csv,第一行…

智能机器人在物流行业的应用:效率提升与未来展望

随着全球电子商务的蓬勃发展,物流行业正面临着前所未有的挑战和机遇。传统的物流模式已经难以满足日益增长的市场需求,尤其是在效率、成本控制和精准配送方面。智能机器人技术的出现,为物流行业的转型升级提供了强大的动力。本文将探讨智能机…

如何对 Redis 进行水平扩展和垂直扩展以应对微服务流量的增长?

核心概念: 垂直扩展 (Scale Up): 提升单个节点的性能。简单来说就是给现有的 Redis 服务器增加更多的 CPU 、内存、更快的存储(SSD)或更高的网络带宽。水平扩展 (Scale Out): 增加更多节点来分担负载。这意味着部署多个 Redis 实例&#xff…

Elasticsearch知识汇总之ElasticSearch与OpenSearch比较

四 ElasticSearch与OpenSearch比较 OpenSearch项目分为 OpenSearch(源自 Elasticsearch 7.10.2)与 OpenSearch Dashboards(源自 Kibana 7.10.2)两部分。此外,OpenSearch 项目也将成为之前发布的 Elasticsearch 发行版&…

《OmniMeetProTrack 全维会议链智能追录系统 软件设计文档》

撰稿人:wjz 一、引言 1.1 目的 本软件设计文档详细描述了 OmniMeetProTrack 全维会议链智能追录系统的架构、组件、模块设计及实现细节,旨在为开发人员、利益相关者和维护人员提供系统的全面设计蓝图。本文档基于需求定义文档,确保系统实现…

LeetCode 196. 删除重复的电子邮箱

原题题目 表: Person ---------------------- | Column Name | Type | ---------------------- | id | int | | email | varchar | ---------------------- id 是该表的主键列(具有唯一值的列)。 该表的每一行包含一封电子邮件。电子邮件将不包含大写字母…

基于WebUI的深度学习模型部署与应用实践

引言 随着深度学习技术的快速发展,如何将训练好的模型快速部署并提供友好的用户交互界面成为许多AI项目落地的关键。WebUI(Web User Interface)作为一种轻量级、跨平台的解决方案,正被广泛应用于各类AI模型的部署场景。本文将详细介绍基于Python生态构建WebUI的技术方案,包…

Spring AI Alibaba-03- Spring AI + DeepSeek-R1 + ES/Milvus + RAG 智能对话应用开发全流程

Spring AI Alibaba-03- Spring AI DeepSeek-R1 ES/Milvus RAG 智能对话应用开发全流程 在[人工智能](AI)应用中,模型通常需要访问外部资源或执行特定操作,例如数据库查询、调用外部API或执行计算任务。Spring AI,作…

某团小程序mtgsig,_token 生成逻辑分析

前言 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 太久不更新 重新找回号 …

nginx服务--基础

1. nginx 介绍 Nginx (engine x) 是一个轻量级,高性能的 HTTP 和 反向代理 服务,也是一个IMAP/POP3/SMTP服务。因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。其特点是占有内存少,并发能力强 2. nginx优势 1.高并发,高性能 2.高可靠---可以7*24小时…