链路层协议——以太网协议

article/2025/10/13 14:00:15

以太网协议

  • 一、以太网帧格式
  • 二、ARP协议
    • 2.1 协议格式
    • 2.2 作用
    • 2.3 工作流程
    • 2.4 ARP局域网欺骗攻击
  • 三、MTU对于上层协议的影响
    • 3.1 TCP协议的影响
    • 3.2 UDP协议的影响

链路层协议主要是负责相邻设备之间的数据传输。

一、以太网帧格式

在这里插入图片描述

max地址:网卡设备的物理硬件地址,通常出厂时就会设定。

48位对端mac地址+48位源端mac地址:无符号6字节整数,标识相邻两个设备。
16位上层协议类型:记录网路层(有可能是介于网络层和链路层之间的协议,例如ARP协议、RARP协议)使用的协议,用于数据分用。
0800为IP数据报协议类型
0806为ARP请求、应答协议类型
0835为RARP请求、应答协议类型
46~1500字节的上层交付的数据:网络层(有可能是介于网络层和链路层的数据)进行封装后交付到链路层的数据,以太网帧中的数据长度规定最小46字节,最大1500字节。
32位CRC:校验数据一致性。

二、ARP协议

2.1 协议格式

在这里插入图片描述
ARP数据就是数据一个介于网络层和链路层的数据,该数据到链路层后(上层协议类型为0806)进行链路层的封装。

16位硬件类型:链路层网络类型,1为以太网。
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个字节数据,该数据无任何意义。

2.2 作用

我们首先需要知道,数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址不知道,则无法发送数据,因此在通讯前必须获得目的主机的硬件地址。
ARP协议的作用就是建立主机IP地址与MAC地址的映射关系。

2.3 工作流程

1.源主机发出ARP请求,询问某IP地址的主机的硬件地址是多少, 并将这个请求广播到本地网段。
2.目的主机接收到广播的ARP请求,发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中,做出应答;
每台主机都维护一个ARP缓存表,可以用arp -a命令查看。缓存表中的表项有过期时间(一般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址

2.4 ARP局域网欺骗攻击

由于ARP请求是一个广播请求,所以就有可能出现恶意主机,伪装IP地址,给你进行ARP应答,你就会将后续的数据发送到这个恶意主机。(破解攻击的方法:防火墙mac地址白名单)

三、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进行数据传输)


http://chatgpt.dhexx.cn/article/IG7ZYAYO.shtml

相关文章

链路层交换机及和路由器的比较

文章目录 前言一、交换机转发和过滤二、帧来到交换机可能发生的情况三、自学习三、链路交换机的性质四、交换机和路由器比较 前言 交换机的任务是接收入链路层帧并将它们转发到出链路;交换机自身对子网中的主机和路由器是透明的;这就是说,某主机/路由器向另一个主机…

链路层、网络层、传输层、应用层长度

1、概述 首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层。      以太网(Ethernet)的数据帧在链路层      IP包在网络层      TCP或UDP包在传输层      TCP或UDP中…

计算机网络原理 - 网络层、链路层总结笔记

计算机网络原理 - 网络层、链路层 ##4.网络层 网络层主要是利用IP上的传输,在路由器中最高达到的层次为网络层,分组交换机只到链路层;IP准确来说不是一个主机的地址,而是一个接口的地址。 4.1 概述 网络层的作用:将分…

【计算机网络】链路层

链路层和局域网 1、链路层概述1.1链路层提供的服务1.2链路层在何处实现 2、差错检测和纠正技术2.1奇偶校验2.2检验和方法2.3循环冗余检测 3、多路访问链路和协议3.1信道划分协议3.2随机接入协议3.2.1时隙ALOHA3.2.2ALOHA3.2.3载波侦听多路访问CSMA3.2.4具有碰撞检测的载波侦听多…

BLE 链路层(LL)的数据结构

