计算机网络(三)数据链路层

数据链路层

基本概念

数据链路层功能

在物理层提供服务的基础上向网络层提供服务,主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改在为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路

为网络层提供服务

  1. 无确认的无连接服务: 源机器发送数据帧时不需要线建立链路连接,目的机器收到数据帧时不需发回确认。对丢失的帧,数据链路不负责重发而交给上层处理。适用于实时通信或误码率较低的通信信道
  2. 有确认的无连接服务:源机器发送数据帧时不需要建立链路连接,但目的机器收到数据帧时必须发回确认。源机器在所规定的时间内收到确定信号时,就重传丢失的帧,以提高传输的可靠性
  3. 有确认的面向连接服务:帧传输过程分为三个阶段:建立数据链路、传输帧、释放数据

帧定界

两个工作站之间传输时,必须将网络层的分组封装成帧,以帧的格式进行传送。将一段数据的前后分别添加首部和尾部,就构成了

首部和尾部中含有很多控制信息,它们的一个重要作用时确定帧的界限,即为帧定界

信道划分介质访问控制:

一种在数据链路层用于控制多个设备如何共享单个通信信道的协议。它的主要目的是通过划分信道资源,使得多个设备能够有序、高效且公平地访问通信介质,从而减少或避免数据冲突和碰撞

在这里插入图片描述

频分多路复用:

在这种技术中,通信信道被划分为多个频率不同的子信道,每个子信道分配给一个设备或一个通信会话。这样,不同的设备可以在不同的频率上同时传输数据,而不会相互干扰

时分多路复用:

时分多路复用将通信信道的时间划分为固定长度的时隙,每个设备在分配给它的时隙中发送数据。这种方法确保了每个设备都有平等的机会访问信道

码分多路复用:

码分多路复用通过为每个设备分配一个唯一的码片序列来实现多路访问。每个设备使用其码片序列对数据进行编码,这样多个设备可以在同一时间、同一频率上发送数据,而接收方能够使用相应的码片序列来分离出原始数据

局域网

局域网(Local Area Network,简称LAN)是一种在一个较小的地理范围内(如家庭、办公室、学校或工厂等)将计算机和其他网络设备连接在一起,以便它们可以相互通信和共享资源的计算机网络。局域网通常使用有线或无线技术进行连接,常见的有线技术包括以太网(Ethernet)、光纤分布式数据接口(Fiber Distributed Data Interface,简称FDDI)等,而无线技术则包括Wi-Fi(基于IEEE 802.11标准)等

局域网特点

  1. 覆盖范围有限:局域网的覆盖范围通常局限在几米到几公里之内。
  2. 高数据传输速率:局域网内部的数据传输速率通常很高,可以达到1 Gbps、10 Gbps甚至更高。
  3. 低延迟:由于网络范围较小,数据在网络内部的传输延迟较低。
  4. 高可靠性:局域网通常采用专用媒介,如电缆或无线频谱,因此网络的可靠性较高。
  5. 易于管理和维护:局域网的管理和维护相对简单,因为它们通常由单一组织或个人控制。
  6. 安全性:局域网可以通过防火墙、入侵检测系统和其他安全措施来保护内部数据不受外部威胁

拓扑结构

局域网的拓扑结构描述了网络设备(如计算机、交换机、路由器等)的物理或逻辑布局

传输介质

局域网可以使用多种传输介质来传输数据,通常为双绞线,同轴电缆,光纤,无线电波

介质访问控制

介质访问控制(MAC)方法决定了设备如何访问传输介质

  1. 载波侦听多路访问/碰撞检测(Carrier Sense Multiple Access with Collision Detection, CSMA/CD): 以太网使用的一种协议,设备在发送数据前先检测介质是否空闲,如果检测到碰撞,则停止发送并等待一段随机时间后重试
  2. 载波侦听多路访问/碰撞避免(Carrier Sense Multiple Access with Collision Avoidance, CSMA/CA): 通常用于无线网络,设备在发送数据前先发送一个请求发送(RTS)帧,以避免碰撞
  3. 令牌传递(Token Passing): 网络中有一个特殊的令牌在设备之间传递,只有持有令牌的设备才能发送数据

