关于几道计算机网络题的解答

在这里插入图片描述
2017年12月28日,星期四,

照片上的第一题中多项式的指数看不清,但没关系,就现在的情形,说一下大概的思路,参考着再结合题目中实际的参数,再套一遍就能把题目解出来了,

假设,上述的多项式为:X11+X8+X7+X6+X4+X3+X^2+1,

CRC生成多项式为:X4+X2+X+1,

则有,多项式对应的二进制数字串为:100111011101,即12位2进制数,

(其中多项式最后一个加数1实际上是:x^0的意思,)

依据:多项式的每一个加数对应二进制数字串中的一个权位,多项式中没有出现的权位,说明二进制数字串中对应的权位为0,

举例说明,多项式X3+X2+1对应的二进制数为:1101,因为X1没有出现在多项式中,因此对应的二进制数串中21的权位为0,

同理,接下来,CRC生成多项式对应的二进制数字串为:10111,

根据,CRC编码的生成规则:根据CRC生成多项式的最高幂指数4,将多项式对应的二进制字串向左移动(4+1)位,再将CRC生成多项式对应的二进制字串塞进多项式对应的二进制字串左移后生成的空位中,实际上就是多项式对应的二进制字串后接CRC生成多项式对应的二进制字串,

可用公式表示:多项式对应二进制字串+CRC生成多项式对应二进制字串=CRC编码(发送端将要发送的CRC编码)

CSMA/CD(Carrier Sense Multiple Access with Collision Detection)基带冲突检测的载波监听多路访问技术(载波监听多点接入/碰撞检测)。所有的节点共享传输介质。

原理,如下,

1、所有的站点共享唯一的一条数据通道,

2、在一个站点发送数据时,其他的站点都不能发送数据,如果要发送就会产生碰撞,就要重新发送,而且所有站点都要再等待一段随即的时间,

3、对于每一个站而言,一旦它检测到有冲突,它就放弃它当前的传送任务。换句话说,如果两个站都检测到信道是空闲的,并且同时开始传送数据,则它们几乎立刻就会检测到有冲突发生。

4、它们不应该再继续传送它们的帧,因为这样只会产生垃圾而已;相反一旦检测到冲突之后,它们应该立即停止传送数据。快速地终止被损坏的帧可以节省时间和带宽。

5、它的工作原理是: 发送数据前 先侦听信道是否空闲 ,若空闲,则立即发送数据。若信道忙碌,则等待一段时间至信道中的信息传输结束后再发送数据;若在上一段信息发送结束后,同时有两个或两个以上的节点都提出发送请求,则判定为冲突。若侦听到冲突,则立即停止发送数据,等待一段随机时间,再重新尝试。

6、原理简单总结为:先听后发,边发边听,冲突停发,随机延迟后重发。

7、Carrier Sense Multiple Access就是,要发送和发送中都要进行监听,

8、有人将CSMA/CD的工作过程形象的比喻成很多人在一间黑屋子中举行讨论会,参加会议的人都是只能听到其他人的声音。每个人在说话前必须先倾听,只有等会场安静下来后,他才能够发言。人们将发言前监听以确定是否已有人在发言的动作称为"载波监听";将在会场安静的情况下每人都有平等机会讲话成为“多路访问”;如果有两人或两人以上同时说话,大家就无法听清其中任何一人的发言,这种情况称为发生“冲突”。发言人在发言过程中要及时发现是否发生冲突,这个动作称为“冲突检测”。如果发言人发现冲突已经发生,这时他需要停止讲话,然后随机后退延迟,再次重复上述过程,直至讲话成功。如果失败次数太多,他也许就放弃这次发言的想法。通常尝试16次后放弃。

9、核心问题:解决在公共通道上以广播方式传送数据中可能出现的问题(主要是数据碰撞问题)

包含四个处理内容:监听、发送、检测、冲突处理

监听:

通过专门的检测机构,在站点准备发送前先侦听一下总线上是否有数据正在传送(线路是否忙)?

若“忙”则进入后述的“退避”处理程序,进而进一步反复进行侦听工作。

发送:

当确定要发送后,通过发送机构,向总线发送数据。

检测:

数据发送后,也可能发生数据碰撞。因而,要对数据边发送,边检测,以判断是否冲突了。

