数据链路层与网络协议全解析

目录

一、数据链路层概念

二、以太网

1、以太网概念

2、以太网帧格式

3、MAC地址的理解

三、MTU (最大传输单元)

1、理解MTU

2、MTU对IP协议影响

3、MTU对UDP协议影响

4、MTU对TCP协议影响

四、ARP协议作用及工作流程

[五、重要应用层协议DNS(Domain Name System)](#五、重要应用层协议DNS(Domain Name System))


一、数据链路层概念

从微观角度来看,关心两个节点之间具体怎么传输

一句话定位: 负责把网络层的数据包,在同一网段、相邻节点之间可靠 / 不可靠地传输


二、以太网

1、以太网概念

以太网是目前最主流、应用最广数据链路层 + 物理层技术标准,用于局域网内设备之间的通信,最常见到的插网线的网络就是以太网


2、以太网帧格式

  • 目的地址:长度6字节,接收方的MAC地址,用于定位目标地址
  • 源地址:长度6字节,发送方的MAC地址,用于标识发送设备
  • 类型:长度2字节,标识数据字段中承载的上层协议类型(如 IP、ARP、RARP)
  • CRC:长度4字节,校验码,用于检测在传输过程中是否发生错误
  • PAD(填充字段):18字节,用于将总长度补充到 46 字节

3、MAC地址的理解

  • 目前,MAC地址不需要 " 动态分配 ",也不需要 " NAT "
  • 长度为48位(6字节),一般用16进制数字加上冒号来表示,例如:
  • MAC地址在网卡出厂时就确定了,通常不能修改,MAC地址通常是唯一的(虚拟机中的MAC地址不是真实的,可能会冲突)
  • MAC地址还可以作为电脑的一个身份标识

注意:

IP 地址描述的路途是总体的起点和终点,而 MAC 地址描述的是每个区间的起点和终点

例如:购买车票从太原到洛阳,总体路线为 太原到郑州再到洛阳,IP地址一直为 太原 - 洛阳,而MAC地址在太原到郑州区间为太原-郑州,在郑州到洛阳区间为郑州-洛阳


三、MTU (最大传输单元)

1、理解MTU

MTU 是数据链路层对载荷长度的最大限制

  • 以太网帧中的数据长度规定最小为46字节,最大为1500字节,ARP数据包的长度不够46字节,要在后面填补充位
  • 最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU
  • 如果一个数据包从以太路由到拨号链路上,数据包长度大于拨号链路的MTU,则需要对数据包进行分片
  • 不同的数据链路层标准的MTU是不同的

2、MTU对IP协议影响

  1. **触发分片:**当 IP 数据包超过链路 MTU 时 IPv4 路由器会将其进行分片传输 ,这会降低效率和可靠性;而 IPv6 则禁止路由器分片,直接丢弃过大的数据包
  2. 重组失败:在进行传输之前进行分片,在到达对端后会根据16位标识、3位标志、13位片偏移进行数据重组,一旦这些小包中有一个丢失 ,接收端的重组就会失败,但 IP 层不负责重新传输数据

3、MTU对UDP协议影响

  1. **分片:**一旦UDP携带的数据报超过 1472(1500 - 20 ( IP 首部 ) - 8( UDP 首部 )),那么就会在网络层分成多个IP数据报
  2. **重组:**如果UDP数据报在网络层被分层,整个数据被丢失的概率就增大了

4、MTU对TCP协议影响

TCP对MTU做了大量适配,通过MSS(TCP能发送的最大纯数据段)

  • TCP的数据包也不能无限大,受限于MTU,TCP的单个数据报的最大消息长度称为MSS(Max Segment Size)

MSS协商:

  1. TCP建立连接的过程中进行协商,最理想情况下MSS正好是在IP不会分片处理的最大长度(受限于链路层的MTU)
  2. 双方在发送SYN的时候在TCP头部写入自己可以支持的MSS值
  3. 从中选取较小的MSS值作为最终MSS

影响:

  1. 自动分片,在正常情况下不会出现 IP 分片,应用层数据在TCP层自动拆成多个MSS包
  2. MTU太小的话会导致数据吞吐量变小

四、ARP协议作用及工作流程

ARP协议(Address Resolution Protocol)是介于数据链路层和网络层的协议,功能属于网络层,但报文封装在以太网帧里,核心:IP地址 -> MAC地址的映射协议,只在同一局域网内(同一广播域内)有效

作用:

ARP协议建立了主机IP地址和MAC地址的映射关系

  • 在网络通信时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址
  • 数据包首先是被网卡接收到再去处理上层协议的,如果收到的数据包硬件地址与本机不符,则会直接丢弃,因此在通信前必须获得目的主机的硬件地址

ARP协议工作流程:

  1. 源主机发出ARP请求,询问 "IP地址是192.168.100.1的主机硬件地址是多少",并将这个请求广播到本地网段
  2. 目的主机接收到广播的ARP请求,发现其中的IP地址与本机的IP地址相符,则发送一个ARP应答数据包给源主机(包中包含自己的硬件地址)
  3. 每台主机都维护一个ARP缓存表,缓存表中有一表项为过期时间,如果超时再次访问,那么还需要发ARP请求来获取主机的硬件地址

五、重要应用层协议DNS(Domain Name System)

DNS 是一整套从域名映射到 IP 的系统,域名是通过一串单词,表示一个IP地址,像:

早期的DNS是一个文本文件(.host),里面存放着主机名和IP地址之间的关系,但是不方便维护和更新(依旧存在)

现在使用DNS服务器代替文件

DNS服务器会承担非常高的并发量?实际解决:

  1. 本机在DNS解析后会做缓存(将域名对应的IP记录到本地硬盘中),在短时间内不需要再次访问DNS服务器
  2. DNS系统是分布式的,全世界有好多DNS的服务器,并不是只有一个

相关推荐
乾元3 小时前
合规自动化:AI 在资产发现与数据合规治理中的“上帝之眼”
运维·网络·人工智能·安全·web安全·机器学习·安全架构
落羽的落羽3 小时前
【C++】深入浅出“图”——最短路径算法
java·服务器·开发语言·c++·人工智能·算法·机器学习
之歆3 小时前
Linux系统管理与运维基础
linux·运维·服务器
人间打气筒(Ada)3 小时前
SQL Server 之创建和管理数据表
运维·服务器·数据库·windows·sql语句·sql server·windows server
专业开发者3 小时前
Wi-Fi 技术学习:802.11ax MU-PPDU的帧格式与字段解析全解
网络·学习
网云工程师手记3 小时前
防火墙安全区域划分规范与接口配置实操指南
运维·服务器·网络·安全·网络安全
Howrun7773 小时前
Linux_UDP聊天服务器
linux·服务器·udp
dozenyaoyida3 小时前
BLE传输WiFi列表的问题分析
网络·经验分享·物联网·wifi·中文乱码·json解析·ble
灰子学技术3 小时前
Envoy与Istio HTTP流量故障转移机制介绍
网络·网络协议·http·云原生·istio