共计 4049 个字符,预计需要花费 11 分钟才能阅读完成。
应用播送信道的数据链路层
播送信道能够进行一对多通信。
局域网技术在计算机网络中占有十分重要的位置。
局域网的数据链路层
局域网最次要的特点是:网络为一个单位所领有,且天文范畴和站点数目无限。局域网次要有如下一些次要长处:
- 具备博大性能,从一个站点能够很不便的拜访全网。局域网上的主机可共享连贯在局域网上的各种硬件资源和软件资源。
- 便于零碎的扩大和逐步演变,各设施的地位能够灵便调整和扭转。
- 进步了零碎的可靠性,可用性和生存性。
局域网能够依照网络拓扑进行分类,
适配器的作用
计算机与外界局域网的连贯是通过 通信适配器 进行的,网络接口卡又称网卡。适配器与局域网之间的通信是通过电缆或者双绞线以串行传输方式进行,适配器与计算机之间的通信是以并行形式进行通信 ,因而,适配器的一个重要性能就是进行 数据串行传输和并行传输之间的转换 ,除此之外,适配器还要实现 以太网的协定
适配器在承受和发送各种数据帧的时候,不应用计算机的 CPU, 这时计算机中的 CPU 能够解决其余工作。当适配器收到有过错的数据帧时,就把这个帧间接抛弃掉而并不告诉计算机。当适配器收到正确的帧的时候,它会应用中断来告诉计算机,并交付协定栈中的网络层,当计算机要发送 IP 数据报的时候,就由协定栈把 IP 数据包向下交给适配器(数据链路层),组装成帧后发送到局域网。如图 3 -15 示意的是适配器的作用。咱们须要特地留神的是,计算机的硬件地址就在适配器中的 ROM 中,而计算机的软件地址 IP 地址则在计算机的存储器中。
CSMA/CD 协定
最早的以太网是许多计算机是连贯在一根总线上,总线的特点是:当一个计算机发送数据时,总线上的计算机都能检测到这个数据。这种就是播送通信形式。但咱们并不总是要在局域网中进行一对多的播送通信。为了在总线上实现一对一的通信,能够使每一台计算机的适配器领有与其余计算机都不同的地址。在发送数据帧时,在帧的首部写明接收站的地址:当数据帧中的目标地址与适配器的 ROM 中寄存的地址统一的时候,该适配器能力接管这个数据帧。适配器对不是发送给本人的数据帧就抛弃掉。这样,具备播送个性的总线上就实现了一对一的通信形式。
为了通信不便,以太网采取了一下两种措施:
- 采纳较为灵便的 无连贯 的工作形式,即不避先建设连贯就能够间接发送数据 ,适配器对发送的数据帧 不进行编号,也不要求对方发回确认 ,这样做能够使的以太网工作十分的简略。而局域网的通信品质会十分的好。因通信品质而产生过错的概率是非常低的。因而, 以太网提供的服务是尽最大致力的交付 ,即 不牢靠交付 。当目标站收到有过错的帧的时候(例如应用 CRC 循环校验查出有错),就把该帧抛弃掉。其余什么也不做。 对有过错的帧是否重传交给下层解决。
咱们晓得,总线上只有有一台计算机发送数据,总线的传输资源就会被占用。因而,在同一时间内只容许一台计算机发送数据,否则各个计算机之间就会相互烦扰。使得所发送的数据会被毁坏。因而,如何协调总线上各计算机的工作就是以太网要解决的一个重大问题。以太网采纳的是CSMA/CD(载波监听多点接入 / 碰撞检测) - 第二,以太网发送的数据都是曼彻斯特编码的信号(降落沿为 1(前高后低),回升沿为 0(前低后高)),毛病就是它所占用的频带宽度是基带宽度的两倍。
上面介绍 CSMA/CD 协定的要点
多点接入 就是阐明这是总线型网络,许多计算机以多点接入的形式连贯在一根总线上。
载波监听 就是用电子技术检测总线上有没有其余计算机在发送数据。其实就是检测信道。不论在发送前,还是发送中,每个站点都必须不停的检测信道。在发送前检测信道是为了取得发送权,如果检测出曾经有计算机发送数据了,则本人就临时不能发送数据。必须要期待信道闲暇后能力发送数据,如果在发送数据过程中检测到信道产生了碰撞,则须要执行一系列的算法来解决。
碰撞检测 也就是 边发送边监听,即适配器边发送数据边检测信道的信号电压变动状况。一边判断本人在发送数据的时候其余站是否也在发送数据,当总线上几个站在同时发送数据的时候,总线上的信号电压变动幅度将会增大(相互叠加)。当适配器检测到信号电压超过肯定的门限值时,就认为总线上至多有两个站点在同时发送数据,表明产生了碰撞(抵触)。这时,总线上传输的信号产生了重大的失真,无奈从中复原出无利的信息来。因而,任何一个正在发送数据的站,一旦发现总线上呈现了碰撞,其适配器就立刻进行发送,省得持续有效的发送。白白的节约网络资源。而后期待一段随机工夫再次发送。
既然每一个站在发送数据之前曾经检测到信道为 闲暇 ,那么为什么还会呈现数据在总线上的碰撞呢?这是因为电磁波在总线上传输数据总是以无限的速率发送, 电磁波在 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$ 称之为 争用期 ,它是一个很重要的参数。争用期又称之 碰撞窗口 ,这是因为一个站在发送完数据后,只有通过争用期的 考验 ,即 通过争用期这段时间还没检测到碰撞,能力必定这次发送不会产生碰撞。
以太网应用的是 截断二进制指数退却算法 来确定碰撞后重传工夫。这种算法让产生碰撞的站在进行产生数据后确定重传的工夫。不是期待信道空闲暇就立刻发送数据。而是 推延 / 退却 一个随机工夫,具体的退却算法如下:
- 协定规定了退却工夫为争用期 2$\tau$, 具体的争用期工夫为 512 微秒,为了不便,也能够 间接应用比特作为争用期单位,争用期为 512bit, 即争用期为发送 512 比特所需的工夫。
-
从离散的整数汇合 [0,1,…,(2^k^-1)] 中随机取出一个数,记为 r。重传应退后的工夫为 r 倍的争用期。,下面的参数 k 能够依照上面的公式进行计算:
k=Min(重传次数,10)
可见,当重传次数不超过 10 时,参数 k 等于重传次数; 但当重传次数超过 10 时,K 就不会增大而始终等于 10。
- 当重传播 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 协定的要点:
- 转杯发送:适配器从网络层取得一个分组,加上以太网的首部和尾部组成以太网帧,放入到适配器的缓存中。但在发送前,必须 先检测信道。
- 检测信道:若检测到信道忙,则应不停的检测,始终期待信道转为闲暇。若检测到闲暇信道,并在 96bit 工夫内信道放弃闲暇(保障了帧间最小距离),就发送该帧。
3. 在发送过程中仍不停的检测信道,即网络适配器要边发送边监听,这里只有 2 种可能性:
- 发送胜利,在争用期内始终未检测到碰撞。这个帧必定可能发送胜利,发送结束后,什么也不做,而后回到(1)。
- 发送失败:在争用期内检测到碰撞。这时立刻进行发送数据,并依照规定发送人为干扰信号,期待 r 倍 512 比特工夫后,返回步骤(2), 持续检测信道。但若重传 16 次仍未胜利,则进行重传而向下级报错。
以太网每发送完一个帧,肯定要把已发送的数据帧在临时保留下来,如果在争用期内检测出产生了碰撞,那么还要再推延一段时间把这个临时保留的帧重传一次。