【计算机网络】数据链路层深度解析
- 概述
- 三个重要问题
- 封装成帧
- 差错检测
- 可靠传输
- 使用广播信道的数据链路层
- 数据链路层的互连设备
- 媒体接入
- MAC地址
- 集线器与交换机区别
- 以太网交换机生成树协议STP
概述
- 链路就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。
- 数据链路是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路
数据链路层以帧为单位传输和处理数据。
三个重要问题
封装成帧
指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。
帧头和帧尾中包含有重要的控制信息,其作用·之一是帧定界
透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
- 对于面向字节的物理链路使用字节填充的方法实现透明传输
- 对于面向比特的物理链路使用比特填充的方法实现透明传输
为了提高帧传输效率,应当使帧的数据部分的长度尽可能大一些。但是设计了最大传输单元为MTU
差错检测
在一段时间内,传输错误的比特占所传输比特总数的比特率称为误码率BER
使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。
但是检错码只能检测出错误,但是不能定位错误。
-
奇偶校验
在待发送数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中的“1”的个数为奇数(奇校验)或偶数(偶校验)
如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码
如果有偶数个位发生误码,则奇偶性不发生变化,不可以检查出误码
因此其漏检率很高,一般不会采用。 -
循环冗余校验CRC
其漏检率很低,在数据链路层中广泛使用。
收发双方约定好一个生成多项式G(x)
发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据后面一起传输。
接收方通过生成多项式来计算收到的数据是否产生了误码。
可靠传输
- 基本概念:比特差错只是传输差错的一种
从整个计算机网络体系结构来说,传输差错还包括分组丢失,分组失序,分组重复。这些一般不会出现在数据链路层,而是出现在其上层。
可靠传输服务并不仅仅局限于数据链路层,其他各层均可选择实现可靠传输。
- TCP向其上层提供面向连接的可靠传输服务
- UDP向其上层提供无连接,不可靠传输服务
- IP向其上层提供无连接,不可靠传输服务
一般情况下,有线链路的误码率比较低,为了减少开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。
无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务。
- 点对点协议-ppp协议是目前使用最宽泛的点对点数据链路层协议。
主要由对各种协议数据报的封装方法(封装成帧)、链路控制协议LCP 用于建立配置以及测试数据链路的连接、一套网络控制协议NCPs 其中的每一个协议支持不同的网络层协议
使用广播信道的数据链路层
数据链路层的互连设备
数据链路层的广播信道与互连设备
在网络通信的模型中,数据链路层位于网络层和物理层之间,负责在两个相邻的网络节点之间传输数据帧。数据链路层的主要任务包括错误检测和纠正、流量控制以及链路管理。在这一层中,广播信道和互连设备扮演了至关重要的角色,这两者对于数据链路层的工作效率和网络的可靠性都有着直接影响。
-
广播信道
广播信道是一种特殊的信道类型,它允许一个节点将数据帧发送到同一网络上的所有其他节点。广播信道在局域网(LAN)中非常常见,例如以太网就是一个典型的广播信道。通过广播,发送端不需要知道接收端的具体位置或地址,它只需将数据帧广播到网络上,所有连接到该网络的节点都能够接收到这个数据帧。 -
信道的优点包括:
简化通信:广播信道使得网络通信变得更为简单,因为发送端不需要指定特定的接收节点地址。
降低成本:在许多情况下,广播信道可以降低网络设备的成本,因为它们不需要复杂的寻址或路由功能。
快速传播:广播可以确保数据帧迅速传播到网络上的所有节点。
广播信道的挑战包括:
数据碰撞:在广播信道中,多个节点可能同时发送数据,导致数据碰撞。这需要通过碰撞检测和回退机制(如以太网的CSMA/CD)来解决。
带宽竞争:广播信道中的所有节点共享带宽,当网络流量增加时,可能会导致网络拥堵。
数据链路层的互连设备
数据链路层的互连设备用于连接和管理不同网络节点之间的通信。这些设备包括集线器、交换机和网桥,每种设备都有其独特的功能和适用场景。 -
集线器(Hub):
集线器是最基本的互连设备,它简单地将接收到的数据帧广播到所有端口。集线器没有能力识别数据帧的目标地址,因此它只能通过广播的方式进行通信。虽然集线器成本低,但由于它不能减少数据碰撞和带宽竞争,因此在现代网络中逐渐被淘汰。 -
交换机(Switch):
交换机是比集线器更先进的互连设备。它能够根据数据帧的目的MAC地址将数据帧转发到特定的端口,从而减少了广播域的大小。交换机通过维护一个MAC地址表来记录网络上每个节点的地址,并智能地转发数据。这大大提高了网络的效率和带宽利用率。 -
网桥(Bridge):
网桥用于连接两个或多个网络段,并转发数据帧。与交换机类似,网桥可以减少网络中的广播流量,但它主要用于将不同的局域网连接在一起。网桥根据MAC地址表来判断数据帧的转发方向,并能够有效地分割和管理网络流量。 -
互连设备的作用包括:
减少广播风暴:交换机和网桥通过减少广播域来降低网络中的广播风暴,从而提高网络性能。
提高带宽利用率:交换机通过单播转发数据帧,避免了带宽资源的浪费。
提供网络隔离:网桥可以将不同的网络段隔离开来,增强网络的安全性和管理性。
媒体接入
媒体接入控制-动态接入控制-随机接入
- CSMA是指载波监听多址接入,并不使用确认机制
- CSMA/CD是指载波监听多址接入/碰撞检测,是对CSMA的改进,是早期共享以太网的信道访问控制协议,并不使用确认机制。
- CSMA/CA是指载波监听多址接入/碰撞避免,是802.11局域网采用无线信道访问控制协议。802.11局域网在使用CSMA/CA的同时,还使用停止-等待协议。这是因为无线信道的通信质量远不如有线信道,因此无线站点每发送完一个数据帧后,要等到收到对方的确认帧后才能继续发送下一帧。
- CDMA是指码分多址,属于静态划分信道,是物理层的信道复用技术 ,不属于MAC协议。
MAC地址
MAC地址是以太网的MAC子层所使用的地址(数据链路层)
当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,每一个主机都必须能有唯一的标识,即一个数据链路层地址。
- 在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC,因此这类地址被称为MAC地址
- MAC地址被固化在网卡的电可擦可编程只读存储器EEPROM中,因此MAC地址被称为硬件地址,MAC地址有时也被称为物理地址。
IP地址是TCP/IP体系结构网际层所使用的地址
IP地址是因特网上的主机和路由器所使用的地址,用于标识两部分信息
-
网络编号:标识因特网数以百万计的网络
主机编号:标识同一网络上不同主机(或路由器) -
数据包转发过程中IP地址与MAC地址变化情况:
源IP地址和目的IP地址保持不变
源MAC地址和目的MAC地址逐个链路(或逐个网络)改变。
ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备所分配的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址。
源主机在自己的ARP高速缓存表中查找目的主机的IP地址所对应的MAC地址,如果找到了则可以封装MAC帧进行发送,找不到则发送ARP请求(封装在广播MAC帧中)
目的主机收到ARP请求后,将源主机IP地址与MAC地址记录到自己的ARP高速缓存表中,然后给源主机发送ARP响应,ARP响应包含有目的主机IP地址和MAC地址。
源主机收到ARP响应后,将目的主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后就可以封装之前想发送的MAC帧并发送给目的主机。
- ARP的作用范围:逐段链路或逐个网络使用
集线器与交换机区别
-
集线器HUB
早期以太网的互连设备
工作在OSI体系结构的物理层
对接收到的信号进行放大、转发
使用集线器作为互连设备的以太网属于共享总线式以太网。集线器互连起来的所有主机共享总线宽带,属于同一个碰撞域和广播域。 -
交换机SWITCH
目前以太网中使用最广泛的互联设备
工作在OSI体系结构的数据链路层(也包括物理层)
根据MAC地址对帧进行转发
使用交换机作为互连设备的以太网,称为交换式以太网。交换机可以根据MAC地址过滤帧,即隔离碰撞域。
交换机的每一个接口是一个独立的碰撞域
交换机隔离碰撞域但是不隔离广播域(VLAN除外)
以太网交换机生成树协议STP
生成树协议STP可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题
不论交换机之间采用怎么样的物理连接,交换机都能自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树形的,最终生成的树形逻辑拓扑要确保连通整个网络,当首次连接交换机或网络物理拓扑发生变化时,交换机都将进行生成树的重新计算。
- 交换机端口类型:
- Access:
连接用户计算机
只能属于一个VLAN
PVID与端口所属VLAN的ID相同,默认为1
接收处理方法:一般只接收未打标签的普通以太网帧,并给其打标签。
发送处理方法:如果帧中的VID等于端口PVID,则去掉标签并转发,否则丢弃。 - Trunk
交换机之间或交换机与路由器之间的连接
可以属于多个VLAN
用户可以设置PVID,默认为1
接收处理方法:接收已打标签的帧,接收未打标签的帧,根据端口的PVID值给帧打标签
发送处理方法:帧中VID等于PVID,去掉标签再转发。帧中VID不等于端口PVID,直接转发 - Hybrid
交换机之间、交换机与路由器之间、交换机与用户计算机之间的连接
可以属于多个VLAN
用户可以设置PVID,默认为1
接收处理方法:接收已打标签的帧,接收未打标签的帧,根据端口的PVID值给帧打标签
发送处理方法:查看数据帧中的VID是否在端口的“去标签”列表中,如果存在,则去掉标签再转发。如果不存在直接转发。
相关文章:

【计算机网络】数据链路层深度解析
概述三个重要问题封装成帧差错检测可靠传输 使用广播信道的数据链路层数据链路层的互连设备 媒体接入MAC地址集线器与交换机区别以太网交换机生成树协议STP 概述 链路就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。数据链路是指把实现通信…...

【基于轻量型架构的WEB开发】【章节作业】
作业1 mybatis核心对象、配置文件和映射文件 一. 单选题(共10题,50分) 1. (单选题)以下关于<select>元素及其属性说法错误的是()。 A. <select>元素用来映射查询语句,它可以帮助我们从数据库中读取出数据,并组装数据给业务开发…...

一张图解析FastAdmin中的表格列表(bootstrap-table)的功能(备份)
功能描述 请根据图片上的数字索引查看对应功能说明。 1.菜单名称和描述 默认生成的CRUD是没有菜单名称和描述显示的,如果需要显示则可以修改权限管理->菜单规则,给对应菜单的添加上备注信息后即可显示,支持HTML 2.TAB过滤选项卡 在一键…...

【数据结构】假设二叉树采用二叉链表存储,编写一棵二又树中序遍历的非递归算法。
编程题: 假设二叉树采用二叉链表存储,编写一棵二又树中序遍历的非递归算法。 分析: 算法描述: 非递归中序遍历二叉树的算法使用栈来辅助实现。首先,从根节点开始,沿着左子树不断向下, 将每个节点压入栈中。当到达最左端节点后,开始出栈并访问节点,接着转向右子树,重…...

