数据链路层(学习笔记)

首先要明确“数据链路”和“链路”这两个概念:

  链路:从一个节点到相邻节点的一段物理现路,其中间没有任何的交换节点,所以可以说链路只是一条路径的组成部分。
  数据链路:当需要在一条线路上传送数据的时候,除了要有一条物理线路还需要一些必要的通信协议来控制这些数据的传输,把实现这些协议的软硬件添加到链路上就形成了数据链路。其中最常使用网络适配器来实现这些协议,一般都包括数据链路层和物理层的功能。
  数据链路层负责相邻设备之间的数据传输,数据单元为帧,主要的设备是交换机,主要工作是将网络层交下来的IP数据报添加首部和尾部封装成帧,然后将封装好的帧发送给接收方的数据链路层,接收方如果收到的帧是无差错的,就从中提取IP数据报交付给网络层,否则丢弃。
  所以在数据链路层的协议要解决三个问题:封装成帧、透明传输和差错控制。

  1. 封装成帧:在数据的首端和尾端添加首部和尾部封装成帧,这样可以判断一个帧的完整性。
  2. 透明传输:虽然帧的开始(SOH)和结尾(EOT)是ASCLL码不可打印的控制字符,但是他的二进制形式很有可能和数据中的二进制相同,造成帧提前结束,透明传输就是用来解决这一问题。在数据中出现控制字符前插入转义自读“ESC”,接收方接收到帧将这个转义字符删掉,然后发往网络层。如果前面刚好有一个转义字符,在插入一个转义字符,然后删掉最前面的。
  3. 差错控制:为了保证可靠性,使用CRC(循环冗余校验码)。由于数据链路层不要求可靠传输,CRC只做到对帧的无差错接收,只是为了避免比特差错,但是仍然会出现传输差错(帧丢失、帧重复、帧失序)。
CRC校验

  先在要发送的帧后面附加一个数(这个就是用来校验的校验码,它是二进制序列),从而生成一个新帧发送给接收端。这个附加的数要使所生成的新帧能与发送端和接收端共同选定的某个特定数整除。到达接收端后,再把接收到的新帧除以这个选定的除数。因为之前在发送端发送数据帧时就已通过附加一个校验码,做了“去余”处理,所以结果应该是没有余数。如果有余数,则表明该帧在传输过程中出现了差错。

MTU

  MTU相当于发快递时对包裹尺寸的限制,这个限制是不同的数据链路对应的物理层而产生。以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位;最⼤大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU,不同的数据链路层标准的MTU也是不同的。如果数据包长度大于相应链路的MTU,则需要对数据包进分片。需要注意的是IPv4主机对其产生的数据执行分片,IPv4路由器对其转发的数据也进行分片,然而IPv6只在数据产生的主机分片,其路由器对转发的数据不进行分片

MTU对IP协议的影响

  由于数据链路层MTU的限制,对于较大的IP数据包就要进行分包。
  将较大的IP包分成多个小包,并给每个小包上打上标签。每个小包的IP协议头的16标识(ID)都是相同的。每个小包的IP协议头的3位标志字段中,第二位置为0,标识允许分片,第3位来表示结束标记,如果当前是最后一个包置1,否则置0。到达对端是再将这些小包按顺序重组,拼接到一起返回给传输层。这些小包中任意一个包丢失,接收端的重组就会失败,但是IP层不会负责重新传输数据。

MTU对UDP协议的影响

  一旦UDP携带的数据超过1472(1500-20(IP首部)-8(UDP首部)),那么就会在网络层分成多个IP数据报。这些IP数据报中由任意的一个丢失了,都会引起接收端网络层重组失败,这就意味着如果UDP在网络层备份片,整个数据被丢弃的概率就大大增加了。

MTU对TCP协议的影响

  TCP的一个数据报也不能无限大,还是会受到MTU的限制,TCP的单个数据报的最大消息长度被称为MSS,TCP在建立链接的过程中,通信双方会进行MSS协商。在最理想的情况下,MSS的值真好使IP不会被分片处理的最大长度,但是这个长度仍然受数据链路层的MTU限制。双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值,然后双方得知对方的MSS值后,选择两者最小的作为最终的MSS。MSS的值就是在TCP首部的40自己变长选项。

