数据链路层认识以太网

news2024/11/14 16:08:28

我们前面学习到的传输层,网络层,传输层是保证数据可靠传输。而网络层是实现在复杂的网络环境中确定一个合适的路径。我们接下来所说的数据链路层其实就是用于两个设备(同一种数据链路节点)之间进行传递。其实也就是如数次的局域网中设备之间的转发过程。

认识以太网 

"以太网" 不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了一些物理层的内容。以太网是当前应用最广泛的局域网技术;和以太网并列的还有令牌环网,无线LAN等;


认识以太网帧格式

以太网帧(也称为Mac帧)是数据链路层的一种协议数据单元,它包含了帧头、数据部分和帧尾。在以太网帧的帧头中,有两个关键的地址字段:目的地址和源地址,这两个字段都是48位的MAC地址。此外,帧头还包含了一个类型字段,用于指示数据部分所使用的协议类型(如IP、ARP等)。


认识Mac地址

  • MAC地址用来识别数据链路层中相连的节点;
  • 长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
  • 在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址)

 


对比Mac地址和IP地址

ip地址是网络层的一个报头字段数据,而Mac地址是数据链路层的报头数据。通过开篇我们知道网络层是确定网络数据的传输路径的也就是起始点和终止点以及途径的各个点。而数据链路层是实现各个局域网间的设备数据传递的,也就是从当前到下一跳的的位置。

所以说明数据在网络传输的过程中源、目标Mac地址是始终发生改变的,而源IP地址可能会随着NAT技术而发生改变,但是目标IP地址是不变的也就是根据IP进行路径选择,根据Mac进行吓一跳发送。

 


局域网如何进行通信

当我们局域网下的一个主机如果想要发送数据给另一个主机时。

首先会进行判断,用当前主机IP按位与子网掩码得到网络号,然后用目标IP按位与子网掩码得到网络号。然后将两个网络号进行对比。如果网络号相同的话则表明两主机是在同一局域网下;如果不相等的话就会将报文数据转发到路由器当中。

而且还有一点,主机在局域网间的通信时会将数据发送给同局域网下的所以主机(包括自己这台主机器),只不过所有收到Mac帧的主机会将报文进行解包,查看报头的目的Mac地址是否等于当前自己主机的Mac地址,如果相等则会接收数据,否则就会直接在数据链路层丢弃。而接下来会根据报头类型字段来判断是IP报文还是其他报文,从而将有效载荷交给上一层网络层。


局域网数据碰撞

局域网中,任何时刻都只允许一台主机向局域网中发送数据,如果同时发送就会发生局域网数据碰撞的问题。而我们的局域网可以看作是碰撞域。

碰撞检测与处理:因为我们局域网中的主句发送数据时,自己同样也会收到,所以如果当前主机收到的数据和发送的数据对比以后不一致的话就证明发生了数据碰撞。所以接下来发生碰撞的主机会进行休眠一段时间(不影响其他主机的正常数据发送),然后过一定时间再次发送数据(重传)。


认识交换机

交换机是运用在局域网当中的,而且交换机主要是有效的降低了局域网中的数据碰撞概率,功能就是划分局域网的碰撞域。

也就是起初局域网中的主机在发送数据时,交换机同样也会收到,各个发送数据的主机,从而得到并保存各个主句的Mac地址。所以也就相当于可以知道局域网中哪些主机是在交换机的左侧,哪些主机是在交换机的右侧。那么交换机左侧的主机在进行数据通信时,也就不会传到交换机的右侧;同理交换机的右侧主机进行数据通信时也不会传到交换机的左侧中。所以此时交换机的左右两侧的主机们各自就可以同时进行通信且不造成数据碰撞。


ARP协议(地址解析协议)

我们在进行局域网通信时有一个问题:发送端是如何得到接收端的Mac地址的????

我们知道发送端是知道接收端的IP地址和端口号的,而当发送端的数据封装到数据链路层时,是需要封装Mac帧的,也就需要知道局域网中接收端主机的Mac地址。


ARP协议的作用

ARP不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网络层之间的协议。可以说ARP是在Mac协议之上的数据链路层协议。ARP协议是一个在局域网(LAN)中用于将网络层地址(如IPv4地址)解析为链路层地址(如以太网MAC地址)的网络协议。其主要作用在于实现IP地址到物理地址(MAC地址)的映射,从而确保数据能够在局域网内正确地从一台设备传输到另一台设备。


ARP协议工作流程

 局域网中主机通信时,发送数据的主机会重新构建一个新的封装ARP协议的Mac帧(属于广播信息,目标Mac地址是全F)发送的数据含义是:询问该局域网下的所有主机,谁的IP是我要发送的目标IP,请返回你的Mac地址给我。一旦得到目标主机的Mac地址以后就会将结果缓存一定时间。