冲突处理:

当确认发生冲突后,进入冲突处理程序。有两种冲突情况:

① 侦听中发现线路忙

② 发送过程中发现数据碰撞

① 若在侦听中发现线路忙,则等待一个延时后再次侦听,若仍然忙,则继续延迟等待,一直到可以发送为止。每次延时的时间不一致,由退避算法确定延时值。

② 若发送过程中发现数据碰撞,先发送阻塞信息,强化冲突,再进行监听工作,以待下次重新发送

10、

先听后说,边听边说,边说边听;

一旦冲突,立即停说;

等待时机,然后再说;

注:“听”,即监听、检测之意;“说”,即发送数据之意。

11、在发送数据前,先监听总线是否空闲。若总线忙,则不发送。若总线空闲,则把准备好的数据发送到总线上。在发送数据的过程中,工作站边发送边检测总线,是否自己发送的数据有冲突。若无冲突则继续发送直到发完全部数据;若有冲突,则立即停止发送数据,但是要发送一个加强冲突的JAM信号,以便使网络上所有工作站都知道网上发生了冲突,然后,等待一个预定的随机时间,且在总线为空闲时,再重新发送未发完的数据。

12、

CSMA/CD网络上进行传输时,必须按下列五个步骤来进行

(1)传输前监听

(2)如果忙则等待

(3)如果空闲则传输并检测冲突

(4)如果冲突发生,重传前等待

(5)重传或夭折

补充一个重要的知识点:

要使CSMA/CA 正常工作,我们必须要限制帧的长度。如果某次传输发生了碰撞,那么正在发送数据的站必须在发送该帧的最后一比特之前放弃此次传输,因为一旦整个帧都被发送出去,那么该站将不会保留帧的复本,同时也不会继续监视是否发生了碰撞。所以,一旦检测出有冲突,就要立即停止发送,

举例说明,

A站点发送数据给B站点,当A站通过监听确认线路空闲后,开始发送数据给B站点,同时对线路进行监听,即边发送边监听,边监听边发送,直到数据传送完毕,那么如果想要正确发送数据,就需要确定最小帧长度和最小发送间隙(冲突时槽)。

CSMA/CD冲突避免的方法:先听后发、边听边发、随机延迟后重发。一旦发生冲突,必须让每台主机都能检测到。关于最小发送间隙和最小帧长的规定也是为了避免冲突。

考虑如下的情况,主机发送的帧很小,而两台冲突主机相距很远。在主机A发送的帧传输到B的前一刻,B开始发送帧。这样,当A的帧到达B时,B检测到冲突,于是发送冲突信号,假如在B的冲突信号传输到A之前,A的帧已经发送完毕,那么A将检测不到冲突而误认为已发送成功。由于信号传播是有时延的,因此检测冲突也需要一定的时间。这也是为什么必须有个最小帧长的限制。

按照标准,10Mbps以太网采用中继器时,连接的最大长度是2500米,最多经过4个中继器,因此规定对10Mbps以太网一帧的最小发送时间为51.2微秒。这段时间所能传输的数据为512位,因此也称该时间为512位时。这个时间定义为以太网时隙,或冲突时槽。512位=64字节,这就是以太网帧最小64字节的原因。

以上信息的简单理解是:A发送一个帧的信息(大小不限制),B收到此帧,发现有冲突,马上发送包含检测到了冲突的信息给A,这个冲突信息到达A也是需要时间的,所以,要想A成功发送一个帧(并知道这个帧发送的是否成功,冲没冲突)是需要这个帧从A到B,再从B到A,这一个来回的时间,

也就是说,当一个站点决定是否要发送信息之前,一定要先进行线路的检测,那么隔多长时间检测一次合适呢(在没有检测的期间是不进行数据的发送的,因此也就不存在冲突),这就要看, 一个电子信号在这两个站点之间跑一个来回的时间了,试想一下,如果这个信号还没有跑到地方,你就开始检测,显然是浪费检测信号的设备资源,然后,A站点发送一个电子信号给B站点,信号经过一段时间到达了B站点,然后假设B发现了冲突,马上告诉A,那么这个电子信号再跑回A也需要一段时间,如果当这个信号在路上的时候,A就开始检测是不是有冲突,显然是不合适的,因为,B发送的冲突信号还在路上,如果A在这个时间段就检测,一定不会发现有冲突,那么,A就会继续发送信号,但这是错误,因为已经有冲突被检测出来,因此,A这么做是错误的,所以,A要想正确发送一个电子信号给B,并且被B正确接收,就需要,A发送一个电子信号,并等待它跑一个来回的时间那么长,才能确认是没有冲突,然后再继续发送下一个信号,

