前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【计算机网络】详解数据链路层数据帧&Mac地址&ARP协议

【计算机网络】详解数据链路层数据帧&Mac地址&ARP协议

作者头像
用户10923276
发布于 2024-10-17 00:29:18
发布于 2024-10-17 00:29:18
4380
举报

一、以太网帧

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

源地址和目的地址是指网卡的硬件地址(也叫 MAC 地址) ,长度是48位,是在网卡出厂时固化的,帧协议类型字段有三种值,分别对应 IP、ARP、RARP;帧末尾是 CRC 校验码

二、Mac地址

MAC 地址用来识别数据链路层中相连的节点;长度为48位,及6个字节。一般用16进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19)。在网卡出厂时就确定了,不能修改mac 地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址,可能会冲突;也有些网卡支持用户配置 mac 地址)。 IP 地址描述的是路途总体的起点和终点,MAC 地址描述的是路途上的每一个区间的起点和终点IP地址的主要作用是用于网络层寻址,它允许数据包在互联网上从一个网络传输到另一个网络。它是全球唯一的,能够在全球范围内进行通信。MAC地址的主要作用是用于链路层寻址,即在同一网络内部进行通信。它是局域网内设备的唯一标识,确保数据包能够准确地发送到目标设备。

 MAC地址的前24位(即前三个字节)通常代表组织唯一标识符(OUI),它是由IEEE(电气和电子工程师协会)分配给制造商的。OUI用于标识生产网络设备的制造商。MAC地址的后24位(即后三个字节)是由制造商为其生产的每个设备分配的,以确保每个设备的MAC地址在全球范围内都是唯一的

三、ARP协议

ARP不是一个单纯的数据链路层的协议,而是一个介于数据链路层和网络层之间的协议。ARP 协议建立了主机IP地址和MAC地址的映射关系。在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址;数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符则直接丢弃。因此在通讯前必须获得目的主机的硬件地址。

3.1、ARP协议的工作流程

下面举一个例子:源主机发出 ARP 请求,询问“IP 地址是 192.168.0.1 的主机的硬件地址是多少”,并将这个请求广播到本地网段(以太网帧首部的硬件地址填 FF:FF:FF:FF:FF:FF 表示广播);目的主机接收到广播的 ARP 请求,发现其中的IP地址与本机相符,则发送一个 ARP 应答数据包给源主机,将自己的硬件地址填写在应答包中;每台主机都维护一个ARP缓存表,可以用arp -a命令查看。缓存表中的表项有过期时间(一般为 20 分钟),如果 20 分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址。arp先广播,再单发

3.2、ARP数据报格式

注意到源 MAC 地址、目的MAC地址在以太网首部和ARP请求中各出现一次,对于链路层为以太网的情况是多余的,但如果链路层是其它类型的网络则有可能是必要的。以太网帧需要源MAC地址和目的MAC地址来确保数据包能够正确地被发送和接收。这两个地址在以太网帧的头部被明确指定。ARP报文本身也需要包含源主机的MAC地址和目的主机的MAC地址(或未知时的全F填充)。这是为了在网络层建立IP地址和MAC地址的映射关系。由于ARP报文通常被封装在以太网帧中发送,因此源MAC地址和目的MAC地址在以太网帧的头部和ARP报文的相应字段中都会出现。这种设计既满足了链路层的需求,也符合ARP协议的工作原理。

  • 硬件类型指链路层网络类型,1为以太网。
  • 协议类型指要转换的地址类型,0x0800为IP地址。
  • 硬件地址长度对于以太网地址为6字节。
  • 协议地址长度对于和IP地址为4字节。
  • op 字段为1表示ARP请求,op字段为2表示ARP应答。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
