当前位置: 首页 > news >正文

初识Linux · 数据链路层

目录

前言:

以太网帧协议

ARP协议

ARP协议理解

ARP协议字段

交换机


前言:

前文我们通过OSI模型,一直到TCP/IP四层模型,经过了三篇文章左右的功夫,我们把网络层介绍完毕,主要还是介绍的IP协议的iphdr,以及内网公网的概念,最后是一个IP分片。那么经过一系列介绍,我们最终也到了TCP/IP四层模型的最后一层——数据链路层。

那么数据链路层我们这么介绍,从以太网帧协议到认识MAC地址,再到arp协议,最后引入一个交换机的概念,数据链路层我们也就收官了。

当数据链路层讲完,我们下一篇文章再补充一点细节部分,具体之后再说咯,那么废话不多说,我们直接进入主题。


以太网帧协议

首先,在网络报文传输的时候,我们重点讨论的是报文从一个子网到达另一个子网的过程,那么我们并没有重点讨论在一个局域网内报文是怎么传输的,是怎么从一个主机到达另一个主机的,而数据链路层,要讨论的就是这个问题。

在网络层报文传输的时候,报文通过IP协议封装,到数据链路层之后也有对应的协议进行封装,这个协议叫做以太网帧协议。不过它非常的简单:

它就只有这么多字段,其中目的地址和源地址代表的是MAC地址,而对于MAC地址来说,设定的就是6字节,我们也可以通过ifconfig查看mac地址:

其中etho的ethre代表的就是MAC地址,由6字节组成,什么是MAC地址我们在第一节网路的时候就谈论了,MAC就相当于临时的地址

以太网帧的CRC是校验码,我们不谈,中间的数据部分是46字节到1500字节,其中如果中间的数据不够46字节,OS就会采取一点措施,比如给数据中加入一定数量的1或0,总之能够到达46字节就可以了,当然了,数据也是不能超过MTU的,这是上文我们已经介绍了的。

这里面的重点是类型,类型可以代表IP报文,ARP请求/应答,RARP请求/应答。那么有了类型,我们就可以通过类型判断它是需要向上交付的报文,还是用来请求MAC地址或应答MAC地址的。

那么具体的涉及到了ARP协议,我们先不谈。但是有了以上的理解,如何解包,如何分用我们也就清楚了。


ARP协议

ARP协议理解

在数据链路层中存在两个协议,一个是以太网帧协议,一个是ARP协议,而ARP协议是建立在IP层和以太网帧协议的中间,但是实际上ARP协议也是在数据链路层的,就像这样:

那么ARP协议是什么我们要清楚,ARP协议是用来交换双方的MAC地址的,相当于是进行一个IP地址到MAC地址的转换,那么RARP协议代表的就是reverse ARP,完成的工作是MAC地址到IP地址的转换。

那么问题来了,我们明明可以通过IP直接进行通信,为什么要在数据链路层新增加一个ARP协议和以太网帧协议呢?因为MAC地址是物理层和数据链路层通信的地址,它们是固定的硬件地址,而IP地址是动态分配的,所以要实现本地通信,仍然需要落实到MAC地址上。即便说可以通过IP地址直接通信,那么每层都要理解什么是IP地址,这无疑增加了各种成本,所以使用MAC地址,也是更好的实现了分层,还记得吗?我们在最开始介绍协议的时候,说到了一个非常重要的话题就是:协议的出现,可以让通信更好的解耦合

所以上述给出的定论是:ARP协议是用来进行IP地址到MAC地址的转换的,RARP协议是用来进行MAC地址到IP地址的转换的。当然了,大部分情况下都是使用的ARP协议,因为知道MAC地址但是不知道IP地址的情况还是比较少见的。

ARP协议字段

前面的14字节是以太网帧协议,后面的28字节是ARP协议。

对于硬件类型来说,一般都是1,表示以太网,对于协议类型来说,有多种取值,用来判读上层协议类型或者是ARP请求/应答,具体可以参考这个表格:

值(十六进制)协议类型描述
0x0800IPv4Internet Protocol v4(最常用)
0x86DDIPv6Internet Protocol v6(IPv6 不使用ARP,而使用 NDP)
0x0806ARP仅在以太网帧类型字段中使用
0x8035RARPReverse ARP(已过时)
0x809BAppleTalkApple公司网络协议
0x8137IPXNovell公司网络协议(已过时)

对于OP来说,分别有4个取值,1代表ARP请求,2代表ARP应答,3代表RARP请求,4代表RARP应答。对于硬件地址长度来说,实际上就是MAC地址的长度,对于协议地址长度,比如IPv4地址的长度。对于发送端以太网地址和目的以太网地址来说,都是6字节,实际上就是MAC地址,对于发送端IP地址和目的IP地址来说,实际上就是IP地址。

那么我们可以模拟一下如何确认MAC地址的:

