当前位置: 首页 > 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服务器

http://www.xdnf.cn/news/397837.html

相关文章:

  • 场馆订 场馆预订平台 数据库设计
  • 如何构建通用深度反思(deep-research)能力的Agent?
  • 5.串口的输入输出
  • redis数据结构-04 (HINCRBY、HDEL、HKEYS、HVALS)
  • 牛客周赛 Round 92-题解
  • Java并发编程实战
  • 简单的强化学习举例
  • 笔试阶段性心得总结
  • 模块化编程
  • ACM模式手动构建二叉树
  • 算法导论第9章思考题
  • 深入理解深度循环神经网络(Deep RNN)
  • Beta分布--贝叶斯建模概率或比例常用分布
  • eNsp的使用
  • 数据结构【二叉树的遍历实现】
  • 免费公共DNS服务器推荐
  • 如何读论文【论文精读】
  • opencascade.js stp vite webpack 调试笔记
  • C++ STL编程 vector空间预留、vector高效删除、vector数据排序、vector代码练习
  • 风扇接口
  • 自制PowerPoint荧光笔插件指南
  • 集合(超详细)
  • 【人工智能】DeepSeek的崛起-下一代AI模型的秘密武器
  • 微调自qwen3的无审查大模型(需谨慎使用):Josiefied-Qwen3-8B-abliterated-v1
  • LeetCode 热题 100 101. 对称二叉树
  • 单链表C语言实现(付代码全)
  • 进程检测与控制
  • C++学习之STL学习
  • 联合类型的逻辑或关系与类型保护
  • 关于我在实现用户头像更换时遇到的图片上传和保存的问题