计算机网络-3-3-使用广播信道的数据链路层

技术计算机网络-3-3-使用广播信道的数据链路层 计算机网络-3-3-使用广播信道的数据链路层使用广播信道的数据链路层
广播信道可以进行一对多通信。
局域网技术在计算机网络中占有非常重要的地位。
局域网

计算机网络. 3-3 .使用广播信道的数据链路层

使用广播信道的数据链路层

广播频道可以进行一对多的通信。

局域网技术在计算机网络中起着非常重要的作用。

局域网的数据链路层

局域网的主要特点是:网络为一个单位所拥有,且地理范围和站点数目有限.局域网的主要优势如下:

凭借广泛的功能,您可以从一个站点轻松访问整个网络。局域网上的主机可以共享连接到局域网的各种硬件资源和软件资源。

便于系统的扩展和逐步演进,各设备的位置可以灵活调整和变化。

提高了系统的可靠性、可用性和生存性。

局域网可以根据网络拓扑进行分类,

适配器的作用

与外部计算机局域网的连接是通过通信适配器,网络接口卡也称为网卡。适配器与局域网之间的通信是通过电缆或者双绞线以串行传输方式进行,适配器与计算机之间的通信是以并行方式进行通信,因此,适配器的一个重要功能是执行数据串行传输和并行传输之间的转换.除此之外,适配器还需要实现以太网的协议.

适配器在接收和发送各种数据帧时不使用计算机的CPU,因此计算机中的CPU可以处理其他任务。当适配器收到错误的数据帧时,它会直接丢弃该帧,而不通知计算机。当适配器收到正确的帧时,它将使用中断通知计算机,并将其传送到协议栈中的网络层。当计算机想要发送IP数据报时,协议栈会将IP数据包向下发送到适配器(数据链路层),组装成帧发送到局域网。图3-15显示了适配器的功能。我们需要特别注意的是,计算机的硬件地址在适配器中的ROM中,而计算机的软件地址IP地址在计算机的内存中。

CSMA/CD协议

最早的以太网是许多计算机连接到一条总线上。总线的特点是当一台计算机发送数据时,总线上的所有计算机都能检测到数据。这是广播通信模式。但是我们并不总是必须在局域网中进行一对多的广播通信。为了实现总线上的一对一通信,每台计算机的适配器可以有不同于其他计算机的地址。发送数据帧时,帧头指示接收站的地址:当数据帧中的目的地址与适配器ROM中存储的地址一致时,适配器可以接收数据帧。适配器丢弃不发送给自己的数据帧。这样,在具有广播特性的总线上实现了一对一的通信模式。

为了方便通信,以太网采取了以下两项措施:

适配器发送的数据帧的无连接,即不避先建立连接就可以直接发送数据,和不进行编号,也不要求对方发回确认的灵活工作模式可以使以太网工作非常简单。局域网的通信质量会很好。由于通信质量导致的错误概率非常低。因此,以太网提供的服务是尽最大努力的交付,即不可靠交付.当目的站接收到有错误的帧时(例如,使用循环冗余校验查找错误),它会丢弃该帧。不要做其他事情。对有差错的帧是否重传交给上层处理。

我们知道,只要总线上有计算机发送数据,总线的传输资源就会被占用。因此,在同一时间内只允许一台计算机发送数据,否则电脑会互相干扰。这样传输的数据就会被破坏。因此,如何协调总线上计算机的工作是以太网需要解决的一个主要问题。以太网使用CSMA/CD(载波监听多点接入/碰撞检测).

其次,以太网发送的数据都是曼彻斯特编码信号(下降沿为1(先高后低),上升沿为0(先低后高)),缺点是占用的带宽是基带的两倍。

下面介绍CSMA/裁谈会协议的要点。

多点接入的意思是这是一个基于总线的网络,许多计算机以多点访问的形式连接到总线上。载波监听将使用电子技术来检测公共汽车上的其他计算机是否正在发送数据。其实就是检测通道。不管在发送前,还是发送中,每个站点都必须不停的检测信道。在发送前检测频道,以便获得发送权。如果检测到电脑已经发送数据,则暂时不能发送数据。发送数据前需要等待信道空闲。如果在发送数据的过程中检测到信道冲突,需要执行一系列算法来处理。碰撞检测边发送边监听,也就是适配器在发送数据的同时检测通道的信号电压变化。在判断其他站在发送数据时是否也在发送数据的同时,当总线上的几个站同时发送数据时,总线上信号电压的变化幅度会增加(相互重叠)。当适配器检测到信号电压超过某个阈值时,就认为总线上至少有两个。

