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

一、以太网帧

"以太网" 不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了一些物理层的内容 。例如:规定了网络拓扑结构,访问控制方式,传输速率等;例如以太网中的网线必须使用双绞线,传输速率有 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应答。
相关推荐
群联云防护小杜23 分钟前
服务器压力测试怎么做
运维·服务器·网络协议·tcp/ip·阿里云·压力测试
等一场春雨28 分钟前
403 Forbidden HTTP 响应状态码
网络·网络协议·http
机器视觉知识推荐、就业指导1 小时前
C++设计模式:组合模式(公司架构案例)
c++·后端·设计模式·组合模式
水w1 小时前
【项目实践】SpringBoot Nacos配置管理 map数据
java·服务器·开发语言·spring boot·nacos
@菜鸟进阶记@1 小时前
SpringBoot核心:自动配置
java·spring boot·后端
汤姆yu1 小时前
基于springboot的健身俱乐部网站系统
java·spring boot·后端·健身房·俱乐部
火龙kess1 小时前
使用FreeNAS软件部署ISCSI的SAN架构存储(IP-SAN)练习题
linux·运维·服务器·网络·windows·tcp/ip·架构
huapiaoy1 小时前
JavaSE---String(含一些源码)
java·linux·前端
rkmhr_sef1 小时前
frp内网穿透云服务器。云服务器映射多个家庭局域网内网端口。家庭Windows主机内网运行多个web程序
服务器·前端·windows
麦子爱种地1 小时前
前端学习DAY26(华为平板页面)
服务器·前端·javascript