Linux之网络<数据链路层>
数据链路层1. 怎么分离报文头部与有效载荷以太网头部长度固定为 14 字节662。 收到完整以太网帧之后总帧数据跳过前面固定 14 字节的帧头剩下的部分就是上层有效载荷。 公式载荷 整个以太网帧 - 14 字节帧头 - 末尾 4 字节 CRC 校验。关键点以太网帧头固定长度不需要额外长度字段直接偏移固定字节就能取出载荷。2. 类型字段2 字节的作用分用多路分解分用demultiplexing接收方拿到载荷之后判断交给上层哪个协议。 类型字段标记数据载荷里面是什么协议0x0800→ IPv4 报文最常见0x86DD→ IPv6 报文0x0806→ ARP 报文一句话理解MAC 层收到帧剥离 14 字节帧头拿到载荷读取【类型字段】知道载荷里面装的是 IP/ARP然后交给对应的上层模块这个过程就叫分用。ARP 与 RARP 报文属于数据链路层报文被封装在以太网帧载荷中。 以太网帧数据载荷最小为 46 字节ARP 报文固定 28 字节不足部分使用 PAD (一般是全0)填充补齐 18 字节。IP vs MACIP 地址远大最终目标好比唐僧取经目标是从东土大唐一路去往西天。 代表端到端的最终目的地全程不变从头到尾目标不变。MAC 地址当下这一段的下一站就像取经路上一站一站赶路女儿国→车迟国→狮驼岭。 MAC 只管当前这一段链路只负责走到下一站每进入一个新国家新链路 / 新局域网就要更换下一站目的地。早期总线型共享以太网所有主机共用一条通信线路同一时刻只允许一台主机发送数据。主机发送的以太网帧会广播到局域网内全部主机主机收到帧后比对目的 MAC不是发给自己的报文直接丢弃。当两台主机同时发送数据会产生信号碰撞报文损坏。CSMA/CD 就是用来处理介质冲突的机制先听后发边发边听冲突停发随机重传。主机发送前监听线路空闲才发送发送过程持续检测碰撞一旦检测冲突就停止发送等待随机时间后重试。注意区分现代交换机以太网工作在全双工模式收发使用独立通道不再存在信号碰撞CSMA/CD 仅作为理论考点。帧长度会影响碰撞概率。帧越长信道占用时间越长其他主机在发送期间同时发包的可能性变大碰撞概率越高短帧占用介质时间短碰撞概率更低。主机数量增多冲突概率显著增加。更多主机竞争共享总线更容易出现多主机同时发送频繁发生碰撞大量资源消耗在冲突与重传网络有效吞吐量下降。交换机交换机在某种意义上,将一个局域网分成了两个part,左侧机器的通信不会影响右侧机器的相互通信,同时又能实现两侧机器来实现相互通信,增加了通信的效率交换机最核心的优势就是分割碰撞域支持局域网内多组主机并行传输提升带宽利用率依靠 MAC 地址表实现精准单播转发当目的 MAC 未知时执行泛洪。工作原理主机 A 封装帧src MacAdst MacD把帧发送到网线从eth_left端口进入交换机。第一步MAC 自学习交换机读取帧里的源 MAC MacA查表MacA 对应的端口就是当前入端口 eth_left条目不变无需更新。第二步查询目的 MAC做转发决策读取目的 MACMacD查询 MAC 地址表MacD 对应的端口eth_left也就是和入端口是同一个端口交换机规则如果目的端口 报文的入端口 → 直接丢弃该帧不向任何其他端口转发。ARP拿到目的 IP通过子网掩码计算目标网络查询路由表得到下一跳 IP 地址。 想要在以太网中发送数据必须知道下一跳路由器 / 主机的 MAC 地址。 在同一个网段内需要一种技术将下一跳 IP 解析为下一跳设备的 MAC 地址。 这个局域网协议就是ARP 地址解析协议。我们根据上面整个来完成下面整个目标此时主机A在他所在的以太网发送他的arp报文给所有的主机比如是B主机收到了的报文,他进行报头与有效载荷的分离,然后看目的ip地址,比对发现不是自己,就会将报文丢弃如果是E主机收到了报文,他进行报头与有效载荷的分离,然后看目的ip地址,比对发现就是自己,然后就会将构建arp应答,那么还要进行arp报文的区分主机a的报文主机e的报文这样主机A就获得了主机E的mac地址A 发 ARP 广播请求 (op1)请问 ipE 的 MAC 是谁全网主机收到。B 等其他主机目标 IP 不是自己丢弃。E 匹配目标 IP构造 ARP 单播应答 (op2)带上自己 MacE 发给 A。A 收到应答得到 ipE ↔ MacE 映射存入 ARP 缓存缓存里存储的是IP 与 MAC 的映射条目。ARP 缓存条目带有老化时间时间限制不是永久保存。长时间没有使用这条 IP-MAC 映射条目就会自动过期删除。好处如果设备更换网卡、IP 发生变化旧的失效 MAC 记录可以自动清除防止通信故障。ARP 欺骗ARP 中间人攻击极简介绍核心原理ARP 协议没有身份校验机制只要收到 ARP 应答报文主机就会无条件更新自己 ARP 缓存里的IP→MAC映射不管有没有主动发 ARP 请求免费 ARP。ARP 欺骗就是攻击者伪造 ARP 应答报文篡改目标主机 ARP 缓存告诉受害主机网关 IP 对应的 MAC 攻击者主机 MAC 同时告诉网关受害主机 IP 对应的 MAC 攻击者主机 MAC于是受害主机发给网关的流量、网关返回给受害主机的流量全部先经过攻击者机器转发这就是ARP 中间人攻击。