Linux——以太网协议

一、数据链路层

功能:负责相邻设备之间的数据传输

MAC地址:48位数字;是物理网卡的硬件地址(出厂设置),是网卡(通信设备)的唯一标识

二、以太网协议

  • 源端mac地址+对端mac地址:用于相邻设备之间的定位描述
  • 数据协议:描述内部数据的协议类型,以便于进行数据解析
  • 校验和:校验数据一致性

对端MAC地址如何获取?------ARP协议

ARP协议:介于网络层和数据链路层之间的协议

功能:通过IP地址,获取指定相邻设备的MAC地址

  1. 组织ARP请求数据包
    1. 填入发送方自身IP地址+自身MAC地址+目标IP地址+其他各项要素
    2. 目标MAC填全1,表示广播发送给同网段内所有设备
  2. 相邻设备收到ARP请求后,对比目标IP是否与本机IP一致;若一致,则组织ARP应答,将自己的MAC地址填充进去,回复给请求方
  3. 请求方收到ARP回复后,会在本地建立IP地址与MAC地址映射缓存数据(缓存数据默认维持30min:因为DHCP会动态分配IP,导致一台设备的IP地址是不固定的,可能会发生变化)

如何获取相邻设备的IP地址?

DHCP动态地址分配

  1. 一台主机接入网络后,会在本网段广播发送DHCP请求,寻找DHCP服务器
  2. 如果该网段内存在DHCP服务器(可以是路由器自带DHCP功能,也可以是独立DHCP服务器),收到请求后,就会进行DHCP回复:IP地址、子网掩码、**网关地址(路由器的IP地址)**等信息

因此,每台主机连接到一个网络后,就能知道自己所连接的路由器的IP地址

ARP局域网欺骗攻击

  • 攻击路由器(欺骗网关)
    • 一台设备接入局域网后,持续的向路由器发送伪造的ARP回复,冒充局域网内其他主机的IP
    • 效果:路由器会认为这台设备就是网络中的所有设备,路由器就会将发往局域网内所有设备的数据,全部发送给该主机)
  • 欺骗局域网所有主机(冒充网关)
    • 一台设备接入局域网后,伪造IP地址(路由器),持续广播伪造ARP回复
    • 效果:局域网内所有设备都认为这台设备是路由器,所有设备的数据都会发往该设备
  • 解决方案:在路由器中设置MAC地址白名单

MTU

MTU:最大传输单元,是链路层所能承载的上层数据最大长度(不含链路层头部)

  • 不同链路技术,MTU的值不同

MTU的影响:决定数据在网络层是否需要进行数据分片

  1. UDP报文的理论上限是64K,以太网MTU=1500B:IP头部 + UDP头部 + UDP数据,总长度不能超过1500 B;若超出,在网络层就会进行分片发送
  2. 这些分片到达接收端之后,会进行分片重组
    1. 重组时,任意一个分片丢失,整个报文都会被丢弃,不会重传;分片数量越多,失败概率越大
    2. 因此,开发UDP程序时,就需要控制应用层提前分包,尽量避免网络层的数据分片
    3. TCP不需要考虑分片问题:因为TCP在传输层会根据MTU计算出MSS,然后进行数据分段传输
相关推荐
职豚求职小程序刷题1 小时前
光大证券在线测评|时间&考点整理好啦(附练习题库)
1024程序员节
时间售卖铺1 小时前
MySQL 日志管理
运维·数据库·mysql·云原生
CV爱数码1 小时前
论文精读|RED-CNN:残差编解码网络,低剂量 CT 去噪的经典基线
网络·人工智能·算法·cnn·ct·重建·x-ray
晴天的雨.9921 小时前
【Linux】make & Makefile 核心知识点
linux·运维·服务器
星恒讯工业路由器1 小时前
Modbus透传和Modbus网关有什么区别?从字节转发到协议翻译的选型思路
网络·物联网·modbus·工业物联网·工业网关·rs485·协议转换
不吃鱼的羊2 小时前
如何建立高自尊
java·服务器·前端
丘山望岳2 小时前
Linux基础指令入门篇
linux·运维·服务器
李&@杰2 小时前
交换机PoE供电不足导致AP反复重启故障处理
网络·华为
香蕉大香蕉(06敬畏市场)2 小时前
高频八股 · Java 并发编程(10):异步、ThreadLocal 与虚拟线程(收官)
java·开发语言·网络·jvm·python·ai·实习