ARP数据报的格式

 

 

 注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其它类型如的网络则有可能是必要的。(这里的以太网首部的帧类型应该填的就是0806,以太网首部的目的地址同样也是全F)

ARP协议字段认识:

  • 硬件类型指链路层网络类型,1为以太网;
  • 协议类型指要转换的地址类型,0x0800为IP地址;
  • 硬件地址长度对于以太网地址为6字节;
  • 协议地址长度对于和IP地址为4字节;
  • op字段为1表示ARP请求,op字段为2表示ARP应答;
  • 如果是ARP请求,则目的以太网地址就是全F

 


ARP请求与应答

  1. ARP的请求会先在数据链路层封装ARP协议字段,也就是上面的内容,然后接着封装Mac帧,所以如果两台主机没建立联系之前(未知mac地址),发送端会先发送ARP协议请求(属于广播信息),因此该局域网中的所有主机都会收到想同的ARP请求,会先进行解包Mac帧协议(因为Mac帧协议的目的Mac地址是全F),然后将解包之后的报文交给上一层ARP层,在ARP层继续解包,首先观察op字段,判断是请求还是应答,再看目的IP地址,当前局域网下的主机将解包的目的IP与自己的IP地址进行比对,比对成功则响应,比对失败则丢弃。
  2. ARP应答同样是先在相同在ARP层将目的以太网地址填充进去,然后将其他字段一个个填充并且op字段改成2,交给下一层的Mac帧,然后填充字段并发送出去(依旧是局域网下的每个主机都能收到,但是在Mac帧这一层就能够判断是否要进行丢弃)。
  3. 最后收到应答以后虽然可以在Mac层拿到Mac地址,但是依旧要向上传递到ARP层,其目的就是为了得到是op字段,判断是请求还是应答。

所以说对于非目标主机收到ARP的请求是在ARP层丢弃,收到ARP应答是在Mac层丢弃的。

如果同时收到很多的ARP应答时,会将最新收到的ARP记录缓存下了。

 


RARP协议

RARP协议,全称Reverse Address Resolution Protocol(反向地址解析协议),是一种在局域网内将物理地址(如MAC地址)转换为IP地址的协议。


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

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

相关文章

Pytest-@pytest.fixture夹具篇(一)

