目录

一、主要作用

1、封装成帧

2、透明传输

3、差错检测

3.1 奇偶校验码

3.2 循环冗余校验码CRC

二、最大传输单元MTU

三、以太网协议

1、MAC地址

2、以太网协议

2.1 数据格式

2.2 MAC地址表


一、主要作用

数据链路层的主要作用:

  1. 封装成帧:将网络层的数据封装成帧的个数,在数据前添加帧首,在数据后添加帧尾;
  2. 透明传输:对于出现在帧数据中的控制字符,但是要当做不存在的去处理;
  3. 差错检测:物理层只负责传输比特流,无法控制是否出错,所以需要数据链路层负责差错检测的工作。

1、封装成帧

帧是数据链路层数据的基本单元。发送端在网络层的一段数据的前后分别添加一个标记,形成“帧”;接收端根据帧前后的特定标识,识别出“帧”。

2、透明传输

透明传输指的是,控制字符在帧数据中,但是要当做不存在的去处理。也就是说,如果在帧数据中出现了和“帧尾部”的控制字符相同的字符,也要正确的进行处理。这需要对数据中的特殊字符,进行特殊处理。

对特殊字符进行处理的方法,就是在特殊字符前面,增加一个转义字符。如下图所示,ESC字符就是增加的转义字符。

如果帧数据中出现了转义字符,则继续在前面增加转义字符,表示这是转义字符:

3、差错检测

物理层只负责传输比特流,无法控制是否出错,所以需要数据链路层负责差错检测的工作。

3.1 奇偶校验码

奇偶校验码要求数据位和校验位的和,是偶数。这样,如果奇数位数字出现了问题,就会被检测出来。当然,如果是偶数位的数字出现了问题,是不能被检测到的。

3.2 循环冗余校验码CRC

循环冗余校验码,是一种根据传输或保存的数据而产生固定位数校验码的方法。固定位数可能是一位,也可能是多位。用于检测数据传输或者保存后可能出现的差错。生成的数字计算出来,并且附加到数据后面。

模2除法:

模二除法和真实的除法很类似,差别在于,模2除法不需要借位。例如0-1等于1,但是不需要高位的数值减1。在每一位上看,实际上执行的就是异或操作,如下左图所示。

CRC的三个步骤:

  1. 选定一个用于校验的多项式G(x),并在数据尾部添加r个0,其中,r是G(x)中x的最高阶次数;
  2. 用添加了r个0的数据,用于模2除法除以多项式G(x)的位串;
  3. 将得到的余数,填充在原数据r个0的位置,得到可校验的位串。

注意事项:

  1. CRC的错误检测能力,与位串的阶数r有关,r越高检错能力越强;
  2. 数据链路层只进行数据的检测,不会进行数据的纠正。

二、最大传输单元MTU

MTU(Maximum Transmission Unit),最大传输单元。用于描述最大的可传输的数据帧的长度。

数据帧过大或过小,都会影响传输效率;以太网MTU一般是1500字节。

路径MTU,取决于整个传播链路中的MTU最小值。

三、以太网协议

1、MAC地址

MAC地址,也叫物理地址、硬件地址。每个设备都拥有唯一的MAC地址。

MAC地址有48位,即6个字节。通常由6组十六进制数字组成,每组都是一个字节,即两个16进制数。

2、以太网协议

以太网是一种使用广泛的局域网技术,是一种应用于数据链路层的协议。使用以太网协议可以完成相邻设备的数据帧传输。

2.1 数据格式

以太网协议的数据格式:

类型取决于后面的帧数据中承载的数据的类型,:

  • 如果是IP数据,类型是0800;
  • 如果是ARP请求或应答数据,类型是0806;
  • 如果是RARP请求或应答数据,类型是0805。

2.2 MAC地址表

路由器中会存储一个MAC地址表,用来定位MAC地址对应的硬件接口。MAC地址表是一个映射,用来把一个MAC地址映射到一个具体的硬件接口。如图:

如果路由器发现MAC地址表中没有找到某个MAC地址,那么E将会广播数据包到除了数据发送方之外的全部硬件接口,接受到广播的硬件会向路由器反馈自己的MAC地址,然后E根据收到的反馈数据,更新MAC地址表。

