链路:从一个结点到相邻结点的一段物理线路,中间没有任何其他的交换结点。

数据链路:把实现通信协议的硬件和软件加到链路上

数据链路层以帧为单位传输和处理数据。

三个过程:封装成帧,差错检测,可靠传输

封装成帧:

发送方的数据链路层将上层交付下来的数据单元封装成帧后,还要通过物理层,将构成帧的各比特转换成电信号发送到传输媒体。

补充:并不是每一种数据链路层协议的帧都包含有帧定界标志。

MAC帧就 没有帧定界标志。

MAC帧传输过程:

透明传输问题:

面向字节的物理链路使用字节填充(字符填充)的方法实现透明传输

面向比特的物理链路使用比特填充的方法实现透明传输

差错检测:

比特差错:比特在传输过程中可能会产生差错:1可能变成0,0可能变成1。

误码率:在一段时间内,传输错误的比特占所传输比特总数的比率

可以通过差错检错码发现帧在传输过程中出现误码。

检错码在帧尾的FCS字段中:

 过程:

在发送帧之前,会基于待发送的数据和检错算法计算出检错码,并将其封装在帧尾。接收方接收到帧之后,通过检错码和检错算法,就可以判读出帧在传输过程中是否出现了误码。

常见的检错方法:

奇偶校验:

在待发送的数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中1的个数为奇数(奇校验)或偶数(偶校验)

所以,如果有奇数个数发生误码,则奇偶性发生变化,可以检查出误码;

如果有偶数个数发生误码,则奇偶性不发生变化,不能检查出误码,又称漏检。

由于奇偶校验的漏检率比较高,因此计算机网络的数据链路层不会采用这种检错方法。

循环冗余校验CRC:

使用CRC检错,漏检率比较低,易于用硬件实现,因此被广泛应用于数据链路层。

●收发双方约定好一个生成多项式G(x)

●发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据的后面

●接收方通过生成多项式来计算收到的数据是否产生了误码

检错码只能检测出传输过程中出现了差错,但不能定位错误,因此无法纠正错误。

要想纠正传输中的差错,可以使用冗余信息更多的纠错码前向纠错,但纠错码的开销比较大,在计算机网络中较少使用。

对于传输中的差错处理:检错重传或直接丢弃。取决于数据链路层向上层提供的服务。

可靠传输:

接收方接收到有误码的帧后,不会接收该帧,将其丢弃。

如果数据链路层向上层提供的是不可靠服务,丢弃就丢弃了;

如果数据链路层向上层提供的是可靠服务,那么就 需要其他措施,确保接收方还可以重新收到这个被丢弃这个帧的正确副本。

一般情况下,有线链路的误码率比较低,为了减小开销并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。

无线链路易受干扰,误码率较高,因此要求数据链路层必须向上层提供可靠传输服务。

计算机网络中差错的分类:

比特差错:0变成1或1变成0,差错检测有奇偶校验和CRC校验。

分组丢失,分组失序,分组重复

分组丢失,分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层

比特差错出现在数据链路层

可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输。

可靠传输实现比较复杂,开销比较大,是否使用可靠传输取决于应用需求。

实现可靠传输的三种机制:停止-等待协议SW,回退N帧协议GBN,选择重传协议

这三种可靠传输实现机制的基本原理并不仅限于数据链路层,可以应用到计算机网络体系结构的各层协议中。

停止等待协议:

数组分组丢失:超时重传

确认分组丢失,数据 分组重复:数据分组编号

确认分组迟到导致确认重复的问题:给确认分组编号

停止-等待协议每发送一个分组,就停止发送并等待接收方的确认分组,当收到确认分组后,才能发送下一个分组。所以,每发一个分组,就需要至少等待收发双方之间的往返时间。

当往返时间较大,信道利用率很低。

为了提高信道利用率,可以使用流失线传输

回退N帧协议:

无差错发送分组

使用回退N帧协议的接收方,可以采用累计确认的方式,即接收方不一定要对收到的数据分组逐个发送确认。

有差错的情况:

可见,当通信线路不好时,回退N帧协议的通道利用率并不比停止-等待协议高。

当发送窗口>2^n-1时,会出现接受方无法分辨新旧分组的问题

选择重传协议:

过程 :

