引言

链路是指从一个结点到相邻结点的一段物理线路。数据链路是在链路的基础上增加了一些必要的硬件和软件。这些硬件包括网络适配器,而软件则包括协议的实现。在网络中,主机、路由器等设备都必须实现数据链路层。

在局域网中,主机、交换机等网络设备都必须实现数据链路层,以便实现数据的可靠传输和交换。

从层次上来看,数据在网络中的流动可以被划分为不同的层次,其中数据链路层是其中的一层。数据链路层位于网络协议栈的较低层,负责将数据包封装为帧,并通过物理介质进行传输。

仅从数据链路层的角度来观察,数据帧的流动可以被定义为在网络中不同节点之间传输的数据单元。

主机H1到主机H2所经过的网络可能涉及多种不同类型的链路层,而不同的链路层可能采用各自不同的数据链路层协议。因此,在数据在网络中流动的过程中,数据链路层起到了至关重要的作用,它负责管理和控制数据在不同链路层之间的传输,并确保数据的可靠性、完整性和有序性。

MAC地址和ARP协议

MAC 地址

MAC地址的全称是媒体访问控制地址(Media Access Control Address),它是网络上以太网或网络适配器的唯一标识符。MAC地址可以区分不同的网络接口,并且被广泛应用于各种网络技术,特别是大多数IEEE 802网络。

MAC地址也被称为物理地址、硬件地址和老化地址。

MAC地址主要用于识别数据链路中互联的节点。如下图所示

MAC 地址是一个长度为 48 位的标识符,通常在使用网络适配器(网卡)时会被存储在只读存储器(ROM)中。因此,每个网卡的 MAC 地址都是独一无二的。MAC 地址的结构如下:

在MAC地址中,3-24位表示制造商识别码,每个网络接口卡制造商都有一个唯一的识别数字。25-48位用于制造商内部识别每个网卡。因此,可以确保全球没有相同的MAC地址的网卡。

尽管如此,MAC地址也有一些例外情况,即可能会出现重复的情况。然而,只要两个MAC地址属于不同的数据链路层,就不会出现问题。

在Windows电脑上,当你查看ipconfig时,你会看到每个网络接口都有一个对应的MAC物理地址。这是因为现代计算机通常具备多个网络接口,每个网络接口都对应一个MAC物理地址。

例如,你的Windows电脑可能同时连接有以太网、Wi-Fi和蓝牙等多个网络接口。每个网络接口都有自己的MAC物理地址,用于标识该接口所属的设备。

如果你的计算机有多个网络接口(如以太网和Wi-Fi接口),你可能需要查看对应接口的MAC地址。确保你查看的是你感兴趣的网络接口的MAC地址。

ARP 是什么

ARP 协议的全称是Address Resolution Protocol(地址解析协议),它是一种用于实现从IP地址到MAC地址的映射的协议。其作用是通过查询目标IP对应的MAC地址来定位数据分包的接收主机。在IPv4中,ARP协议显得尤为重要。

需要注意的是,ARP仅用于IPv4协议,而IPv6协议使用的是邻居发现协议(Neighbor Discovery Protocol,简称NDP),它被纳入了ICMPv6中。

简而言之,ARP是一种解决地址问题的协议,以IP地址为线索,定位下一个应该接收数据分包的主机MAC地址。如果目标主机不在同一个链路上,那么会查找下一跳路由器的MAC地址。

ARP 的⼯作机制

让我们来探讨一下 Address Resolution Protocol (ARP) 的工作机制。假设主机 A 和主机 B 位于同一链路上,无需经过路由器转发。当主机 A 想要向主机 B 发送一个 IP 分组时,主机 A 的 IP 地址是 192.168.1.2,主机 B 的 IP 地址是 192.168.1.3。此时,它们都不知道对方的 MAC 地址是什么。此外,主机 C 和主机 D 是同一链路上的其他主机。