这个电子信号跑一个来回的时间,是由站点间的距离s、帧在媒体上的传播速度为v(光速)以及网络的传输率为r(bps)共同决定的,

那么,假设电子信号跑一个来回的时间是t,则有如下式子,

t=2s/v;

又有,假设在时间t内可以传送的数据量(最小帧)为L,则有如下式子,

L=t*r;解释:这个就是说,一个电子信号从A跑到B需要t这么长时间,又因为电子信号几乎接近光速,因此,即使在t这么短的时间内,我仍然可以不停的发送很多个电子信号,这样就形成了一串二进制数列在t这个很小的时间段内被从A发送出去,那么我在t这个时间段内究竟能发送出去多少的电子信号,就要看我的传输率r是多少了,因为有这种关系,所以就形成了最小帧的概念,

将 L=t*r 变形为 t=L/r,并将 t=L/r 带入 t2s/v,得到式子:L/r=2s/v,

再将,题目中给出的数据带入上式,得到

2500字节/(1G bps)=2s/200000(Km);将单位统一后,有下式:

(25008)/(10241024*1024)=2s/200000(Km);继续计算,得:

s=1.86Km,

若1Gbps取值为100010001000,则s=2Km;

August2024the31thSaturday

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

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

相关文章

raksmart大带宽服务器怎么租

RAKsmart是一个提供大带宽服务器租赁服务的厂商,其机房遍布不同国家与地区如美国、日本、新加坡及韩国等,且有大陆优化和国际BGP两条线路可供选择。Rak小编下面将详细介绍如何租用RAKsmart的大带宽服务器,并提供一些考量因素。 1. 选择机房位…

【软件造价咨询】AI大模型能不能替代软件工程造价师完成软件造价?

当前国内外AI大模型呈现出多样化的发展态势,如由OpenAI开发的自然语言处理大模型GPT系列、由Google开发的基于Transformer的双向编码表示模型BERT、由百度研发的基于飞桨深度学习平台和知识增强大模型文心一言、由阿里研发的多轮对话大模型通义千问、由清华大学计算…

中兴-ZSRV2路由器-任意文件读取

中兴-ZSRV2路由器-任意文件读取 文章目录 中兴-ZSRV2路由器-任意文件读取免责声明漏洞描述搜索语法漏洞复现修复建议 免责声明 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连…

NSSCTF刷题

[NISACTF 2022]checkin 1.在选中nisactf的时候,注释里面的内容也被标记了 2.复制到010editer中发现存在不可见的字符 3.我们选择实际的参名和字符串,并转为url编码格式 4.得到最后的payload,传参得到flag ahahahahajitanglailo&%E2%80%…

uniapp中使用弹出框控制Tab栏区域显示与隐藏

在uniapp中提供控制TabBar的显示与隐藏的函数 uni.hideTabBar() 与 uni.showTabBar() <nut-button block type"primary" click"JDdetail()" >立即接单</nut-button> <---弹出框---> <nut-popup style"z-index: 999;" posi…

windows平台完全卸载visual studio 2022

1. 搜索框输入cmd&#xff0c;以管理员身份运行 2. 在命令行里输入以下指令&#xff08;包含双引号&#xff09;&#xff1a; "C:\Program Files (x86)\Microsoft Visual Studio\Installer\InstallCleanup.exe" 参考官网&#xff1a;解除安裝或移除 Visual Studio…

第十三节:学习Springboot整合mybatis——完整篇(自学Spring boot 3.x的第三天)

大家好&#xff0c;今天记录下学习springboot的第三天。​网创有方 这节详细记录了如何使用springboot整合mybatis方法&#xff0c;并成功实现将请求信息插入本地的mysql数据库。 由于只是为了方便本地验证&#xff0c;实际项目是需要部署到服务器上去的&#xff0c;所以就采用…