一 链路层的数据结构 在链路层上传输的数据格式如下图所示: 广播报文和数据报文都包含 Preamble(前导码), AccessAddress(接入地址),PDU(数据),CRC。其中Constant Tone Extension是可选的。 前导码接入地址PDU HeaderLengthpayloadMIC(可选…

计算机网络自顶向下-链路层

链路层和局域网 两台主机之间,数据报跨越一系列通信链路传输,一些是有线链路一些是无线链路,从源主机起,通过一些了分组交换机在目的主机结束。在链路层中有两种不同的链路层信道, 第一种是广播信道,这种信…

链路层信道详解

文章目录 一、链路层概述链路层提供的服务链路层在何处实现 二、差错检验和纠正技术奇偶校验检验和方法循环冗余检测 三、多路访问协议信道划分协议时分多路复用(TDM):频分多路复用(FDM):码分多址&#xff…

计算机网络-链路层

一、概述 1.相关概念 节点:运行链路层协议的任何设备。链路:沿着通信路径连接相邻几诶单的通信信道。 2.提供的服务 2.1 成帧 几乎所有的链路层协议都要将数据报用链路层帧封装起来。一个帧由一个数据字段和若干首部字段组成,其中网络层…

链路层协议

文章目录 1. 链路层协议1.1 链路层协议与IP协议 2. 以太网帧与IP数据包2.1 以太网帧2.1.1 实用地位2.1.2 以太网帧格式 2.2 串行接口链路层协议 S L I P2.2.1 实用地位2.2.2 链路帧格式 2.3 串行接口链路层协议 P P P2.3.1 实用地位2.3.2 PPP 帧格式 2.4 环回接口2.4.1 环回定义…

链路层---->MAC地址,链路层与网络层对比

链路层 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> . 链路层和网络层…

链路层数据帧格式总结

创作人QQ:851301776,邮箱:lfr890207163.com,欢迎大家一起技术交流,本博客主要是自己学习的心得体会,只为每天进步一点点! 个人座右铭: 1.没有横空出世,只要厚积一定发。 2.你可以学…

蓝牙相关学习:4.3.BLE协议链路层

BLE协议链路层 一、链路层二、信道分类跳频(Hopping) 三、状态机状态机的五种状态主还是从一对多 四、空口协议(Air Interface Protocol)空口包(Air Interface Packet)以白名单(White List&…

数据链路层简介

文章目录 一、基本概念二、主要功能1.封装成帧2.透明传输3. 差错控制4. 流量控制5. 链路管理认识MTU 三、相关协议1. PPP协议2. ARP协议 一、基本概念 链路(Link):一个节点到另一个相邻节点的一段物理线路,中间没有任何其他节点。链路由传输介质和物理设…

计算机网络 —— 链路层详解

文章目录 一,数据链路层基本概念1. 为什么要设置数据链路层2. 数据链路的主要功能1)链路管理2)帧同步3)流量控制4)差错控制5)透明传输6)寻址 3. 链路层的三个基本问题1)封装成帧2&am…

计算机网络---数据链路层

(一)基本概念 数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自物理层来的数据可靠地传输到相邻节点的目标机网络层。 换言之&#x…

计算机网络之链路层

两台主机之间,数据报跨越一系列通信链路传输,一些是有线链路一些是无线链路,从源主机起,通过一些了分组交换机在目的主机结束。在链路层中有两种不同的链路层信道, 第一种是广播信道,这种信道用于有线局域…

tcp粘包 java_详说tcp粘包和半包

tcp服务端和客户端建立连接后会长时间维持这个连接,用于互相传递数据,tcp是以流的方式传输数据的,就像一个水管里的水一样,从一头不断的流向另一头。 理想情况下,发送的数据包都是独立的, 现实要复杂一些&a…

php处理粘包,Swoole怎么处理粘包

什么是 TCP 粘包? TCP 粘包是指发送方发送的若干包数据 到 接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。 TCP 出现粘包的原因? 发送方:发送方需要等缓冲区满才发送出去,造成…

什么是粘包和拆包,Netty如何解决粘包拆包?

Netty粘包拆包 TCP 粘包拆包是指发送方发送的若干包数据到接收方接收时粘成一包或某个数据包被拆开接收。 如下图所示,client 发送了两个数据包 D1 和 D2,但是 server 端可能会收到如下几种情况的数据。 上图中演示了粘包和拆包的三种情况:…

tcp的拆包和粘包

tcp的拆包和粘包 简介 拆包和粘包是在socket编程中经常出现的情况,在socket通讯过程中,如果通讯的一端一次性连续发送多条数据包,tcp协议会将多个数据包打包成一个tcp报文发送出去,这就是所谓的粘包。而如果通讯的一端发送的数据…