数据链路层的广播信道

2024-06-23 05:08
文章标签 广播 数据 链路层 信道

本文主要是介绍数据链路层的广播信道,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

广播信道可以进行一对多的通信。局域网使用的就是广播信道。
计算机与外界局域网的连接是通过通信适配器进行的。适配器本来是在主机箱内插入的一块网络接口板(或者是在笔记本电脑中插入一块PCMCIA卡(个人计算机存储器卡口适配器))。这种接口板又称为网络接口卡NIC,或简称为“网卡”。在这种通信适配器上面装有处理器和存储器(包括RAM和ROM)。适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,而适配器和计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行的。因此,适配器的一个重要功能就是要进行数据串行传输和并行传输的转换。由于网络上的数据率和计算机总线上的数据率并不相同,因此在适配器中必须装有对数据进行缓存的存储芯片。在主板上插入适配器时,还必须把管理该适配器的设备驱动程序安装在计算机的操作系统中。这个驱动程序以后就会告诉适配器,应当从存储器的什么位置上把多长的数据块发送到局域网,或者应当在存储器的什么位置上把局域网传送过来的数据块存储下来。适配器还要能够实现以太网协议。

适配器在接收和发送各种帧时,不使用计算机的CPU。这时计算机中的CPU可以处理其他任务。当适配器收到有差错的帧时,就把这个帧直接丢弃而不必通知计算机。当适配器收到正确的帧时,它就使用中断来通知该计算机,并交付协议栈中的网络层。当计算机要发送IP数据报时,就由协议栈把IP数据报向下交给适配器,组装成帧后发送到局域网。计算机的硬件地址(MAC地址)就在适配器的ROM中,而计算机的软件地址(IP地址)则在计算机的存储器中。
在这里插入图片描述

CSMA/CD协议

在这里插入图片描述

(1)准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中。但在发送之前,必须先检测信道。
(2)检测信道:若检测到信道忙,则应不停地检测,一直等待信道转为空闲。若检测到信道空闲,并在96比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧。
(3)在发送过程中仍不停地检测信道,即网络适配器要边发送边监听。这里只有两种可能性:
1.发送成功:在争用期内一直未检测到碰撞。这个帧肯定能够发送成功。发送完毕后,其他什么也不做。然后回到(1)。
2.发送失败:在争用期内检测到碰撞。这时立即停止发送数据,并按规定发送人为干扰信号。适配器接着就执行指数退避算法,等待r倍512比特时间后,返回到步骤(2),继续检测信道。但若重传达16次仍不能成功,则停止重传而向上报错。
以太网每发送完一帧,一定要把已发送的帧暂时保留一下。如果在争用期内检测出发生了碰撞,那么还要在推迟一段时间后再把这个暂时保留的帧重传一次。

在这里插入图片描述

在这里插入图片描述

局域网

局域网并不同于外界通讯使用的TCP/IP协议体系,它是一种建立在传统以太网(Ethernet)结构上的网络分布,除了使用TCP/IP协议,它还涉及许多协议。

在局域网里,计算机要查找彼此并不是通过IP进行的,而是通过网卡MAC地址,它是一组在生产时就固化的唯一标识号,根据协议规范,当一台计算机要查找另一台计算机时,

它必须把目标计算机的IP通过ARP协议(地址解析协议)在物理网络中广播出去,“广播”是一种让任意一台计算机都能收到数据的数据发送方式,计算机收到数据后就会判断这条信息是不是发给自己的,如果是,就会返回应答,在这里,它会返回自身地址。

当源计算机收到有效的回应时,它就得知了目标计算机的MAC地址并把结果保存在系统的地址缓冲池里,下次传输数据时就不需要再次发送广播了,这个地址缓冲池会定时刷新重建,以免造成数据冗余现象。

实际上,共享协议规定局域网内的每台启用了文件及打印机共享服务的计算机在启动的时候必须主动向所处网段广播自己的IP和对应的MAC地址,然后由某台计算机(通常是局域网内某个工作组里第一台启动的计算机)承担接收并保存这些数据的角色,

