专利名称::双工失配检测的制作方法双工失配检测相关申请的交叉引用本申请要求2006年3月28日提交的美国临时专利申请No.60/786,477的权益,该临时专利申请的公开内容通过引用全部并入在此。
背景技术:
:本发明一般地涉及数据通信。更具体而言,本发明涉及数据通信信道中的双工失配(duplexmismatch)检测。
发明内容一般而言,在一个方面,本发明的特征在于一种装置,包括至少一个端口,用于通过通信信道以半双工模式发送数据的多个第一帧并接收数据的多个第二帧,其中该至少一个端口包括冲突检测电路和双工失配电路,冲突检测电路用于检测数据的多个第一帧和数据的多个第二帧之间在通信信道上的冲突;双工失配电路用于当发生以下两种情况之一时声明双工失配冲突检测电路检测到涉及数据的多个第一帧的预定数目的迟滞冲突(latecollision),其中迟滞冲突中的每一个是在已在数据的各个第一帧中发送了数据的第一预定量之后发生的;或者冲突检测电路检测到涉及数据的多个第一帧中的一个第一帧的极迟冲突(verylatecollision),其中该极迟冲突是在已在数据的多个第一帧中的该一个第一帧中发送了数据的第二预定量之后发生的,其中数据的第二预定量大于数据的第一预定量;并且其中双工失配表明针对数据的多个第二帧使用全双工模式。在某些实施例中,数据的预定量中的至少一个是根据通信信道的冲突域的大小选择的。在某些实施例中,数据的预定量中的至少一个是根据通信信道的冲突域的大小的倍数选择的。在某些实施例中,双工失配电路通过执行至少一个动作来声明双工失配,该至少一个动作包括在存储器电路中设置标志或者发送消息或者既在存储器电路中设置标志又发送消息。在某些实施例中,至少一个端口还包括双工模式电路,用于在双工失配电路声明双工失配时将该至少一个端口从半双工模式改变到全双工模式。某些实施例包括结合了该装置的网络设备,其中该网络设备遵从多个标准中的至少一个,该多个标准包括IEEE标准802.3、802.11、802.11a、802.11b、802.11g、802.11n、802.16和802.20。某些实施例包括结合了该装置的网络设备,其中该网络设备包括以下设备之一交换机;路由器;以及网络接口控制器。一般而言,在一个方面,本发明的特征在于一种装置,包括至少一个端口装置,用于通过通信信道以半双工模式发送数据的多个第一帧并接收数据的多个第二帧,其中该至少一个端口装置包括冲突检测装置和双工失配装置,冲突检测装置用于检测数据的多个第一帧和数据的多个第二帧之间在通信信道上的冲突;双工失配装置用于当发生以下两种情况之一时声明双工失配冲突检测装置检测到涉及数据的多个第一帧的预定数目的迟滞冲突,其中迟滞冲突中的每一个是在已在数据的各个第一帧中发送了数据的第一预定量之后发生的;或者冲突检测装置检测到涉及数据的多个第一帧中的一个第一帧的极迟冲突,其中该极迟冲突是在已在数据的多个第一帧中的该一个第一帧中发送了数据的第二预定量之后发生的,其中数据的第二预定量大于数据的第一预定量;并且其中双工失配表明针对数据的多个第二帧使用全双工模式。在某些实施例中,数据的预定量中的至少一个是根据通信信道的冲突域的大小选择的。在某些实施例中,数据的预定量中的至少一个是根据通信信道的冲突域的大小的倍数选择的。在某些实施例中,双工失配装置通过执行至少一个动作来声明双工失配,该至少一个动作包括在存储器电路中设置标志或者发送消息或者既在存储器电路中设置标志又发送消息。在某些实施例中,至少一个端口装置还包括双工模式装置,用于在双工失配装置声明双工失配时将该至少一个端口装置从半双工模式改变到全双工模式。某些实施例包括结合了该装置的网络设备,其中该网络设备遵从多个标准中的至少一个,该多个标准包括IEEE标准802.3、802.11、802.11a、802.11b、802.11g、802.11n、802.16禾n802.20。某些实施例包括结合了该装置的网络设备,其中该网络设备包括以下设备之一交换机;路由器;以及网络接口控制器。一般而言,在一个方面,本发明的特征在于一种方法,包括通过通信信道以半双工模式发送数据的多个第一帧并接收数据的多个第二帧;检测数据的多个第一帧和数据的多个第二帧之间在通信信道上的冲突;以及当发生以下两种情况之一时声明双工失配检测到涉及数据的多个第一帧的预定数目的迟滞冲突,其中迟滞冲突中的每一个是在已在数据的各个第一帧中发送了数据的第一预定量之后发生的;或者检测到涉及数据的多个第一帧中的一个第一帧的极迟冲突,其中极迟冲突是在已在数据的多个第一帧中的该一个第一帧中发送了数据的第二预定量之后发生的,其中数据的第二预定量大于数据的第一预定量;并且其中双工失配表明针对数据的多个第二帧使用全双工模式。在某些实施例中,数据的预定量中的至少一个是根据通信信道的冲突域的大小选择的。在某些实施例中,数据的预定量中的至少一个是根据通信信道的冲突域的大小的倍数选择的。在某些实施例中,声明双工失配包括执行以下动作中的至少一个在存储器电路中设置标志;以及发送消息。某些实施例包括在声明双工失配之后以全双工模式发送数据的多个第一帧。一般而言,在一个方面,本发明的特征在于一种可在处理器上运行的计算机程序,包括用于检测通过通信信道以半双工模式发送的数据的多个第一帧和通过通信信道接收的数据的多个第二帧之间在通信信道上的冲突的指令;以及用于当发生以下两种情况之一时声明双工失配的指令检测到涉及数据的多个第一帧的预定数目的迟滞冲突,其中迟滞冲突中的每一个是在已在数据的各个第一帧中发送了数据的第一预定量之后发生的;或者检测到涉及数据的多个第一帧中的一个第一帧的极迟冲突,其中极迟冲突是在已在数据的多个第一帧中的该一个第一帧中发送了数据的第二预定量之后发生的,其中数据的第二预定量大于数据的第一预定量;并且其中双工失配表明针对数据的多个第二帧使用全双工模式。在某些实施例中,数据的预定量中的至少一个是根据通信信道的冲突域的大小选择的。在某些实施例中,数据的预定量中的至少一个是根据通信信道的冲突域的大小的倍数选择的。在某些实施例中,用于声明双工失配的指令包括用于执行以下动作中的至少一个的指令在存储器电路中设置标志;以及引起消息的发送。一般而言,在一个方面,本发明的特征在于一种装置,包括至少一个端口,用于通过通信信道以全双工模式发送数据的多个第一帧并接收数据的多个第二帧,其中该至少一个端口包括用于检测数据的多个第二帧中的循环冗余校验(CRC)错误的CRC错误检测电路以及用于检测数据的多个第二帧的片段(fragment)的片段检测电路中的一个或这两者;以及双工失配电路,用于当发生以下两种情况之一或者两种情况都发生时声明双工失配当至少一个端口正在发送数据的多个第一帧中的一个第一帧时CRC错误检测电路检测到数据的多个第二帧中的一个第二帧中的CRC错误,或者片段检测电路检测到数据的多个第二帧中的一个第二帧的片段;并且其中双工失配表明针对数据的多个第二帧使用半双工模式。在某些实施例中,双工失配电路通过执行至少一个动作来声明双工失配,该至少一个动作包括在存储器电路中设置标志或者发送消息或者既在存储器电路中设置标志又发送消息。在某些实施例中,至少一个端口还包括双工模式电路,用于在双工失配电路声明双工失配时将该至少一个端口从全双工模式改变到半双工模式。在某些实施例中,至少一个端口还包括冲突强制电路,用于响应于双工失配电路声明双工失配,使得至少一个端口在接收数据的多个第二帧中的一个第二帧中的预定量的数据之后在接收数据的多个第二帧中的该一个第二帧的同时发送数据的多个第一帧中的一个第一帧。某些实施例包括双工模式电路,用于在冲突强制电路使得该至少一个端口发送数据的多个第一帧中的该一个第一帧之后,在双工失配电路声明双工失配时将该至少一个端口从全双工模式改变到半双工模式。某些实施例包括结合了该装置的网络设备,其中该网络设备遵从多个标准中的至少一个,该多个标准包括IEEE标准802.3、802.11、802.11a、802.11b、802.Ug、802.11n、802.16和802.20。某些实施例包括结合了该装置的网络设备,其中该网络设备包括以下设备之一交换机;路由器;以及网络接口控制器。一般而言,在一个方面,本发明的特征在于一种装置,包括至少一个端口装置,用于通过通信信道以全双工模式发送数据的多个第一帧并接收数据的多个第二帧,其中该至少一个端口装置包括用于检测数据的多个第二帧中的循环冗余校验(CRC)错误的CRC错误检测装置以及用于检测数据的多个第二帧的片段的片段检测装置中的一个或这两者;以及双工失配装置,用于当发生以下两种情况之一或者两种情况都发生时声明双工失配当至少一个端口装置正在发送数据的多个第一帧中的一个第一帧时CRC错误检测装置检测到数据的多个第二帧中的一个第二帧中的CRC错误,或者片段检测装置检测到数据的多个第二帧中的一个第二帧的片段;并且其中双工失配表明针对数据的多个第二帧使用半双工模式。在某些实施例中,双工失配装置通过执行至少一个动作来声明双工失配,该至少一个动作包括在存储器电路中设置标志或者发送消息或者既在存储器电路中设置标志又发送消息。在某些实施例中,至少一个端口装置还包括双工模式装置,用于在双工失配装置声明双工失配时将该至少一个端口从全双工模式改变到半双工模式。在某些实施例中,至少一个端口装置还包括冲突强制装置,用于响应于双工失配装置声明双工失配,使得至少一个端口装置在接收数据的多个第二帧中的一个第二帧中的预定量的数据之后在接收数据的多个第二帧中的该一个第二帧的同时发送数据的多个第一帧中的一个第一帧。某些实施例包括双工模式装置,用于在冲突强制装置使得该至少一个端口装置发送数据的多个第一帧中的该一个第一帧之后,在双工失配装置声明双工失配时将该至少一个端口装置从全双工模式改变到半双工模式。某些实施例包括结合了该装置的网络设备,其中该网络设备遵从多个标准中的至少一个,该多个标准包括IEEE标准802.3、802.11、802.11a、802.11b、802.11g、802.11n、802.16禾。802.20。某些实施例包括结合了该装置的网络设备,其中该网络设备包括以下设备之一交换机;路由器;以及网络接口控制器。一般而言,在一个方面,本发明的特征在于一种方法,包括通过通信信道以全双工模式发送数据的多个第一帧并接收数据的多个第二帧;当发生以下两种情况之一或者两种情况都发生时声明双工失配当正在发送数据的多个第一帧中的一个第一帧时在数据的多个第二帧中的一个第二帧中检测到CRC错误,或者接收到数据的多个第二帧中的一个第二帧的片段;并且其中双工失配表明针对数据的多个第二帧使用半双工模式。在某些实施例中,声明双工失配包括执行多个动作中的至少一个,该多个动作包括在存储器电路中设置标志;以及发送消息。某些实施例包括在声明双工失配之后以全双工模式发送数据的多个第一帧。某些实施例包括在声明了双工失配之后,在接收数据的多个第二帧中的一个第二帧中的预定量的数据之后在接收数据的多个第二帧中的该一个第二帧的同时发送数据的多个第一帧中的一个第一帧。某些实施例包括在发送了这些帧中的第一帧之后,在声明双工失配时以全双工模式发送数据的多个第一帧。一般而言,在一个方面,本发明的特征在于一种可在处理器上运行的计算机程序,包括用于使得数据的多个第一帧通过通信信道以全双工模式被发送的指令,其中数据的多个第二帧通过通信信道被接收;以及用于当发生以下两种情况之一或者两种情况都发生时声明双工失配的指令当正在发送数据的多个第一帧中的一个第一帧时在数据的多个第二帧中的一个第二帧中检测到CRC错误,或者接收到数据的多个第二帧中的一个第二帧的片段;并且其中双工失配表明针对数据的多个第二帧使用半双工模式。在某些实施例中,用于声明双工失配的指令包括用于执行多个动作中的至少一个的指令,该多个动作包括在存储器电路中设置标志;以及发送消息。某些实施例包括用于使得在声明双工失配之后以全双工模式发送数据的多个第一帧的指令。某些实施例包括用于使得在声明了双工失配之后,在接收数据的多个第二帧中的一个第二帧中的预定量的数据之后在接收数据的多个第二帧中的该一个第二帧的同时发送数据的多个第一帧中的一个第一帧的指令。某些实施例包括用于使得在发送了数据的多个第一帧中的该一个第一帧之后,响应于声明双工失配以半双工模式发送数据的多个第一帧的指令。一种或多种实现方式的细节在下面的附图和具体实施方式中给出。其他特征将从具体实施方式、附图和权利要求中变清楚。图1示出了包括根据本发明优选实施例的网络设备的通信系统,该网络设备能够在处于半双工模式中时检测并校正双工失配。图2示出了根据本发明优选实施例用于图1的网络设备的过程。图3示出了包括根据本发明优选实施例的网络设备的通信系统,该网络设备能够在处于全双工模式中时检测并校正双工失配。图4示出了根据本发明优选实施例用于图3的网络设备的过程。本说明书中所用的每个标号的前导数字指示标号首先出现在其中的图的编号。具体实施例方式发明人已发现,一种名为"双工失配"的状况远比预期的要普遍的多。具有双工失配的链路上的性能最好情况下会极大地降低,并且最坏可能引发端口停工问题。当一个链路伙伴采用全双工模式,而链路上的另一个链路伙伴采用半双工模式时,双工失配发生。半双工模式中的端口在全双工端口正在发送时不能发送任何数据。更坏的是,全双工链路将在它想要发送的任何时候进行发送,而不管半双工端口是否正在发送,这导致了半双工端口正在发送的帧上的冲突和帧接收机错误。因此,只有非常少的由半双工端口所发送的帧被成功发送。在TCP/IP流量情况下,双工失配链路上的实际数据传送速率己被测得仅为链路的能力速率的1%。由于支持第3、5和5e类(CAT)双绞对线缆的IEEE标准的发展,双工失配可能很容易发生。最初唯一的双绞对以太网标准是IOBASE-T,它全部是使用集线器的半双工。通过支持全双工通信出现了增大网络性能的可能性,但是需要一种仅在链路的两侧都表明它们可支持全双工模式的情况下才允许全双工的机制。这种机制被称为自动协商(auto-negotiation)。开发了确保与现有设备的互操作性的规则,例如因为10BASE-T集线器不支持自动协商。一种这样的规则规定如果链路伙伴不进行自动协商,则本地端口必须进入半双工模式中。该规则确保了与原始10BASE-T集线器的后向兼容性。随着技术的发展,快速以太网(IEEE100BASE-TX)成为一种标准。同样用于互连计算机的第一快速以太网设备是半双工快速以太网集线器。这些集线器成本比(具有全双工能力的)交换机低,并且由于快速以太网被标准化的方式而不需要自动协商。允许这些集线器在无需自动协商的情况下被构建的机制被称为"并行检测"。通过检査链路上看见的空闲模式(对于不同速度是不同的),并行检测允许端口以适当的速度(10或100Mbit/sec)进行链接,即使链路伙伴并不进行自动协商。即使自动协商在IEEE标准中被很好地定义,其复杂性也导致了对于不是所有设备都能正确完成自动协商的担心。为了解决这些互操作性担心,IEEE标准还允许端口被强制进入特定速度和双工模式。这一"后门"在互操作性问题在自动协商的早期中出现时变得非常有用。这些规则中的每一个随着发展都起到了作用,但是它们一起就产生了双工失配的问题。例如,某些较老的设备要求速度和双工模式被强制,这可能是由于自动协商互操作性问题。许多网络管理员记得这一要求并且由于该原因在某些较新的设备上强制速度和双工,或者尝试获得最优性能。在任何一种情况下,最优性能都是期望的目标,因此当双工模式被强制时,其通常被强制到全双工模式。当被强制的端口连接到自动协商端口时,链路将建立并且分组将流动,从而链路表现为正常的操作。然而,由于IEEE标准的规定,自动协商端口将进入半双工模式。事实上端口的性能被极大地降低,并且问题并不是表面上的。表1示出了在10/100链路上速度和双工模式的6种可能组合,以及利用TCP/IP的文件下载的有效比特率。大多数网络管理员只考虑表中的前4个条目(其中双工失配不发生),并因此认为将端口强制到100Mbit速度和全双工模式是一种好的做法。但是,如果强制并不同样在链路伙伴的端口上进行(经常是不进行的),则链路的有效比特率实际小于适当配置的10Mbit半双工链路的有效比特率。<table>tableseeoriginaldocumentpage15</column></row><table>表l本发明的实施例提供了用于供遭受双工失配的链路两端校正双工失配的技术。根据某些实施例,链路的半双工端可以通过检测迟滞和/或极迟冲突而检测到链路的另一端处于全双工模式中,并且可以通过改变到全双工模式来校正双工失配。根据某些实施例,链路的全双工端可以通过包括检测循环冗余校验(CRC)错误和帧片段在内的一种或多种技术而检测到链路的另一端处于半双工模式中,并且可以通过改变到半双工模式来校正双工失配。在某些实施例中,检测到双工失配的在全双工模式中操作的设备强制一个或多个极迟冲突以给予半双工链路伙伴以检测到双工失配并且改变到全双工模式(例如使用这里公开的技术)的机会,从而解决双工失配。如果链路伙伴并不改变到全双工模式,则该设备改变到半双工模式以解决双工失配。图1示出了包括根据本发明优选实施例的网络设备102的通信系统100,网络设备102能够在处于半双工模式中时检测并校正双工失配。网络设备102可以实现为交换机、路由器、网络接口控制器(NIC)等等。网络设备102包括用于通过通信信道108与另一个网络设备106通信的至少一个端口104。网络设备102还包括声明双工失配的双工失配电路110,这将在下面详细描述。在某些实施例中,双工失配电路110的全部或一部分被实现在端口104中。端口104包括检测通信信道108a上的冲突的冲突检测电路112、将端口104从半双工模式改变到全双工模式的双工模式电路116、以及存储器电路108。图2示出了根据本发明优选实施例的用于图1的网络设备102的过程200。如果网络设备102和106之间的链路被利用自动协商建立(步骤202),则过程200完成(步骤204),因为不可能有双工失配。否则,端口104链入半双工模式(步骤206),并且确定是否存在双工失配,艮口,网络设备106是否处于全双工模式中,如下所述。网络设备102的端口104以半双工模式通过通信信道108向网络设备106发送数据帧(步骤208)。因为端口104处于半双工模式中,所以如果网络设备102和106同时在通信信道108上发送,则将发生冲突,这将被冲突检测电路112例如根据传统技术检测到。当未检测到冲突时(步骤210),端口104选择另一数据帧(歩骤212)并通过通信信道108发送该帧(在步骤208处继续)。但是当冲突检测电路112检测到冲突时(步骤210),双工失配电路IIO确定是否已发生双工失配(步骤216)。在某些实施例中,当例如在预定时间间隔期间已发生预定数目的迟滞冲突时,双工失配电路IIO确定双工失配已发生。根据IEEE802标准的迟滞冲突是一种在帧中的阈值量的数据帧已被发送之后发生的冲突。例如,IEEE802中的迟滞冲突已被用于确定网络的冲突域何时太大。根据IEEE标准802.3,在帧的字节64之后发生的任何冲突被认为是迟滞冲突。正是因为这个原因,以太网帧的最小帧大小被设置为64字节。当冲突域太大时,发送帧的网络设备可能直到帧已被发送之后才检测到冲突,并且因此可能错误地假定该帧被成功发送。因而,迟滞冲突被定义为使得可以检测并校正特大冲突域。在特大冲突域中,迟滞冲突一般发生在字节65或66处,字节数越高,机率越低。事实上,特大冲突域中的迟滞冲突是很少发生的,因为它们只发生在处于冲突域的尽头端或者靠近尽头端的两个或更多个台站同时试图发送帧时。在这些实施例中,双工失配电路110通过确定迟滞冲突的比率(即,在预定的时间间隔期间的迟滞冲突的数目)是否超过了预定的阈值比率来确定是否应当声明双工失配(步骤216)。例如,在IO秒期间有l,OOO个迟滞冲突可能就足以声明双工失配了,尤其在系统管理员预先限定网络设备102未连接到大冲突域的情况下。当然,也可以使用其他阈值和时间间隔。在这些实施例中,当"极迟"冲突已发生时,双工失配电路110确定双工失配已发生。现代网络一般不再使用大的冲突域,因为它们一般是利用全双工交换机而不是半双工集线器构建的。本发明的实施例将这些迟滞冲突用于一个不同的目的为了检测双工失配。尽管定义极迟冲突的数据的阈值量可以被设置为通信信道108的冲突域的大小,但是优选地设置为其某一倍数,例如迟滞冲突的计数(即,在64字节之后)的四倍,这是通过将极迟冲突定义为在帧的字节256之后发生的冲突而实现的。任何这种"极迟"冲突都不可能是略微太大的冲突域的结果,因此只能是双工失配的指示符。各种实施例采用这些技术中的一种或两种,即,使用迟滞和/或极迟冲突来确定双工失配是否已发生。如果双工失配电路110确定未发生双工失配(步骤216),则端口104在某一时间间隔之后再次发送数据帧(在步骤208处继续)。然而,如果双工失配电路IIO确定双工失配已发生(步骤216),则双工失配电路110声明双工失配(步骤218)。在这种情况下,声明双工失配表明网络设备106处于全双工模式中。双工失配电路IIO可以采取一个或多个动作来声明双工失配。例如,双工失配电路IIO可以在存储器电路118中存储的管理信息库(MIB)内设置适当的标志。又例如,双工失配电路110可以向系统管理员发送消息。在某些实施例中,双工模式电路116在声明双工失配之后将端口104改变到全双工模式(步骤220)。然后过程200完成(步骤222)。图3示出了包括根据本发明优选实施例的网络设备302的通信系统300,网络设备302能够在处于全双工模式中时检测并校正双工失配。网络设备302可以实现为交换机、路由器、网络接口控制器(NIC)等等。网络设备302包括用于通过通信信道308与另一个网络设备306通信的至少一个端口304。网络设备302还包括声明双工失配的双工失配电路310,这将在下面详细描述。端口304包括检测接收的帧中的CRC错误的CRC错误检测电路312和检测帧的片段的片段检测电路314。端口304包括将端口304从全双工模式改变到半双工模式的双工模式电路318、存储器电路320、以及强制通信信道308上的冲突的冲突强制电路322。图4示出了根据本发明优选实施例的用于图3的网络设备302的过程400。如果网络设备302和306之间的链路被利用自动协商建立(步骤402),则过程400完成(步骤404),因为不可能有双工失配。如果网络设备302和306之间的链路不是利用自动协商建立的(步骤402)并且端口304没有被强制进入全双工模式(步骤406),则过程400完成(歩骤404)。否则过程400确定是否存在双工失配,即,网络设备306是否处于半双工模式中。为了防止两个网络设备302、306同时试图切换双工模式的情形(因为它们都根据本发明的实施例进行操作),网络设备302在改变它自身的模式之前允许网络设备306切换双工模式,如下所述。网络设备302的端口304随后通过通信信道308接收来自网络设备306的数据帧(步骤408)。CRC错误检测电路312检测接收的帧中的任何CRC错误(步骤410),例如当端口304开始发送帧时发生的错误,这可能表明通信信道308上的冲突正破坏接收的帧。在某些实施例中,当检测到这样的CRC错误时,端口304开始在在进入端口304的下一帧中接收到字节64之前发送帧的前导。这导致在端口304处接收并检测到片段,如下所述。片段检测电路314检测接收的帧的片段(步骤412)。因为片段并不用在全双工模式中,所以通信信道308上片段的存在表明网络设备306正操作于半双工模式中。双工失配电路310基于CRC错误检测电路312、片段检测电路314检测到的一个或多个状况以及网络管理员对该特征的配置来确定是否应当声明双工失配(步骤414)。在这种情况下,声明双工失配表明网络设备306处于半双工模式中。如果应当声明双工失配(步骤414),则双工失配电路310声明双工失配(步骤416)。双工失配电路310可以采取一个或多个动作来声明双工失配。例如,双工失配电路310可以在存储器电路320中存储的管理信息库(MIB)内设置适当的标志。又例如,双工失配电路310可以向系统管理员发送消息。如果双工失配电路310不声明双工失配(步骤414),则端口304继续接收数据帧(在步骤408处继续)。但是如果双工失配电路310声明双工失配(步骤416),则在某些实施例中双工模式电路318将端口304改变到半双工模式(步骤418)。然后过程400完成(步骤424)。然而,当网络设备306根据图2进行操作时,网络设备306可能在端口304正将其双工模式改变到半双工时将它自己的双工模式改变到全双工,从而再次导致双工失配。在其他实施例中,如果双工失配电路310声明双工失配(步骤416),则冲突强制电路322强制通信信道308上的一个或多个极迟冲突(步骤420),例如通过在接收到正在接收的帧中的预定量的数据之后在接收帧的同时发送帧或者至少帧的前导部分,从而给予网络设备306以检测极迟冲突并将双工模式改变到全双工模式的机会(例如根据上述技术)。双工失配电路310随后再次监视通信信道308以确定是否已发生另一双工失配(步骤422),例如根据上述技术。如果双工失配电路310没有检测到双工失配(步骤422)(如果网络设备306已将双工模式改变到全双工模式则可能是这种情况),则过程400在步骤408处继续。但是如果双工失配电路310检测到另一双工失配(步骤422),则双工模式电路318将端口304改变到半双工模式(步骤418)。然后过程400完成(步骤424)。本发明的实施例可以实现在数字电子电路中,或者实现在计算机硬件、固件、软件或其组合中。本发明的装置可以实现在计算机程序产品中,该计算机程序产品有形地包含在机器可读存储设备中以供可编程处理器执行;并且本发明的方法步骤可以由可编程处理器执行,该可编程处理器运行指令程序以通过对输入数据进行操作并生成输出来执行本发明的功能。本发明可以有利地实现在一个或多个计算机程序中,这些计算机程序可以在包括至少一个可编程处理器的可编程系统上运行,该至少一个可编程处理器被耦合以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令并向它们发送数据和指令。每个计算机程序可以用高级别过程或面向对象的编程语言实现,或者按需要用汇编或机器语言实现;并且在任何情况下,该语言可以是经编译或解释的语言。合适的处理器例如包括通用和专用微处理器。一般而言,处理器将接收来自只读存储器电路和/或随机访问存储器电路的指令和数据。一般而言,计算机将包括用于存储数据文件的一个或多个大容量存储设备;这种设备包括诸如内部硬盘和可移除盘之类的磁盘;磁光盘;和光盘。适合于有形地包含计算机程序指令和数据的存储设备包括所有形式的非易失性存储器电路,例如包括半导体存储器电路,诸如EPROM、EEPROM和闪存电路器件;诸如内部硬盘和可移除盘之类的磁盘;磁光盘;和CD-ROM盘。前述中的任何一种都可以被ASIC(专用集成电路)补充或者结合在ASIC中。已描述了本发明的多种实现方式。然而,应当理解,在不脱离本发明的精神和范围的前提下可以进行各种修改。因此,其他实现方式也在权利要求的范围内。权利要求1.一种装置,包括至少一个端口,用于通过通信信道以半双工模式发送数据的多个第一帧并接收所述数据的多个第二帧,其中所述至少一个端口包括冲突检测电路,用于检测所述数据的多个第一帧和所述数据的多个第二帧之间在所述通信信道上的冲突;以及双工失配电路,用于当以下两种情况之一发生时声明双工失配所述冲突检测电路检测到涉及所述数据的多个第一帧的预定数目的迟滞冲突,其中所述迟滞冲突中的每一个是在已在所述数据的各个第一帧中发送了所述数据的第一预定量之后发生的;或者所述冲突检测电路检测到涉及所述数据的多个第一帧中的一个第一帧的极迟冲突,其中所述极迟冲突是在已在所述数据的多个第一帧中的所述一个第一帧中发送了所述数据的第二预定量之后发生的,其中所述数据的第二预定量大于所述数据的第一预定量;并且其中所述双工失配表明针对所述数据的多个第二帧使用全双工模式。2.如权利要求l所述的装置其中所述数据的预定量中的至少一个是根据所述通信信道的冲突域的大小选择的。3.如权利要求1所述的装置其中所述数据的预定量中的至少一个是根据所述通信信道的冲突域的大小的倍数选择的。4.如权利要求1所述的装置,其中所述双工失配电路通过执行至少一个动作来声明所述双工失配,所述至少一个动作包括在存储器电路中设置标志或者发送消息或者既在存储器电路中设置标志又发送消息。5.如权利要求1所述的装置,其中所述至少一个端口还包括双工模式电路,用于在所述双工失配电路声明双工失配时将所述至少一个端口从半双工模式改变到全双工模式。6.—种结合了如权利要求1所述的装置的网络设备,其中所述网络设备遵从多个标准中的至少一个,所述多个标准包括IEEE标准802.3、802.11、802.11a、802.11b、802.11g、802.11n、802.16和802.20。7.—种结合了如权利要求1所述的装置的网络设备,其中所述网络设备包括以下设备之一交换机;路由器;以及网络接口控制器。8.—种方法,包括通过通信信道以半双工模式发送数据的多个第一帧并接收所述数据的多个第二帧;检测所述数据的多个第一帧和所述数据的多个第二帧之间在所述通信信道上的冲突;以及当以下两种情况之一发生时声明双工失配检测到涉及所述数据的多个第一帧的预定数目的迟滞冲突,其中所述迟滞冲突中的每一个是在己在所述数据的各个第一帧中发送了所述数据的第一预定量之后发生的;或者检测到涉及所述数据的多个第一帧中的一个第一帧的极迟冲突,其中所述极迟冲突是在已在所述数据的多个第一帧中的所述一个第一帧中发送了所述数据的第二预定量之后发生的,其中所述数据的第二预定量大于所述数据的第一预定量;并且其中所述双工失配表明针对所述数据的多个第二帧使用全双工模式。9.如权利要求8所述的方法其中所述数据的预定量中的至少一个是根据所述通信信道的冲突域的大小选择的。10.如权利要求8所述的方法其中所述数据的预定量中的至少一个是根据所述通信信道的冲突域的大小的倍数选择的。11.如权利要求8所述的方法,其中声明所述双工失配包括执行以下动作中的至少一个在存储器电路中设置标志;以及发送消息。12.如权利要求8所述的方法,还包括在声明双工失配之后以全双工模式发送所述数据的多个第一帧。13.—种装置,包括至少一个端口,用于通过通信信道以全双工模式发送数据的多个第一帧并接收所述数据的多个第二帧,其中所述至少一个端口包括用于检测所述数据的多个第二帧中的循环冗余校验(CRC)错误的CRC错误检测电路以及用于检测所述数据的多个第二帧的片段的片段检测电路中的一个或这两者;以及双工失配电路,用于当以下两种情况之一发生或者两种情况都发生时声明双工失配-当所述至少一个端口正在发送所述数据的多个第一帧中的一个第一帧时所述CRC错误检测电路检测到所述数据的多个第二帧中的一个第二帧的CRC错误,或者所述片段检测电路检测到所述数据的多个第二帧中的一个第二帧的片段;并且其中所述双工失配表明针对所述数据的多个第二帧使用半双工模式。14.如权利要求13所述的装置,其中所述双工失配电路通过执行至少一个动作来声明所述双工失配,所述至少一个动作包括在存储器电路中设置标志或者发送消息或者既在存储器电路中设置标志又发送消息。15.如权利要求13所述的装置,其中所述至少一个端口还包括双工模式电路,用于在所述双工失配电路声明双工失配时将所述至少一个端口从全双工模式改变到半双工模式。16.如权利要求13所述的装置,其中所述至少一个端口还包括冲突强制电路,用于响应于所述双工失配电路声明双工失配,使得所述至少一个端口在接收所述数据的多个第二帧中的一个第二帧中的预定量的数据之后在接收所述数据的多个第二帧中的所述一个第二帧的同时发送所述数据的多个第一帧中的一个第一帧。17.如权利要求16所述的装置,其中所述至少一个端口还包括双工模式电路,用于在所述冲突强制电路使得所述至少一个端口发送所述数据的多个第一帧中的所述一个第一帧之后,在所述双工失配电路声明双工失配时将所述至少一个端口从全双工模式改变到半双工模式。18.—种结合了如权利要求13所述的装置的网络设备,其中所述网络设备遵从多个标准中的至少一个,所述多个标准包括IEEE标准802.3、802.11、802.11a、802.11b、802.11g、802.11n、802.16和802.20。19.一种结合了如权利要求13所述的装置的网络设备,其中所述网络设备包括以下设备之一交换机;路由器;以及网络接口控制器。20.—种方法,包括通过通信信道以全双工模式发送数据的多个第一帧并接收所述数据的多个第二帧;当以下两种情况之一发生或者两种情况都发生时声明双工失配当正在发送所述数据的多个第一帧中的一个第一帧时在所述数据的多个第二帧中的一个第二帧中检测到CRC错误,或者接收到所述数据的多个第二帧中的一个第二帧的片段;并且其中所述双工失配表明针对所述数据的多个第二帧使用半双工模式。21.如权利要求20所述的方法,其中声明所述双工失配包括执行多个动作中的至少一个,所述多个动作包括在存储器电路中设置标志;以及发送消息。22.如权利要求20所述的方法,还包括在声明双工失配之后以全双工模式发送所述数据的多个第一帧。23.如权利要求20所述的方法,还包括在声明了双工失配之后,在接收所述数据的多个第二帧中的一个第二帧中的预定量的数据之后在接收所述数据的多个第二帧中的所述一个第二帧的同时发送所述数据的多个第一帧中的一个第一帧。24.如权利要求23所述的方法,还包括在发送了所述帧中的第一帧之后,在声明双工失配时以全双工模式发送所述数据的多个第一帧。全文摘要本发明的实施例提供了供遭受双工失配的链路两端校正双工失配的技术。根据某些实施例,链路的半双工端可以通过检测迟滞和/或极迟冲突来检测到链路的另一端处于全双工模式中,并且可以通过改变到全双工模式来校正双工失配。根据某些实施例,链路的全双工端可以通过包括检测循环冗余校验(CRC)错误和帧片段在内的一种或多种技术来检测到链路的另一端处于半双工模式中,并且可以通过改变到半双工模式来校正双工失配。文档编号H04L5/14GK101461169SQ200780019972公开日2009年6月17日申请日期2007年2月15日优先权日2006年3月28日发明者唐纳德·潘奈尔,奥兹戴尔·巴堪申请人:马维尔国际贸易有限公司