以太网

以太网(Ethernet)是一种广泛使用的局域网技术,它支持多种传输介质和网卡(网络接口卡)类型

网卡(网络接口卡)

计算机与外界局域网的连接时通过主机箱内插入的一块网络接口板(Adapter,Network Interface Card)实现的。网卡上装有处理器和存储器,时工作子啊数据链路层的网络组件。

网卡是局域网中连接计算机和传输介质的接口,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码及数据缓存功能

全世界的每块网卡在出厂时都有一个唯一的代码,成为访问控制(MAC)地址,这个地址用于控制主机在网络上的数据通信。数据链路层设备(网桥、交换机等)都使用各个网卡的MAC地址

以太网的MAC帧

在这里插入图片描述

帧头:

  1. 前导码(Preamble):由64位(8字节)的10101010…101010比特序列组成,用于同步接收方的时钟
  2. 帧开始定界符(Start Frame Delimiter, SFD):由8位的10101011组成,标志帧的开始。
    目的地址(Destination Address):6字节,指定帧的接收者。这可以是单个设备的MAC地址,或者是一个多播地址(前24位为01)或广播地址(全为1)
  3. 源地址(Source Address):6字节,指定帧的发送者的MAC地址
  4. 长度/类型(Length/Type):2字节,指示载荷的字节长度(当值小于1536时)或帧的类型(当值大于1536时,如IPv4、ARP等)

数据(载荷):

载荷部分是帧的实际数据,长度在46到1500字节之间。如果数据不足46字节,发送方会在数据后面填充额外的字节以确保最小帧长度。最大帧长度是1518字节,包括帧头、载荷和帧尾

帧尾:

FCS(Frame Check Sequence): 4字节,是使用循环冗余校验(CRC)算法计算出来的一个值,用于检测帧在传输过程中是否出现了错误

有固定基础设施无线局域网:

  1. 定义:I-WLAN是一种无线网络,其中包含一个或多个无线接入点(APs)作为中心节点,连接有线网络基础设施,如路由器、交换机等
  2. 特点:
    需要固定的网络基础设施,如APs、路由器等
    提供较大的覆盖范围和更高的数据传输速率
    支持无缝漫游,用户可以在AP之间移动而不中断连接
    通常提供更高的安全性和网络管理功能
    适用于需要稳定、高性能无线网络的场合,如企业、学校、公共场所等
  3. 示例:家庭Wi-Fi网络、办公室网络、机场Wi-Fi热点等

无固定基础设施无线局域网:

  1. **定义:**A-WLAN是一种不需要固定基础设施的无线网络,其中的设备直接相互通信,不通过AP或路由器等中心节点

  2. 特点:

    不需要固定的网络基础设施,设备之间直接通信

    覆盖范围和传输速率通常较小

    网络配置简单,但管理功能有限

    安全性可能较低,因为缺乏中心控制节点

    适用于临时或紧急情况,或者是在没有网络基础设施的地方

  3. **示例:**移动设备之间的直接文件共享、临时会议中的无线网络连接等

数据链路层设备

网桥(桥接器)

网桥(Bridge)是一种数据链路层设备,它用于连接两个或多个局域网(LAN),并在这些网络之间转发数据帧。网桥的主要功能是扩展网络的覆盖范围,允许不同的局域网在逻辑上连接起来,而无需物理上直接连接

网桥处理数据的对象时帧,所以它是工作在数据链路层的设备;中继器、放大器处理数据的对象时信号,所以它是工作在物理层的设备

工作原理

  1. 帧转发:网桥接收从一个网络到达的数据帧,检查帧中的源MAC地址,并将其转发到另一个网络,如果目的MAC地址位于另一个网络中
  2. 学习MAC地址:网桥通过学习机制,记录它所连接的每个网络中的MAC地址,并将其存储在地址表中。这样,当它收到一个数据帧时,就可以快速确定该帧应该转发到哪个网络
  3. 过滤和桥接:网桥根据地址表中的信息过滤数据帧,只转发那些目标MAC地址位于其他网络中的帧,以减少不必要的通信

