一、数据链路层
功能:负责相邻设备之间的数据传输
MAC地址:48位数字;是物理网卡的硬件地址(出厂设置),是网卡(通信设备)的唯一标识
二、以太网协议

- 源端mac地址+对端mac地址:用于相邻设备之间的定位描述
- 数据协议:描述内部数据的协议类型,以便于进行数据解析
- 校验和:校验数据一致性
对端MAC地址如何获取?------ARP协议
ARP协议:介于网络层和数据链路层之间的协议

功能:通过IP地址,获取指定相邻设备的MAC地址
- 组织ARP请求数据包
- 填入发送方自身IP地址+自身MAC地址+目标IP地址+其他各项要素
- 目标MAC填全1,表示广播发送给同网段内所有设备
- 相邻设备收到ARP请求后,对比目标IP是否与本机IP一致;若一致,则组织ARP应答,将自己的MAC地址填充进去,回复给请求方
- 请求方收到ARP回复后,会在本地建立IP地址与MAC地址映射缓存数据(缓存数据默认维持30min:因为DHCP会动态分配IP,导致一台设备的IP地址是不固定的,可能会发生变化)
如何获取相邻设备的IP地址?
DHCP动态地址分配
- 一台主机接入网络后,会在本网段广播发送DHCP请求,寻找DHCP服务器
- 如果该网段内存在DHCP服务器(可以是路由器自带DHCP功能,也可以是独立DHCP服务器),收到请求后,就会进行DHCP回复:IP地址、子网掩码、**网关地址(路由器的IP地址)**等信息
因此,每台主机连接到一个网络后,就能知道自己所连接的路由器的IP地址
ARP局域网欺骗攻击
- 攻击路由器(欺骗网关)
- 一台设备接入局域网后,持续的向路由器发送伪造的ARP回复,冒充局域网内其他主机的IP
- 效果:路由器会认为这台设备就是网络中的所有设备,路由器就会将发往局域网内所有设备的数据,全部发送给该主机)
- 欺骗局域网所有主机(冒充网关)
- 一台设备接入局域网后,伪造IP地址(路由器),持续广播伪造ARP回复
- 效果:局域网内所有设备都认为这台设备是路由器,所有设备的数据都会发往该设备
- 解决方案:在路由器中设置MAC地址白名单
MTU
MTU:最大传输单元,是链路层所能承载的上层数据最大长度(不含链路层头部)
- 不同链路技术,MTU的值不同
MTU的影响:决定数据在网络层是否需要进行数据分片
- UDP报文的理论上限是64K,以太网MTU=1500B:IP头部 + UDP头部 + UDP数据,总长度不能超过1500 B;若超出,在网络层就会进行分片发送
- 这些分片到达接收端之后,会进行分片重组
- 重组时,任意一个分片丢失,整个报文都会被丢弃,不会重传;分片数量越多,失败概率越大
- 因此,开发UDP程序时,就需要控制应用层提前分包,尽量避免网络层的数据分片
- TCP不需要考虑分片问题:因为TCP在传输层会根据MTU计算出MSS,然后进行数据分段传输