数据链路层_以太网

IP协议确定数据跨网络从主机A到主机B的路径,即IP协议解决了路径选择问题,但在这之前,必须先解决数据在一个子网内的传输的问题。跨网络的本质就是跨多个子网,只要一个子网内可以通信,那么便可以跨网络通信。
image.png

一.以太网

以太网并不是一种具体的网络,而是一种技术标准,既包含了数据链路层的内容,也包含了一些物理层的内容,例如:规定了网络的拓扑结构,访问控制方式,传输速率等。以太网是当前应用最为广泛局域网技术和以太网并列的有无线LAN,令牌环网等。

1.1 以太网帧格式

image.png
MAC地址:
一般每一张网卡都带有一个MAC地址,MAC地址用于一个子网内数据通信。局域网通信原理就是一个主机将发送的报文发送到当前局域网内的所有主机上,然后每台主机都能接收到该报文,但是当数据链路层解析到这个报文发送的目的地址(MAC)不是自己时,数据链路层就会将该报文丢弃。
6位目的地址,6位源地址:
这两个字段封装了接收方和发送方的MAC地址。
2位协议类型:决定向上交付给哪个协议

  • 0800:表示这个有效载荷是IP报文
  • 0806:表示这个有效载荷是ARP请求/应答报文
1.2 以太网通信原理

一台主机发送的报文在局域网内的每个主机都能接收,只是选择丢弃还是向上交付由数据链路层决定。一个局域网中任何时候都可能由多台主机同时发送消息,此时不可避免的就会有数据碰撞的发送,因此局域网也叫做碰撞域。如何避免这样的碰撞呢?以太网通过CSMA/CD来实现,最大程度保证任何时候,只有一个主机在发送数据。一个局域网中,主机越多,碰撞概率越高,因此可以引入一个交换机将一个局域网划分为多个碰撞域。

我们可以将局域网看作一个临界资源,为了保证同一时刻只有一个主机访问这个临界资源,不同的局域网有不同的策略。比如:以太网:CSMA/CD、令牌环网:拿到令牌才能发消息

在发送数据时,你只知道对方的IP地址和端口号,但是要封装以太网帧,必须要知道对方的MAC地址。在数据链路层中,可以通过ARP协议根据IP地址获取对方的MAC地址。

1.3 ARP协议:地址解析协议

ARP协议格式:
image.png
注意到源MAC地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。硬件类型指链路层网络类型,1为以太网;协议类型指要转换的地址类型,0x0800为IP地址;硬件地址长度对于以太网地址为6字节;协议地址长度对于和IP地址为4字节;op字段为1表示ARP请求,op字段为2表示ARP应答 。由于ARP请求报文不知道对端的MAC地址,因此在封装时,目的MAC地址填全F
ARP协议工作流程:
假设每台主机的MAC地址为MACX,IP地址为IPX。当一台主机不知道对端MAC地址时,会封装ARP请求报文,发送给当前局域网内所有主机,接收到报文的主机会识别目的MAC地址,如果为全F,那么会向上交付到ARP协议中,然后识别ARP协议中的目的IP地址是否为自己,如果是的话,会将自己主机的MAC地址封装到ARP应答报文中交付给对方。这样一台主机就可以通过ARP请求与应答的方式根据对方IP地址获取到对方MAC地址。自此,在局域网中就可以通过MAC地址进行数据包的转发。
image.png
根据ARP请求与应答获取的IP地址与MAC地址的映射关系会暂时存储在一个主机中,通过arp 可以查看这个映射关系。通过ping命令可以提前构建好当前局域网内所有主机的IP地址和MAC地址的映射关系。

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

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

相关文章

【算法杂货铺】二分算法

目录 🌈前言🌈 📁 朴素二分查找 📂 朴素二分模板 📁 查找区间端点处 细节(重要) 📂 区间左端点处模板 📂 区间右端点处模板 📁 习题 1. 35. 搜索插入位…