站点在同时发送数据,表明产生了碰撞(冲突)。这时,总线上传输的信号产生了严重的失真,无法从中恢复出有利的信息来。因此,任何一个正在发送数据的站,一旦发现总线上出现了碰撞,其适配器就立即停止发送,免得继续无效的发送。白白的浪费网络资源。然后等待一段随机时间再次发送。

既然每一个站在发送数据之前已经检测到信道为空闲,那么为什么还会出现数据在总线上的碰撞呢这是因为电磁波在总线上传输数据总是以有限的速率发送,电磁波在1KM的电缆上传播时延为5微妙,设一端到另一端的时间为\(\tau\),发送数据的站希望尽早知道是否发生了碰撞。那么,A发送数据后,最持久要经过2\(\tau\)的时间(一个来回),由于互联网上的任意两个站点之间的而传播时延是不一样的,因此局域网就必须按照最坏的情况设计,假设当前两个站点之间的距离最大,则取该两端的传播时延为所有端到端的传播时延。

显然,使用CSMA/CD协议的时候,一个站点不可能同时进行发送和接收数据(但必须边发送边监听)因此使用CSMA/CD协议的以太网不可能进行全双工通信而只能进行半双工通信。下面是图3-7中一些重要时刻:

在t=0时候,A发送数据,B检测到信道空闲。

在t=\(\tau\)-\(\delta\)时,这里(\(\tau\)\(\delta\)0),A发送的数据还没有到达B,由于B检测到信道是空闲的,因此B发送数据。

在经过时间\(\delta\)/2的时候,即在t=\(\tau\)-\(\delta\)/2时候,A发送的数据和B发送的数据发生了碰撞。,但是A和B都不知道发生了碰撞。

在t=\(\tau\)时,B检测到发生了碰撞,于是就停止发送数据。

在t=2\(\tau\)-\(\delta\)时,A也检测到了发生了碰撞。因此也停止继续发送数据。

A和B发送数据均失败,它们都要推迟一段时间再重新发送。由此可见,每一个站在自己发送数据之后的一小段内,存在着遭遇碰撞的可能性,这一小段时间是不确定的。

在图3-17中可以看出,最先发送数据帧的A站,在发送数据帧后至多经过时间2\(\tau\)就可以知道所发送的数据帧是否遭受到了碰撞,这就是\(\delta\)=0的情况下。因此以太网的端到端往返时间2\(\tau\)称之为争用期,它是一个很重要的参数。争用期又称之碰撞窗口,这是因为一个站在发送完数据后,只有通过争用期的考验,即经过争用期这段时间还没检测到碰撞,才能肯定这次发送不会发生碰撞。

以太网使用的是截断二进制指数退避算法来确定碰撞后重传时间。这种算法让发生碰撞的站在停止发生数据后确定重传的时间。不是等待信道空空闲就立即发送数据。而是推迟/退避一个随机时间,具体的退避算法如下:

  1. 协议规定了退避时间为争用期2\(\tau\),具体的争用期时间为512微秒,为了方便,也可以直接使用比特作为争用期单位,争用期为512bit,即争用期为发送512比特所需的时间。

  2. 从离散的整数集合[0,1,...,(2k-1)]中随机取出一个数,记为r。重传应退后的时间为r倍的争用期。,上面的参数k可以按照下面的公式进行计算:

             k=Min(重传次数,10)
    

可见,当重传次数不超过10时,参数k等于重传次数;但当重传次数超过10时,K就不会增大而一直等于10。

  1. 当重传达16次仍然不能成功,则丢弃该帧,并向上层报告。

例如,在第一次重传时,k=1,随机数r就从{0,1}中选一个数,因此重传的站可选择的重传推迟时间是0或者2\(\tau\),在这两个时间中随机选择一个。

同样,若再次发生碰撞,则在第2次重传时,则重传为时k=2,随机数就从正数{0,1,2,3}中随机选一个数。因此重传推迟的时间是在0,2\(\tau\),4\(\tau\),6\(\tau\)这几个时间中随即选一个。依次类推。