开学啦!校园跑腿小程序开发,焕新生活尽在指尖!

随着移动互联网技术的不断发展&#xff0c;校园跑腿小程序成为了高校生活中不可或缺的一部分。无论是代拿快递、代买物品&#xff0c;还是代办各种事务&#xff0c;校园跑腿小程序都能为学生提供极大的便利。 校园内的人群密集&#xff0c;购买东西的需求尤为强烈&#xff0c;…

tornado获取请求参数

在Tornado框架中&#xff0c;获取请求参数&#xff08;包括查询字符串参数、表单数据、JSON数据等&#xff09;可以通过RequestHandler类提供的方法来完成。以下是一些常用的方法来获取不同类型的请求参数&#xff1a; 1. 获取查询字符串参数 查询字符串参数是附加在URL后面的…

2023年中国90后十大影响力人物

“2023年中国90后十大影响力人物” 2024年1月23日&#xff0c;揭晓了由网友投票评选的中国2023年90后十大影响力人物。

每日一练2:两个数组的交集(含链接)

链接&#xff1a; 两个数组的交集_牛客题霸_牛客网 代码&#xff1a; class Solution {public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {bool hash[1001] { };vector<int> ret;for(auto a : nums1){hash[a] tr…

SprinBoot+Vue宠物领养救助微信小程序的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue3.6 uniapp代码 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平…

Ribbon负载均衡底层原理

springcloude服务实例与服务实例之间发送请求&#xff0c;首先根据服务名注册到nacos&#xff0c;然后发送请求&#xff0c;nacos可以根据服务名找到对应的服务实例。 SpringCloudRibbon的底层采用了一个拦截器&#xff0c;拦截了openfeign发出的请求&#xff0c;对地址做了修…

SpringBoot链路追踪②:如何集成?

首先下载Zipkin的jar包&#xff1a;Central Repository: io/zipkin/zipkin-server (maven.org) 根据自己的项目版本。我的版本分别是&#xff1a; <spring-boot.version>2.7.18</spring-boot.version> <spring-cloud.version>2021.0.8</spring-cloud.ve…

滚雪球学MyBatis-Plus(07):分页与排序

前言 在上期内容中&#xff0c;我们深入探讨了如何创建服务类和控制器&#xff0c;并通过 RESTful API 提供对外服务。我们学会了如何处理客户端的各种请求并返回相应的结果&#xff0c;这为构建一个完整的 Web 应用程序打下了基础。 本期内容将进一步深入&#xff0c;重点介…

【kafka】在Linux系统中部署配置Kafka的详细用法教程分享

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…

文件IO函数练习

作业&#xff1a;使用write和read完成文件的拷贝。 代码 #include <myhead.h>int main(int argc, const char *argv[]) {int fd open("./1.txt",O_RDONLY);//已只读打开被拷贝文件if(-1 fd){perror("open");return -1;}int fd1 open("./2.…

uniapp微信小程序开发测试获取手机号码

先申请测试号 注意认证但是没有完全认证不要试测试号解密如下 总结我自己的两大坑 1.官网的WXBizDataCrypt需要导入crypto要提前下载但是试了很多次没有效果重新编写这个。将crypto库换成crypto-js库 2.我一直在尝试用下有下面这个界面的测试号不行获取不到用户的code还是啥忘记…

【Unity编辑器扩展】SpriteAltas资源一键转换为TMP_SpriteAsset或Sprite图集

【Unity编辑器扩展】艺术字/自定义图片字体/TextMeshPro艺术字生成工具_unity 艺术字-CSDN博客 博文工具源码见GF_X自动化游戏开发框架&#xff1a;GitHub - sunsvip/GF_X: Unity GameFramework HybridCLR&#xff0c;Includes several automated editor extension tools, an …

【时间盒子】-【3.新建项目】创建元服务工程,选择默认模板Empty Ability

一、新建项目 1、打开DevEco Studio >>文件>>新建>>新建项目&#xff0c;选择元服务 Atomic Service>>默认模板Empty Ability。 2、设置元服务的工程名称、Bundle name等&#xff0c;模型选Stage&#xff0c;语言是ArkTS&#xff0c;支持的设备类型只…