文章目录
- 数据链路层
- 以太网
- 源地址和目的地址
- 类型
- 数据
- 认识 MTU
数据链路层
以太网
以太网的帧格式如下所示:
源地址和目的地址
源地址和目的地址是指网卡的硬件地址(也叫MAC地址).
mac 地址和 IP 地址的区别:
- mac 地址使用6个字节表示,IP 地址4个字节表示.
一般一个网卡,在出厂的时候,mac 地址就已经被分配好了,就写死了(不能改).- mac 地址使用在数据链路层,用来实现两个相邻设备之间的数据转发.(微观)
IP地址使用在网络层,立足于整个转发流程,进行路径规划.(宏观)理论上来说,搞一套地址,也能完成宏观和微观上层次的所有工作,IP地址和mac地址留一组就可以了.但是实际上两个都留了下来,分配了不同的任务.
IP地址和mac地址,是两伙人,同一个时间段,各自独立搞出来的,两边都觉得自己的东西好,于是就综合一下,你这个地址负责这块,你那个地址负责那块就可以了~举个例子(不考虑 NAT )
我要从西安出发,去吉林省白城市安广镇.
- 第一步,路径规划(网络层).
西安 -> 北京 -> 长春 -> 白城 -> 安广- 第二步,实施.
以太网数据帧里面的 mac 地址,会随着转发的过程,时刻发生改变(每经过一个交换机/路由器都会变).
类型
类型: 描述了载荷中是啥样的数据.
ARP 数据报 / ARP协议: 可以视为是让当前设备,获取到周围 IP 地址和 mac 地址之间的映射关系.
在IP协议路由转发的过程中,路由器会根据目标IP地址查找路由表,以确定传输数据的下一个网络接口。然后,路由器将需要转发的数据包转发给与该网络接口相连的设备,这涉及到将IP地址转换为目标设备的MAC地址。
ARP 协议就是用来建立上述的映射关系的.
当设备接入网络时,它会发送一个ARP请求广播报文,该报文中包含设备的IP地址。收到该广播报文的其他设备会检查该IP地址是否与自己的IP地址匹配,如果匹配则会返回一个ARP响应报文,其中包含设备的IP地址和MAC地址。这样,设备就可以通过ARP响应报文获得其他设备的MAC地址,从而建立通信。
数据
我们可以看到,数据的长度为 46 ~ 1500字节.
这里不解释46是咋来的.主要关心1500.
认识 MTU
数据链路层数据帧 的最大载荷长度,1500字节,相当于 1.5 kb.这个数字,我们把它叫做MTU.
MTU和硬件直接相关,不同的硬件设备,就对应到了不同的数据链路层协议,也就对应到了不同的 MTU .(不同的硬件设备和协议可能有不同的MTU值,本文只是拿1500字节举个例子)
以太网,其实是挺短的,1.5非常小. IP/UDP 至少还是 64kb.
此处MTU的限制,就会对上层协议产生直接影响.
最典型的就是IP协议,IP协议能拆包组包,其实IP协议的拆包组包,不是应对IP的64kb,更多的是应对MTU的限制.
当一个IP数据报,达到 1500kb 以上的时候,就会自动拆包了.
本文到这里就结束啦~