李宏毅结构化学习 02
文章目录 一、上篇博文复习二、Separable Case三、Non-separable Case四、Considering Errors五、Regularization六、Structured SVM七、Cutting Plane Algorithm for Structured SVM八、Multi-class and binary SVM九、Beyond Structured SVM 一、上篇博文复习 图中x表示输入的…...

Android AlertDialog圆角背景不生效的问题
一行解决: window?.setBackgroundDrawableResource(android.R.color.transparent) 原文件: /*** Created by Xinghai.Zhao* 自定义选择弹框*/ SuppressLint("InflateParams", "MissingInflatedId") class CustomDialog(context: Context?) : AlertDia…...

探讨基于AI技术的相亲交友系统设计与实现
摘要 随着人工智能技术的发展,相亲交友领域也开始引入AI技术来改善用户体验,提高匹配成功率。本文探讨了如何利用AI技术设计并实现一个智能化的相亲交友系统,该系统能够根据用户的行为数据和个人偏好,自动推荐合适的潜在伴侣。通…...

(2024.9.20)Endnote插入的参考文献字号太大怎么办?
1、序言 常常写论文的人都知道,插入参考文献时,格式调整到让人头大。Endnote的使用大大方便了我们的同时,也意味着我们要学习软件的使用方法。最近重新安装了一下Endnote,插入的文献字体大小就像抽风了一样。在还没有写完文章之前…...