特点:

  1. 连接局域网:网桥主要用于连接两个或多个局域网,使它们能够在逻辑上形成一个更大的网络
  2. 数据帧转发:网桥在数据链路层工作,它接收来自一个局域网的数据帧,检查帧中的MAC地址,并决定是否将其转发到另一个局域网
  3. 学习MAC地址:网桥通过学习机制记录它所连接的每个局域网中的MAC地址,并将其存储在地址表中。这使得网桥能够快速识别和转发数据帧
  4. 过滤和桥接:网桥根据地址表中的信息过滤数据帧,只转发那些目标MAC地址位于其他局域网中的帧,以减少不必要的通信
  5. 透明传输:网桥对数据传输过程不进行任何修改,仅作为一个中继器,透明地转发数据帧
  6. 扩展网络范围:通过连接多个局域网,网桥可以扩展网络的覆盖范围,使得不同的局域网在逻辑上连接起来
  7. 网络分割:网桥可以将一个大的网络分割成多个较小的网络,提高网络的性能和安全性
  8. 网络冗余:网桥可以提供网络冗余,如果一个网络出现故障,数据可以通过其他网络路径进行传输
  9. 支持不同网络技术:网桥可以连接使用不同网络技术的局域网,如以太网和令牌环网
  10. 低层网络设备:网桥是数据链路层的设备,不处理网络层以上的协议,如IP地址和TCP/IP协议

类型:

  1. 透明网桥(Transparent Bridge):
    是最基本的网桥类型,它透明地转发数据帧,不修改帧内容
    透明网桥通过学习MAC地址来建立地址表,并根据地址表转发数据帧
  2. 源路由网桥(Source Routing Bridge):
    允许数据帧包含源路由信息,网桥根据这些信息决定帧的转发路径
    源路由网桥通常用于特定的网络环境,如在网络拓扑复杂或需要高可靠性的情况下
  3. 源地址过滤网桥(Source Address Filtering Bridge):
    只转发源地址位于其地址表中的帧
    源地址过滤网桥可以用于限制数据帧的来源,提高网络的安全性
  4. 源地址和目的地址过滤网桥(Source and Destination Address Filtering Bridge):
    同时检查源地址和目的地址,只转发符合特定条件的帧
    这种网桥可以提供更精细的网络控制和过滤功能
  5. 交换网桥(Switching Bridge):
    类似于现代交换机,可以同时与多个网络接口通信
    交换网桥通过硬件加速和多端口设计,提供比传统网桥更高的性能
  6. 虚拟局域网(VLAN)网桥(VLAN Bridge):
    支持VLAN技术,可以将网络分割成多个逻辑上独立的局域网
    VLAN网桥可以实现更细粒度的网络管理,提高网络的性能和安全性
  7. 多协议网桥(Multiprotocol Bridge):
    支持多种网络协议,如以太网和令牌环网
    多协议网桥可以连接使用不同网络技术的局域网,实现网络的互操作性
  8. 路由桥(Routing Bridge):
    结合了路由器和网桥的功能,可以进行跨网络的路由决策
    路由桥通常用于复杂的网络环境,提供高级的网络管理和控制功能

局域交换机

网桥(桥接器) 主要是限制在任意时刻通常只能执行一个帧的转发操作,于是出现了局域网交换机,又称以太网交换机

局域网交换机(Local Area Network Switch)是一种网络设备,用于在局域网(LAN)内部连接计算机和其他网络设备,以实现数据的高效传输。交换机工作在数据链路层,通过其多个端口接收和转发数据帧

原理:

  1. 自学习MAC地址表:
    当交换机启动时,它会初始化一个空的MAC地址表
    当交换机接收到一个数据帧时,它会读取帧中的源MAC地址
    交换机会将源MAC地址与其接收到的端口号关联起来,并存储在MAC地址表中

  2. 帧转发:
    当交换机接收到一个数据帧时,它会检查帧中的目的MAC地址
    如果目的MAC地址在MAC地址表中,交换机会将帧直接转发到相应的端口
    如果目的MAC地址不在MAC地址表中,交换机会将帧广播到所有端口,以让网络中的其他设备学习新的MAC地址
    一旦交换机接收到带有新MAC地址的数据帧,它会更新MAC地址表,并将后续的帧直接转发到相应的端口

  3. VLAN支持:
    一些交换机支持VLAN技术,可以将网络分割成多个逻辑上独立的局域网
    交换机会为每个VLAN维护一个独立的MAC地址表
    交换机可以根据VLAN ID来转发数据帧,确保只有同一VLAN内的设备可以通信

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/310485.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ZISUOJ 数据结构-栈

