以太网协议
- 一、以太网帧格式
- 二、ARP协议
-
- 2.1 协议格式
- 2.2 作用
- 2.3 工作流程
- 2.4 ARP局域网欺骗攻击
- 三、MTU对于上层协议的影响
-
- 3.1 TCP协议的影响
- 3.2 UDP协议的影响
链路层协议主要是负责相邻设备之间的数据传输。
一、以太网帧格式
文章图片
max地址:网卡设备的物理硬件地址,通常出厂时就会设定。
48位对端mac地址+48位源端mac地址:无符号6字节整数,标识相邻两个设备。二、ARP协议 2.1 协议格式
16位上层协议类型:记录网路层(有可能是介于网络层和链路层之间的协议,例如ARP协议、RARP协议)使用的协议,用于数据分用。
0800为IP数据报协议类型
0806为ARP请求、应答协议类型
0835为RARP请求、应答协议类型
46~1500字节的上层交付的数据:网络层(有可能是介于网络层和链路层的数据)进行封装后交付到链路层的数据,以太网帧中的数据长度规定最小46字节,最大1500字节。
32位CRC:校验数据一致性。
文章图片
ARP数据就是数据一个介于网络层和链路层的数据,该数据到链路层后(上层协议类型为0806)进行链路层的封装。
16位硬件类型:链路层网络类型,1为以太网。2.2 作用 我们首先需要知道,数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址不知道,则无法发送数据,因此在通讯前必须获得目的主机的硬件地址。
16位协议类型:要装换的地址类型,0x0800为IP地址。
8位硬件地址长度:以太网地址为6个字节。
8位协议地址长度:IP地址长度为4个字节。
16位op字段:op字段为1表示ARP请求,op字段为2表示ARP应答。
48位源端mac地址+32位源端IP地址:对于ARP请求而言,描述发送方信息。
48位对端mac地址+32位对端IP地址:对于ARP请求而言,对端max地址未知,通过对端IP地址,得到max地址,做出ARP应答(ARP协议的作用)。
18个字节的补充数据:ARP数据包大小为28个字节,但是以太网帧中的数据长度规定最小46字节,所以后面补充18个字节数据,该数据无任何意义。
ARP协议的作用就是建立主机IP地址与MAC地址的映射关系。
2.3 工作流程
1.源主机发出ARP请求,询问某IP地址的主机的硬件地址是多少, 并将这个请求广播到本地网段。2.4 ARP局域网欺骗攻击 由于ARP请求是一个广播请求,所以就有可能出现恶意主机,伪装IP地址,给你进行ARP应答,你就会将后续的数据发送到这个恶意主机。(破解攻击的方法:防火墙mac地址白名单)
2.目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中,做出应答;
每台主机都维护一个ARP缓存表,可以用arp -a命令查看。缓存表中的表项有过期时间(一般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址
三、MTU对于上层协议的影响 MTU是链路层限制的最大数据帧大小,以太网协议默认是大小为1500。
3.1 TCP协议的影响 在建立连接时,三次握手会协商mss(最大数据段大小),通信过程中都会从缓冲区取出不大于mss大小的数据进行数据传输,然而mss是通过mtu计算得到的
mss=mtu-IP报头(20)-TCP报头(20)=mtu-40
TCP在传输层会自动进行数据分段,所以在网络层不需要进行数据分片
3.2 UDP协议的影响 【网络|链路层协议——以太网协议】UDP是无连接的,所以不会协商mss,只要数据小于最大数据报长度(64k-28)就可以传输,但是若大于mtu大小,就会在网络层进行数据分片。
但是,分片越多越危险,若单个分片出问题,则原始报文重组就会失败,就会造成所有分片被丢弃(所以对于UDP传输,用户尽可能在应用程对数据进行分包,传输的大小可以自己计算一个mss进行数据传输)
推荐阅读
- 计算机网络|【计算机网络】数据链路层——以太网数据帧基础教程
- kubernetes|Ingress
- 云原生|云上机器CLOSE_WAIT过多的原因和解决办法
- 网络工程|QoS服务质量三DiffServ模型报文的标记及PHB
- 梅科尔工作室-华为14天鸿蒙设备开发实战笔记六
- 网络|我,AI博士生,在线众筹研究主题
- 网络|万字长文详解Istio
- 服务器|【SOC】经典输出hello world
- 网络技术|HCIA网络课程第二周作业