精华内容
下载资源
问答
  • 以太网解决冲突方法
    千次阅读
    2019-06-09 08:24:00

    在规划一群计算机如何使用网络介质传输数据包而不是一群人如何使用电话线实时通话的时候,不得不换一种思路。

    为什么以太网最初没有采用TDM或者FDM或者随便别的什么xxDM,而是采用随机统计分时复用的CSMA/CD呢?

    • 以太网流量是突发的
    • 以太网流量不要求实时
    • 以太网无连接

    其实,甚至 冲突检测 都是次要的,它只是优化,而并非核心。有冲突就要有退避,所以,紧随着冲突,以太网采用的二进制指数退避,也并非核心!如果把所有的冲突检测以及退避机制都交给上层,那么保留一个核心的简洁以太网模型来分析是必要的。

    只需要假定以太网流量符合泊松分布就足够了。在基于这个假设的结论进行分析之前,必须先来看一下 为什么冲突并非核心。 不然就不敢随意抛弃它。

    如果一个站点已经检测到信道空闲,那为什么还会有冲突呢?因为数据帧的传输是有传播时延的,数据帧传输速度有上限,即光速 c c c,也就是说对于每一个站点的冲突检测机制来讲,它有一个所谓的 视界 视界外面的东西,站点是检测不到的。

    • 站点只能检测到数据帧到达目的地之前 L c \dfrac{L}{c} cL( L L L为线缆长度)时间的冲突!

    所以说,冲突是由光速极限引起的,这种物理世界的局限,或者你说缺陷也行,冲突并非由算法导致,所以冲突并非核心。

    然而,日常物理世界诺大的光速到了纳秒,微秒,毫秒计时的计算机网络世界,却是一个非常日常的参数。所以,虽然它不是算法的核心,但是引发的冲突导致的重传将会极大影响以太网的效率。


    按照假设,以太网的流量符合泊松分布,忽略复杂的二进制指数退避,再假设重传概率是常数,那么信号的效率 E E E可以表示为:

    E = 1 1 + 2 B L e c l E=\dfrac{1}{1+\dfrac{2 B Le}{cl}} E=1+cl2BLe1

    其中, B B B为带宽, L L L为线缆长度, l l l为帧长度, e , c e,c ec为常数。

    由此, L L L越长, B B B越大,CSMA/CD的效率就越低,反之,帧长 l l l越长,效率就越高!所谓的以太网最小帧长度64B,普通帧长度1500B,理论上都是可以从这公式里算出来的,之所以我们现在都接受1500B是以太网卡的普遍MTU,其实是因为这样在泊松分布的假设下效率最高。

    所以说,随着对带宽需求的提高,对距离的需求提高,CSMA/CD逐渐变得不再适用,也因此,后来的千兆,万兆以太网,干脆不再支持CSMA/CD了。当然,CSMA/CD时代的1500B这个默认MTU值,作为以太网的标志依然被兼容性地保留了下来。


    由于CSMA/CD的冲突是光速固有极限带来的,所以在时间域上我们没有办法消除。

    要想消除冲突,必须将时间域上的统计分时复用转换到空间域上的统计缓存复用。

    在时间域的CSMA/CD时代,统计分时复用机制是分布在每一个站点上被实现的,这就是 介质访问子层 的作用,如果转换到了空间域的缓存统计复用,那么介质访问子层便不再需要,有帧就直接发,所有的分布式介质访问子层的功能将统一集中于交换节点的队列管理系统。

    这就是交换式以太网,在纯交换式以太网中,已经不再需要CSMA/CD,交换机取代了介质访问子层的作用。当然,在工程上,兼容是必须的,所以,支持CSMA/CD并不意味着一定就采用了它。


    说回冲突。

    在时间域上,同一个时间槽,只能有一个帧在传输,如果别的帧也传输了,就会造成冲突,两者皆退避。

    在空间域上,发生着完全相同的事情。

    同一个缓存位置,只能有一个帧占据,如果同时来了两个帧,针对该位置,那就是冲突了。然而队列机制可以将这次冲突暂时 积累 下来,使用 下一个位置 ,和时间域不同,时间只能纵向延展,而空间域则可以横向扩展。

    最终,当空间域用尽了整个缓存后,需要将积累的冲突进行一次性惩罚,即积累式退避,这就是AIMD中MD的意义,其实就是空间域的积累式指数退避。积累式退避也是空间域的,即可发送字节数的MD,而不是等待时间MD。

    介质访问子层功能在交换式以太网时代已经被架空了,事实上它也控制不了 什么时候发送 ,它只需要知道能发多少就是了。


    这就是总线式以太网向交换式以太网进化过程中背后的故事。

    值得一提的是,不要纠结于为什么以太网流量符合泊松分布,事实上,以太网流量根本就不符合泊松分布,之所以采用这个泊松分布假设,是因为在数学上比较容易处理,其背后的假设也是合理的:

    • 数据帧的发送是独立的随机事件。

    浙江温州皮鞋湿,下雨进水不会胖。

    更多相关内容
  • 摘要 以太网技术以其低成本、高速、高稳定性和高可靠性的优点,正逐渐向工业现场控制领域发展,但是由于以太网技术在工业现场通信方面不能满足实时性的要求,因此就诞生了许多实时以太网技术的解决方案。本文主要...
  • 1、多个CAN节点可以同时发送数据(多主发送)。2、 最高速度可达1Mbps,在传输速率50Kbps时,传输距离可以达到1公里。在10Kbps速率时,传输距离可以达到5公里。...->以太网&TCP/IP透明数据传输。端口
  • 第一级由ATM交换机组成,网络服务器、多媒体工作站等工作在主干网络上,第二级由大量的以太网交换机构成,对第三级桌面提供高密度端口。并根据划分出的VLAN(Vitual Local Area Network)提供实际的VLAN端口。网络协议...
  • 设置里增添以太网mac地址显示ui,解决了rk3288平台以太网mac地址每次开机都会发生变化的情况
  • 以太网冲突故障排除

    千次阅读 2017-04-27 09:54:14
    目录 简介 先决条件 ...什么是冲突?...冲突计数器 ...本文档将概述与以太网冲突相关的不同计数器,并说明如何排除以下错误信息报告(取决于不同平台)的以太网冲突相关问题: %AMDP2_FE-5-COLL

    简介

    本文档将概述与以太网冲突相关的不同计数器,并说明如何排除以下错误信息报告(取决于不同平台)的以太网冲突相关问题:

    • %AMDP2_FE-5-COLL

    • %DEC21140-5-COLL

    • %ILACC-5-COLL

    • %LANCE-5-COLL

    • %PQUICC-5-COLL

    • %PQUICC_ETHER-5-COLL

    • %PQUICC_FE-5-COLL

    • %QUICC_ETHER-5-COLL

    • %AMDP2_FE-5-LATECOLL

    • %DEC21140-5-LATECOLL

    • %ILACC-5-LATECOLL

    • %LANCE-5-LATECOLL

    • %PQUICC-5-LATECOLL

    • %PQUICC_ETHER-5-LATECOLL

    • %PQUICC_FE-5-LATECOLL

    • %QUICC_ETHER-5-LATECOLL

    • %SIBYTE-4-SB_EXCESS_COLL

    注意: 本文档中的信息只适用于半双工以太网。在全双工以太网中,冲突检测已禁用。

    先决条件

    要求

    本文档没有任何特定的要求。

    使用的组件

    本文档不限于特定的软件和硬件版本。

    本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。

    规则

    有关文档规则的详细信息,请参阅 Cisco 技术提示规则

    什么是冲突?

    冲突是以太网用于控制访问和分配站间共享带宽的机制冲突,站点则是指想要在共享介质 上同时传输数据的站点。由于共享媒体,因而必须具有一种机制,以检测出它们需要同时传输。此机制便是冲突检测。

    以太网使用 CSMA/CD(载波侦听多路访问/冲突检测) 作为其冲突检测方法。这是以太网操作的一个简化示例:

    eth_collisions.gif

    1. 站点 A 想要发送帧。首先,它检查媒体是否可用(载波侦听)。如果它不是,直到等待媒体上当前的发送方完成。

    2. 假设位置 A 相信媒体是可用的并且尝试发送帧。由于媒体共享(多路访问),其它发送器也可以尝试同时发送。这时,站点 B 尝试与站点 A 同时发送帧。

    3. 很快,A 站和 B 站将发现有另一台设备尝试发送帧(冲突检测)。每个站点将随机等待一段时间,然后再次发送帧。冲突以后的时间分成多个时隙;站点 A 和站点 B 各选择一个随机的时隙,以尝试重传。

    4. 如果 A 站和 B 站在同一个插槽内尝试重新传输,则将扩大插槽的数量。然后每个位置选择一个新的插槽,从而减少在同一个插槽转播的可能性。

    总之,冲突是通过仲裁接入到共享介质,随着时间分配数据流负载的一种方式。冲突并不是一件坏事;它对更正以太网操作非常重要。

    一些有用信息:

    • 最大时隙限制为 1024。

    • 冲突机制中同一帧的最多重传次数为 16。如果连续失败 16 次,则算作是过度冲突

    延迟计数器

    下面是 show interface 命令的输出示例:

    router#show interface ethernet 0Ethernet0 is up, line protocol is up   Hardware is Lance, address is 0010.7b36.1be8 (bia 0010.7b36.1be8)  Internet address is 10.200.40.74/22  MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec,      reliability 255/255, txload 1/255, rxload 1/255  Encapsulation ARPA, loopback not set  Keepalive set (10 sec)  ARP type: ARPA, ARP Timeout 04:00:00  Last input 00:00:00, output 00:00:06, output hang never  Last clearing of "show interface" counters never  Input queue: 1/75/1/0 (size/max/drops/flushes); Total output drops: 0  Queueing strategy: random early detection(RED)  Output queue :0/40 (size/max)  5 minute input rate 1000 bits/sec, 2 packets/sec  5 minute output rate 0 bits/sec, 0 packets/sec     2058015 packets input, 233768993 bytes, 1 no buffer     Received 1880947 broadcasts, 0 runts, 0 giants, 1 throttles     3 input errors, 0 CRC, 0 frame, 0 overrun, 3 ignored     0 input packets with dribble condition detected     298036 packets output, 32280269 bytes, 0 underruns     0 output errors, 10 collisions, 0 interface resets     0 babbles, 0 late collision, 143 deferred     0 lost carrier, 0 no carrier     0 output buffer failures, 0 output buffers swapped out

    延迟计数器计算接口设法发送帧的次数,但发现载波忙于第一次尝试(载波侦听)。这不构成问题,是正常以太网操作的一部分。

    冲突计数器

    下面是 show interface 命令的另一输出示例:

    router#show interface ethernet 0Ethernet0 is up, line protocol is up   Hardware is Lance, address is 0010.7b36.1be8 (bia 0010.7b36.1be8)  Internet address is 10.200.40.74/22  MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec,      reliability 255/255, txload 1/255, rxload 1/255  Encapsulation ARPA, loopback not set  Keepalive set (10 sec)  ARP type: ARPA, ARP Timeout 04:00:00  Last input 00:00:00, output 00:00:06, output hang never  Last clearing of "show interface" counters never  Input queue: 1/75/1/0 (size/max/drops/flushes); Total output drops: 0  Queueing strategy: random early detection(RED)  Output queue :0/40 (size/max)  5 minute input rate 1000 bits/sec, 2 packets/sec  5 minute output rate 0 bits/sec, 0 packets/sec     2058015 packets input, 233768993 bytes, 1 no buffer     Received 1880947 broadcasts, 0 runts, 0 giants, 1 throttles     3 input errors, 0 CRC, 0 frame, 0 overrun, 3 ignored     0 input packets with dribble condition detected     298036 packets output, 32280269 bytes, 0 underruns     0 output errors, 10 collisions, 0 interface resets     0 babbles, 0 late collision, 143 deferred     0 lost carrier, 0 no carrier     0 output buffer failures, 0 output buffers swapped out

    按照此处的说明,冲突不构成问题。冲突计数器可计算发送帧时发生一次或多次冲突的帧的数量。

    冲突计数器可以被分解为一次冲突和多次冲突,正如 show controller 命令的输出所示:

    8 single collisions, 2 multiple collisions

    这意味着,在一个冲突发生后,成功传输了 8 个帧(总共 10 个)。另外两个帧要求多个冲突以仲裁对媒体的访问。

    冲突率(数据包输出数量除以冲突数量)提高并不表示出现问题:它仅仅表示网络的流入负载增加。一个例子可以是因为另一个站添加到网络中。

    没有“多少次冲突是坏”或最大冲突比率的设置限额。

    总而言之,当分析网络性能或问题时,冲突计数器并不能提供很有用的统计数据。

    延迟冲突

    为使冲突检测功能正常工作,对检测冲突的时间段进行了限制(512 位时间)。对于以太网,该限制为 51.2 us(微秒),对于快速以太网,为 5.12 us。对于以太网站点,传输开始后,冲突检测最高可达 51.2 微秒,或者换句话说最高可达到帧的第 512 位。

    站点发送了其帧的第 512 位之后,将检测到冲突,该冲突计为延迟冲突

    延迟冲突由以下错误消息报告:

    %AMDP2_FE-5-LATECOLL: AMDP2/FE 0/0/[dec], Late collision %DEC21140-5-LATECOLL: [chars] transmit error %ILACC-5-LATECOLL: Unit [DEC], late collision error %LANCE-5-LATECOLL: Unit [DEC], late collision error %PQUICC-5-LATECOLL: Unit [DEC], late collision error %PQUICC_ETHER-5-LATECOLL: Unit [DEC], late collision error %PQUICC_FE-5-LATECOLL: PQUICC/FE([DEC]/[DEC]), Late collision    %QUICC_ETHER-5-LATECOLL: Unit [DEC], late collision error

    确切的错误信息根据平台不同而有所不同。您能用 show interface ethernet [接口号] 命令检查输出中额外冲突的数量。

    router#show interface ethernet 0Ethernet0 is up, line protocol is up   Hardware is Lance, address is 0010.7b36.1be8 (bia 0010.7b36.1be8)  Internet address is 10.200.40.74/22  MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec,      reliability 255/255, txload 1/255, rxload 1/255  Encapsulation ARPA, loopback not set  Keepalive set (10 sec)  ARP type: ARPA, ARP Timeout 04:00:00  Last input 00:00:00, output 00:00:06, output hang never  Last clearing of "show interface" counters never  Input queue: 1/75/1/0 (size/max/drops/flushes); Total output drops: 0  Queueing strategy: random early detection(RED)  Output queue :0/40 (size/max)  5 minute input rate 1000 bits/sec, 2 packets/sec  5 minute output rate 0 bits/sec, 0 packets/sec     2058015 packets input, 233768993 bytes, 1 no buffer     Received 1880947 broadcasts, 0 runts, 0 giants, 1 throttles     3 input errors, 0 CRC, 0 frame, 0 overrun, 3 ignored     0 input packets with dribble condition detected     298036 packets output, 32280269 bytes, 0 underruns     0 output errors, 10 collisions, 0 interface resets     0 babbles, 0 late collision, 143 deferred     0 lost carrier, 0 no carrier     0 output buffer failures, 0 output buffers swapped out

    注意: 站点报告延迟冲突仅仅表示存在问题;延迟冲突一般不是问题的原因。可能的原因通常是网络中布线不正确或集线器数量不符合要求。损坏的网络接口卡(NIC)能也导致延迟冲突。

    Excessive Collision

    如以前讨论的,在补偿算法中最大数量的重试次数是设置到 16。这意味着如果接口不能分配插槽(接口可以在插槽中传输其帧,而不会有其他 16 次冲突),则将放弃分配。帧将不会传输,并标记为过度冲突

    过度冲突由以下错误消息报告:

    %AMDP2_FE-5-COLL: AMDP2/FE 0/0/[DEC], Excessive collisions, TDR=[DEC], TRC=[DEC]    %DEC21140-5-COLL: [chars] excessive collisions %ILACC-5-COLL: Unit [DEC], excessive collisions. TDR=[DEC] %LANCE-5-COLL: Unit [DEC], excessive collisions. TDR=[DEC]    %PQUICC-5-COLL: Unit [DEC], excessive collisions. Retry limit [DEC] exceeded    %PQUICC_ETHER-5-COLL: Unit [DEC], excessive collisions. Retry limit [DEC] exceeded    %PQUICC_FE-5-COLL: PQUICC/FE([DEC]/[DEC]), Excessive collisions, TDR=[DEC], TRC=[DEC]%QUICC_ETHER-5-COLL: Unit [DEC], excessive collisions. Retry limit  [DEC] exceeded%SIBYTE-4-SB_EXCESS_COLL : Excessive collisions on mac [dec] (count: [dec])

    确切的错误信息根据平台不同而有所不同。

    注意: 发送重试计数(TRC)计数器是显示关联信息包的传输重试次数的4位字段。最大计数为 15。然而,如果发生重试错误,计数将返回为零。仅在这种情况下,TRC 值为零应理解为十六。控制器将 TRC 写入一个帧的最后传输描述符,或者当一个错误终止了帧。

    注意: 时间延迟反射计(TDR)计数器是内部计数器(每隔100纳秒(ns)滴答一声),计算从传输开始到冲突发生之间的时间。由于计数器每跳一下,大约能传输 35 英尺,因而该值可用于确定到线缆故障的大约距离。

    您能用 show controller ethernet [接口号] 命令检查输出中额外冲突的数量。

    router#show controller ethernet 0LANCE unit 0, idb 0xFA6C4, ds 0xFC218, regaddr = 0x2130000, reset_mask 0x2IB at 0x606E64: mode=0x0000, mcfilter 0000/0000/0100/0000station address 0010.7b36.1be8  default station address 0010.7b36.1be8buffer size 1524RX ring with 16 entries at 0x606EA8Rxhead = 0x606EC8 (4), Rxp = 0xFC244 (4)00 pak=0x0FCBF4 Ds=0x60849E status=0x80 max_size=1524 pak_size=6601 pak=0x10087C Ds=0x6133B6 status=0x80 max_size=1524 pak_size=6602 pak=0x0FDE94 Ds=0x60BA7E status=0x80 max_size=1524 pak_size=20303 pak=0x100180 Ds=0x611F82 status=0x80 max_size=1524 pak_size=6604 pak=0x0FD09C Ds=0x609216 status=0x80 max_size=1524 pak_size=6605 pak=0x0FE590 Ds=0x60CEB2 status=0x80 max_size=1524 pak_size=6606 pak=0x100AD0 Ds=0x613A72 status=0x80 max_size=1524 pak_size=6607 pak=0x0FD9EC Ds=0x60AD06 status=0x80 max_size=1524 pak_size=6608 pak=0x0FF830 Ds=0x610492 status=0x80 max_size=1524 pak_size=34809 pak=0x1003D4 Ds=0x61263E status=0x80 max_size=1524 pak_size=34310 pak=0x0FEA38 Ds=0x60DC2A status=0x80 max_size=1524 pak_size=6611 pak=0x100D24 Ds=0x61412E status=0x80 max_size=1524 pak_size=6412 pak=0x0FC74C Ds=0x607726 status=0x80 max_size=1524 pak_size=6413 pak=0x0FD798 Ds=0x60A64A status=0x80 max_size=1524 pak_size=6614 pak=0x0FE7E4 Ds=0x60D56E status=0x80 max_size=1524 pak_size=6415 pak=0x0FD2F0 Ds=0x6098D2 status=0x80 max_size=1524 pak_size=66TX ring with 4 entries at 0x606F68, tx_count = 0TX_head = 0x606F80 (3), head_txp = 0xFC294 (3)TX_tail = 0x606F80 (3), tail_txp = 0xFC294 (3)00 pak=0x000000 Ds=0x63491E status=0x03 status2=0x0000 pak_size=33201 pak=0x000000 Ds=0x634FDA status=0x03 status2=0x0000 pak_size=32702 pak=0x000000 Ds=0x630A9E status=0x03 status2=0x0000 pak_size=6003 pak=0x000000 Ds=0x630A9E status=0x03 status2=0x0000 pak_size=603 missed datagrams, 0 overruns0 transmitter underruns, 0 excessive collisions8 single collisions, 2 multiple collisions0 dma memory errors, 0 CRC errors 0 alignment errors, 0 runts, 0 giants0 tdr, 0 spurious initialization done interrupts0 no enp status, 0 buffer errors, 0 overflow errors0 TX_buff, 1 throttled, 1 enabledLance csr0 = 0x73

    过度冲突表示出现问题。常见原因是:设备以全双工方式在共享以太网上连接、NIC 破坏、或者共享媒体上站点过多。过度冲突可以通过硬编码指定速度和双工来解决。

    在 Cisco Catalyst 交换机中,如果 service internal 模式打开,每次出现过度冲突时将显示 %SIBYTE-4-SB_EXCESS_COLL 系统消息。当 service internal 模式关闭时,仅当过度冲突达到某一固定阈值时,系统才输出此消息。在这种情况下,出现此消息可能表示存在真正的冲突。当 service internal 模式打开时,每出现一次过度冲突,系统即输出此消息。这也许是由一些硬件噪声造成的。service internal 模式打开时,偶尔出现此消息是正常的。您可以发出 no service internal 命令以关闭此日志记录,并查看此操作对错误日志的影响。

    展开全文
  • IP地址冲突的原因及其解决方法8888888888888888888888888
  • 以太网协议已经是非常成熟的通信技术,本文旨在在汇总以太网MAC层的协议,以便于与其他通信技术的MAC层作为比较,如4G LTE, 5G NR,特别是LTE在非授权频谱上的通信LAA LBT, 就是借鉴了无线以太网MAC层的协议规范。...

    以太网协议已经是非常成熟的通信技术,本文旨在在汇总以太网MAC层的协议,以便于与其他通信技术的MAC层作为比较,如4G LTE, 5G NR,特别是LTE在非授权频谱上的通信LAA LBT, 就是借鉴了无线以太网MAC层的协议规范。


    目录

    第1章 以太网概述

    1.1 以太网概述

    1.2 以太网协议族

    1.3 以太网协议栈

    第2章 以太网帧结构

    第3章 MAC与PHY层的接口

    3.1  MII接口

    3.2 RMII接口(Reduced MII)

    3.3 SMII接口

    3.4 GMII接口(Gbits MII):

    3.5 RGMII接口(Reduced GMII):

    3.6 SGMII接口:

    第4章 有线以太网的调度策略:载波侦听多路访问/冲突检测CSMA/CD

    4.1 载波侦听与延时监听算法

    4.2  尽最大可能投递

    4.3 冲突检测与冲突处理算法

    第5章 无线以太网MAC层调度策略:载波侦听多路访问/冲突避免: CSMA/CA

    5.1 载波侦听与信道空闲保证

    5.2 延时发送

    5.4 信道探测

    5.4 接收应答

    第6章 CSMA/CD与CSMA/CA区别

    6.1 适用的场景不同

    6.2 应对冲突风险的策略不同

    第7章 载波侦听CSMA的类型

    7.1 坚持型CSMA

    7.2 非坚持型CSMA

    7.3 P坚持型CSMA

    第8章 常见的退避类型

    8.1 根据延时窗口的大小划分

    8.2 根据延时时间与冲突次数的关系划分


    第1章 以太网概述

    1.1 以太网概述

    以太网工作原理

    以太网是现实世界中最普遍的一种计算机网络。

    (1)根据网络的架构,以太网分为

    • 第一类是总线型以太网

    总线型以太网是以太网的原始形式,运行速度从3~10 Mbps不等;

    以太网

    • 第二类是交换式以太网,

    以太网结构

    使用了一种称为交换机的设备连接不同的计算机。交换式以太网正是广泛应用的以太网,可运行在100、1000和10000Mbps那样的高速率,分别以快速以太网、千兆以太网和万兆以太网的形式呈现。

    (2)根据传输介质形态,以太网分为:

    • 有线以太网

    路由器和交换机与连接的电缆订购ip traffic **注意:浅景深

    • 无线以太网

    1.2 以太网协议族

    1.3 以太网协议栈

    物理层:主要解决如何通过电路信号、无拆差错的传输二进制比特流,通常有物理层层芯片PHY实现的。

    详见:《图解通信原理与案例分析-8:以太网通信案例及其物理层工作原理深入剖析--物理层编码》

    图解通信原理与案例分析-8:以太网通信案例及其物理层工作原理深入剖析--物理层编码_文火冰糖的硅基工坊的博客-CSDN博客_以太网物理层编码

    MAC层:负责MAC层帧的调度,包括载波侦听、冲突检测,即以公平的方式,按照统一的规则,何时发送物理层的帧。通常MAC层芯片实现的。以太网帧是以Package为调度单元。

    LLC层:主要负责在网络负载比较重的情况下的流控。

    第2章 以太网帧结构

    以太帧结构(格式)

    上图中每个字段的含义如下表所示:

    字段含义
    前同步码用来使接收端的适配器在接收 MAC 帧时能够迅速调整时钟频率,使它和发送端的频率相同。前同步码(时钟同步)为 7 个字节,1 和 0 交替。
    帧开始定界符帧的起始符,为 1 个字节。前 6 位 1 和 0 交替,最后的两个连续的 1 表示告诉接收端适配器:“帧信息要来了,准备接收”。
    目的地址接收帧的网络适配器的物理地址(MAC 地址),为 6 个字节(48 比特)。作用是当网卡接收到一个数据帧时,首先会检查该帧的目的地址,是否与当前适配器的物理地址相同,如果相同,就会进一步处理;如果不同,则直接丢弃。
    源地址发送帧的网络适配器的物理地址(MAC 地址),为 6 个字节(48 比特)。
    类型上层协议的类型。由于上层协议众多,所以在处理数据的时候必须设置该字段,标识数据交付哪个协议处理。例如,字段为 0x0800 时,表示将数据交付给 IP 协议。
    数据也称为效载荷,表示交付给上层的数据。以太网帧数据长度最小为 46 字节,最大为 1500 字节。如果不足 46 字节时,会填充到最小长度。最大值也叫最大传输单元(MTU)。

    在 Linux 中,使用 ifconfig 命令可以查看该值,通常为 1500。
    帧检验序列 FCS检测该帧是否出现差错,占 4 个字节(32 比特)。发送方计算帧的循环冗余码校验(CRC)值,把这个值写到帧里。接收方计算机重新计算 CRC,与 FCS 字段的值进行比较。如果两个值不相同,则表示传输过程中发生了数据丢失或改变。这时,就需要重新传输这一帧。

    第3章 MAC与PHY层的接口

    MII是英文Medium Independent Interface的缩写,翻译成中文是“介质独立接口”,该接口一般应用于以太网硬件平台的MAC层和PHY层之间。

    MII接口的类型有很多,常用的有MII、RMII、SMII、SSMII、SSSMII、GMII、RGMII、SGMII、TBI、RTBI、XGMII、XAUI、XLAUI等。下面对它们进行一一介绍。

    MAC与PHY之间的接口信号,可以清晰的看到MAC与PHY的职责分工。

    比如载波侦听和冲突检测的执行是PHY层芯片,载波侦听和冲突检测的结果却是MAC层。

    3.1  MII接口

    MII接口一共有16根线。

    (1)接收

    RXD(Receive Data)[3:0]:数据接收信号,共4根信号线;

    RX_DV(Reveive Data Valid): 接收数据有效信号,作用类型于发送通道的TX_EN;

    RX_CLK:接收数据参考时钟,100Mbps速率下,时钟频率为25MHz,10Mbps速率下,时钟频率为2.5MHz。RX_CLK也是由PHY侧提供的。

    RX_ER(Receive Error): 接收数据错误提示信号,同步于RX_CLK,高电平有效,表示RX_ER有效期内传输的数据无效。对于10Mbps速率下,RX_ER不起作用;

    (2)发送

    TXD(Receive Data)[3:0]:数据发送信号,共4根信号线;

    TX_EN(Transmit Enable): 发送使能信号,只有在TX_EN有效期内传的数据才有效;

    TX_CLK:发送参考时钟,100Mbps速率下,时钟频率为25MHz,10Mbps速率下,时钟频率为2.5MHz。注意,TX_CLK时钟的方向是从PHY侧指向MAC侧的,因此此时钟是由PHY提供的。

    TX_ER(Transmit Error): 发送数据错误提示信号,同步于TX_CLK,高电平有效,表示TX_ER有效期内传输的数据无效。对于10Mbps速率下,TX_ER不起作用;

    (3)载波侦听与冲突检测

    CRS:Carrier Sense,载波侦测信号,不需要同步于参考时钟,只要有数据传输,CRS就有效,另外,CRS只有PHY在半双工模式下有效;

    COL:Collision Detectd,冲突检测信号,不需要同步于参考时钟,只有PHY在半双工模式下有效。

    这表明:载波侦听和冲突检测,都是PHY芯片完成的,并通过这两个信号通知MAC层。

    3.2 RMII接口(Reduced MII)

    RMII即Reduced MII,是MII的简化板,连线数量由MII的16根减少为8根。

    (1)接收

    RXD[1:0]:数据接收信号线,数据位宽为2,是MII接口的一半;

    RX_ER(Receive Error):数据接收错误提示信号,与MII接口中的该信号线功能一样;
     

    (2)发送

    TXD[1:0]:数据发送信号线,数据位宽为2,是MII接口的一半;

    TX_EN(Transmit Enable):数据发送使能信号,与MII接口中的该信号线功能一样;

    (3)载波侦听和冲突检测

    • CLK_REF:是由外部时钟源提供的50MHz参考时钟,与MII接口不同,MII接口中的接收时钟和发送时钟是分开的,而且都是由PHY芯片提供给MAC芯片的。

    这里需要注意的是,由于数据接收时钟是由外部晶振提供而不是由载波信号提取的,所以在PHY层芯片内的数据接收部分需要设计一个FIFO,用来协调两个不同的时钟,在发送接收的数据时提供缓冲。

    PHY层芯片的发送部分则不需要FIFO,它直接将接收到的数据发送到MAC就可以了。

    • CRS_DV:此信号是由MII接口中的RX_DVCRS两个信号合并而成。

    当介质不空闲时,CRS_DV和RE_CLK相异步的方式给出。

    当CRS比RX_DV早结束时(即载波消失而队列中还有数据要传输时),就会出现CRS_DV在半位元组的边界以25MHz/2.5MHz的频率在0、1之间的来回切换。因此,MAC能够从 CRS_DV中精确的恢复出RX_DV和CRS。

    在100Mbps速率时,TX/RX每个时钟周期采样一个数据;

    在10Mbps速率时,TX/RX每隔10个周期采样一个数据,因而TX/RX数据需要在数据线上保留10个周期,相当于一个数据发送10次。

    PHY层芯片收到有效的载波信号后,CRS_DV信号变为有效,此时如果FIFO中还没有数据,则它会发送出全0的数据给MAC,然后当FIFO中填入有效的数据帧,数据帧的开头是“101010—”交叉的前导码,当数据中出现“01”的比特时,代表正式数据传输开始,MAC芯片检测到这一变化,从而开始接收数据。

    当外部载波信号消失后,CRS_DV会变为无效,但如果FIFO中还有数据要发送时,CRS_DV在下一周期又会变为有效,然后再无效再有效,直到FIFO中数据发送完为止。

    在接收过程中如果出现无效的载波信号或者无效的数据编码,则RX_ER会变为有效,表示物理层芯片接收出错。

    3.3 SMII接口

    SMII即Serial MII,串行MII的意思,跟RMII相比,连线进一步减少到4根;

    (1)接收

    RXD:接收数据信号,位宽为1;

    (2)发送

    TXD:发送数据信号,位宽为1;

    CLK_REF:所有端口共用的一个参考时钟,频率为125MHz,为什么100Mbps速率要用125MHz时钟?因为在每8位数据中会插入2位控制信号,

    (3)载波侦听与冲突检测

    SYNC:收发数据同步信号,每10个时钟周期置1次高电平,指示同步。

    TXD/RXD以10比特为一组,以SYNC为高电平来指示一组数据的开始(表示检测到载波信号),在SYNC变高后的10个时钟周期内,

    TXD上依次输出的数据是:TXD[7:0]、TX_EN、TX_ER,控制信号的含义与MII接口中的相同;

    RXD上依次输出的数据是:RXD[7:0]、RX_DV、CRS(载波侦听信息)控制信号的含义与MII接口中的相同;

    RXD[7:0]的含义与RX_DV有关,

    当RX_DV为有效时(高电平),RXD[7:0]上传输的是物理层接收的数据信息。

    当RX_DV为无效时(低电平),RXD[7:0]上传输的是物理层的状态信息。


    检测到载波,说明有接收数据,因此载波侦听与接收数据合二为一。

    冲突检测逐渐取消了,主要原因是:现代的有线以太网,以及有Hub的共享总线的网络转化成以Switch为中心的点对点网络,不存在冲突。

    冲突检测还存在在WIFI无线网络中。

    3.4 GMII接口(Gbits MII):

    与MII接口相比,GMII的数据宽度由4位变为8位。

    GMII接口中的控制信号如TX_ER、TX_EN、RX_ER、RX_DV、CRS和COL的作用同MII接口中的一样。

    发送参考时钟GTX_CLK和接收参考时钟RX_CLK的频率均为125MHz(1000Mbps/8=125MHz)。

    在这里有一点需要特别说明下,那就是发送参考时钟GTX_CLK,它和MII接口中的TX_CLK是不同的:

    MII接口中的TX_CLK是由PHY芯片提供给MAC芯片的,而GMII接口中的GTX_CLK是由MAC芯片提供给PHY芯片的。两者方向不一样。

    在实际应用中,绝大多数GMII接口都是兼容MII接口的,所以,一般的GMII接口都有两个发送参考时钟:TX_CLK和GTX_CLK(两者的方向是不一样的,前面已经说过了),在用作MII模式时,使用TX_CLK和8根数据线中的4根。

    3.5 RGMII接口(Reduced GMII):

    RGMII即Reduced GMII,是RGMII的简化版本,将接口信号线数量从24根减少到14根(COL/CRS端口状态指示信号,这里没有画出),时钟频率仍旧为125MHz,TX/RX数据宽度从8为变为4位,为了保持1000Mbps的传输速率不变,RGMII接口在时钟的上升沿和下降沿都采样数据。在参考时钟的上升沿发送GMII接口中的TXD[3:0]/RXD[3:0],在参考时钟的下降沿发送GMII接口中的TXD[7:4]/RXD[7:4]。RGMI同时也兼容100Mbps和10Mbps两种速率,此时参考时钟速率分别为25MHz和2.5MHz。

    TX_EN信号线上传送TX_EN和TX_ER两种信息,在TX_CLK的上升沿发送TX_EN,下降沿发送TX_ER;同样的,RX_DV信号线上也传送RX_DV和RX_ER两种信息,在RX_CLK的上升沿发送RX_DV,下降沿发送RX_ER。

    3.6 SGMII接口:

    SGMII即Serial GMII,串行GMII,收发各一对差分信号线,时钟频率625MHz,在时钟信号的上升沿和下降沿均采样,参考时钟RX_CLK由PHY提供,是可选的,主要用于MAC侧没有时钟的情况,一般情况下,RX_CLK不使用。收发都可以从数据中恢复出时钟。

    在TXD发送的串行数据中,每8比特数据会插入TX_EN/TX_ER 两比特控制信息,同样,在RXD接收数据中,每8比特数据会插入RX_DV/RX_ER 两比特控制信息,所以总的数据速率为1.25Gbps=625Mbps*2.

    其实,大多数MAC芯片的SGMII接口都可以配置成SerDes接口(在物理上完全兼容,只需配置寄存器即可),直接外接光模块,而不需要PHY层芯片,此时时钟速率仍旧是625MHz,不过此时跟SGMII接口不同,SGMII接口速率被提高到1.25Gbps是因为插入了控制信息,而SerDes端口速率被提高是因为进行了8B/10B变换,本来8B/10B变换是PHY芯片的工作,在SerDes接口中,因为外面不接PHY芯片,此时8B/10B变换在MAC芯片中完成了。8B/10B变换的主要作用是扰码,让信号中不出现过长的连“0”和连“1”情况,影响时钟信息的提取。

    第4章 有线以太网的调度策略:载波侦听多路访问/冲突检测CSMA/CD

    英文Carrier Sense Multiple Access with Collision Detection,意思是载波侦听多路访问/冲突检测。

    采用该协议要求设备在发送帧的同时要对信道进行侦听,以确定是否会发生信道冲突,若在发送数据过程中检测到冲突,则需要进行冲突处理

    基本思想是:

    先听后说,边听边说;

    一旦冲突,立即停说;

    等待时机,然后再说;

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

    整个协议的处理规程如下3步:

    (1)载波侦听

    (2)尽最大可能投递

    (3)冲突检测

    4.1 载波侦听与延时监听算法

    这种控制方式对任何工作站都没有预约发送时间,工作站的发送是随机的,必须在网络上争用传输介质,故称之为竞争技术。

    若同一时刻有多个工作站向传输线路发送信息,则这些信息会在传输线上互相混淆而遭破坏,称为“冲突”。

    为尽量避免由于竟争引起的冲突,每个工作站在发送信息之前,都要监听传输线上是否有信息在发送,这就是“载波监听”。

    好在现代有线以太网已经摆脱了共享总线的Hub,采用了交换式的网络连接,冲突的可能性得到了根本性的规避。因此冲突检测的意义不是很大了,但在无线以太网领域,这个问题依然存在,并且被总线型的以太网更加严重。

    载波侦听主要应用于以太网通讯中,是指网络中的计算机在发送数据之前,会“侦听”线缆,判断是否已经有其他数据传输。

    载波侦听是由PHY芯片完成的,但由于以太网数据发送是由MAC层调度的 ,因此载波侦听的结果是MAC层关心

    如果信道空闲,直接发送数据,

    如果信道忙,则按照一定的退避算法进行延时监听,而不是一直不间断的监听,原因如下:

    (1)如果采用时时刻刻监听策略,导致所有终端极大的可能会在同一个时刻检测到网络空闲,同时发送数据,冲突的可能性就会非常大。

    (2)随机的延时监听,把终端检测到网络空闲的时机点进行分散,避免同一时刻检测到网络空闲。

    (3)随机延时监听,也降低了终端的能耗。

    4.2  尽最大可能投递

    以太网采用的最基本的调度策略是:尽最大可能投递。即只要有数据,一旦检测到网络空闲,MAC层就调度数据发送。

    4.3 冲突检测与冲突处理算法

    (1)冲突产生的基本原理:

    •  t--端到端传播时延,2t--往返时延
    • 由于信号在信道上以有限速度传输,所以采用载波监听并不能完全消除冲突,即终端检测到网络空闲,并不代表网络真的空闲!
    • 假设两个站A和B。这两个站相距1km,传播速度=2/3*C=200m/us,因此1km电缆需要 t=5us 的传播时延
    • A向B发出的信息,在5us后才能传送到B。B若在A发送的信息到达B之前发送自己的帧(因为这时载波监听检测不到A所发送的信息),B也立即发送信息的话,则发生冲突
    •  冲突的结果是两个帧都变得无用。A可以检测到自己发送的帧已经和其他站发送的帧产生了冲突。

    image:bk0637242-1.jpg

    (2)如何检测到冲突?

    • 有线以太网采用曼彻斯特编码(每比特中间有跳变,先高后低代表“1”,反之为“0”)
    • 发送帧时也同时进行接收,
    • 再比较接收到的信号的电压(因为距离会造成信号衰减,因此使用不多)。
    • 电压的过零点是在每一比特的正中央。当发生冲突时,叠加的过零点将改变位置,不在每个比特的中央。

    (3)检测到冲突后怎么办?

    有线以太网网,并没有采用规避冲突的算法,而是采用的是强化冲突的策略,即发送帧的站一旦发现冲突,立即停止发送数据,还要再继续发送若干比特的人为干扰信号。

    这是为什么Why? 

    原因:假设冲突点离A很远,离B很近(例如40米,即B发送2bit后冲突,4bit后停发),4bit的叠加数据远距离传到A,可能冲突被A忽略,检测不到,A继续发送。

    持续发送的目的,就是告诉网络中的所有终端:有任意一个终端监测到了冲突,刚才发送的数据遭到了破坏,没有检测到冲突的用户,请继续发送数据,以免加剧冲突。

    强化冲突的违规码JAM帧的长度介于32-64比特之间,在有线网络线路长度确定的情况下,不会出现因为发送自己太多,网络中有部分终端检测不到的情形。

    (4)冲突后的回退算法

    既然冲突了,就不能再发送数据,必须采用随机、异步退避算法,避免再次冲突或冲突加剧,退避一段时间后,再检测网络是否空闲,再进行发送数据的尝试。

    第5章 无线以太网MAC层调度策略:载波侦听多路访问/冲突避免: CSMA/CA

    英文Carrier Sense Multiple Access with Collision Avoidance,意思是载波侦听多路访问/冲突避免。

    在单纯的CSMA中,由于通道的传播延迟,当两个站点监听到总线上没有存在信号而发送帧时,仍会发生冲突。由于CSMA算法没有冲突检测功能,即使冲突己发生,仍然要将已破坏的帧发送完,使总线的利用率降低。

    一种CSMA的改进方案是CSMA/CD, 使站点在传输时间继续监听媒体,一旦检测到冲突,就立即停止发送,并向总线上发一串短的阻塞报文(Jam),通知总线上各站冲突己发生,这样通道容量不致因白白传送己受损的帧而浪费,可以提高总线的利用率,这就称作载波监听多路访问/冲突检测协议,简写为CSMA/CD,这种协议己广泛应用于以太网和IEEE802.3标准中。

    此时,浪费掉的带宽就减少为用检测冲突所花费的延时时间。也就是说,即使数据发送完成了,还需要继续一段时间的冲突检测。这段时间,发送方是不能连续发送数据的,这段时间就是因为冲突检测造成的网络资源浪费的时间。

    那么,怎么来估算所需的冲突检测时间呢?

    对于基带总线而言,此时用于检测一个冲突的时间等于任意两个站之间最大的传播延迟的两倍,所以对于基带CSMA/CD,要求分组长度应该至少两倍于传播延迟,否则在检测出冲突之前传输已经完成,但实际上分组被冲突所破坏。

    基于如下的如下几个因素,无线以太网采用了与有线以太网不完全相同的策略:

    (1)交换式以太网,冲突的可能性比较小,而无线以太网,冲突的可能性与总线型以太网一样,可能性非常大。

    (2)冲突检测本身,需要延时一段不能发送数据的时间,牺牲网络资源,使得总线的资源无端的浪费,减低总线的利用率。

    (3)冲突发生了的重传代价比预防冲突发送付出的代价要大很多,因此需要采用一定预防冲突的算法,来降低或规避冲突,提高总线(频谱)整体的利用率。

    基于上述几个原因, 无线以太网采用的策略如下:

    (1)主动避免冲突而非被动侦测冲突的方式来解决冲突问题,减低冲突造成的整体的网络资源的浪费,即载波侦听与冲突避免(信道空闲保证)CSMA/CA。

    (2)对于随机退让也无法规避的冲突,在发送长队较长的有效用户数据前,采用超短的信道侦测帧进行探测。

    (3)对于由于无线信道无法规避的丢包问题,无线以太网MAC层采用确认与重传的机制。

    CSMA/CA是从一种叫ALOHA的控制协议演变而来的。

    基本过程如下:

    (1)载波侦听与信道空闲保证

    (2)延时发送

    (3)信道探测

    (4)接收应答

    5.1 载波侦听与信道空闲保证

    载波侦听是指监控无线信道是否空闲。

    采用做先听后说(LBT)策略,希望传输的站首先对信道进行监听以确定是否有别的站在传输。

    如果信道有载波,不空闲,则该站将避让一段时间后再尝试。需要有一种退避算法来决定退让时间。

    常用的有三种算法。1、非坚持CSMA;2、1-坚持CSMA;3、P-坚持CSMA。

    5.2 延时发送

    是监听到信道空闲时,并不是立即发送,而是等待一段时间再发送数据。

    是先发送一个很小的信道侦测帧RTS,如果收到最近的接入点返回的CTS,就认为信道是空闲的,然后再发送数据。

    5.4 信道探测

    通过先发送一些特别小的信道侦测帧来测试信道是否有冲突,避免发送大数据时冲突后的重传的代价。

    由于信道侦测帧的格式和长度(非常短的帧长度)都是固定的,因此即使冲突发生了,浪费的网络资源也是有限的,不需要重传遭到破坏的大数据。

    这有点类似打仗,先通过一个小分队去探路,只有小分队探测到前面是完全的,大部队才会向前进发。即使前方有埋伏(冲突),牺牲的也只是小分队,而不是大部队。

    当然,这里面也是需要牺牲一部分带宽的,就是信道侦测帧的传输时间。

    5.4 接收应答

    接收端如果正确收到此帧,则经过一段时间间隔后,向发送端发送确认帧ACK。

    第6章 CSMA/CD与CSMA/CA区别

    CSMA/CD:Carrier Sense Multiple Access with Collision Detection,意思是载波侦听多路访问/冲突检测。

    CSMA/CA: Carrier Sense Multiple Access with Collision Avoidance,意思是载波侦听多路访问/冲突避免。

    6.1 适用的场景不同

    • CSMA/CD主要适用有线以太网

    有线以太网已经从总线型演变成了交换式网络架构,以太网交换机的存在,基本上已经规避了总线以太网天生的固有的冲突。

    • CSMA/CA主要适用无线以太网, LTE LAA(LBT)就借鉴了无线以太网的CSMA/CA机制。

    无线以太网本质是一种总线型的网络架构,无线空口资源,就是这个共享的“总线”。

    6.2 应对冲突风险的策略不同

    (1)CSMA/CD主要着眼点在冲突的侦测与纠错:

    当侦测到冲突时,进行相应的处理,要求设备能一边侦测一边发送数据,冲突检测本身也会浪费一段不能发送数据的时间,牺牲网络整体的资源。

    (2)CSMA/CA主要着眼点在冲突的避免与预防:

    • 先降低冲突发生的概率

    在冲突发生前,通过检测网络空闲与随机延时发送,避免与预防冲突的发生的概率。

    • 于随机延时后,依然存在的可能小概率冲突事件

    通过先发送一些特别小的信道侦测帧来测试信道是否有冲突,避免发送大数据时冲突后的重传的代价。

    由于信道侦测帧的格式和长度(非常短的帧长度)都是固定的,因此即使冲突发生了,浪费的网络资源也是有限的,不需要重传遭到破坏的大数据。

    这有点类似打仗,先通过一个小分队去探路,只有小分队探测到前面是完全的,大部队才会向前进发。即使前方有埋伏(冲突),牺牲的也只是小分队,而不是大部队。

    当然,这里面也是需要牺牲一部分带宽的,就是信道侦测帧的传输时间。

    第7章 载波侦听CSMA的类型

    7.1 坚持型CSMA

    当某站要送数据时,先监听信道,若信道忙,就坚持监听,直到信道空闲为止,当空闲时立即发送一帧。

    若两个站同时监听到信道空闲,立即发送,必定冲突,即冲突概率为1,故又称之为1-坚持型。

    假如有冲突发生,则等待一段时间后再监听信道。

    7.2 非坚持型CSMA

    当某站监听到信道忙状态时,不再坚持监听,而是随机后延一段时间再来监听。

    其缺点是很可能在再次监听之前信道已空闲了,从而产生浪费。

    7.3 P坚持型CSMA

    这种方式适合于时隙信道,比如无线信道。

    当某站准备发送信息时,

    它首先监听信道,若空闲,便以概率P传送信息,而以概率(1-P)推迟发送。

    如果该站监听到信道为忙,就等到下一个时隙再重复上述过程。

    P坚持型CSMA可以算是1-坚持型CSMA和非坚持型CSMA的折衷,这两者算是P-坚持算法的特例,即P分别等于1和0时的情形。

    对于P坚持型CSMA,如何选择P值,需要考虑如何避免在重负载情况下系统处于不稳定状态。

    假如当介质忙时,有N个站有数据等待发送,则当前的发送完成时,有N*P个站企图发送,如果选择P过大,使N*P>1,则冲突不可避免。

    最坏的情况是,随着冲突概率的不断增大,吞吐率会降为0。所以必须选择P值使N*P<1。如果P值选得过于小,则通道利用率会大大降低。

    第8章 常见的退避类型

    不同退避算法的目的,是降低在一个公平竞争共享资源或信道的系统中冲突的概率,确保无线资源总体利用率的最大化。

    算法的目的,确保所有的终端遵循相同的规则,而不是任意而为。

    算法或规则本身并不一定是公平性竞争的算法,有可能强者恒强,弱者恒弱型的算法。

    8.1 根据延时窗口的大小划分

    (1)无时间窗口的固定延时

    采用固定的时间延时,这种策略,意义不大,由于采用的固定延时,冲突的双方,相同的时间步调,无法规避再次冲突 。

    (2)固定时间窗口随机延时

    在一个固定的时间范围内,比如300ms内,生成一个随机数,随机延时。

    (3) 可变时间窗口随机延时

    时间窗口不再是固定值,随着冲突的增加,时间窗口的值会变大,并在新的时间窗口内生成新的随机数,随机延时。

    8.2 根据延时时间与冲突次数的关系划分

    (1) 二进制指数后退算法BEB

    CSMA/CD采用二进制指数退避算法,又称为二元指数后退算法

    退避算法是以冲突时间窗口大小为基准的,每个节点有一个在时间窗口内的冲突计数器C。

    退避的时间与冲突次数具有指数关系,冲突次数越多,退避的时间就可能越长,若达到限定的冲突次数,该节点就停止发送数据

    遇到重复的冲突时,站点将重复传输,但在每一次冲突之后,随着时延的平均值将加倍。

    二进制指数退避算法提供了一个处理重负荷的方法。

    尝试传输的重复失败导致更长的退避时间,这将有助于负荷的平滑。

    算法优点

    两个或多站点同时尝试传输,这将导致冲突,如果没有退避算法,则之后这些站点又立即尝试重传,导致一个新冲突。

    算法缺点与不足

    两个或多站点同时尝试传输,这将导致冲突,如果冲突后采用固定延时,延时之后,这些站点又尝试重传,还会导致一个新冲突。

    (2)线性增值后退算法LIB

    与指数回退类似,不同的是回退时间的长度与失败的次数之间呈现的是线性函数。

    (3)平均固定延时

    展开全文
  • 以太网无法连接到internet的解决方法

    万次阅读 2018-09-10 09:37:18
    所以问题应该是怎么让它变化,从而才能测试其他的ip和dns,从而才能找到没有冲突的ip地址和可连接的dns。所以这个问题就绕到了电脑的服务上了。首先win+R打开运行框,然后输入services.msc,回车,找到dns重启,找到...

    实际上,我也不知道这个操作是不是瞎猜碰到耗子了,但是确实捣鼓捣鼓生效了,所以贴出来分享一下:

    先用自动获取ip地址和dns;

    然后cmd运行ipconfig/all,调出ip和dns配置信息;

    然后取消自动改成手动获取,把cmd出来的信息照抄到ipv4的信息框里,等待一两分钟即可。

    更新

    反复测试了一下,自动获取ip地址和自动获取dns服务器怎么设置都没有变化。所以问题应该是怎么让它变化,从而才能测试其他的ip和dns,从而才能找到没有冲突的ip地址和可连接的dns。所以这个问题就绕到了电脑的服务上了。首先win+R打开运行框,然后输入services.msc,回车,找到dns重启,找到dhcp重启,之后重新获取一下ip地址和DNS服务器即可。稍等几秒网络就连上了。这个应该是真的了

    展开全文
  • 本文分析基于单片机的以太网连接方案,介绍MC9S12NE64型16位单片机的特性及其最小系统的硬件设计,给出MC9S12NE64的初始化过程、主程序和TCP/IP协议栈实现的思想。
  • 考虑到以太网组网技术的易于理解、实现、管理和维护,且成本低廉、网络拓扑结构灵活的优点,应用以太网组网技术来搭建数据交互的平台。其中的关键就是接口转换器的实现。DSP芯片作为一种特殊的嵌入式微处理器系统,...
  • 交换式以太网组网与PON组网对比分析
  • 第一级由ATM交换机组成,网络服务器、多媒体工作站等工作在主干网络上,第二级由大量的以太网交换机构成,对第三级桌面提供高密度端口。并根据划分出的VLAN(Vitual Local Area Network)提供实际的VLAN端口。网络协议...
  • Xilinx:registered: Virtex:trade_mark:-5 以太网媒体接入控制器(以太网MAC)模块提供了专用的以太网功能,它和 Virtex-5 RocketIO:trade_mark: GTP收发器以及 SelectIO:trade_mark: 技术相结合,能够让用户与各种...
  • 所以当一线技术人员面对PC上网问题时,最常用的方法是看PC网卡上的指示灯是否正常,是不是正常时的绿灯。在此文中,你可增加对以太网自适应性能的经验,本文介绍了当网络不能运行时,如何诊断和修复链路问题。
  • 二层技术-以太网

    2018-11-09 10:04:28
    通过在以太网中部署网桥或二层交换机,可以解决冲突严重的问题,但仍然不能隔离广播报 文。在这种情况下出现了VLAN(Virtual Local Area Network,虚拟局域网)技术,这种技术可以把一个物理LAN划分成多个逻辑的LAN...
  • 同样信息化的浪潮也大大改变了生产、制造业的内涵。从最初的单片机的使用到DCS、PLC的普及,从单台设备的自动控制到整个生产线、整个工厂的信息化,这场变革正在我们的身边改变着工厂的内涵。
  • 以太网原理:MAC和PHY.pdf
  • 以太网IEEE802.3a供电设备 (PSE)解决方案,不需要外接元件能自动管理四个802.3端口,可以自动检测受电设备 (PD)和分类,满足IEEE 400-ms TPON 标准。主要用在以太网交换和路由器、住宅区网关、PoE传
  • 为了适应高带宽的要求和更长传输距离的要求,万兆以太网对原来...由于万兆以太网技术的突出优点,万兆以太网技术可以用来作为包含局域网、城域网和广域网(使用以太网作为端到端的第二层传输方法)的网络体系结构的基础。
  • 虽然 IP 冲突问题通常不难解决,但它们令人困惑,尤其是对于那些刚接触网络的人来说。 下面我们来看看什么是IP地址冲突,两台设备是否可以有相同的IP地址,弹出这个错误如何解决。 什么是 IP 地址冲突? ...
  • 以太网由zilog公司的网络发展而来,1980年由DEC、Intel、Xerox三家公司联合宣布了以太网的技术规范。以太网是著名的总线网。集散控制系统中,采用CSMA/CD方式传输数据的总线网络大多采用以太网。(1)结构分层以太网...
  • 以太网流量控制技术ppt,介绍全双工流控和半双工背压式流控的工作原理
  • 以太网技术白皮书

    2018-10-23 23:24:13
    IEEE802.3是由美国电气与电子...以太网基于通用的介质访问控制(MAC)机制,支持我们最常见的10M,100M,1000M,10G以及比较新的40G,100G等运行速度。定义了常见的介质模式,包括光、电等传输模式以及对物理层的要求。
  • 摘要:本文讨论了运营以太网服务的传输以及划分的必要性,文章分析了运营以太网划分的要求,并通过主要的功能架构给出了划分边界。本文讨论了个部分划分边界的相关技术,并对不同技术的选择进行了比较和介绍。  城...
  • 局域网IP地址冲突的原因及其解决方法,有需要的人看看。
  • Linux下检测IP地址冲突解决方法

    千次阅读 2020-01-18 12:32:38
    下面介绍下检查ip地址是否冲突方法: 第一种方法(arping): 只需要在另一台同网段的linux机器B上(比如:129.168.9.200)上执行下面的命令(不能在本机arping检验自己的ip): 只需要在另一台同网段的...
  • 堆叠技术是目前在以太网交换机上扩展端口使用较多的另一类技术,是一种非标准化技术。对于不同的环境,选用不同的端口扩展模式的效果是不一致的。在当前情况下,普通的级连模式还是解决层次化网络的主要的应用手段,...
  • 以太网 以太网作为局域网最重要的技术,它起初是基于最简单的总线拓扑结构。 起步阶段 始于1970年代早期的XEROX PARC 第一代以太网最多可以使用最长1000米、带宽为2.94Mbps的电缆连接256 台计算机 IEEE认可了由...
  • 用文本编辑器打开.vmx文件,接着在加入下面这几行。把MAC地址替换成你自己的MAC地址。 ethernet0.addressType = "static" ethernet0.checkMACAddress = "false" ethernet0.address = "00:0c:29:1f:4b:ac" ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,935
精华内容 7,574
关键字:

以太网解决冲突方法