假设存在多台主机,主机A第一次给主机E发送消息,那么它会构建一个ARP请求,其中包含了两个IP地址,两个MAC地址,一个MAC地址是A的,一个MAC地址是E的,但是并不知道是多少,然后主机A将这个报文发送到了子网中,那么在局域网中每个主机都是可以收报文的,那么假设主机B收到了,解析的时候一看IP地址主机B的,那么该报文在主机B的数据链路层就会丢弃该报文。其中主机E收到了,一看IP地址是自己的,所以就会再发送一个报文到子网中,其中同样包含IP地址A和E的,MAC地址A和E的,OP被设置为2,代表这是一个ARP应答,其他主机收到一看,自己没有发送ARP请求,所以会抛弃该报文,主机A收到并成功解析,而这个过程ARP报文中最重要的就是OP。

一看OP知道该报文的类型是什么,才决定该主机是直接抛弃还是开始解析。

那么现在有一个问题:我们明显发现以太网帧协议中有MAC地址,帧类型,我们发现,以太网帧协议中的三个字段和ARP协议中的字段似乎重复了?

字段名称出现位置是否重复ARP中是否必须存在原因解释
源 MAC 地址以太网帧头 + ARP协议中(Sender MAC)✅ 是✅ 必须ARP协议需要明确声明“谁在发送请求”,供接收方写入 ARP 缓存表,且链路层信息上层无法直接访问
目标 MAC 地址以太网帧头 + ARP协议中(Target MAC)✅ 是✅ 必须请求时目标MAC未知,帧头用广播地址,ARP中用全0,占位并供应答者填写;响应时明确告知目标MAC
协议类型(IPv4)以太网帧头(Type 字段)≈ ARP协议字段(Protocol Type)⚠️ 部分重复✅ 必须以太网Type字段告诉接收方“上层协议是ARP”,而ARP内部还需指明它解析的是哪种上层协议地址(如IPv4)

所以就像一物多用,在每一层都有自己的用处的,ARP缓存表我们可以通过arp -a查看:

当然了,从协议方面两个协议分别指明协议不同,以便更好的交付,加上最开始MAC地址不知道,所以需要明确MAC地址,就要使用ARP协议的MAC地址,加上还要缓存ARP缓存表,所以重复虽然是有,但是也是有用的。

交换机

我们清楚的知道一个子网就是一个碰撞域,所以在碰撞域类,如何避免碰撞是一个重要的话题,这里面就涉及到了碰撞算法,同学们可自行了解。

而如果发生了碰撞,就可能会导致两台主机休眠,谁先醒来谁就继续发数据,那么我们应该是经历过这么一个情况的:一大堆人在操场,会发现网络很卡,这就是因为在这个局域网内,数据碰撞的太多了,从而导致主机一直休眠。

那么如果一台主机往里面发送很多垃圾数据,让其他主机发生碰撞,就会导致其他主机休眠,自己的主机虽然发生了碰撞,但是它厚脸皮啊,它发的都是垃圾效率,所以可以疯狂重连,只要让其他主机退避就可以了,它只在乎发送垃圾数据。

那么为了解决一条物理信道有多台主机发送数据导致碰撞的问题,可以引入交换机:

在第一次交换机工作的时候是不知道左右两边的MAC地址的,但是在多台主机发送ARP之后,交换机内部会记录对应的MAC地址,这个时候就能真正分割对应碰撞域了。

对于数据链路层我们暂时说到这里,对于ARP的具体过程和ARP欺骗我们之后再谈~


感谢阅读!

相关文章:

  • 大模型应用开发“扫盲”——基于市场某款智能问数产品的技术架构进行解析与学习
  • 【图像大模型】Kolors:基于自监督学习的通用视觉色彩增强系统深度解析
  • C++ 读取英伟达显卡名称、架构及算力
  • Raft算法学习(1)博士论文大纲
  • Java并发进阶系列:jdk1.8的HashMap红黑树设计原理及其源代码深入解析(不含balanceDetection方法)
  • AI作曲革新:ACE-Step如何推动音乐创作走向大众
  • 直流无刷水泵方案之无感FOC控制---【其利天下技术】
  • 绿色免安装 批量重命名软件 标签管理,文件整理提升效率
  • Paillier加密方案的原理、实现与应用(vs)
  • 自定义geojson生成物体的样式
  • 前端流行框架Vue3教程:20. 插槽slot(2)
  • 数据库----软考中级软件设计师(自用学习笔记)
  • python训练营打卡第29天
  • 代码随想录算法训练营第60期第四十二天打卡
  • 第6天-Python操控摄像头:从入门到实战
  • 2156. 查找给定哈希值的子串
  • 8天Python从入门到精通【itheima】-20~22
  • 构建安全的Vue前后端分离架构:利用长Token与短Token实现单点登录(SSO)策略
  • 预训练模型:深度学习的通用特征引擎
  • 产业互联网+三融战略:重构企业增长密码
  • 三只松鼠创始人:要做全品类自有品牌零售商,不被嘲笑的梦想不值得被实现
  • 国家文物局副局长罗文利履新中国国家博物馆馆长
  • 11次战斗起飞应对外军挑衅,逼退外军直升机细节曝光
  • 董明珠孟羽童官宣,5月23日将合体直播
  • 百年前淮北乡村的风俗画卷——读郑重 《九十自述》
  • 中国华能:1-4月新能源装机突破1亿千瓦,利润总额再创新高