三、数据链路层

news/2024/5/8 1:14:30/文章来源:https://blog.csdn.net/wow0524/article/details/129675096

(一)纠错与检错

1、奇偶校验码(再研究下,原理知道,具体过程无法重现)

分为奇校验和偶校验,奇偶校验位在首部或尾部,奇偶校验满=信息位+奇偶校验位

(1)原理:

奇校验:奇数个1,最后补0,偶数个1,最后补1,终于补成奇数个1

偶校验:奇数个1,最后补1,偶数个1,最后补0,终于补成偶数个1

则,奇校验的整个校验码中有奇数个1,偶校验的整个校验码中有偶数个1

(2)缺点:无法识别错误信息位置,当出错个数为奇数时,能检验出错误,偶数时不能

解释:当出错个数为奇数时,将导致1的个数的奇偶发生变化,可以检测出错误,而为偶数时,1的个数的奇偶不变,故检测不出。

例如:数据1001101

奇校验码10011011,偶校验码10011010

校验:所有位依次进行异或(相同为0不同为1),偶校验若结果为1则数据出错,奇校验若为0则数据出错

奇校验码奇校验

偶校验码偶校验

不出错

10011011=1

10011010=0

出错1位

10011001=0

10011000=1

出错2位

10011101=1

10011100=0

可以看出,出错偶数位判断不出对错

2、海明码

海明码是一种多重奇偶检错系统,利用多组数位的奇偶性来检错、纠错。

码距d>=3,检测d个错误,则编码系统码距>=d+1,纠正d个错误,则编码系统>2d。

设海明码校验位为k,信息位为m,则m+k+1<=2^k

  • 码字:一帧包含m个数据位(报文)和r个冗余位(校验位),总长度n=m+r,包含数据和校验位的n位单元,通常称为n位码字

  • 码距:两个码字中不相同的二进制位的个数

3、CRC循环冗余校验码

CRC是一种循环码,通过循环移位,实现检错,检错力极强,广泛应用于数据链路层。

只能检错不能纠错。

CRC属于后向纠错方式BEC,接收端发现错误后自动请求重发。(补:前向纠错FEC,接收端发现错误后自动纠错)

CRC校验码生成过程:

多项式G(x)=x^4+x+1,信息码字为10111,求CRC校验码

(1)写除数

G(x)=1·x^4+0·x^3+0·x^2+1·x+1·x^0

除数为10011

(2)写被除数

设G(x)的最高位次是r,则就在信息位后补r个0

被除数为101110000

(3)模2除法:对应位进行异或,相同为0,不同为1

101110000

10011

——————

10000

10011

—————

1100

余数为1100

注意:1、余数的位数=G(x)的最高位次r;2、余数不足r,就在余数左边用0补齐r位,例如余数是11,r=4,余数就是0011

(二)点对点协议

1、PPP点到点协议

(1)PPP提供了一种在点到点链路上封装网络层协议信息的标准方法,也定义了可扩展的链路控制协议LCP。主要用于全双工的异步链路上进行点到点的数据传输,PPP协议的一个重要功能便是提供了身份验证功能,但是PPP协议虽然提供了通信双方身份验证的功能,其协议中没有提供地址信息,通信双方无法相互验证对方的身份,不安全,升级是PPPoE

(2)PPP的组成部分:

在串行链路上封装数据报的方法

建立、配置和测试数据链路链接的LCP协议

建立和配置不同网络层协议的一组网络控制协议NCP

(3)在点到点链路上建立通信过程:

PPP链路的一段必须在建立阶段首先发送LCP包配置数据链路,链路建立后,在进入网络层协议阶段前,PPP提供一个可选择的验证阶段

(4)PPP支持两种验证协议:

1.密码验证协议PAP:不安全,密码在电路上明文发送

2.挑战握手验证协议CHAP

2、PPPoE以太网点到点协议

(1)PPPoE可以使以太网的主机通过一个简单的桥接设备连接到一个远端的接入集中器上。通过PPPoE协议,远端接入设备能够实现对每个接入用户的控制和计费。

(2)PPPoE的工作流程包括发现和会话两个阶段:

