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

若瑜9个月前行业资讯332

一、以太网帧

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

image.png

         源地址和目的地址是指网卡的硬件地址(也叫 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地址在全球范围内都是唯一的。

image.png

三、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数据报格式

image.png

        注意到源 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应答。

————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。                     

原文链接:https://blog.csdn.net/m0_74265792/article/details/142752666



本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!  


云掣基于多年在运维领域的丰富时间经验,编写了《云运维服务白皮书》,欢迎大家互相交流学习:

《云运维服务白皮书》下载地址:https://fs80.cn/v2kbbq

想了解更多大数据运维托管服务、数据库运维托管服务、应用系统运维托管服务的的客户,欢迎点击云掣官网沟通咨询:https://yunche.pro/?t=shequ


相关文章

Spring AMQP与RabbitMQ深度整合指南:从基础到高级应用(1)

Spring AMQP与RabbitMQ深度整合指南:从基础到高级应用(1)

一、初识 MQ1.1 同步调用:我们观察下,下面这个余额支付功能的流程图:如果我们采用的是基于 OpenFeign 的同步调用,也就是说业务执行流程是这样的:支付服务需要先调用用户服务完成余额扣减。然...

读SRE Google运维解密有感(一)

读SRE Google运维解密有感(一)

前言这几天打算利用碎片时间读了一下"SRE Google运维解密"这本书,目前读了前几章,感觉收获颇多,结合自己的工作经历和书中的要点,写一些感悟和思考SRE有关SRE我就不多介绍...

Docker 基础与实战指南(1)

Docker 基础与实战指南(1)

Docker 可以使项目的部署变得简单,大大减少了运维工作量。即便你对 Linux 不熟悉,你也能轻松部署各种常见软件、Java项目。linux 上安装 docker 这里就不进行讲解,我使用的 li...

Linux 环境下Docker部署项目(七)

Linux 环境下Docker部署项目(七)

一、前言本文是讲述的是怎么样定义Dockerfile,然后在Docker中部署springboot项目。由于只是为了学习docker容器部署。因此本文基于的镜像只是基于单纯的java 8(由于官网弃用...

网络】DNS协议、ICMP协议

网络】DNS协议、ICMP协议

1.DNS协议DNS(Domain Name System,域名系统)协议,是一个用来将域名转化为IP地址的应用层协议。1.1DNS背景TCP/IP中通过IP地址和端口号的方式,来确定网络中一个主机上...

【网络】NAT、代理服务、内网穿透(1)

【网络】NAT、代理服务、内网穿透(1)

1.NAT技术NAT(Network Address Translation,网络地址转换)技术,是解决IP地址不足的主要手段,并且能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。1.1...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。