MTU和MSS的关系

  MTU:最大传输单元,由硬件规定,比如说以太网的MTU位1500字节。
  MSS:最大分节大小,位TCP数据包每次传输的最大数据分段大小,一般由发送端向对端TCP通知对端在每个分节中能发送的最大TCP数据。
  MSS值 = MTU - IPv4 Header(20字节) - TCP Header(20字节)/UDP Header(8字节)

ARP协议

  ARP不是一个单纯的数据链路层协议,他是介于数据链路层和网络层之间的协议。

ARP协议的作用

  ARP协议建立了主机IP地址和MAC地址之间的映射关系。在网络通信时,源主机的应用程序直到目的主机的IP地址和端口号,却不知道目的主机的硬件地址。因为数据包首先是被网卡接收到再去处理上层协议的,如果接受的数据包的硬件地址与本机不符合,直接丢弃,所以在铜锌铅必须先获得目的主机的硬件地址

ARP协议的工作流程

在这里插入图片描述
  源主机发出ARP请求,询问IP地址是172.168.0.1的主机的硬件地址是多少,并将这个请求广播到本地网段,目的主机接收到广播的ARP请求,发现其中的IP地址和本机相符,就发送一个ARP应答数据包给源主机,将自己的硬件地址信息填写到应答包中。
  每台主机都会维护一个ARP缓存表,缓存表中的表项中有过期时间,一般为20分钟,如果在这段时间中没有再次使用某个表项,这个表项就失效,下次还需要发送ARP来获取该表项目的主机的硬件地址
在这里插入图片描述

ARP数据报的格式

【数据报格式图】
  源MAC地址、目的MAC地址在以太网首部和ARP请求中个出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其他类型的网络则有可能是必要的。
  硬件类型是指链路层网络类型,1为以太网
  协议类型指要转换的地址类型,0x0800为IP地址
  硬件地址长度队医以太网地址为6字节
  协议地址长度对于IP地址为4字节
  op字段为1表示ARP请求,2为ARP应答

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

免otp动态密码登录堡垒机

环境准备 安装brew 参考文档:https://brew.sh/index_zh-cn.html 安装oath-toolkit 和expect brew install oath-toolkit brew install expect 正式开始 生成MFA_KEY对应的6位otp密码:oathtool -b --totp [MFA_KEY] MFA_KEY就是你绑定APP时&#x…

英特尔10纳米处理器再度跳票,或收缩芯片代工业务

来源:腾讯科技摘要:在全球半导体行业,线宽(N纳米)是制造厂商进行激烈竞争的指标。在全球半导体行业,线宽(N纳米)是制造厂商进行激烈竞争的指标。据报道,英特尔将延期到20…

简单GDB调试

GDB下载 使用yum工具直接下载 生成可用gdb调试的可执行程序 -g 会保留源文件中的函数名和变量名 启动gdb gdb 可执行程序名 set args xxx xxx 给程序传参查看程序中的源代码 当前文件 l(list) l 行号 l 函数名 非当前文件 l 文件名:行号 l 文件名&#xf…

人工智能应用需要高可信性(180806)

来源:科学网摘要:近日,“Rekognition”却闹了一个大乌龙:28名美国国会议员被它识别成了罪犯。小编搞了大半辈子测试和容错,对这方面消息比较敏感。最近看到新闻,商业巨头亚马逊2016年推出图像识别AI系统“R…

暑假集训中期测试 Problem D: 装箱问题2 (并查集)