【计算机网络笔记】数据链路层(封装成帧,差错检测,可靠传输)相关推荐

  1. 数据链路层——封装成帧、透明传输、差错检测、最大传输单元MTU、以太网协议

    OSI模型中的数据链路层与物理层,在TCP/IP协议中同属于网络接口层. 数据链路层为物理连接之间提供了可靠的数据传输.数据链路层主要解决3个问题:封装成帧.透明传输.差错检测. 封装成帧 " ...

  2. 王道考研 计算机网络11 数据链路层 封装成帧 透明传输 流量控制 停止-等待协议 后退N帧协议GBN 选择重传协议SR

    第三章知识 数据链路层的基本概念 数据链路层功能概述 封装成帧 透明传输 什么数据都能传输 数据链路层的流量控制 流量控制方法 滑动窗口协议: 每一个小格标识一个帧 发送窗口:发送端正在处理的发送的数 ...

  3. 数据链路层三个基本问题(封装成帧 、透明传输和差错检测 )

    文章目录 使用点对点信道的数据链路层 1.1 数据链路和帧 1.2 三个基本问题 1. 封装成帧 2. 透明传输 3. 差错检测 循环冗余检验CRC 帧检验序列 FCS 接收端对收到的每一帧进行 CR ...

  4. 计算机网络(4.1)——数据链路层的功能概述、封装成帧和透明传输

    基本概念 结点:主机.路由器 链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线.光纤和微波.分为有线链路.无线链路. 数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件 ...

  5. 计算机网络之数据链路层功能概述、封装成帧、透明传输以及差错控制(检验编码)【408_1】

    一.数据链路层功能概述 (一)数据链路层基本概念 结点:主机.路由器 链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线.光纤和微波.分为有线链路.无线链路. 数据链路:网络中两个结点之间 ...

  6. 数据链路层:封装成帧、透明传输、差错检测

    从整个互联网来看,局域网仍属于数据链路层的范围. 链路 VS 数据链路 链路:从一个结点到相邻结点的一段物理链路. 数据链路:物理线路+实现通信协议的硬件和软件.(早期通信协议也称通信规程) 另一种分 ...

  7. 【计算机网络复习 数据链路层】3.2 封装成帧和透明传输

    封装成帧和透明传输 一.封装成帧 二.透明传输 一.封装成帧 封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧.接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比 ...

  8. 计算机网络5-详述链路层:封装成帧、透明传输、差错控制、链路层协议(SR GBN ALOHA CSMA PPP HDLC)、滑动窗口

    一.链路层概述 1.基本功能概述 数据链路层主要负责通过一条链路从一个结点向另一个物理链路直接相连的相邻节点传送数据报 即,将其上层网络层交付给其的数据报,安全无差错地传给相邻结点 2.相关术语 节点 ...

  9. 3.2 封装成帧和透明传输

    3.2 封装成帧和透明传输

  10. 计算机网络学习:封装成帧、差错检测和可靠传输

    目录 一.数据链路层 二.封装成帧 三.差错检测 四.可靠传输 1.停止等待协议 2.滑动窗口协议 3.选择重传协议 五.总结 一.数据链路层 这一篇记录一下五层协议体系结构中的数据链路层.这一层属于 ...

最新文章

  1. 李开复:AI行业正在回归商业本质,技术公司要有服务心态落地为王
  2. [你必须知道的.NET]第二十一回:认识全面的null
  3. 基于android的家庭财务通 .apk,毕业论文(设计)基于Android的家庭财务管家的设计与实现.doc...
  4. 学习Vue的一些看法
  5. 开发直播APP选择云服务器的优点
  6. javascript --- 优先级执行顺序
  7. sleep( ) 和 wait( ) 的这 5 个区别,你知道几个
  8. qt mysql乱码_Qt连接mysql 并且 解决中文乱码问题
  9. 马云今日正式退休!卸任后的他,仍有12个身份...
  10. simulink快捷键_从EPB模型谈谈Simulink代码生成
  11. HTML出现jQuery.Deferred exception: undefined is not a function,已解决
  12. php扩展之redis
  13. 试题7 算法训练 P0505(最右边的那个非0的数字)
  14. kmp 学习【字符串-kmp学习】
  15. Android中关于Task的一些认识
  16. 2021接力题典1800【数学一】-汤家凤【题目册】
  17. JAVA视频学习笔记-马士兵(一)
  18. 瑞尔森大学的计算机科学专业,瑞尔森大学专业介绍
  19. CASIA-B步态数据集的一些粗糙理解
  20. Kettle连接mysql 驱动报 Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found, make sure the ‘MySQL‘..

热门文章

  1. 影响SQL server性能的关键
  2. bandwidth 0.32k 发布,内存带宽测试工具
  3. daily scrum 10.31
  4. 称称八字几两命——莫当真
  5. 最近做了个数据采集的工具
  6. Bailian3251 最少费用【递归】
  7. I00004 贝尔三角形(解法二)
  8. 前端开发 —— js 常用工具函数(utilities)
  9. python 标准库 —— http(http.cookiejar)
  10. 架构设计 —— 子系统与包