DataGrip在Windows和MacOS平台上的快捷键
0. 背景信息 No.说明1测试DataGrip版本号 : 2024.2.2 1. Windows下快捷键 2. MacOS下快捷键...

CSS---序号使用css设置,counter-reset、counter-increment、content配合实现备注文案的序号展示
直接上代码,全代码copy即可使用! <template><div class"reminder"><span class"Bold_12_body" style"line-height: 8vw">温馨提示:</span><br /><div class"rule-container"…...

Liquor 表达式引擎基本使用
引入依赖 <dependency><groupId>org.noear</groupId><artifactId>liquor-eval</artifactId><version>1.2.7</version> </dependency>liquor 表达式引擎(ExpressionEvaluator)支持 java 所有的类型、及…...

AI美女屠版小红书火了,被当真人推流,颜值博主慌了
最近,微信群里有一条炸裂的聊天记录,传得沸沸扬扬。 聊天记录原主声称,自己通过flux文生图模型跑出AI美女照片,发在小红书上不仅没有被平台标为AI,还成功获得流量扶持。 随后,原主就附上了自己养的1327个小…...

本地搭建我的世界服务器(JAVA)简单记录
网上参考教程挺多的,踩了不少坑,简单记录一下,我做的是一个私人服务器,就是和朋友3、4个人玩。 笨蛋 MC 开服教程 先放一个比较系统和完整的教程,萌新可用,这个教程很详细,我只是记录一下自己的…...

哪个快?用300万个图斑测试ArcGIS Pro的成对叠加与经典叠加
点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放 点击学习——>遥感影像综合处理4大遥感软件ArcGISENVIErdaseCognition 在使用ArcGIS Pro的过程中,很多朋友发现,Pro有个成对叠加工具集。很多…...

超详细!百分百安装成功pytorch,建议收藏
文章目录 一、Anaconda安装1.1下载anaconda1.2配置Anaconda环境1.3验证anaconda是否安装成功 二、查看电脑显卡三、更新显卡驱动3.1下载驱动3.2、查看显卡驱动版本 四、cuda安装4.1CUDA下载4.2CUDA环境配置4.3验证CUDA是否安装成功 五、安装pytorch4.1下载pytorch5.2验证pytorc…...

web基础—dvwa靶场(四)File Inclusion
File Inclusion(文件包含) 有些 web 应用程序允许用户指定直接文件流的输入,或允许用户将文件上载到服务器。稍后 web 应用程序访问 web 应用程序上下文中用户提供的输入。通过这样种操作,web 应用程序允许恶意文件执行。 如果选择要包含的文件是目标计…...

【Python】练习:控制语句(二)第1关
第1关:分支结构基础实训 第一题第二题第三题第四题(※)第五题(※)第六题第七题 第一题 #第一题 for temp in [-280, -100, 0, 20, 120, 200]:#请在下面编写代码# ********** Begin ********** #if temp>-273.15:F9/…...

Vue3 : Pinia的性质与作用
目录 一.性质 二.作用 三.Pinia 的核心概念 四.使用 1.count.ts 2.count.vue Vue 3 中 Pinia 是一个专为 Vue 3 设计的状态管理库,它旨在提供一种简单、直观的方式来管理应用的状态。 一.性质 1.集成性:Pinia 是 Vue 3 官方推荐的状态管理库&…...

