数据链路层实现的三大功能分别为:

(1) 封装成帧

(2) 透明传输

(3) 差错控制


1、封装成帧

封装成帧就是在一段数据前后分别添加首部和尾部,构成了一个帧。

接收端在收到物理层上交的比特流后,能根据首部跟尾部的标记,从收到的比特流识别帧的开始和结束。

此外,首部跟尾部还包括许多必要的控制信息。在发送帧时,是从帧首部开始发送。各种数据链路层协议都要对帧首尾部格式有明确的规定。每一种协议都限定了帧的数据部分长度上限-----最大传输单元MTU。

附:最大传输单元MTU(笔者腾讯一面亲历)

一个UDP报文能传输的最大数据为多大?

以太网的数据链路层规定了最大传输单元MTU=1500(字节),那么实际上一个IP数据报最长也就是1500 字节,而IP数据报又是由UDP报文或TCP流封装得到的,那么一个UDP报文最大长度为1500-20=1480.20为IP数 据报的首部长度。而在运输层,UDP也有自己的首部(8字节),所以在应用层一个UDP报文能传递的最大数据 为1500-20-8=1472(字节)

2、透明传输

什么是透明传输,为什么需要透明传输?看下图:

解决透明传输的方法:

1、发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是 1B)。
2、字节填充或字符填充——接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
3、如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。 


实现方法见下图:

3、差错检测

在传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。
为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。

CRC循环冗余检测

在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术。

发送端执行的操作:

在发送端,先把数据划分为组。假定每组 k 个比特。 
假设待传送的一组数据 M = 101001(现在 k = 6)。我们在 M 的后面再添加供差错检测用的 n 位冗余码一起发送。

冗余码计算实例:

现在 k = 6, M = 101001。
设 n = 3, 除数 P = 1101,(除数P是我们自己约定的,n的取值是 P的位数减1)
被除数是 (2^n)M = 101001000。 (对M从后开始补0,一共补n位)
模 2 运算的结果是:商 Q = 110101,(计算结果见下图)
            余数 R = 001。
余数 R 作为冗余码添加在数据 M 的后面发送出去。发送的数据是:101001001,共 (k + n) 位。

CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。

接收端执行的操作:

从发送端接收到数据M:101001001(包含冗余码FCS)
发送端、接收端约定的除数 P = 1101
M%P 运算结果若为0,表示无比特差错
M%P 运算结果不为0,表示比特差错,丢弃该帧



仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受。“无差错接受”是指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”。也就是说:“凡是接收端数据链路层接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制。  

















本文由Cout_Sev 搜集整理并修改

自谢希仁老前辈《计算机网络第5版》

转载请注明出处

谢谢!