初识Linux · 数据链路层
前文我们通过OSI模型,一直到TCP/IP四层模型,经过了三篇文章左右的功夫,我们把网络层介绍完毕,主要还是介绍的IP协议的iphdr,以及内网公网的概念,最后是一个IP分片。那么经过一系列介绍,我们最终也到了TCP/IP四层模型的最后一层——数据链路层。
_lazy
2025/05/21
1010
初识Linux · 数据链路层
【Linux网络编程】数据链路层 | MAC帧 | ARP协议
数据链路实现某一区间(一条)内的通信,而IP实现直至最终目标地址的通信(点对点)。
南桥
2025/01/14
3140
【Linux网络编程】数据链路层 | MAC帧 | ARP协议
网络原理(五)——数据链路层
MTU相当于发快递时对包裹尺寸的限制. 这个限制是不同的数据链路对应的物理层, 产生的限制.
海盗船长
2020/08/27
1.4K0
计算机网络-数据链路层
透明传输:指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
用户9615083
2022/12/30
9600
计算机网络-数据链路层
常用的数据链路层协议_数据链路层和网络层
虽然网络中各个局域网所采用的通信技术可能的不同的,但是IP屏蔽了底层网络的差异,对于网络通信双方的IP层及其往上的协议来说,它们并不需要关心底层具体使用的是哪种局域网技术。
全栈程序员站长
2022/11/01
9460
数据链路层重点总结
又是新的一年,展望2023年,博主给大家带来了网络中数据链路层的重点总结,附上博主本人的实例,帮助大家更好的理解数据是怎么在网络中传输的。
VIBE
2023/01/04
5030
数据链路层重点总结
【计算机网络】数据链路层
假设我们要将数据从主机A推送到主机B,根据我们之前的理解,是可以通过网络层进行路由的,这就是网络层在做决策,所以在网络层就要先决策该报文是要转发给和我处于同一网段的其它主机,还是交到下一跳,决策了之后再把报文向下交付,最后把报文交到路由器中。
YoungMLet
2024/03/30
1970
【计算机网络】数据链路层
彻底搞懂系列之:ARP协议
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;
网络工程师笔记
2021/05/17
3.6K0
彻底搞懂系列之:ARP协议
【网络协议】数据链路层[通俗易懂]
这里的ARP协议主要用来将32bit的IP地址解析为相应48bit(以太网中)的MAC地址(硬件地址)。而RARP协议则是将硬件地址解析为IP地址,这两个协议位于网络层,和IP数据报一样,都具有各自的以太网数据帧类型(即传入到以太网中要加上相应的MAC帧)。
全栈程序员站长
2022/07/07
6140
【网络协议】数据链路层[通俗易懂]
【计算机网络三】一篇文章详解TCP/IP四层协议簇
DNS ,即 Domain Name System ,域名系统。 DNS 是一整套从域名映射到 IP 的系统。
小皮侠
2024/10/29
5960
【计算机网络三】一篇文章详解TCP/IP四层协议簇
【计算机网络】数据链路层深度解析
指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。 帧头和帧尾中包含有重要的控制信息,其作用·之一是帧定界 透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
洁洁
2024/09/18
1770
18张图详解ARP协议所有细节(附流程),果断收藏
只要确定了 IP 地址后,就能够向这个 IP 地址所在的主机发送数据报。但是再往深了想,IP 地址只是标识网络层的地址,那么在网络层下方数据链路层是不是也有一个地址能够告诉对方主机自己的地址呢?是的,这个地址就是MAC 地址。
网络工程师笔记
2022/02/28
15.8K0
18张图详解ARP协议所有细节(附流程),果断收藏
计算机网络之数据链路层1 链路层概述4 交换局域网5 交换机(switch)
功能:保证数据正确的顺序,无措和完整 1 链路层概述 数据链路层使用的信道主要有以下两种类型 点对点信道 使用一对一的点对点通信方式 广播信道 使用一对多的广播通信方式,因此过程比较复杂。广播信
JavaEdge
2018/05/16
2K0
【计网】从零开始认识arp协议
传输层协议提供一种策略保证通信的稳定性;网络层协议提供一种能力保证可以进行通信。数据链路层是用于两个设备(同一种数据链路节点)之间进行传递。
叫我龙翔
2024/10/30
3580
【计网】从零开始认识arp协议
计算机网络(三)—— 数据链路层
为了使数据链路层能更好地适应多种局域网标准,802委员会就将局域网的数据链路层拆成两个子层
繁依Fanyi
2023/05/07
1.5K0
计算机网络(三)—— 数据链路层
TCP/IP第二层--数据链路层
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。
黄规速
2022/04/14
1.9K0
TCP/IP第二层--数据链路层
【Linux网络】网络层IP协议,数据链路层:以太网、ARP协议
但是随着互联网的飞速发展,这种划分方案的局限性很快显现出来,A 类地址很容易浪费,于是提出了新的划分方案:CIDR(Classless Interdomain Routing)
_小羊_
2025/03/02
1740
【Linux网络】网络层IP协议,数据链路层:以太网、ARP协议
【在Linux世界中追寻伟大的One Piece】数据链路层
数据链路层是OSI模型的第二层,它负责在相邻节点之间的物理链路上实现可靠的数据传输。数据链路层的主要功能包括帧同步、差错检测和纠正、流量控制以及链路管理。它通过将网络层传递的数据包封装成帧,并添加必要的控制信息(如源地址和目标地址)来实现这些功能。数据链路层还负责在物理层提供的服务基础上向网络层提供服务,确保数据能够可靠地从一个网络实体传输到另一个网络实体。
枫叶丹
2024/09/13
1420
【在Linux世界中追寻伟大的One Piece】数据链路层
ARP协议:网络世界的临门一脚
各位同学肯定见过关于网络的面试题,什么TCP协议和UDP的区别啦,IP协议工作在哪层啊等等,这都是网络中定义的各种协议。这些标准化的协议就是网络分层模型标准化的核心部分。要想搞懂网络,必须搞明白其中的几种主要的网络协议。
古时的风筝
2023/03/23
4670
ARP协议:网络世界的临门一脚
网络安全——数据链路层安全协议
通信的每一层中都有自己独特的安全问题,网络安全问题应该在多个协议层,针对不同的弱点解决。就安全而言,数据链路层(第二协议层)的通信连接是较为薄弱的环节。
网络豆
2023/10/15
5340
网络安全——数据链路层安全协议
推荐阅读
相关推荐
初识Linux · 数据链路层
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档