题目列表: 问题 A: 数据结构-栈-括号匹配 思路: 遇到左半边括号,将其入栈,遇到右半边括号,则先判断栈是否为空,若为空,则匹配失败,若不为空,则再判断栈顶元素是否是与之匹…

HBase2.x学习笔记

文章目录 一、HBase 简介1、HBase 定义1.1 概述1.2 HBase 与 Hadoop 的关系1.3 RDBMS 与 HBase 的对比1.4 HBase 特征简要 2、HBase 数据模型2.1 HBase 逻辑结构2.2 HBase 物理存储结构2.3 HBase的表数据模型 3、HBase 基本架构3.1 Master3.2 Region Server3.3 Zookeeper3.4 HD…

Python进阶编程 --- 2.MySQL、pymysql、PySpark

文章目录 第一章:SQL基础入门1.1 数据库数据库如何存储数据 1.2 数据库和SQL的关系1.3 MySQL版本1.4 命令提示符内使用MySQL1.5 SQL概述1.5.1 SQL语言分类1.5.2 SQL语言特性 1.6 DDL库管理表管理 1.7 DML - 数据操作1.8 DQL - 查询和计算数据1.8.1 基础数据查询1.8.…

gitlab(docker)安装及使用

GitLab GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。 下载(docker) 查询docker镜像gitlab-ce gitlab-ce是它的社区版 [rootlocalhost ~]# docker search gitlab-ce NAME …

《Kubernets证书篇:基于Kylin V10+ARM架构CPU修改K8S 1.26.15版本证书时间限制》

一、背景 Kubernetes 默认的证书有效期只有1年,因此需要每年手动更新一次节点上面的证书,特别麻烦而且更新过程中可能会出现问题,因此我们要对 Kubernetes 的 SSL 证书有效期进行修改,这里将证书的时间限制修改为100年。 环境信息…

快速掌握Spring监控(Spring Boot admin)

监控 监控可视化监控平台Admin底层逻辑info 自定义端点 监控 监控的作用: 监控服务状态是否宕机监控服务运行指标(内存,虚拟机,线程,请求等)监控日志管理服务(服务下线) 监控的实…

【Linux】磁盘管理和文件系统

目录 一、硬盘 1.硬盘结构 2.结构类型 二、MBR与磁盘分区 1.MBR主引导记录 2.磁盘分区结构 三、文件系统类型 四、linux系统添加并使用新硬盘的步骤 1.添加新的硬盘 2.刷新识别 3.进行分区 4.格式化,创建文件系统 5.挂载使用 一、硬盘 1.硬盘结构…

部署项目的时候的一些错误

项目打jar包&#xff0c;找不到资源&#xff0c;连接不上数据库 项目打包后无法运行 直接在idea运行可以 解决方法&#xff1a;pom文件中增加&#xff08;配置文件如果是yml&#xff0c;写yml&#xff09; <resources><resource><directory>src/main/java&…

物联网的核心价值是什么?——青创智通

工业物联网解决方案-工业IOT-青创智通 物联网&#xff0c;这个词汇在当今的科技领域已经变得耳熟能详。但当我们深入探索物联网的核心价值时&#xff0c;我们会发现它远不止是一个简单的技术概念&#xff0c;而是一种能够彻底改变我们生活方式和工作方式的革命性力量。 物联网…

Niobe WiFi IoT开发板OpenHarmony内核编程开发——message

本示例将演示如何在Niobe WiFi IoT开发板上使用cmsis 2.0 接口进行消息队列开发 message API分析 osThreadNew() osThreadId_t osThreadNew(osThreadFunc_t func, void *argument,const osThreadAttr_t *attr )描述&#xff1a; 函数osThreadNew通过将线程添加到活动线程列表…

游戏生成式 AI:编织梦想,避开阴影