这台计算机就被称为“浏览主控服务器”,它是工作组里极为重要的计算机,负责维护本工作组中的浏览列表及指定其他工作组的主控服务器列表,为本工作组的其他计算机和其他来访本工作组的计算机提供浏览服务,它的标识是含有\ _MSBROWSE_名字段。

这就是我们能在网络邻居看到其他计算机的来由,它实际上是一个浏览列表,用户可以使用“nbtstat -r”来查看在浏览主控服务器上声明了自己的NetBIOS名称列表。

浏览列表记录了整个局域网内开启的计算机的资源描述,当我们要访问另一台计算机的共享资源时,系统实际上是通过发送广播查询浏览主控服务器,然后由浏览主控服务器提供的浏览列表来“发现”目标计算机的共享资源的。

但是仅知道彼此的地址还不够,计算机之间必须建立一条连接的数据链路才能正常工作,这就需要另一个基本协议来进行了。

NetBIOS(网络基本输入输出系统)协议是IBM开发的用于给局域网提供网络以及其他特殊功能的命令集,几乎每个局域网都必须在这种协议上面进行工作,NetBIOS相当于 Intranet上的TCP/IP协议。

而后推出的NetBEUI协议(NetBIOS用户扩展接口协议)则是对前者进行了功能扩充,这几个协议都是组成局域网的基本必备,最后,为了建立连接,局域网还需要TCP/IP协议。

【定义】

为了完整地给出LAN的定义,必须使用两种方式:一种是功能性定义,另一种是技术性定义。

前一种将LAN定义为一组台式计算机和其他设备,在物理地址上彼此相隔不远,以允许用户相互通信和共享诸如打印机和存储设备之类的计算资源的方式互连在一起的系统。这种定义适用于办公环境下的LAN、工厂和研究机构中使用的LAN。

就LAN的技术性定义而言,它定义为由特定类型的传输媒体(如电缆、光缆和无线媒体)和网络适配器(亦称为网卡)互连在一起的计算机,并受网络操作系统监控的网络系统。

功能性和技术性定义之间的差别是很明显的,功能性定义强调的是外界行为和服务;技术性定义强调的则是构成LAN所需的物质基础和构成的方法。

局域网(LAN)的名字本身就隐含了这种网络地理范围的局域性。由于较小的地理范围的局限性,LAN通常要比广域网(WAN)具有高得多的传输速率。

例如,LAN的传输速率为10Mb/s,FDDI的传输速率为100Mb/s,而WAN的主干线速率国内仅为64kbps或2.048Mbps,最终用户的上限速率通常为14.4kbps。

LAN的拓扑结构常用的是总线型和环行,这是由于有限地理范围决定的,这两种结构很少在广域网环境下使用。LAN还有诸如高可靠性、易扩缩和易于管理及安全等多种特性。局域网一般为一个部门或单位所有,建网、维护以及扩展等较容易,系统灵活性高。其主要特点是:
覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内。
使用专门铺设的传输介质进行联网,数据传输速率高(10Mb/s~10Gb/s)
通信延迟时间短,可靠性较高
局域网可以支持多种传输介质

局域网的类型很多,若按网络使用的传输介质分类,可分为有线网和无线网;

若按网络拓扑结构分类,可分为总线型、星型、环型、树型、混合型等;

若按传输介质所使用的访问控制方法分类,又可分为以太网、令牌环网、FDDI网和无线局域网等。

其中,以太网是当前应用最普遍的局域网技术。

参考:

https://baike.baidu.com/item/%E7%BD%91%E5%8D%A1/155684?fr=aladdin

https://baike.baidu.com/item/%E9%9B%86%E7%BA%BF%E5%99%A8/214614?fr=aladdin

https://www.jianshu.com/p/5d2bd9e1dd21

https://www.bilibili.com/video/av33733426/

https://www.cnblogs.com/csguo/p/7251828.html

这篇关于数据链路层的广播信道的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1086257

相关文章

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

C#解析JSON数据全攻略指南

《C#解析JSON数据全攻略指南》这篇文章主要为大家详细介绍了使用C#解析JSON数据全攻略指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、为什么jsON是C#开发必修课?二、四步搞定网络JSON数据1. 获取数据 - HttpClient最佳实践2. 动态解析 - 快速

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语