【网络】TCP/IP 五层网络模型:数据链路层

椰椰椰耶 2024-09-20 10:07:06 阅读 86

文章目录

认识以太网mac 地址mac 地址和 IP 地址的区别

类型ARP 协议

MTU

日常开发主要是应用层,传输层和应用层密切交互,传输层用到的也不少。网络层以及再往下,日常开发就涉及到的非常少了

认识以太网

插网线的上网方式

<code>80211 是无线 WiFi 上网方式

image.png

mac 地址

一般一个网卡,在出场的时候,mac 地址就被分配好了,就写死了(不能改了)

mac 地址也可以作为设备的身份标识

比如,你花钱买外挂,一般的外挂都是“绑定机器”的(防止你进行二次售卖),这就可以通过记录设备的 mac 地址来实现

当你买了这个挂之后,人家就会在服务器上记录你这个设备的 mac 地址如果你之后给别人登录这个程序,被发现 mac 地址不一样,就没法使用

mac 地址和 IP 地址的区别

<code>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 地址,会随着转发的过程,时刻发生改变(每经过一个交换机/路由器就会产生上述变化),牢牢抓住了下一个数据要往哪传输这样的要点

类型

描述了载荷中是什么样的数据

image.png|515

<code>0800(十六进制),IP 数据报0806ARP 报文0835RARP 报文

后俩不传输业务数据,而是给转发功能提供辅助的措施

ARP 协议

ARP 数据报/协议,可以视为是让当前设备能获取到周围设备的 IP 地址和 mac 地址之间的映射关系

在 IP 协议的路由转发过程中,都是拿着 IP 地址来进行查路由表的操作的,得到的是“网络接口”(抽象的概念)。更具体的的话,就需要知道传输给目标对象的 mac 地址,这个环节中就涉及到 IP 地址到 mac 地址的转换。ARP 就是用来建立上述的映射关系的

当前设备接入网络的时候,就会往广播地址发送 ARP 报文。收到 ARP 请求的设备就会返回 ARP 响应,响应中就会告知自己的 IP 和 mac

MTU

数据链路层数据帧的最大载荷长度为 1500 字节,相当于 1.5kb,把这个数字称为 MTU

MTU 是和硬件直接相关的,硬件不同,所对应的 MTU 也可能是不一样的

不同的硬件设备硬件设备,就对应到了不同的数据链路层协议,就对应到了不同的 MTU

以太网,其实是很短的,只有 1.5kbIP/UDP 至少还是 64kb

此处 MTU 的限制,就会对上层协议产生直接影响IP 协议能拆包组包,实际上更多的是应对 MTU 的限制(到 1500 的时候就被砍了,远远不到 64kb 的时候)当一个 IP 数据报,达到 1500 以上的时候,就会自动拆包了



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。