为了获取主机 B 的 MAC 地址,主机 A 将发送一个 ARP 请求包到以太网上的所有主机,该请求包包含了主机 A 想要了解的主机 B 的 IP 地址对应的 MAC 地址。这个 ARP 请求包将通过广播的方式发送。

当主机 A 发送的 ARP 请求包在同一链路上被接收并解析时,每个主机/路由器都会检查 ARP 请求包中的信息。如果 ARP 请求包中的目标 IP 地址与自己的相同,它们会将自己主机的 MAC 地址写入响应包中,并返回给主机 A。

由此,可以通过地址解析协议(ARP)从指定的IP地址获取相应的MAC地址,从而实现在同一链路上的通信。

总结

本文主要介绍了数据链路层的概念和作用,以及MAC地址和ARP协议的相关知识。

数据链路层是网络协议栈中的一层,负责将数据包封装为帧,并通过物理介质进行传输。在局域网中,主机、交换机等网络设备都必须实现数据链路层,以实现数据的可靠传输和交换。

MAC地址是网络上以太网或网络适配器的唯一标识符,用于识别数据链路中互联的节点。MAC地址的结构包括制造商识别码和制造商内部识别码,保证了全球没有相同的MAC地址的网卡。

ARP协议是一种用于实现从IP地址到MAC地址的映射的协议。它通过查询目标IP对应的MAC地址来定位数据分包的接收主机。ARP仅用于IPv4协议,IPv6协议使用邻居发现协议。

ARP的工作机制包括发送ARP请求包到当前以太网上的所有主机,其他主机/路由器通过检查ARP请求包中的信息来回复自己的MAC地址,从而实现在同一链路上的通信。

综上所述,数据链路层在网络中起到了重要作用,而MAC地址和ARP协议是实现数据链路层功能的重要组成部分。

