计算机网络学习日记 Day4----数据链路层

数据链路层的知识可以算是计算机网络中的重点了,内容比较多,所以我们来分两次来学习完它。

什么是数据链路层?

首先先理解一下几个概念:

结点: 主机、路由器都属于结点。

链路:网络中两个结点之间的物理通道。分为有线链路、无线链路。

数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。

是给物理层的传输媒体提供连接,进行数据通信。媒体是长期的,而通信是有生命周期的,每次通信都需要建立、拆除通信联络。这种建立起来的数据收发关系就叫做数据链路。能帮助物理层弥补不足,为上层提供无差错的数据传输。

数据链路层的功能有哪些?

(1)为网络层提供服务

(2)链路管理,即连接的建立、维持、释放(用于面向连接的服务)

(3)组桢(四种方式,后面细说)

(4)流量控制(两类、三种方法)

(5)差错控制

标红字段为本文所涉及的内容。

一、组桢

先来了解一些概念

桢:数据链路层的数据协议单元,封装网络层数据报。

透明传输:可传输任意比特编码的信息。

可靠传输:能完好且完整的把数据传输过去。

桢的封装:

在一段数据的前后添加首部和尾部,用来确定桢的界限,进行桢定界。

组桢的四种方式:

(1)字符计数法

(2)字符填充法

(3)零比特填充法

(4)违规编码法

前两个出错对整体影响较大,现在已经不怎么使用。

后两个为现在所常用的组桢方式。

四种方式的具体操作:

(1)字符计数法(字符增加或者缺失的时候,变化太大了)

在桢的首部使用一个计数字段,来标明桢内字符数

 (2)字符填充法

在桢的首、尾插入字符来识别。

如果在这个过程中遇到了假的尾部,我们会在这个假的胃不去前面进行字节扩充,如下图所示,来与真正的尾部进行一个区分。

 

(3)零比特填充法

在首部和尾部添加“01111110”,当桢中的数据部分出现五个一段时候,就在后面加上一个零。

(4)违规编码法(实现存在复杂性和不兼容性)

用编码中不会用到的电平方式来标注真正的起始和终止。

 

比如曼彻斯特编码中,编码是10或者01,那么我们就可以用11或者00作为头部或者尾部。

二、差错控制

差错产生的两种方式:

(1)随机噪声:固有的,随机的。

降低随机噪声的方法:提高信噪比。

(2)冲击噪声:有外界敲击等方式引起的。

降低冲击噪声的方法:编码技术的提高。

差错的两种类型:

(1)位错:比特位出错 0——>1、1——>0。

(2)桢错:

桢错的三种情况:

比如传输了1、2、3三个桢

1⃣️:桢的丢失  (1、2)

2⃣️:桢的重复  (1、2、2、3)

3⃣️:桢的乱序(1、3、2)

个人感觉这里和生物有点像哈哈哈,位错相当于基因突变,桢错相当于染色体变异。

位错两种控制方法:

1⃣️:检错编码

1、奇偶校验码。(纠错率百分之五十)

2、循环冗余码(CRC技术)。冗余码(FCS桢检查序列)

2⃣️:纠错编码

1、海明码(很神奇)

操作流程:

确定校验码位数r——>校验码的数据和位置(只能放在2的n次幂的位置上)——>校验码的值(看二进制可以知道检验位哪几位)——>检查和纠错(逆运算,将结果倒过来组成二进制值,找二进制的值就是出错位。)

海明不等式:

2的r次幂 大于等于 k+r+1

r冗余信息位

k为信息位

顾名思义,第一种可以找到错误,第二种不仅可以找到错误,还能进行修改。

以上两种控制位错的方法,大家可以去看“Echo*”zhttps://blog.csdn.net/qq_40963076

三、流量控制​​​​​​​

先介绍一些概念:

信道利用率 = (L/C)/T (发送信息的时间/总时间)

L:数据量

C:发送速率

T:周期

信道吞吐率 = 信道利用率*发送方发送速率

超时计时器(设定的时间大于往返时延RTT)

超过这个设定的时间,自动重传相应的数据。

超时的几种情况:

1、丢包————重新传递

2、丢ACK————丢弃重复的一桢,重传错误的一桢

3、ACK迟到————收下就丢弃 

只有当窗口移动到下一组窗口位置的时候,收到上一组的ACK才叫ACK迟到。

流量控制的手段:接受方收不下就不回复确认

流量控制的方法:

(1)停止——等待协议 每发送一桢就stop,待确认后就continue

(2)滑动窗口协议:

1、后退N桢协议(GBN)——>发送窗口最大值为2的n次幂减1。 信道利用率低

累积确认,可以隔一段时间发送一个ACK,告诉发送方ACK和ACK之前的所有内容已经收到。

其余的情况丢弃桢,并且最近按序接受的桢重新发送ACK。

2、选择重传协议(SR)——>发送窗口最大值为2的(n-1)次幂

如果发送窗口太大,接收方就无法辨别是新桢还是旧桢。

后退N桢协议和停止等待协议的接收方窗口的大小都是1

要了解这些流量控制方法在传输中发生数据丢失会怎么办,也请参考上面那位博主的文章,在里面已经配图解释过了。

多次进行停止——等待协议就变成了后退N桢协议(GBN)————这种技术被称为流水线技术

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值