一、定义 在Python的pytest测试框架中,pytest.fixture是一个(不是唯一)装饰器,用于定义一个测试夹具。 二、简单实例 使用参数autouserTrue pytest.fixture(autouseTrue) def my_fixture():print("Setup: 准备测试环境&q…

华为软件测试笔试真题,抓紧收藏不然就看不到了

软件测试工程师笔试题目 一.填空 1、 系统测试使用( C )技术, 主要测试被测应用的高级互操作性需求, 而无需考虑被测试应用的内部结构。 A、 单元测试 B、 集成测试 C、 黑盒测试 D、白盒测试 2、单元测试主要的测试技术不包括&#xff08…

11. GIS三维建模工程师岗位职责、技术要求和常见面试题

本系列文章目录: 1. GIS开发工程师岗位职责、技术要求和常见面试题 2. GIS数据工程师岗位职责、技术要求和常见面试题 3. GIS后端工程师岗位职责、技术要求和常见面试题 4. GIS前端工程师岗位职责、技术要求和常见面试题 5. GIS工程师岗位职责、技术要求和常见面试…

CACTER直播预告:畅联海外,高效通邮——解锁海外通邮新路径

在全球化的今天,企业通信的无障碍至关重要。然而,随着企业业务的不断拓展,海外通信的挑战也随之增加。跨国邮件传输的延迟、丢件、甚至安全问题,都可能成为企业国际化道路上的绊脚石。如何确保邮件在全球范围内的高效、安全传输&a…

设计模式1:C#开发中使用创建型的工厂模式和行为型的策略模式

一、接口设计的好处 三大好处:解耦、可复用、可扩展。 二、简单工厂模式 【三要素】能创建具体产品的工厂、抽象产品(接口)、具体产品 【基本用法】字符串>创建对象>调用其方法 // 产品接口 public interface IProduct {void Opera…

【计组易混淆概念梳理助记】机器字长、指令字长、存储字长、数据通路宽度...各种字长大杂炖,应该如何区分?谁又应该等于谁?

苏泽 “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家 所有学过计组的人几乎都有一个烦恼 就是里面的概念无法记住 经典“转头忘” 那究竟是为什么?很显然 因为名词之间没形成结构化 点与点之间无法建立联系 在…

学AI绘画必知!文生图与图生图的基本认知

​ 在AI绘画的学习与使用中,无论是入门小白还是进阶高手,都绕不开两个核心概念:文生图和图生图。 这是所有AI绘画工具的根本操作方法。掌握这两者的基本原理,你便能轻松驾驭大多数AI工具,无论是MidJourney、Stable Dif…

创建makefile来运行其他目录下的makefile

上述makefile运行后,会报错产生结果: 需要一个伪目标all。

街机 SNK NeoGeo 中英文名字与驱动对照表

Part.I 简介 本文列举了街机 NeoGeo 中游戏的中英文名字与其驱动的对照,以帮助诸位更快地找到自己想玩的游戏。 注意:汉化版的街机模拟器 Kawaks 中游戏的中文名字是根据英文直译的,并不是习惯性的中文叫法。比如『三国志』英文名为『Warrio…

【案例67】Npart批量启动服务卡顿严重分析过程

问题现象 通过Npart启动NC服务,发现只启动一个,大概3min左右即可启动成功。但是批量启动服务需要几十分钟才可以把服务启动成功,启动卡在获取“wenjian”图标处。 绕过Npart直接写脚本并行启动相关服务,发现也需要30min 问题分析…

嵌入式OpenHarmony系统的一些特点

大家好,今天主要给大家分享一下,如何使用OpenHarmony,它的一些基本特点。 第一:为5G通讯做准备 OpenHarmony诞生与5G时代,5G不仅可以实现人与人,以及人与物,物与物之间的高速通讯,软件处理速度更快,可以操作的硬件也更多,可以说OpenHarmony是新一代万物互联的操作系…

【2024数模国赛赛题思路公开】国赛D题第二套思路丨附可运行代码丨无偿自提

2024年国赛D题解题第二套思路 【问题分析】 D题为投弹命中概率分析问题,有三种情况可以实现成功命中,并且可以发现这三种情况是互不重叠的,故实际投弹命中率可以表示为三种情况概率的累加,通过最后分析概率函数对投弹落点平面坐…

微信小程序rpx和px关系

微信小程序中使用了自定义的尺寸单位 rpx(responsive pixel),这是一种相对单位,用于适配不同屏幕尺寸的设备。rpx 的设计目的是为了让开发者能够更容易地写出跨屏幕尺寸的应用,而不需要为每个屏幕尺寸单独写一套样式。…

为什么这么多物联网项目都失败了?

甚至超过 50% 的智慧布署,在概念阶段停滞不前,这让一些真正有前途的物联网项目都失败了。 这些严峻的数字可能令人费解,尤其是因为它们仍然没有阻止行业参与物联网技术,因为投资者越来越意识到,物联网提供了最激烈的竞…

Origin2024中如何添加误差带?直观查看数据的变化范围

误差线是通常用于统计或科学绘图中,本期给大家分享Origin中绘制带填充区的误差带图,可以直观显示数据的变化范围,填充区域也可以增加视觉效果和美观性 操作步骤: 1、打开Origin2024软件,然后在Book1中输入如下示例数…

[PS]Photoshop 2024下载安装教程附软件包百度网盘分享链接地址

Photoshop 2024下载安装教程: Photoshop是一款修图软件,可以是目前位置最全的修图软件。是图片设计师必备的技能。 如何安装PS? 可以通过网盘链接获取:https://pan.baidu.com/s/1er557ksNcOOqj7zfpi5Lhg?pwdrzo0 提取码:rzo0…

Vue3.0项目实战(三)——大事件管理系统首页 layout 架子与文章分类的实现

目录 1. 首页 layout 架子 [element-plus 菜单] 1.1 基本架子拆解 2. 登录访问拦截 2.1 需求 2.2 vue3 和 vue2 中的 Vue-Router 区别 3. 用户基本信息获取&渲染 4. 退出功能 [element-plus 确认框] 5. 文章分类页面 - [element-plus 表格] 5.1 基本架子 - PageCo…

《佛脚闪卡watch》——Apple Watch上的高效学习助手

在快节奏的生活环境中,时间管理成为了学习成功的关键因素之一。**《佛脚闪卡watch》**是一款专为Apple Watch设计的应用程序,旨在帮助学生和自学者更高效地利用碎片时间进行学习。无论是等待公交、散步还是短暂休息,您都可以随时随地进行复习…

除谷歌翻译外,好用的翻译工具推荐!

翻译工具的存在方便了我们阅读跨语种的文件,跨文化交流变得前所未有的便捷。今天,就让我们一起来探索包括谷歌翻译的几款深受用户喜爱的翻译工具吧! 福昕在线翻译 直达链接: https://fanyi.pdf365.cn/ 福昕在线翻译是一款专注…

一、VSCode安装IDF5.3

目录 一、VSCode安装1、下载/安装 VSCode2、VSCode 的设置 二、VSCode安装IDF插件1、安装 IDF2、切换 IDF 版本3、从本地创建例程4、从服务器创建例程 一、VSCode安装 1、下载/安装 VSCode 下载地址:https://code.visualstudio.com/ 点击下载按钮。 下载安装 根据…