计算机网络(谢希仁 第七版)第三章 数据链路层 笔记

数据链路层

1)数据链路:除了物理线路外,还必须有通信协议来控制这些数据的传输,若把这些协议的软件和硬件加到链路上,就构成了数据链路

数据链路层传输的数据单位:帧


帧从生成到发送的一个过程:由应用层,传输层,网络层形成的数据报,在数据链路层封装成帧,然后通过数据链路传输到另外一个结点


链路层的基本功能:

1)封装成帧

加头:在哪里开始(开始标志)

加尾:在哪里结束(结束标志)

首尾还包含控制信息和最大传输单元(最大传输长度)

SOH:首部

EOT:尾部

规定首尾头的长度加起来要小于原始报文的长度(软性规定)

2)透明传输(理解透明二字,表示无论什么样比特组合的数据都能通过数据链路层)

字符填充发保证数据链路传输的透明性

以下是字符填充法:

如果数据报文中由和头SOH,尾(EOT)相同的部分怎么办?

答:数据报文中出现的SOH和EOT(不代表头尾的)前面一个转义字符ESC

如果由ESC这个数据的话,也是在ESC前面加ESC

这样无论什么样的数据,数据链路层都能传输

3)差错检测

数据可靠性的保证

循环冗余校验CRC

1)在发送端,数据报文后面加冗余码

n位数据+k位冗余码生成完整的一个帧

冗余码的生成:

数据m:1010001101(10位)

假设n=5,p=110101

然后用二进制的模2运算进行2的n次方乘以m的运算

具体:m后面加n个0,得到n+k位除数除以p得到余数r

如果r不够n位,则前面补0

二进制的除法:和十进制的除法(竖式)不同在于没有减法,而是直接异或

异或:相同为0,不同为1

在接收端:

CRC校验:把收到的每一个帧都除以相同的除数p(模2运算),然后检测余数r,r=0,则数据无误

即a/b 商c余d 那么 b*c+d==c

帧检验序列:是数据+冗余码生成的序列

注意帧检验序列和循环冗余校验的区别,一个是序列,一个是方法

CRC是无差错接受:凡是接收的帧都没有传输差错,由差错的帧就丢弃而不接受

确认和重传机制:流量控制

4)流量控制(确认和重传机制)

弥补主机a,b之间的带宽差异

发送下一个帧之前先确认上一个帧传输成功(等待接收端发送过来的接收成功信号)

(ack信号)

发送方:

1. 从主机中取一个帧

2. 进数据帧发送到数据链路层的发送缓存里

3. 将发送缓存里的数据帧发送出去

4. 等待

5. 若收到ack信号,则跳转到1

接收方:

1. 等待

2. 若收到数据帧,则放入接收缓存中

3. 先进行冗余校验,正确则上交给主机

4. 向发送端发送ack信息

5. 跳转到1

没有流量控制的话,就是不停的发不停的发,由流量控制的话,就发送一个帧,收到ack信号再发

可靠性的保证

采用流量控制的时候数据传输可能出现的四种情况:

1)正常情况

2)数据帧出错:接收端进行CRC校验之后发现数

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值