从数据链路到神秘的MAC地址和ARP协议的更多相关文章

  1. ARP防火墙绑定网关MAC地址预防ARP攻击和P2P终结者

    [故障原理]  要了解故障原理,我们先来了解一下ARP协议.  在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的.ARP协议对网络安全具有重要的意义.通过伪造IP地址和M ...

  2. 软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)

    一.网络编程 软件开发架构 C/S架构 C:客户端 想体验服务的时候才会去找服务端体验服务 S:服务端   24小时不间断的提供服务,即时监听,随时待命 B/S架构 B:浏览器    想体验服务的时候 ...

  3. IP地址、MAC地址、ARP地址解析协议

    互联网中一台主机要和另一台主机实现通信首先需要知道彼此在互联网中的位置,主机在互联网中的位置是通过ip地址标记的,当找到ip地址后,再通过端口号标识运行在主机中的进程从而实现通信. IP地址: IP地 ...

  4. MAC地址与IP地址的区别

    介绍一下MAC地址的知识,MAC地址和IP地址的区别以及MAC地址在实际应用中所涉及到的安全问题. 一.基础知识 如今的网络是分层来实现的,就像是搭积木一样,先设计某个特定功能的模块,然后把模块拼起来 ...

  5. 网络编程懒人入门(九):通俗讲解,有了IP地址,为何还要用MAC地址?

    1.前言 标题虽然是为了解释有了 IP 地址,为什么还要用 MAC 地址,但是本文的重点在于理解为什么要有 IP 这样的东西.本文对读者的定位是知道 MAC 地址是什么,IP 地址是什么. (本文同步 ...

  6. IP地址和MAC地址绑定的必要性

    计算机网络是一个共通的网络,世界上任何计算机都可以互相访问. 实现的原理基于网络通讯的互联网交互五层模型. 计算机网络的历史发展 当计算机网络技术初始利用的时代,几台计算机通过集线器连接,就可以实现网 ...

  7. MAC地址表、ARP缓存表、路由表及交换机、路由器基本原理

    在网上找到了这篇讲述MAC地址,ARP协议和路由表的文章,如获至宝.一篇文章把组网中的相关概念讲的明明白白. 原文是发布在51cto博客上,但不知道为什么点进去却是404.让我没想到的是这个技术论坛上 ...

  8. mac地址学习笔记

    MAC(Media Access Control或者Medium Access Control)地址, 意译为媒体访问控制,或称为物理地址.硬件地址,用来定义网络设备的位置. 在OSI模型中,第三层网 ...

  9. 根据IP查主机名和MAC地址

    根据IP查主机名: nbtstat -a XXX.XXX.XXX.XXX根据IP查MAC地址: arp -a XXX.XXX.XXX.XXXXXX.XXX.XXX.XXX指代要查的主机的IP

  10. 为什么同时需要IP地址和MAC地址

    每个以太网设备在出厂时都有一个唯一的MAC地址,为什么还需要为每台主机再分配一个IP地址?或者说每台主机都分配唯一的IP地址,为什么还要在网络设备(如网卡,集线器,路由器等)生产时内嵌一个唯一的MAC ...

随机推荐

  1. 《最新出炉》系列初窥篇-Python+Playwright自动化测试-29-处理日历时间控件-中篇

    1.简介 上一篇的日历时间控件宏哥介绍的比较传统也是很常见的.宏哥不能说它很low,但是相比较一些高端.大气.上档次的日历时间控件,结果就一目了然了:确实很low. 2.被测网站 2.1高大上日历时间 ...

  2. .NET周刊【11月第2期 2023-11-12】

    国内文章 一个基于百度飞桨封装的.NET版本OCR工具类库 - PaddleOCRSharp https://www.cnblogs.com/Can-daydayup/p/17818557.html ...

  3. 火山引擎ByteHouse:如何优化ClickHouse物化视图能力?

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近期,火山引擎 ByteHouse 升级了基于 ClickHouse 的物化视图能力,为解决数据量爆炸式增长带来的 ...

  4. 手把手教Electron+vue,打包vue项目,打包成桌面程序。

    1.现如今前端框架数不胜数,尤其是angular.vue吸引一大批前端开发者,在这个高新技术快速崛起的时代,自然少不了各种框架的结合使用.接下来是介绍electron+vue的结合使用. 2.Elec ...

  5. 如何给el-table中某一列加指定内容和点击事件

    背景: 小颖最近在写项目时遇到了要给  element-ui 中的  el-table 在 v-for  el-table-column 标签时给某列加内容和点击事件,项目忙完了想着总结一下,下面一起 ...

  6. IIS安装与配置

    一.环境介绍 Windows Server 2019 64位 标准版 二.IIS安装 2.1.打开服务器管理器,单击添加角色和功能 在Windows Server 2019 服务器管理中,点击角色和功 ...

  7. 如何编写一个 Pulsar Broker Interceptor 插件

    背景 之前写过一篇文章 VictoriaLogs:一款超低占用的 ElasticSearch 替代方案讲到了我们使用 Victorialogs 来存储 Pulsar 消息队列的消息 trace 信息. ...

  8. MySQL运维10-Mycat分库分表之一致性哈希分片

    一.一致性哈希分片 一致性哈希分片的实现思路和我们之前介绍的水平分表中的取模分片是类似的.只不过取模分片,采用的是利用主键和分片数进行取模运算,然后根据取模后的结果,将数据写入到不同的分片数据中.但是 ...

  9. 如何屏蔽各大AI公司爬虫User Agent

    罗列各大AI公司Scraper爬虫Crawler使用的User Agent,教您如何在robots.txt里面屏蔽这些爬虫的访问,禁止它们下载您的网站内容以训练 AI 模型,保护数据,降低带宽,防止宕 ...

  10. C 按位显示二进制

    转载:https://mp.weixin.qq.com/s?__biz=Mzk0NDYzNTI1Ng==&mid=2247483733&idx=2&sn=728c93b046d ...