数据链路层
1.1 Ethemet II协议
- 帧格式:
D.MAC+S.MAC+Type+Data+FCSD.MAC:目的MAC地址S.MAC:源MAC地址Type:上层使用的协议Data:数据FCS:帧校验序列,校验使用
- 一个设备收到帧时
- 1️⃣先检查
D.MAC是不是自己,如果不是自己,直接扔了 - 2️⃣查看
FCS,校验是否通过,如果不通过,直接扔了 - 3️⃣查看
Type,上层的协议
- 1️⃣先检查
- 优点就是简单,缺点就是,
Type字段,必须所有设备都要支持该协议,如果某些厂商想要研发一些「私有化的协议」,那么就不能使用E2协议
1.2 IEEE802.3协议
- 注意,该协议和E2协议,都是以太网协议
- 帧格式:
D.MAC+S.MAC+Length+LLC+SNAP+Data+FCSD.MAC:目的MAC地址S.MAC:源MAC地址Length:上层数据的大小,即Data的大小,单位是字节LLC:逻辑链路控制D.SAP:目标服务接入点,目标的上层协议是什么,如果使用「私有化协议」,这里会标识SNAP(0xaa),否则不会有SNAP字段S.SAP:源服务接入点,源的上层协议是什么,如果使用「私有化协议」,这里会标识SNAP(0xaa),否则不会有SNAP字段Control:保留字段0x03
SNAP:子网络服务接入点,「私有化协议」才会有这个,如果是公有化协议,没有这个字段org Code:机构标识,「这个私有协议谁开发的?」Type:标识「私有化协议」是什么
Data:数据FCS:帧校验序列,校验使用
1.3 MTU
- MTU:最大传输单元,网络层的包最大值 ,也就是上述的
Data最大值。 - 注意,一个数据包,分片是在网络层完成的,网络层在交付给数据链路层时,会查看MTU,如果超过了,则分片,如果禁止分片,那么继续往下传;但是数据链路层会检查MTU,如果此时超过了MTU大小,会直接丢弃。
- 错误理解:网络层先不理会MTU,当数据链路层发现超过MTU了,再交给网络层分片。
1.4 MAC地址
- 单播mac地址:高位到低位(从左往右),第八位,一定是0
- 组播mac地址:高位到低位(从左往右),第八位,一定是1,只能充当目的mac地址
- 组播:通信形式上,点对多点,单对多的通信。
- 广播mac地址:只能充当目的mac地址,全为1
- 注意,在转发报文时,源mac和目的mac一直会变,例如A通过路由器C发送到B(假设A和路由器接口1相连,B和路由器接口2相连),A发现B和自己不是一个网段的,因此发给网关,所以,源mac就是A的mac,目的mac就是路由器接口1的mac,然后路由器拿到数据包后,会将源mac改成接口2的mac,目的mac改成B的mac。
1.5 ARP协议
-
封装在数据链路层之上,ARP之上没有协议了。
-
主要字段
-
sender-ip:源IP地址 -
sender-mac:源mac地址 -
target-ip:目标ip地址 -
target-mac:填全0。
-
-
如果数据链路层使用E2
D.MAC:ARP请求时,全f,广播。ARP响应时,是对应的mac,单播。S.MAC:源mac
-
免费ARP
- 配置完一个IP地址后,会发送一个包,源IP地址,和目的IP地址都是自己,源mac是自己,目的mac是全f,也就是广播,如果没有人回包,说明这次没有冲突,如果有人回包里,说明冲突了。
- 免费ARP用来探测IP地址是否冲突。

浙公网安备 33010602011771号