当前位置: 首页 > news >正文

【网络原理】数据链路层

目录

一. 以太网

二. 以太网数据帧

三. MAC地址

四. MTU

 五. ARP协议

 六. DNS


 

一. 以太网

以太网是一种基于有线或无线介质的计算机网络技术,定义了物理层和数据链路层的协议,用于在局域网中传输数据帧。

二. 以太网数据帧

1)目标地址

 接收方的MAC地址(6个字节)

2)源地址

 发送方的MAC地址(6个字节)

3)类型

 现在常用的类型是DIX标准,用于标识上层协议

  • IPv4:0x0800
  • ARP:0x0806
  • IPv6:0x86DD
  • RARP:Ox8035

可以直接支持多种上层协议,无需额外封装。 

4)数据

 数据大小的范围:46~1500字节

  • 最小46字节:若上层数据不足,需填充(Padding)至46字节,确保帧总长≥64字节。
  • 最大1500字节:避免过长帧导致缓冲区溢出或延迟过高(称为最大传输单元MTU)。

5)校验(CRC)

 循环冗余校验,判断传输的数据是否正确


三. MAC地址

MAC地址是数据链路层中用于唯一标识网络设备的物理地址,确保数据在同一局域网中准确传输到目标设备 ,类似于身份证号

  • MAC地址通常使用16进制表示,字节之间使用—进行分割
  • 从出厂的时候,就已经规定好了,不能进行修改,由于这种静态分配和不可变性,一般使用MAC地址作为机器唯一标识
  • 全球唯一性:由IEEE统一分配,确保每个设备的MAC地址不重复

IP地址和MAC地址的区别 

MAC地址的作用和IP地址类似,都是用于定位设备

MAC地址和IP地址是两个独立的地址体系

  • IP地址侧重于全局的转发,从起到到终点整个转发的过程,通过路由表一直查询IP地址完成通信
  • MAC地址侧重于局部的转发,两个相邻设备之间的通信

如果是公网传播,不涉及NAT机制,那么以太网数据帧的IP部分一直不回改变

但是每经过一个路由器或交换机,以太网帧头中的源MAC地址和目的MAC地址都会发生改变


四. MTU

 MTU是网络通信中的一个关键参数,用于限制数据链路层可承载的网络层数据包的最大大小

在不进行分片的前提下。某一个网络接口可以传输的最大数据量,MTU对网络传输效率有显著的影响

较大的MTU可减少头部开销,提高吞吐量;较小的MTU可降低延迟,适合实时通信。

以太网数据帧对载荷部分,具有一定的要求,最小位46字节,最大是1500字节,46字节是因为ARP最小是46字节,1500字节(实际不到)是硬件设备的限制


MTU对IP协议的影响(分包)

若IP数据包大小超过路径MTU,路由器会分片(Fragmentation),接收端再重组。

注意:如果出现了小包的丢失,就会导致整个的重组失败,但是IP层不会负责重发


MTU对UDP协议的影响

UDP数据报如果携带的数据超过了1472字节(1500-20(IP首部)-8(UDP首部)),那么就会把这个数据在网络层分成多个IP数据包进行传输,如果小包丢失了,数据重组失败,但是IP层不会重发,就会导致整个数据丢包的概率增加


MTU对TCP协议的影响

 这里要介绍一个新的概念:MSS

MSS:TCP协议中一次可传输的最大应用层数据量(不含TCP和IP头部)

TCP相对于UDP而言,会在建立连接的时候,进行MSS协商,在建立连接的时候,客户端发送SYN请求报文的时候,会携带MSS值,服务器会根据收到的MSS值和本端的MTU值,取其中的最小值,告知给客户端,客户端返回ACK中确认协商后的MSS值,这就是MSS协商

如果应用层的数据超过了MSS值,会在传输层进行分段,每个段的大小不会超过MSS值

由于网络传输的复杂性,这个MSS并不是一味不变,会动态调整MSS以适配路径最小MTU。


 在数据链路层中,不止存在以太网协议,还存在其他协议,协议不同,MTU也是不同的


 五. ARP协议

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

目的主机硬件地址的重要性 

  • 在网络通信中,源主机知道目的主机的IP地址和端口号,但是不知道目的主机的硬件地址
  • 如果不知道目的主机的硬件地址,数据到达不了网卡,也意味着上层协议无法收到数据
  • 所有在通讯前必须要知道,目的主机的硬件地址

 如何得知硬件地址?(ARP协议)

源主机发送ARP请求(广播发送),广播询问这个IP地址的硬件地址是什么?

目的主机收到这个请求之后,发现这个IP地址对应的是自己,那么就会将自己的主机硬件地址发送给源主机(ARP应答包)

每台主机都维护⼀个ARP缓存表,缓存表中的表项有过期时间(⼀般为20分 钟),如果20分钟内没有再次使⽤某个表项,则该表项失效,下次还要发ARP请求来获得⽬的主机的硬件地址


 六. DNS

DNS也就域名解析系统,在网络通信中,使用IP地址来标识一个网络设备的位置,一串点分十进制的数字,是不好被记忆的,就使用一些可读性好的单词(域名),来标识一个IP地址

这种从域名到IP地址的解析过程,就是DNS

  • 起初域名和服务器没有这么多,使用hosts文件进行管理,每次访问时,在hosts文件中,找到这个域名对应的IP地址,然后进行访问
  • 随着域名和服务器越来越多,使用hosts文件进行管理,维护起来很麻烦,于是就使用一个专门的服务器提供这个域名解析的服务,主机每次访问一个服务器之前,都要先访问一下这个DNS服务器,进行域名解析操作,然后拿着IP地址,去访问

最开始的这些DNS服务器,也称为根域名服务器(数量有限),全世界同时有这么多人同时上网,根域名服务器肯定承载不住,于是各个国家的运营商,就根据根域名服务器,搭建出非常多的镜像DNS服务器,用户一般访问的时候,是访问附近的镜像DNS服务器

相关文章:

  • 一文了解B+树的删除原理
  • SpringBoot 整合 Langchain4j 构建AI智能体应用
  • 英语时态--中英文对“时间”的不同理解
  • 在Python中计算函数耗时并超时自动退出
  • 总结C/C++中程序内存区域划分
  • C++.IP协议通信
  • 【数据结构】前言
  • DEEPPOLAR:通过深度学习发明非线性大核极坐标码(1)
  • Day 5:Warp高级定制与自动化
  • Unity3D仿星露谷物语开发42之粒子系统
  • OBS studio 减少音频中的杂音(噪音)
  • OSCP备战-kioptrixvm3详细解法
  • CMOS内存的地址空间在主内存空间中吗?
  • sunset:Solstice靶场
  • C++学习之STL学习
  • PowerShell 脚本中文乱码处理
  • 力扣热题100之合并两个有序链表
  • 软件架构师知识点总结
  • Java常用类-比较器
  • 华为云Flexus+DeepSeek征文|DeepSeek-V3/R1商用服务开通教程以及模型体验
  • 安徽省委副秘书长、省委政研室主任余三元调任省社科院院长
  • 专访|茸主:杀回UFC,只为给自己一个交代
  • 【社论】个人破产探索,要守住“诚实而不幸”的底线
  • 盖茨说对中国技术封锁起到反作用
  • 《AI×SCIENCE十大前沿观察》9:合成数据和数据基础设施
  • 第1现场 | 印巴停火次日:当地民众逐渐恢复正常生活