对接金蝶云星空调用即时库存信息查询API
文章目录 前言准备工作获取第三方授权权限与授权配置信息集成金蝶云SDK调用实现备注前言 对于有自己商品信息管理后台并且使用金蝶ERP系统管理物料的商家来说,将金蝶上物料的库存信息同步到管理后台就可以不用去金蝶上确认库存了,可以大大简化管理后台的库存变更工作,这篇文…...

pretrain Llama3
导入模块:导入了一些必要的模块,包括数学计算、时间处理、文件操作、深度学习框架(如torch)、以及自定义的LLama Transformer模型相关内容。 I/O配置:定义了模型输出路径、评估与日志记录的间隔步数、批次大小、最大序…...

[附源码]SpringBoot+VUE+Java实现人脸识别系统
今天带来一款优秀的项目:java人脸识别系统源码 。 系统采用的流行的前后端分离结构,内含功能包括 “人脸数数据录入”,“人脸管理”,“摄像头识别” 如果您有任何问题,也请联系小编,小编是经验丰富的程序员…...

数据库_解决SQL Server数据库log日志过大,清理日志文件方法
SQL Server数据库日志文件过大的原因主要有几个方面: 事务日志记录了所有对数据库进行修改的操作,如插入、更新和删除,这些操作会不断增加日志文件的大小。 长时间运行且未正确结束的事务会持续占用事务日志中的空间,导致日志文…...

引领长期投资新篇章:价值增长与财务安全的双重保障
随着全球金融市场的不断演变,长期投资策略因其稳健性和对价值增长的显著推动作用而日益受到投资者的重视。在这一背景下,Zeal Digital Shares(ZDS)项目以其创新的数字股票产品,为全球投资者提供了一个全新的长期投资平…...

灾备技术演进之路 | 虚拟化无代理备份只能挂载验证和容灾吗?只能无代理恢复吗?且看科力锐升级方案
灾备技术演进之路系列 虚拟化备份技术演进 摆脱束缚,加速前行 无代理备份仅能挂载/恢复验证吗? ——科力锐极简验证演练无代理备份来了 无代理备份无法应对平台级故障吗? ——科力锐应急接管无代理备份来了 无代理备份仅能同平台挂载吗&a…...

PowerShell install 一键部署Oracle23ai
Oracle23ai前言 Oracle Database 23ai Free 让您可以充分体验 Oracle Database 的能力,世界各地的企业都依赖它来处理关键任务工作负载。 Oracle Database Free 的资源限制为 2 个 CPU(前台进程)、2 GB 的 RAM 和 12 GB 的磁盘用户数据。该软件包不仅易于使用,还可轻松下载…...

【Kubernetes】常见面试题汇总(二十五)
目录 73.我们所有人都知道,从单片到微服务的转变解决了开发方面的问题,但却增加了部署方面的问题。公司如何解决部署方面的问题? 74.考虑一家拼车公司希望通过同时扩展其平台来增加服务器数量,公司如何有效地实现这种资源分配? …...

【踩坑】装了显卡,如何让显示器从主板和显卡HDMI都输出
转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 背景介绍 装了显卡后,开机默认是从显卡的HDMI输出,但这很不方便。如何让视频仍然从主板输出?或者说让显卡HDMI和主板…...

spring boot启动报错:so that it conforms to the canonical names requirements
springboot 2.x的版本中对配置文件中的命名规范有了强制性的要求,如下图所示中的dataSource属性属于驼峰格式,但是在springboot 2.x中不允许使用驼峰形式。 根据错误提示可知将其使用 - 来分割即可 错误信息的含义:“Canonical names should…...

unix中如何查询和修改进程的资源限制
一、前言 一个进程在运行时,会用到各种资源,比如cpu的使用时间、内存空间、文件等等。那么,一个进程能够占用多少资源呢?cpu使用的时间有多长?进程空间有多大?能够创建多少个文件?这个就是本文…...

【LeetCode每日一题】——401.二进制手表
文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 回溯 二【题目难度】 简单 三【题目编号】 401.二进制手表 四【题目描述】 二进制手表顶部…...