适配器每次发送一个新的帧,就要执行一次CSMA/CD算法。适配器对过去发生过的碰撞记忆并无记忆功能。因此,当好几个适配器正在执行指数退避算时候,很可能有某一个适配器发送的新帧能够恰好的插入到信道中,得到了发送全,而已经推迟好几次发送的站,有可能很不巧,还要继续执行退避算法,继续等待。

现在考虑另一种情况。某个站点发送了一个很短的帧,但在发送完毕之前并没有检测出碰撞。假定这个帧在继续向前传播到达目的站和别的站发送的帧发送了碰撞,因为目的站将会收到有差错的帧,可是发送站并不知道这个帧发生了碰撞,因为不会重传这个帧,这种情况是我们不希望的。为了避免发生这种情况,以太网规定了一个最短帧长64字节,即512bit,如果要发送的数据非常的少,,那么必须加入一些填充字节,使得帧长度不小于64字节。

强化碰撞的概念:当发送数据的站点一旦发现发生了碰撞时,除了立即停止发送数据外,还要继续发送发送32bit或者48bit的人为干扰信号,以便让所有用户都知道现在已经发生了碰撞。

根据以上讨论,总结一下CSMA/CD协议的要点:

  1. 转杯发送:适配器从网络层获得一个分组,加上以太网的首部和尾部组成以太网帧,放入到适配器的缓存中。但在发送前,必须先检测信道

  2. 检测信道:若检测到信道忙,则应不停的检测,一直等待信道转为空闲。若检测到空闲信道,并在96bit时间内信道保持空闲(保证了帧间最小间隔),就发送该帧。

3.在发送过程中仍不停的检测信道,即网络适配器要边发送边监听,这里只有2种可能性:

  • 发送成功,在争用期内一直未检测到碰撞。这个帧肯定能够发送成功,发送完毕后,什么也不做,然后回到(1)。

  • 发送失败:在争用期内检测到碰撞。这时立即停止发送数据,并按照规定发送人为干扰信号,等待r倍512比特时间后,返回步骤(2),继续检测信道。但若重传16次仍未成功,则停止重传而向上级报错。

以太网每发送完一个帧,一定要把已发送的数据帧在暂时保存下来,如果在争用期内检测出发生了碰撞,那么还要再推迟一段时间把这个暂时保留的帧重传一次。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/77304.html

(0)

相关推荐

  • Python代码里面如何进行设置IP切换头

    技术Python代码里面如何进行设置IP切换头这篇文章给大家分享的是有关Python代码里面如何进行设置IP切换头的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Pythonrequests

    攻略 2021年11月30日
  • 宋仁宗为什么无子,宋仁宗为什么一生没有儿子

    技术宋仁宗为什么无子,宋仁宗为什么一生没有儿子据史料记载,宋仁宗本来生育了有三个儿子,十五个女儿宋仁宗为什么无子。但是这十八个孩子只有四个女儿长大成人,其他都在出生后不久就死了,包括三个皇子。宋仁宗赵祯(1010年5月1

    生活 2021年10月19日
  • 一天饮水量多少毫升,健康人一天的需水量是多少

    技术一天饮水量多少毫升,健康人一天的需水量是多少水分约占到人体体重的2/3,是构成身体的主要成分,而且大部分器官的生理活动都要在液体环境下才能进行,所以,水对于人体至关重要一天饮水量多少毫升。人体需要多少水?人体每天通过

    生活 2021年10月27日
  • 如何用OAuth 2.0实现权限认证mybatis连接mysql数据库

    技术如何用OAuth 2.0实现权限认证mybatis连接mysql数据库本篇内容介绍了“如何用OAuth 2.0实现权限认证mybatis连接mysql数据库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困

    攻略 2021年12月4日
  • 不使用过滤器如何实现vue3时间戳转换

    技术不使用过滤器该怎样实现vue3时间戳转换这期内容当中小编将会给大家带来有关不使用过滤器该怎样实现vue3时间戳转换,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 vue2转换时间戳

    攻略 2021年12月18日
  • c语言如何查询结构体中的数据(数据结构的链表怎么连接c语言)

    技术如何进行数据结构C语言链表的实现这篇文章将为大家详细讲解有关如何进行数据结构C语言链表的实现,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。前言需要用到的函数库#inc

    攻略 2021年12月18日