Spring Cloud Gateway针对指定接口做响应超时时间限制

背景:我做的这个服务中存在要对大数据量做自定义统计的接口和大文件上传接口,接口响应用时会超过gateWay配置的全局用时,如果调整网关全局的超时时间和服务的全局超时时间是不合理的,故此想能否单独针对某个接口进行细粒度超时限制…

CXL-Enabled Enhanced Memory Functions——论文阅读

IEEE Micro 2023 Paper CXL论文阅读笔记整理 问题 计算快速链路(CXL)协议是系统社区的一个重要里程碑。CXL提供了标准化的缓存一致性内存协议,可用于将设备和内存连接到系统,同时保持与主机处理器的内存一致性。CXL使加速器&…

【Hadoop】Hadoop概述与核心组件

目录 Hadoop概述Hadoop 发展历史Hadoop 三大发行版本1.Apache Hadoop(常用)2.Cloudera Hadoop3.Hortonworks Hadoop优势优势总结——4高(高可靠、高扩展、高效、高容错) Hadoop组成1.HDFS管理者:NameNode(n…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:GridItem)

网格容器中单项内容容器。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。仅支持作为Grid组件的子组件使用。 子组件 可以包含单个子组件。 接口 GridItem GridItem(value?: GridItemOptions)…

分布式系统常见负载均衡实现模式

分布式系统常见负载均衡实现模式 1. 4层负载均衡1.1. 负载均衡的常见需求1.2. 负载均衡的实现模式1.2.1 DR模式1.2.2 TUN模式1.2.3 NAT模式1.2.4 FULLNAT模式1.2.5 4种模式的差异 1.3. 负载均衡的均衡算法1.3.1 静态负载均衡1.3.2 轮询法1.3.3 加权循环法1.3.4 IP 哈希法1.3.5 …

FPGA高端项目:FPGA基于GS2971+GS2972架构的SDI视频收发+OSD动态字符叠加,提供1套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案的SDI接收发送本方案的SDI接收图像缩放应用本方案的SDI接收纯verilog图像缩放纯verilog多路视频拼接应用本方案的SDI接收HLS图像缩放HLS多路视频拼接应用本方案的SDI接收HLS多路视频融合叠加应用本方案的S…

C++提高笔记(四)---STL容器(stack、queue、list)

1、stack容器(栈) 1.1 栈stack基本概念 概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口 栈中只有顶端的元素才可以被外界调用,因此栈不允许有遍历行…

Linux——动静态库的制作及使用与动态库原理

目录 一、静态库 1.静态库的制作 2.静态库的使用 加载静态库方法一:安装头文件与库文件 加载静态库方法二:指定文件目录 二、动态库 1.动态库的制作 2.动态库的使用 方法一:安装到系统中 方法二:软链接 方法三&…

Light Random Sprays Retinex 传统的图像增强算法LRSR

文章目录 前言1、Light Random Sprays Retinex 概况2、Light Random Sprays Retinex 具体实现2.1、噪声去除2.2、亮度调整2.3、插值技术 3、Light Random Sprays Retinex源码4、Light Random Sprays Retinex效果及结论 前言 Light Random Sprays Retinex, 即“光随机喷雾Retine…

禁止ie自动跳转edge

因为微软对ie已经彻底停止维护了,对于没有升级系统的用户来说,会自动更新edge然后将ie给禁止使用。下面方法有效的解决windows10下,禁止ie自动跳转edge。 方法一:对于2023年10月份前的更新可用 打开控制面板,点击网络…

全面解析 Axios 请求库的基本使用方法

Axios 是一个流行的基于 Promise 的 HTTP 请求库,用于在浏览器和 Node.js 中进行 HTTP 请求。它提供了简单易用的 API,可以发送各种类型的请求(如 GET、POST、PUT、DELETE等),并处理响应数据,Axios 在前端工…