网络:数据链路层原理总结相关推荐

  1. Sniff网络基础原理和软件实现技巧详解

    Sniff网络基础原理和软件实现技巧详解 前言 SNIFF真是一个古老的话题,关于在网络上采用SNIFF来获取敏感信息已经不是什么新鲜事,也不乏很多成功的案例,那么,SNIFF究竟是什么呢? SNIF ...

  2. 网络-数据链路层回顾

    数据链路层是干嘛的? 网络层是研究分组怎样从一个网络通过路由器转发到另一个网络 数据链路层主要研究在同一个局域网中,分组怎样从一个主机传送到另一个主机(不经过路由器) 数据链路层主要使用两种信道: 点 ...

  3. 网络编程原理进阶___TCP/IP(javaee)

    点击跳转 本章重点 网络编程原理进阶 应用层 DNS 传输层 UDP TCP面试重点 `TCP`原理 确认应答 超时重传 连接管理(面试重点) 3次握手 4次挥手 滑动窗口 流量控制 拥塞控制 延时应 ...

  4. 以太网及网络工作原理二

    以太网及网络工作原理二 2.以太网工作原理 2.2.以太网数据帧 2.3.数据帧传输 2.4.交换机的工作原理 2.5.网线的分类 2.6.千兆以太网 2.6.1.千兆位以太网标准主要四种类型的传输介 ...

  5. 网络工程原理与实践教程实验安排

    <网络工程原理与实践教程(第3版)>胜在超凡实验指导书和教材合为一体,"易学,易教,内容新"  第10章 实    验.... 235 实验1 水晶头的制作... 23 ...

  6. 充分掌握网络工作原理及底层实现 大家都做什么项目啊?

    张孝祥,张老师是软件编程语言培训和软件工程师速成培训专家.精通c/c++/vc++.vb.java.sql server.oracle.asp.jsp.j2ee.android等编程语言和数据库系统, ...

  7. 雷电网络(一):厘清雷电网络的原理

    闪电网络为解决比特币拥堵而生,当然也可以用于其他区块链项目,比如我们上篇说的OMG.不过,以太坊也有自己的"闪电网络",它的名字叫雷电网络.甚至,以太坊除了雷电网络,还有其他类似的 ...

  8. 一文读懂闪电网络工作原理

    一   引言 了解比特币的人都知道,比特币网络的拥堵问题由来已久,转账高手续费.速度缓慢严重制约了比特币的发展.关于扩容的争论喋喋不休,共识分歧严重,造成了多次比特币分叉.目前来看,社区共识无法达成一 ...

  9. 以太坊闪电网络实现原理

    2019独角兽企业重金招聘Python工程师标准>>> 以太坊闪电网络实现原理 线上直接转账需要一定的费用,如果存在大量小额交易的情况下,费用会变的难以承受,因而以太坊引入了微交易支 ...

  10. 网络攻防原理及应用 知识梳理

    文章目录 网络攻防原理及应用课程 复习 第一章 概述 1. 网络安全的引入 2. 网络安全的目标 3. 网络的主要安全威胁 4. 网络安全体系 5. 网络攻击手段 6. 网络防御手段 7. 密码技术应 ...

最新文章

  1. Matlab与机器学习-- 数据的归一化
  2. YII相关知识点记录
  3. php中的isset函数,PHP函数isset()只能用于变量
  4. _Linux实操-实用指令
  5. C++ 重载左移和右移运算符
  6. Mac或者Linux安装RabbitMQ
  7. 掌握渗透测试,从Web漏洞靶场搭建开始
  8. 关于打印数组一直输出地址符号的一个解决方法
  9. matlab 类型转换(类型判断)
  10. 项目中的设计模式【工厂方法模式】
  11. Weblogic部署程序运行不起来的坑
  12. 《Qt 5/PyQt 5实战指南》目录
  13. 华硕win10键盘失灵_win10笔记本键盘失灵怎么办_win10笔记本电脑键盘失灵一键修复教程...
  14. 高德地图的集成(简单至极)
  15. 喜欢的现代诗 -。-
  16. Zabbix主页应用介绍
  17. jboot-admin学习
  18. iOS开发工具-网络封包分析工具Charles
  19. STM32软件模拟IIC---读写驱动AT24Cxx
  20. python3.8与pyinstaller_pyinstaller 3.5 在python 3.8 环境下出现不兼容的问题

热门文章

  1. 论文解读:《多层肽 - 蛋白质相互作用预测的深度学习框架》
  2. 删除Windows服务
  3. Java格式化json格式文本数据
  4. CAD制图系列之椭圆画法标注
  5. 基于Python的图片批量转PDF实现
  6. unity Quality Settings 质量设置
  7. 搜索与回溯:取石子游戏
  8. 用计算机录入稿件,如何利用OCR文字识别软件快速录入信息到电脑上?
  9. 英语基础-疑问句概述
  10. 有限状态机 FSM 是什么?