比如,你费钱买外挂,一样平常的外挂都是“绑定呆板”的(防止你进行二次售卖),这就可以通过记载设备的 mac 地址来实现
当你买了这个挂之后,人家就会在服务器上记载你这个设备的 mac 地址
如果你之后给别人登录这个步伐,被发现 mac 地址不一样,就没法利用
mac 地址和 IP 地址的区别
mac 地址利用 6 个字节,IP 地址 4 个字节
空间范围比 IP 地址大了 6w 多倍
mac 地址当前仍旧可以给每个设备都分配一个唯一的 mac 地址
mac 地址利用在数据链路层,用来实现两个设备之间的数据转发——微观;
IP 地址利用在网络层,立足于整个转发流程,进行路经规划——宏观
理论上来说,搞一套地址也能完成宏观和微观地址上的全部工作,IP 地址和 mac 地址留一组就可以了,但实际上两个都留下来了,分配了差别的使命(不是技术题目,而是历史遗留题目)。
IP 地址和 mac 地址是两伙人,在同一个时间段各自独立提出的。两伙人都觉得自己的东西好,于是大家就综合一下,你这个地址负责这块;你那块地址负责那块就可以了
举个栗子:西安到吉林省白城市安广镇
第一步:路径规划(网络层)
西安—>北京—>长春—>白城—>安广
西安—>北京—>沈阳—>白城—>安广
西安—>长春—>白城—>安广
…
第二步:实施(选择第一条线路)
坐飞机
源 IP:西安;目的 IP:安广;
源 mac:西安;目的 mac:北京
坐高铁
源 IP:西安;目的 IP:安广
源 mac:北京;目的 mac:长春
坐大巴
源 IP:西安;目的 IP:安广
源 mac:长春;目的 mac:白城
坐出租车
源 IP:西安;目的 IP:安广
源 mac:白城;目的 mac:安广
.
上述场景不考虑 NAT,源 IP 和目的 IP 始终都是固定的。以太网数据帧里面的 mac 地址,会随着转发的过程,时间发生改变(每经过一个交换机/路由器就会产生上述变化),牢牢抓住了下一个数据要往哪传输如许的要点
类型
描述了载荷中是什么样的数据
0800(十六进制),IP 数据报
0806,ARP 报文
0835,RARP 报文
后俩不传输业务数据,而是给转发功能提供辅助的措施
ARP 协议
ARP 数据报/协议,可以视为是让当前设备能获取到附近设备的 IP 地址和 mac 地址之间的映射关系
在 IP 协议的路由转发过程中,都是拿着 IP 地址来进行查路由表的操纵的,得到的是“网络接口”(抽象的概念)。更具体的的话,就需要知道传输给目的对象的 mac 地址,这个环节中就涉及到 IP 地址到 mac 地址的转换。ARP 就是用来创建上述的映射关系的
当前设备接入网络的时间,就会往广播地址发送 ARP 报文。收到 ARP 哀求的设备就会返回 ARP 相应,相应中就会告知自己的 IP 和 mac
MTU
数据链路层数据帧的最大载荷长度为 1500 字节,相当于 1.5kb,把这个数字称为 MTU
MTU 是和硬件直接相关的,硬件差别,所对应的 MTU 也大概是不一样的
差别的硬件设备硬件设备,就对应到了差别的数据链路层协议,就对应到了差别的 MTU
以太网,实在是很短的,只有 1.5kb,IP/UDP 至少照旧 64kb
此处 MTU 的限制,就会对上层协议产生直接影响
IP 协议能拆包组包,实际上更多的是应对 MTU 的限制(到 1500 的时间就被砍了,远远不到 64kb 的时间)