发现阶段是无状态的,目的是获得PPPoE终结端(在局端的ADSL设备或其他接入设备上)的以太网MAC地址,并建立一个唯一的Session ID。

发现阶段结束后进入标准的PPP会话阶段

(3)PPPoE优点:

  1. PPPoE由于集成了PPP协议,实现了传统以太网不能提供的身份验证、加密以及压缩等功能。

  1. PPPoE通过唯一的Session ID可以很好的保障用户的安全性。

  1. PPPoE拨号上网作为一种最常见的方式让终端设备能够连接ISP从而实现宽带接入。

  1. PPPoE可用于缆线调制解调器(Cable Modem)和数字用户线路(DSL)等以太网线,通过以太网协议向用户提供接入服务的协议体系。

3、HDLC高级数据链路控制协议

面向比特的链路层协议

HDLC帧结构:(帧定界符:01111110

HDLC的帧类型:

(三)常见广播方式的数据链路层

IEEE 802标准把数据链路层分为两个子层:逻辑链路控制子层LLC和媒体接入控制层MAC。LLC不常用。

1、MAC子层

(1)MAC子层的主要功能:

数据帧的封装/卸装、帧的寻址和识别、帧的接收与发送、链路的管理、帧的差错控制等

(2)MAC层的主要访问方式有CSMA/CD、令牌环和令牌总线三种

(3)以太网中的MAC帧格式

1.前导字段:形为1010...1010

2.帧起始符:固定格式10101011

3.类型字段:标识上一层使用什么协议,也可以表示长度

4.数据字段:上一层的协议数据,IP数据报,最大传输单元MTU=1500字节

5.填充字段:确保最小帧长为64个字节,最小帧长指从目的地址到校验和的长度

6.校验和字段:32位循环冗余码

最小帧长64字节:6+6+2+0+46+4

最大帧长1518字节:6+6+2+1500+0+4

(4)MAC地址

MAC地址(硬件地址、链路地址),48比特,6字节,前24位厂商编号,由IEEE分配给生产以太网网卡的厂家,后24位是序列号,由厂家自行分配,用于表示设备地址

厂商编号

序列号

网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是真正表示主机的地址,用于发送和接收的终端传输数据

2、CSMA/CD载波监听多路访问/冲突检测

(1)分布式的介质访问控制协议

(2)多路访问:多路计算机连接在一根总线上

(3)载波监听CSMA:

信道空闲时

信道忙时

类比

特点

1-持续CSMA

立即发送

继续监听

霸道点,一直要下楼

增加冲突,信道利用率高

非持续CSMA

立即发送

不持续监听,等待随机时间N,再发送

有礼貌,等一会再下楼

减少冲突,信道利用率低

p-持续CSMA

以概率P发送

继续监听

和事佬,概率等下来

有效平衡,但p的取值比较困难,大了冲突,小了延长等待时间

信道有空闲即再帧间最小间隔时间内没有检测到信道上有信号,帧间最小间隔为9.6us

(4)冲突检测

1.CSMA/CD采用“边发送边监听”方式,即边发送边检测信道信号电压变化,如果发现信号变化幅度超过一定限度,则认为总线上发生冲突

2.以太网最小帧是64字节,小于64字节的都是由于冲突而异常终止的无效帧,接收这类帧时应将其丢弃(千兆和万兆以太网最小帧长时512字节

3.为了检测到冲突,最小帧长L=2R×(d/v)

  • R网络数据速率,d最大段长,v信号传播速度

4.“冲突时槽”就是发送站所能检测到冲突的时间

以太网冲突时槽slot=2(S/0.7C+tphy)

局域网最大配置可以接入4个中继器,slot=2(S/0.7C+tphy=4tR)

A端往B端发送一个分组,AB相距S,当分组即将到达B端时,C端也要向B端发送数据,此时,冲突发生了。A端想要检测到冲突,还需要一段返回的延时,总共需2倍的单程延时。

  • S最长传输距离,0.7C信号传播速率,C是光速,tphy发送站物理层时延,tR中继器时延

(5)退避算法

截断的二进制指数退避算法,目的是解决发送数据的碰撞问题。

算法规定发送碰撞的站在信道空闲后并不立即发送数据,而是推迟一个随机时间再进入发送流程。这种方法减少了重传时再次发生碰撞的概率。

特点:

1.考虑了网络负载对冲突的影响,在重负载下能有效化解冲突,网络负载越重,后退的时间越长

2.冲突次数越多,后退时间越长

3.后退次数和负载大小有关

4.重发次数最大为16,大于16次就丢弃该帧并上报高层协议

5.没有对优先级进行定义,不适合突发性业务和流式业务

3、IEEE 802系列

IEEE 802.1

提供高层标准的框架,包括端到端协议、网络互连、网络管理、路由选择、桥接和性能测量

IEEE 802.2

对数据链路层上层逻辑链路LLC控制连接的建立和管理的规范

IEEE 802.3

CSMA/CD,定义MAC子层和物理层规范

IEEE 802.4

令牌总线网Token Bus

IEEE 802.5

令牌环线网Token Ring

IEEE 802.6

城域网MAN

IEEE 802.7

宽带技术

IEEE 802.8

光线技术

IEEE 802.9

语音和数据

IEEE 802.10

可互操作互联网安全标准,定义局域网互连安全机制

IEEE 802.11

无线局域网标准

IEEE 802.12

100Mb/s以太网标准

IEEE 802.14

有线电视标准

IEEE 802.15

无线个人局域网PAN,适用于短程无线通信的标准,例如蓝牙

IEEE 802.16

宽带无线接入标准BWA

(1)IEEE 802.1系列

提供高层协议的框架

IEEE 802.1d

生成树协议STP

IEEE 802.1P

交换机与优先级相关的流量处理的协议

IEEE 802.1q

虚拟局域网协议VLAN,定义了VLAN和封装奇数

IEEE 802.1s

多生成树协议MSTP

IEEE 802.1w

快速生成树协议RSTP

IEEE 802.1x

基于端口的访问控制协议PBNAC,目的是解决无线局域网用户的接入认证问题

(2)IEEE 802.3系列

IEEE 802.3u

快速以太网

快速以太网的最小帧长不变,数据速率提高了10倍,冲突时槽缩小为5.12us

IEEE 802.3z

千兆以太网

帧突发方式,指一个站可以连续发送多个帧

IEEE 802.3ab

1000Base-T(千兆以太网)

IEEE 802.3ae

万兆以太网

4、IEEE 802.3规定的传输介质特性

(1)IEEE 802.3u,快速以太网,100Mbps

标准

电缆

传输距离

编码技术

100Base-T2

2对3、4、5类UTP

100m

100Base-T4

4对3类UTP

100m

8B/6T

100Base-TX

2对5类UTP或2对STP

100m

4B/5B

100Base-FX

1对多模光纤

2km(全双工)

4B/5B

1对单模光纤

40km(全双工)

(2)IEEE 802.3z,千兆以太网,1000Mbps,S短波,L长波

标准

电缆

传输距离

1000Base-CX

2对STP

25m

1000Base-SX

62.5um多模光纤

200m或275m

50um多模光纤

500m或550m

1000Base-LX

62.5或50um多模光纤

550m

单模光纤

5000m

(3)IEEE 802.3ab,千兆以太网,1000Mbps

1000Base-T

4对UTP

100m

(4)IEEE 802.3ae,万兆以太网,10Gbps,只支持光纤,只支持全双工

标准

电缆

传输距离

10GBase-S

50um多模光纤

300m

62.5um多模光纤

65m

10GBase-L

单模光纤

10km

10GBase-E

单模光纤

40km

单模光纤

10km

10GBase-LX4

50um多模光纤

300m

62.5um多模光纤

300m

(四)补充

1、广播和泛洪

广播是向子网所有端口(含自身端口)发送广播帧,广播帧形式FF.FF.FF.FF.FF.FF

泛洪是向所有端口(除自身端口)发送普通数据帧

2、差错控制技术

差错控制技术:检查和纠正传输错误

(1)肯定应答:收到肯定应答信号ACK继续发送

(2)否定应答重发:收到否定应答信号NAK重发出错帧

(3)超时重发:超过规定时间重发该帧(术称为自动请求重发ARQ)

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

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

相关文章

Redis 数据结构

这里写目录标题Redis 数据结构一、String类型String数据类型的使用场景key 的设置约定二、Hash数据类型string存储对象&#xff08;json&#xff09;与hash存储对象的区别三、list 类型四、set 类型set数据交并差操作set 类型数据操作的注意事项六、sorted_set 类型Redis 数据结…

算法----火柴拼正方形

题目 你将得到一个整数数组 matchsticks &#xff0c;其中 matchsticks[i] 是第 i 个火柴棒的长度。你要用 所有的火柴棍 拼成一个正方形。你 不能折断 任何一根火柴棒&#xff0c;但你可以把它们连在一起&#xff0c;而且每根火柴棒必须 使用一次 。 如果你能使这个正方形&a…

Junit单元测试框架

1)Junit是一个开源的JAVA语言的单元测试框架&#xff0c;也是JAVA方向使用最广泛的单元测试框架&#xff0c;使用JAVA开发者都应该学习junit框架&#xff0c;并且掌握单元测试的编写 2)selenium和Junit都可以被导入到maven项目里面 3)先进行创建maven项目&#xff0c;导入相关依…

linux 全局环境变量删除后 还有 仍然存在

linux 全局环境变量删除后 还有 仍然存在1、编辑 /etc/profile2、设置REDISCLI_AUTH后&#xff0c;redis-cli 进去redis后不需要再次认证2、删除全局环境后 source后 仍然存在3、unset释放全局环境变量4、总结1、编辑 /etc/profile 设置redis环境变量 在末尾加入一行 export R…

家电企业数字工厂系统解决方案

国内小型家电生产商的中小企业普遍使用传统的手工作业模式&#xff0c;依靠大量的人力&#xff0c;线下管理各种数据&#xff0c;如&#xff1a;纸质文档、excel制作等&#xff0c;信息化程度非常低&#xff0c;严重限制着企业生产效率的提升和生产规模的扩大。对传统制造企业来…

基于WEB的网上购物系统的设计与实现(附:源码 论文 sql文件)

摘 要 随着计算机网络技术的飞速发展和人们生活节奏的不断加快&#xff0c;电子商务技术已经逐渐融入了人们的日常生活当中&#xff0c;网上商城作为电子商务最普遍的一种形式&#xff0c;已被大众逐渐接受。因此开发一个网上商城系统&#xff0c;适合当今形势&#xff0c;更加…

AWS白皮书 – 成本优化

本文讲解AWS良好架构框架&#xff08;AWS Well-Architected Framework&#xff09;里其中五大支柱之一&#xff1a;成本优化&#xff08;Cost Optimization&#xff09;。 一套成本优化型系统应充分利用全部资源、以最低价格来实现业务成果&#xff0c;同时充分满足你的功能需…

Google Bard VS ChatGPT:哪个是更好的AI聊天机器人?

文章目录前言一、Bard和ChatGPT的宏观对比二、应用场景不同三、知识的时效性四、未来的归宿总结前言 自从 OpenAI 向公众发布ChatGPT以来的过去几个月里&#xff0c;我们都见证了围绕 ChatGPT 的各种测评&#xff0c;并为它带来的效果感到惊艳。 昨晚Google开放了自家研发的A…

SpringBoot的简介和使用

文章目录1. SpringBoot简介和概述2. SpringBoot的使用3.SpringBoot 项目打包及运行4.切换web服务器1. SpringBoot简介和概述 Spring Boot是由Pivotal团队提供的一套开源框架&#xff0c;可以简化spring应用的创建及部署。它提供了丰富的Spring模块化支持&#xff0c;可以帮助开…

JUC并发编程共享模型之不可变(五)

5.1 问题引出 public interface Account {// 获取余额Integer getBalance();void withdraw(Integer amount);/*** 方法内会启动1000个线程&#xff0c;每个线程做-10元的操作* 如果初始余额为 10000 那么正确的结果应当是0*/static void demo(Account account){List<Thread…

整数拼接(思维枚举,两变量满足某条件-->通过其中一变量根据条件推断另一变量

2068.整数拼接&#xff08;思维&#xff0c;枚举&#xff09; 输入样例&#xff1a; 4 2 1 2 3 4输出样例&#xff1a; 6大佬思路 很多需要双重循环两个值&#xff0c;暴力判断组合在一起是否满足某个条件(比如等式是否成立)&#xff0c; 其实可以换个角度&#xff0c;遍历…

WPF中阴影效果和模糊效果的使用

总目录 文章目录总目录前言一、DropShadowEffect1、DropShadowEffect各属性效果图2、实现代码二、BlurEffect1、BlurEffect各属性效果图2、实现代码3、进阶使用结语前言 WPF中的控件效果主要通过Effect来实现&#xff0c;而Effect有DropShadowEffect&#xff08;投影效果&…

【并发】详解redis的incr、decr命令

一、前言 redis是一个单线程的服务&#xff0c;那么所有的命令肯定会排队被redis执行&#xff0c;redis提供的命令都是原子性的&#xff0c;百度搜索incr\decr就是说将对应的key1&#xff0c;key-1的值重新set到redis中&#xff0c;而且很多都是认为incr\decr原子性的&#xf…

chatgpt优化使用手册

提问方式的优化 我们在首次使用chatgpt的时候&#xff0c;当我们问它一些问题的时候&#xff0c;我们会发现它的有些回答广泛且空洞&#xff0c;不够专业&#xff0c;但是chatgpt是能实现角色的扮演和切换的&#xff0c;所以我们在提问它时需要先给它输入一些剧本&#xff0c;…

激活函数σ、tanh、relu、Leakyrelu

激活函数1- SIgmoid1-1 sigmoid导数2- tanh2-1 tanh函数导数3- ReLU4- LeakyReLu5- LR 公式推导Sigmoid、tanh、ReLU、LeakyReLu1- SIgmoid sigmoid 函数将元素的值映射到0和1之间 sigmoid(x)11exp(−x)sigmoid(x)\frac{1}{1exp(-x)}sigmoid(x)1exp(−x)1​ import torch imp…

leetcode 2492. Minimum Score of a Path Between Two Cities(两个城市间路径的最小score)

定义roads数组&#xff0c;每个元素长度为3&#xff0c;具体为[from, to, 该条road的distance], 其中road是双向的&#xff08;也就是无向图&#xff09;&#xff0c;可以走多次&#xff08;走不通可以折回来&#xff09;&#xff0c; 需要找的是城市1到城市n的路径中&#xff…

测试用例的价值与体系(软件测试入门)

1.测试用例概念&#xff1a; 测试用例(Test Case)是为特定的目的而设计的一组测试输入、执行条件和预期的结果的文档通过大量的测试用例来检验软件的运行效果它是指导测试工作进行的依据2.测试用例价值 指导测试的实施规划测试数据的准备编写测试脚本的"设计规格说明书…

记一次 rr 和硬件断点解决内存踩踏问题

在日常的调试过程中&#xff0c;我们总会遇到一些有趣的 bug&#xff0c;在本文我就遇到了一个有意思的查询结果不一致问题。 故事的开始 我们在测试 NebulaGraph 的 MATCH 语句的时候发现一个很神奇的事情&#xff1a; (rootnebula) [gdlancer]> match (v1)-[e*1..1]-&g…

【分布式-4】zookeeper

一&#xff1a;基本概念 角色&#xff1a; Leader&#xff1a;提供读写follower&#xff1a;提供读操作&#xff0c;参与Leader选举和过半写成功策略。observer&#xff1a; 只提供读&#xff0c;通常情况下&#xff0c;通过client端连接zk集群性能都不错&#xff0c;但是如果…

旅行商问题的粒子群优化

英文标题&#xff1a;Optimization of Particle Swarms for Travelling Salesman Problem摘要&#xff1a;旅行推销员问题是原子种群优化在本研究中的一个应用。我们已经开发了几种新的技术&#xff0c;旨在用粒子群算法解决TSP问题。此外&#xff0c;我们引入了交换操作和交换…