MAC地址知识
1. 全球唯一无法保障.
软件工具可以修改网卡的MAC地址
2.不需要全球唯一.
只要保障局域网内不重复就行. 路由器 保证 数据在不同局域网内跳转. 如果局域网内使用集线器,那么可以设置相同的MAC,但是如果是交换机,由于交换机的MAC地址学习策略,不可以设置相同MAC地址.
$ ifconfig eth0 | grep ether
ether 6e:77:0f:b8:8b:6b txqueuelen 1000 (Ethernet)
$ ifconfig eth0 down
$ ifconfig eth0 hw ether 6e:77:0f:b8:8b:6a
$ ifconfig eth0 up
$ ifconfig eth0 | grep ether
ether 6e:77:0f:b8:8b:6a txqueuelen 1000 (Ethernet)

局域网中的数据传输不是通过网络层的IP传输的,主要是通过MAC地址传输的.
ARP广播过程
- 源主机会向当前局域网中发送 ARP 请求,目标的 MAC 地址是
FF-FF-FF-FF-FF-FF,这表示当前请求是一个广播请求,局域网内的所有设备都会收到该请求; - 接收到 ARP 请求的主机都会检查目的 IP 和自己的 IP 地址是否一致;
- 如果 IP 地址不一致,主机会忽略当前的 ARP 请求;
- 如果 IP 地址一致,主机会直接向源主机发送 ARP 响应;
- 源主机在接收到 ARP 的响应之后,会更新本地的缓存表并继续向目的主机发送数据;
交换机-局域网内不可以设置相同MAC地址:
假设局域网中的具有两台 MAC 地址完全相同的网络设备 A 和 B,即 6e:77:0f:b8:8b:6b,当设备 A 想要向设备 B 发送以太网帧时会遇到如下所示的情况:
- 设备 A 在构造的以太网帧中将源地址和目的地址都设置为
6e:77:0f:b8:8b:6b并向交换机发送数据; - 交换机接收到了设备 A 发送的数据帧后,会从数据帧的源地址学习到设备 A 的 MAC 地址并将
6e:77:0f:b8:8b:6b -> A这条记录插入本地缓存中; - 交换机发现收到数据帧的目的地址会指向了网络设备 A,所以它会将该数据转发回 A;
因为交换机的 MAC 地址学习策略,所以我们不能在同一个局域网中使用相同的 MAC 地址,但是因为 MAC 地址是链路层网络中的概念,跨局域网的网络传输需要通过网络层的 IP 协议,所以在不同的局域网中使用相同的 MAC 地址就不存在类似的问题了。
MAC地址知识的更多相关文章
- 网络知识===关于MAC地址和IP不能互相替代,缺一不可的原因
最近在看书<图解TCP/IP>书中分别谈到了IP和MAC地址.于是我就有两个疑惑, 为什么有了IP地址,我们还要获取MAC地址? 为什么我们初始不直接使用MAC地址作为终点地址?还要那么复 ...
- 以太网MAC地址组成与交换机基本知识
以太网MAC地址 MAC地址由48位二进制组成,通常分为六段,用十六进制表示,工作在数据链路层. 数据链路层功能: 链路的建立,维护与拆除 帧包装,帧传输,帧同步 帧的差错恢复 简单的流量控制 第八位 ...
- MAC地址与IP地址的区别
介绍一下MAC地址的知识,MAC地址和IP地址的区别以及MAC地址在实际应用中所涉及到的安全问题. 一.基础知识 如今的网络是分层来实现的,就像是搭积木一样,先设计某个特定功能的模块,然后把模块拼起来 ...
- 分享:PHP获取MAC地址的实现代码
原文地址:http://www.jbxue.com/article/12635.html发布:thatboy 来源:Net [大 中 小] 分享一例php取得机器mac地址的代码,学习下p ...
- 三十天学不会TCP,UDP/IP编程--MAC地址和数据链路层
这篇文章主要是来做(da)推(guang)介(gao)的!由于这两年接触到了比较多的这方面的知识,不想忘了,我决定把他们记录下来,所以决定在GitBook用半年时间上面写下来,这是目前写的一节,后面会 ...
- 【RL-TCPnet网络教程】第5章 PHY芯片和STM32的MAC基础知识
第5章 PHY芯片和STM32的MAC基础知识 本章节为大家讲解STM32自带的MAC和PHY芯片的基础知识,为下一章底层驱动的讲解做一个铺垫. 5.1 初学者重要提示 5.2 ...
- 网络编程懒人入门(九):通俗讲解,有了IP地址,为何还要用MAC地址?
1.前言 标题虽然是为了解释有了 IP 地址,为什么还要用 MAC 地址,但是本文的重点在于理解为什么要有 IP 这样的东西.本文对读者的定位是知道 MAC 地址是什么,IP 地址是什么. (本文同步 ...
- 获取设备信息——获取客户端ip地址和mac地址
1.获取本地IP(有可能是 内网IP,192.168.xxx.xxx) /** * 获取本地IP * * @return */ public static String getLocalIpAddre ...
- 交换机是干嘛的!!交换机如何学习MAC地址过程?
1.它收到一个帧的时候,先检查源MAC地址,看看自己维护的一个地址表中有没有这个地址.如果有,则2:如果没有,则将这个MAC地址.进入的端口.进入的时间放入这个表中: 2.检查目的MAC地址,然后到该 ...
随机推荐
- (1)用 if语句 区间判断
/*此例子只做比喻演示*/ 1 #include <stdio.h> 2 int main() 3 { 4 5 int p; 6 scanf("%d",&p); ...
- TCP 才不傻!
大家好,我是小林. 之前收到个读者的问题,对于 TCP 三次握手和四次挥手的一些疑问: 第一次握手,如果客户端发送的SYN一直都传不到被服务器,那么客户端是一直重发SYN到永久吗?客户端停止重发SYN ...
- [C++]-map和unordered_map
转自:https://blog.csdn.net/BillCYJ/article/details/78985895 头文件不同 map: #include < map > unordere ...
- MySQL-16-主从复制进阶
延时从库 介绍 延时从库: 是我们人为配置的一种特殊从库,人为配置从库和主库延时N小时 为什么要有延时从库 数据库故障 物理损坏,普通的主从复制非常擅长解决物理损坏 逻辑损坏,普通主从复制没办法解决逻 ...
- Java 多线程与并发【原理第二部分笔记】
Java 多线程与并发[原理第二部分笔记] 什么是Java内存模型中的happens-before Java内存模型,即JMM,本身是一种抽象的概念,并不是真实存在的,他描述的是一组规则或者说是一种规 ...
- Pikachu-RCE模块
一.概述 1.1 RCE漏洞 可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统. 1.2 远程系统命令执行一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令 ...
- deepin下启动自己的springcloud服务报错
java.nio.file.AccessDeniedException: /home/msan/logs/csp/sentinel-record.log.2021-01-04.0.2.lck at s ...
- noip14
T1 考试假贪心,20pts,能摧毁就摧毁,不管前边已经摧毁的水晶. 正解: 首先肯定要离散化,然后考虑dp,设 \(dp_{i,j}\) 表示当前处理到了i,摧毁掉的水晶的a最小为j,则转移方程: ...
- NOIP 模拟 $22\; \rm d$
题解 很好的贪心题 考虑去掉的矩形一定是几个 \(a\) 最小的,几个 \(b\) 最小的,枚举去掉几个 \(a\),剩下的去掉 \(b\) 先对 \(a\) 排序,用小根堆维护 \(b\) ,记录哪 ...
- vue 实现 leaflet的测绘,测距,测面
参考1:https://blog.csdn.net/lonly_maple/article/details/83658608 参考2:https://blog.csdn.net/xtfge0915/a ...