想象一下&#xff0c;一个沉浸式的游戏世界中玩家遇到的每个 NPC 都由 AI 驱动&#xff0c;他们能与玩家进行互动&#xff0c;从改变游戏体验。据 Inword 一项研究显示&#xff0c;绝大多数游戏玩家渴望这种互动&#xff0c;愿意投入更多的时间和金钱来玩这种由 AI 驱动的游戏。…

ActiveMQ主从架构和集群架构的介绍及搭建

一、主从和集群架构的特点 1.1 主从架构的-Master/slave模式特点 读写分离&#xff0c;纵向扩展&#xff0c;所有的写操作一般在master上完成&#xff0c;slave只提供一个热备 1.2 集群架构-Cluster模式特点 分布式的一种存储&#xff0c;水平的扩展&#xff0c;消息的分布…

idm线程越多越好吗 idm线程数多少合适 IDM百度云下载 IDM下载器如何修改线程数

IDM&#xff08;Internet Download Manager&#xff09;是一款流行的网络下载器&#xff0c;它支持多线程下载&#xff0c;这意味着它可以同时建立多个连接来下载文件的不同部分&#xff0c;从而提高下载速度。我们在使用IDM的时候总是有很多疑问&#xff0c;今天我们学习IDM线…

STM32H7上实现AD5758驱动

目录 概述 1 下载ADI 5758 Demo 2 AD5758驱动的移植 2.1 使用STM32CubeMX创建工程 2.2 接口函数实现 2.2.1 驱动接口列表 2.2.2 函数实现 2.2.3 修正ad5758驱动 3 AD5758应用程序 3.1 编写测试程序 3.1.1 配置参数结构 3.1.2 配置参数函数 3.1.3 读取参数函数 3.…

docker-compose部署RabbitMQ(一步到位)

docker-compose如下 version: 3.1 services:rabbitmq:restart: alwaysimage: rabbitmq:managementcontainer_name: rabbitmqhostname: rabbitports:- 5672:5672- 15672:15672environment:TZ: Asia/ShanghaiRABBITMQ_DEFAULT_USER: rabbitRABBITMQ_DEFAULT_PASS: 123456volumes…

SpringBoot 启动分析

一、序言 本文简单分析一下 SpringBoot 的启动流程。 二、SpringBoot 启动源码分析 public ConfigurableApplicationContext run(String... args) {// 记录当前时间的纳秒数&#xff0c;用于计算应用程序启动所花费的时间long startTime System.nanoTime();// 创建一个默认…

蓝桥杯2024年第十五届省赛

E:宝石组合 根据给的公式化简后变为gcd(a,b,c)根据算数基本定理&#xff0c;推一下就可以了 然后我们对1到mx的树求约数&#xff0c;并记录约数的次数&#xff0c;我们选择一个最大的且次数大于等3的就是gcd int mx; vector<int> g[N]; vector<int> cnt[N]; int…

VSCode中vue的packag.json报错:unable to load schema from‘ http://json.schema‘...问题解决

package.json有这个报错&#xff0c;类似于这种问题一般是网络连接有问题&#xff0c;无法加载重启一下就好。 但是如果是没有网络或者云桌面等环境不能连接外网&#xff0c;就在设置中把这个设置一下&#xff0c;这样就不报错了&#xff0c;根据需要选择处理。

MybatisPlus实现数据权限隔离

引言 Mybatis Plus对Mybatis做了无侵入的增强&#xff0c;非常的好用&#xff0c;今天就给大家介绍它的其中一个实用功能&#xff1a;数据权限插件。 数据权限插件的应用场景和多租户的动态拦截拼接SQL一样。建议点赞收藏关注&#xff0c;方便以后复习查阅。 依赖 首先导入M…

X-314智能合约:金融创新的强大引擎

&#x1f4a5;火爆到烫手的X-314智能合约&#x1f525; X-314智能合约是基于以太坊区块链开发的&#xff0c;具有高度可定制性和灵活性。 ave开单独板块&#xff1b;详细资料已经准备好&#xff1b;对web3感兴趣的大佬货&#xff1b;多交流多指导&#x1f91d; ​X-314智能合…