Description 有很多个棱长为1的正方体货物整齐地堆在一堆。不过有一些是悬空的, 大概是粘上去的吧。。。 给出这些货物的相邻关系,求最小的长方体(或正方体)能装下这些货物的集装箱的体积,(集装箱棱长方向与…

s3cmd安装及使用

一、安装 1.下载安装包。 这里我们使用s3cmd-1.0.0.tar.gz安装包 2.解压安装包 tar xzvf s3cmd-1.0.0.tar.gz 3.移动路径 mv s3cmd-1.0.0 /usr/local/s3cmd 4.创建软链接 ln -s /usr/local/s3cmd/s3cmd /usr/bin/s3cmd 5.执行配置命令(按提示输入相应密码等) s3cmd -…

二叉树——堆

二叉树顺序存储结构 理解堆之前先理解一下二叉树的顺序存储结构。普通的二叉树并不适合顺序存储,因为可能会造成大量的空间浪费。只有完全二叉树适合顺序结构存储。显示中我们通常把堆使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统中虚拟进程…

open AI 在DOTA 5v5 比赛中战胜职业选手

来源:AI科技大本营摘要:去年,OpenAI 在 DOTA 的 1v1 比赛中战胜了职业玩家 Dendi,而在距离进阶版 OpenAI Five 系统战胜人类业余玩家不过一个月的时间,今天凌晨,它又以 2:1 的战绩再次完成对人类高级玩家的…

如何体现机器智能和群体智能的关系,2018新版互联网大脑模型绘制

作者:刘锋 计算机博士 互联网进化论作者2018年新的这一版,也是互联网大脑模型图的第五个版本,距离第一版的发布已经有10年时间(2008年),距离上一版第四版也有1年时间,在这一版中主要解决了如何…

全球互联正在创造一个知识极大丰富和隐私终结的时代

来源:资本实验室摘要:据预测,到2020年,全球物联网连接设备将超过500亿个,会产生600泽字节的信息。这么庞大的数据量,将如何影响并改变我们的生活和工作?聚焦前沿科技创新与传统产业升级据预测&a…

泡沫破裂之后,强化学习路在何方?

作者|侯宇清、陈玉荣来源|智能单元编辑|Debra一、深度强化学习的泡沫2015 年,DeepMind 的 Volodymyr Mnih 等研究员在《自然》杂志上发表论文 Human-level control through deep reinforcement learning[1],该论文提出…

一篇文章搞懂数据仓库:维度表(设计原则、设计方法)

目录 1、什么是维度表? 2、维度表设计原则 (1)维度属性尽量丰富,为数据使用打下基础 (2)给出详实的、富有意义的文字描述 (3)区分数值型属性和事实 (4)…

Github项目:AI消除马赛克实战

目录 1、原理 2、准备工作 3、消除马赛克 4、效果对比 1、原理 该算法利用线性盒滤波器分别处理每个块的事实。对于每个块,它将搜索图像中的所有块像素化以检查直接匹配。 对于大多数像素化图像,Depix能够找到单个匹配结果。它假设这些是正确的。然…

C++继承一览

继承的概念及定义 继承机制是面向对象程序设计是代码可以复用的重要手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生的类称为派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。…

人工智能能否复制人脑引争论 美媒:目前AI仍存在局限性

来源:网易智能摘要:人们应用人工智能技术(AI)的所有领域,包括无人驾驶汽车、机器人医生、超过10亿中国公民的社会信用评分系统等,当前都取决于一场关于如何让AI做其不能做的事的辩论。8月6日报道称&#xf…

Tushare免费获取股票数据:实时数据,历史数据,行情数据

一 操作手册 引导用户顺利开始使用Tushare Pro数据,以下步骤将带您开始Tushare数据之旅: 用户注册登录后可调用数据:https://tushare.pro/register?reg399205 二 如何获取TOKEN凭证 1、登录成功后,点击右上角->个人主页 2、…

排序(冒泡、选择、插入、希尔、快排、堆排、归并)

冒泡排序 冒泡排序时通过无序区中相邻记录的关键字间的比较和位置的交换,使关键字最小的元素如气泡似的逐步上浮直水面。有序区逐渐扩大,无序区逐渐缩小。   冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大,就…

人民日报:人工智能,务实发展是正道

来源:人民日报摘要:近日,由中国人工智能学会主办的中国人工智能大会在深圳召开,利用这个人工智能领域产、学、研紧密结合的高端前沿交流平台,围绕关键核心技术发展等当前热点话题,学者和业界人士进行了充分…

自动驾驶芯片:GPU 的现在和 ASIC 的未来

来源:乐晴智库精选▌车载芯片的发展趋势(CPU-GPU-FPGA-ASIC)过去汽车电子芯片以与传感器一一对应的电子控制单元(ECU)为主,主要分布与发动机等核心部件上。随着汽车智能化的发展,汽车传感器越来越多,传统的分布式架构逐渐落后&…

电动汽车:新一轮三年十倍,“补贴”结束“高端”开启

来源:乐晴智库精选摘要:从最早的十城千辆新能源车示范推广,到2014年正式启动的二级市场新能源车大行情,再到当下新能源乘用车型的快速升级迭代,新能源汽车产业发展和投资已历经8余年。▌新能源汽车投资,推倒…