【数据链路层】ARP协议

以太网

”以太网" 不是一种具体的网络, 而是一种技术标准; 既包含了数据链路层的内容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑结构, 访问控制方式, 传输速率等;

以太网帧对的格式

在这里插入图片描述
其中:

  • 源地址和目的地址是指网卡的硬件地址(也叫 MAC 地址), 长度是 48 位,是在网卡出厂时固化的;
  • 帧协议类型字段有三种值,分别对应 IP、ARP、RARP;
  • 帧末尾是 CRC 校验码

MAC地址

  • MAC 地址用来识别数据链路层中相连的节点;
  • 长度为 48 位, 及 6 个字节
  • 网卡出厂时就确定了, 不能修改. mac 地址通常是唯一的

对比MAC地址和IP地址

  • IP地址是分配给网络设备的逻辑地址,用于在网络层(第3层)进行通信。它可以通过网络管理员手动配置,也可以通过动态主机配置协议(DHCP)自动分配。IP地址用于在广域网(WAN)或互联网中标识设备,支持设备之间的数据传输。IP地址是可变的,在不同的网络中其IP地址可能会不一样。
  • MAC地址是网卡的硬件地址,是网络设备的物理标识符。它是由制造商在设备生产时分配的,并且在全球范围内是唯一的。MAC地址通常用于局域网(LAN)中的数据链路层(第2层)通信,用于标识网络中的设备。
  • 简单来说,IP地址帮助我们从一个网络到另一个网络,mac地址用于在一个局域网中找到目标设备

MTU和MSS

MTU是网络中的最大传输单元,MSS是最大报文段长度

  • MTU:网络层能够发送的最大数据包大小(通常是1500字节),以字节为单位。MTU包括IP包头和数据部分,因此它定义了在网络上传输的最大数据帧的总大小。如果传输的数据包大于MTU,数据包就会被分片(fragmentation),从而分成多个较小的包传输。一旦分片就会增加丢包的概率,所以网络层的IP报文不宜设置太大。
  • MSS:传输层(TCP)能够处理的最大报文段大小,它仅指数据部分,不包括TCP包头和IP包头。MSS通常由通信双方在TCP三次握手过程中协商确定。通常,如果MTU是1500字节,那么MSS=1500-20(IP报头)-20(TCP报头)=1460字节。

为什么要设置这个MTU呢?这是为了保证网络中的性能。如果每个报文数据太大,容易导致网络拥堵。

使用ifconfig指令可以查看自己主机的MTU
在这里插入图片描述

ARP协议

ARP 不是一个单纯的数据链路层的协议, 而是一个介于数据链路层和网络层之间的协议用于将IP地址转换为MAC地址

当一台主机给另一台主机发送数据时,必须先知道对方的MAC地址,因为报文先经过数据链路层。那么ARP协议是如何获取目标IP地址对应的MAC地址的呢?

ARP协议的工作原理

  1. 当主机A(发送方)需要向主机B(目标方)发送数据时,主机A首先检查自己的ARP缓存中是否已经有目标IP地址对应的MAC地址。如果没有,主机A就会向所在的局域网发送一个ARP请求的广播报文,即同一局域网的所有主机都会收到这个请求。这个ARP请求包含了发送方的IP地址、MAC地址以及目标IP地址。这些数据包含在ARP的报头中。
  2. 其它主机收到这个ARP请求之后,会先把ARP请求报头解包,然后发现其请求的目标IP不是自己,就丢弃这个报文不做响应。相反,如果目标IP就是自己这台主机,那么目标主机B就会发送一个ARP响应报文,告知主机A自己的mac地址。由于通过请求已经知道了主机A的mac地址,所以发送响应时就把这个mac地址作为目标mac地址直接发送给主机A。
  3. 主机A收到ARP应答之后,在数据链路层解包,获取目标主机的mac地址。然后更新自己的ARP缓存,说白了就是存下一个目标IP和mac地址的映射,下一次要找主机B的mac地址就直接往这里面拿就行了。
    在这里插入图片描述
    下面是ARP数据报的格式:
    在这里插入图片描述
    其中
  • 硬件类型指链路层网络类型,1 为以太网;
  • 协议类型指要转换的地址类型,0x0800 为 IP 地址;
  • 硬件地址长度对于以太网地址为 6 字节;
  • 协议地址长度对于和 IP 地址为 4 字节;
  • op 字段为 1 表示 ARP 请求,op 字段为 2 表示 ARP 应答

ARP欺骗

ARP协议本身没有安全机制,所以很容易受到中间人的攻击。攻击者可以发送伪造的ARP响应,导致网络中的设备将攻击者的MAC地址与某个合法IP地址关联,从而拦截或篡改数据

防御措施:为了防止ARP欺骗攻击,网络管理员可以使用静态ARP表ARP防火墙或使用更高级的网络安全协议(如IPsec)来保护网络通信的完整性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值