【网络基础】数据链路层实现的三大功能相关推荐

  1. 网络基础(三)物理层功能,Hub的工作原理

    物理层作为 OSI七层原理的第一层,它主要是定义了一个 "电气特性". 包含了我们线缆的 "针脚", "电压", "接口" ...

  2. 网络基础服务器 与SMP、NUMA、MPP 三大体系结构科普

    OSI和TCP/IP是很基础但又非常重要的知识,很多知识点都是以它们为基础去串联的,作为底层,掌握得越透彻,理解上层时会越顺畅.今天这篇网络基础科普,就是根据OSI层级去逐一展开的. 01 计算机网络 ...

  3. 网络基础3【网络层、数据链路层】

    目录 一.网络层 1.IP协议 (1)基本概念 (2)协议头格式 2.网段划分 3.特殊的IP地址 4.IP地址的数量限制 5.私有IP地址和公网IP地址 6.路由 二.数据链路层 1.以太网 2.以 ...

  4. 十种机制保护三大网络基础协议(BGP、NTP和FTP)—Vecloud微云

    除了DNS,还有其他网络基础协议也会变成攻击者的武器,该如何保护呢? 涉及基础互联网协议的攻击见诸报端时,人们的视线往往集中在Web上,HTTP或DNS是绝对的主角.但历史告诉我们,其他协议也会被当做 ...

  5. 从网线到IO模型(网络基础整合)

    文章目录 网络基础 1.什么是协议,常见协议 2.网络应用设计模式 BS/CS优缺点 什么是C/S模式 什么是B/S模式 优缺点 3.分层模型(物数网传会表应) 4.以太网帧协议(为什么需要+报文分析 ...

  6. 软件设计师笔记之网络基础知识

    根据以前的考试大纲总结,本章的知识点大概如下 (1)网络体系结构. (2)传输介质,传输技术,传输方法,传输控制. (3)常用网络设备和各类通信设备的特点. (4)LAN(拓扑,存取控制,组网,网间互 ...

  7. 通信网络基础 ——RIP、OSPF、BGP等协议及模拟实验

    通信网络基础 1. 常用设备及参数说明 1.1 路由器 1.2 交换机 1.2.1 主要知识点区别 1.2.2 三层交换机配置 1.3 物理介质 2. 常用命令解释 2.1 路由器常用基本命令 2.2 ...

  8. 36张图详解网络基础知识

    前言 网络协议 我们用手机连接上网的时候,会用到许多网络协议.从手机连接 WiFi 开始,使用的是 802.11 (即 WLAN )协议,通过 WLAN 接入网络:手机自动获取网络配置,使用的是 DH ...

  9. 软考之路(1)——浅解网络基础知识

    对网络这一块的基础知识理解例如以下,以图文并茂的形式展出.便于分析和理解.解析与图例如以下: 物理层: 功能: 提供为建立.维护和拆除物理链路所需的机械.电气.功能和规程的特性: 提供有关在传输介质上 ...

最新文章

  1. Java黑皮书课后题第8章:*8.26(行排序)用下面的方法实现一个二维数组中的行排序。返回新数组,且原数组保持不变。编写一个测试程序,提示用户输入一个3*3的double型矩阵,显示一个排好的矩阵
  2. 网速慢?NO可能是路由器的原因?
  3. 模拟断电oracle数据不一致,Oracle数据库案例整理-Oracle系统运行时故障-断电导致数据文件状态变为RECOVER...
  4. 2020,“拷问”AI创业与投资
  5. win10开机登录不需要密码默认账号
  6. C#实现反双曲余弦函数等
  7. win10摄像头无法使用黑屏的解决办法
  8. 英雄无敌6服务器在哪个文件夹,英雄无敌6无法进入游戏解决方法_单机攻略_快吧单机游戏...
  9. 我是这样手写Spring的,麻雀虽小五脏俱全
  10. 惠普暗影精灵II代pro进入biso
  11. 数据结构学习——RBT(红黑树)以及实现Map和Set
  12. 月亮私房菜——秘制辣椒油!让你辣得够味!辣得过瘾!
  13. Mysql数据库表结构导出工具介绍
  14. 使用Node.js搭建web服务器
  15. 搭建DNF台服之数据库
  16. 难道是C3p0的问题
  17. RISC-V:实现ADDI指令
  18. Intel Xeon E5-4650 VS AMD Opteron 6380
  19. 什么是栈?什么是队列?栈与队列的特点
  20. Tornado+Pyecharts+LayUI搭建个人足迹地图服务

热门文章

  1. Hessian矩阵的几何意义
  2. a 是指计算机的什么应用,计算机中AtoC是什么应用软件
  3. 啊哈C——学习3.7一起来找茬
  4. [分享] 兰迪·波许教授的最后一课[PDF/PPT/AVI]
  5. pgsql创建用户并赋予权限
  6. 球形罩铆接机械臂设计(lunwen+开题报告+指导记录+设计图纸+PLC控制程序)
  7. linux--redis(redis在lnmp中做加速器2)
  8. C++ 类型定义顺序问题
  9. 京东网络开放之路——数据中心光互联技术的思考与实践
  10. 6 生僻字_又双叒叕,火炎焱燚......神曲《生僻字》原唱来了!