详细描述
无线局域网10的一个示例在图1中示出。无线接入点(AP)20通过有线连接22与有线网络通信,并经由无线链路与第一无线站24和第二无线站26通信。仅作为示例,接入点20可以是无线路由器,而无线站24和26可以是具有无线性能的笔记本计算机。
每个无线站可以包括带有一个或多个处理器的计算设备,该设备装备有操作系统用于为应用程序创建平台。每个无线站的硬件部分可以包括诸如现在已知或今后开发的用于计算设备的一个或多个处理器。每个无线站的软件部分可以包括结合了如下所述的通信软件的操作系统。
当符合IEEE 802.11标准的两个无线设备以最大发射功率工作并使用任何天线时,由于802.11MAC的CSMA/CA部分的定时限制,它们不能在大于大约200米的距离D上有效地通信。提供了一种在不修改802.11MAC的CSMA/CA部分或需要对硬件作出改变的情况下允许无线设备在更长的距离上有效地通信的方法。两个设备可以是两个接入点、一接入点和一客户机或者两个客户机。
802.11MAC具有与广播和单播分组相关的以下规则:(1)广播分组传输不需要指示在接收机处正确地接收到所发送的分组的ACK(确认)分组。因此,在802.11MAC层处不重发广播分组。(2)单播分组传输需要示在接收机处正确地接收到所发送的分组的ACK分组。如果发送器没有在SIFS(短帧间隙)间隔加上ACK超时间隔内接收到ACK分组,则它在下一发送机会重发该分组。其他客户机在它们使用定义的信道接入过程来竞争信道接入之前,对于当前帧的成功接收情况等待DIFS(分布式帧间隙)间隔,或者对失败的传输等待EIFS(扩展帧间隙)间隔。发送器在它达到重试限制后异常中止重发。使用短和长重试限制,并且对重发使用哪种类型的决定基于分组的大小。如果分组小于称为RTS(请求发送)阈值的指定大小,则为重发使用短重试限制。否则,使用长重试限制。短重试限制的默认值是7,长重试限制是4,RTS阈值是2347字节。所有这三个参数都是可配置的。
两个无线设备可以用最大发射功率来工作并使用定向天线以增强它们之间的物理可达性。这可通过适当地配置发射功率水平,使用定向天线,并使用802.11标准中指定的发现和连接建立的标准方法,来用符合802.11标准的现有硬件实现。为了达到最大范围,可以使用BSS(基本服务集)速率集的最低速率。然而,如果可以在最高速率下维持物理可达性,则可使用较高的速率。点对点的最大发射功率的调节准则比点对多点要高的多。扩展范围所需的定向天线可以是具有经修改的RF前端的较小的天线。
即使当两个这样的无线设备能够在1到2千米的数量级的距离上通信,802.11MAC的CSMA/CA部分对单播分组传输和接收也具有定时限制,这阻止了在这些距离上的通信。当发送分组时,除了传输延迟之外,在分组到达接收器之前传播延迟是与分组相关联的。传播延迟是发送器和接收器之间的距离的函数。较大的距离导致较大的传播延迟。当接收器发现接收到的分组为有效时,这也适用于由接收器发送的ACK分组。在足够大的距离上,由于发送的分组及其相关联的ACK分组的相应的较大传播延迟值,由802.11MAC定义的标准延迟时段超时,并且发送器重发相同的分组。由于发送器在标准延迟时段内没有接收到ACK分组,因此它判定接收器没有正确地接收到分组。实际上,这可能不是真的。当标准延迟时段超时且发送器重发分组时,ACK分组可能正在传输中。如果在第一传输或重发时在接收器处正确地接收到分组,则接收器使用802.11MAC的重复分组检测机制丢弃后续的重发。然而,重发在默认短重试限制的情况下导致1/7带宽的浪费,而在默认长重试限制的情况下导致1/4带宽的浪费。
如果发送的分组是来自一个IP数据报或802.11MSDU(MAC服务数据单元)的由802.11MAC生成的分段,则发送器在无法成功地发送第一分段时,即当达到第一分段的短重试或长重试限制时,异常中止其余分段的传输,导致整个802.111MSDU的丢失。在这一情况下,如果接收器成功地接收到第一分段,则它使对同一802.11MSDU的其他分段的等待超时并丢弃该分段。此外,由于当发送器超时并重发分组时ACK分组可能正在传输中,因此对重发可能有冲突的机会。
图2中示出了离得远的无线设备的802.11MAX的CSMA/CA部分的操作。分组50在时刻零处被发送,并且部分地由于对应于设备之间距离的传播延迟而在稍后的时刻在目的地处接收到。假设成功地接收到分组,则接收器发送ACK分组52。同样地,由于对应于设备之间的距离的传播延迟,在标准延迟时段超时后接收到ACK分组52。因此,发送器判定第一个所发送的分组丢失,并且在标准延迟时段超时后重发分组50。尽管有在目的地处成功地接收到第一传输这一事实,仍重发分组,从而导致上述的低效。
问题可总结如下:(1)当801.11MSDU被分段时,整个802.11MSDU丢失。(2)当802.11MSDU未分段时,第一传输的成功决定了在接收器处802.11MSDU的送达的成功。(3)当802.11MSDU未分段且在第一传输时被成功地接收到时,带宽被浪费了取决于重试限制值的因数。
通过修改802.11MAC的CSMA/CA部分来解决这些问题的任何尝试需要对硬件的改变和对空中协议的改变,这使得这种方法不吸引人,并且造成在现有和标准硬件之间缺乏互操作性的较高的可能性。因此,目标是不修改802.11MAC的CSMA/CA部分的解决方案。
现在描述一种在两个无线设备之间扩展范围的无线通信方法。所公开的方法的第一步涉及检测希望通信的两个无线设备是离得远的还是离得不远。离得远和离得不远的区别基于这样的距离,超过该距离,两个无线设备在使用标准802.11MAC协议时不能有效地通信,并且该距离一般约为200米的数量级。特定系统中离得远和离得不远的实际区别取决于该系统的定时参数。如果确定无线设备离得不远,则可使用标准802.11MAC协议。如果确定无线设备离得远,则使用上述通信方法来扩展无线设备的范围。对每对希望通信的无线设备作出离得远还是离得不远的判定。
可以在包括发现和连接建立阶段的任何时间执行离得远还是离得不远的设备的检测。检测逻辑涉及判定对仅发送一次的802.11MPDU(MAC协议数据单元)是否实际接收到ACK分组,以及由于未接收到ACK分组而使传输状态被示为失败。MPDU仅被发送一次以避免重发和对第一个传输的ACK分组之间的潜在冲突。在这种情况下,重发计数是零,并且对802.11MPDU的传输状态是在由802.11MAC的CSMA/CA部分定义的标准延迟时段内无法接收到ACK分组。如果在最大延迟时段内并且在发送器获得对信道的接入以发送下一分组之前接收到MAC分组,则就判定设备是离得远的。在作出离得远的结论之前应该观察几个样本。如果在每个发送的分组的最大延迟时段内接收到ACK分组并且接收到的ACL分组与失败的传输相关,则判定设备是离得远的。超过最大延迟时段,接收到的ACK分组被丢弃,并且与失败的传输不相关。该检测导致以下描述的用于范围扩展的方法的应用。检测逻辑可以作为802.11MAC的较高的MAC部分的一部分来提供,而不同通过扩展802.11MAC的CSMA/CA层或较低的MAC部分来提供。该方法确保无需对硬件作出改变以实现该逻辑。如果在802.11MAC的CSMA/CA部分指定的标准延迟时段内接收到ACK分组,则确定设备离得不远,并使用标准802.11通信方法。
检测逻辑可以在任何时刻通过判定在标准延迟时段内接收到ACK分组来判定两个无线设备是否不再离得远。在这种情况下,ACK接收计数是1,重发计数是零,且802.11MPDU的重发状态是成功。在作出无线设备离得不远的结论前应该观察几个样本。对离得不远的检测导致使用标准802.11通信方法,并且也还原短和长重试限制的原始值。
对于离得远的无线设备的检测,两个无线设备都必须支持该检测逻辑和所公开的用于范围扩展的方法。性能信息可以作为连接建立阶段的一部分例如通过使用自定义信息元素来传递。
假设如上所述判定无线设备离得远,则使用用于范围扩展的方法。首先,将短重试限制和长重试限制值设为零。这确保了发送器将单播分组作为广播分组来对待。这意味着发送器不会等待来自接收器的ACK分组确认,并且不会执行重发。然而,这并不意味着接收器在成功地接收到分组时也不会发送ACK分组。如果接收器成功地接收到每个分组的第一次传输,则解决了上述问题(1)和(3)。对于每个802.11MSDU,短重试限制和长重试限制值应该被设为零。这确保了对离得不远的无线设备使用了802.11标准中定义的基于ACK的重发机制于,而仅对离得远的无线设备使用所公开的用于范围扩展的方法。
为了解决上述问题(2),发送器需要判定何时丢失了发送的分组。可以通过扩展802.11MAC的较高的MAC部分来提供判定何时丢失分组的发送逻辑。该发送逻辑维护按目的地的单播分组队列,并监视一自定义ACK分组。该自定义ACK分组可以是如802.11标准中定义的自定义数据分组或自定义管理分组。对于发送到被确定为离得远的目的地、并且对其802.11MAC的CSMA/CA部分指示由于没有接收到标准ACK分组而使传输失败的每个单播分组,该发送逻辑继续将该分组维护在按目的地的分组队列中,直至它接收到自定义ACK分组或等待自定义ACK分组的最大延迟时段超时。在发送逻辑在最大延迟时段内接收到自定义ACK分组的情况下,它将分组从队列中删除并继续其他分组的传输。在最大延迟时段超时前没有接收到自定义ACK分组的情况下,发送逻辑重发分组并再次等待自定义ACK分组。最大重发次数可以是可配置的数字。
当发生实际冲突并且发送的分组被丢失时,不采用基于ACK的重发的标准技术。因此,接收器需要在802.11MSDU作为片段发送且片段之一受到冲突时不会使得成功接收到的分段超时的方式。克服这个问题的一个方式是当发送器检测到设备离得远时,在每一目的地的基础上禁用分段。然而,当传输差错率较高时,分段是有帮助的。较小的分组发送得较快,由此减少了冲突的机会,并且片段的重发成本较小。克服这个问题的另一方式是通过维护一附加的片段计数器来扩展802.11MAC的较高部分。对每个片段的自定义ACK分组递增该片段计数器。为了确保不会触发CSMA/CA层逻辑来进行序号和片段号检查,指示较低的MAC向较高的MAC指示其超时分组的版本。
此外,由于在802.11MAC的CSMA/CA层上每个分组仅被发送一次,并且由于较晚地接收到标准ACK分组,因此重要的是发送器保留足够的信道接入时间以避免其他无线设备竞争信道接入。这可以通过在802.11报头的持续时间字段放置适当的值来实现。这是一种优化,因为大多数其他无线设备将及时感测到延迟的标准ACK分组以避免传输。
参考图3-6描述了依照本发明的一个实施例在两个无线设备之间进行范围扩展的方法。图3示出了用于范围扩展的方法的流程图。在步骤100中,作出关于第一和第二无线设备是离得远还是离得不远的判定。第一和第二无线设备可对应于例如图1所示的无线站24和接入点20。步骤100在4中详细示出。如果在步骤102处判定设备离得不远,则在步骤104中使用802.11MAC的较低部分处的标准协议将分组从第一设备发送到第二设备。
如果在步骤102中判定设备离得远,则在步骤110中禁用标准802.11MAC协议。如上所述,可用通过将短重试和长重试限制设为零来禁用标准802.11MAC协议。这有效地致使每个分组传输被较低的MAC作为广播传输来对待,这无需确认。
在步骤112中,发送分组,且分组或指向该分组的指针被置于按目的地的队列中。在步骤114中,判定是否在最大延迟时段内接收到自定义ACK分组。最大延迟时段比802.11MAC的较低部分指定的标准延迟时段要长,并且允许与离得远的设备相关联的较长的传播延迟。如果在最大延迟时段内接收到自定义ACK分组,则在步骤116中从队列中移除对应的分组,并且该过程返回到步骤112以进行其他分组的传输。如果在最大延迟时段内没有接收到自定义ACK分组,则在步骤120中作出关于是否达到了重发限制的判定。重发限制对应于在802.11MAC的较低部分中使用的重试限制,并且如上所述可以是可配置的。如果达到了重发限制,则在步骤122中将传输状态改为失败。如果没有达到重发限制,则在步骤124中重发分组,并且该过程返回到步骤114以判定响应于重发的分组是否在最大延迟时段内接收到自定义ACK分组。步骤112、114、116、120、122和124组成了在802.11MAC的较高部分处实现的自定义协议。
图4中示出了用于检测离得远还是离得不远的设备的过程。在步骤150中,通过将短重试和长重试限制设为零来禁用在802.11MAC的较低部分处的重发。这有效地防止了分组的重发。在步骤152中,将分组从第一无线设备发送到第二无线设备。在步骤154中,判定是否在标准延迟时段内接收到标准ACK分组。如果在标准延迟时段内没有接收到ACK分组,则将传输状态指示为失败。因此,传输状态可以用作离得远还是离得不远的指示符。如果在标准延迟时段内接收到ACK分组,则在步骤156中判定设备离得不远。如果在标准延迟时段内没有接收到ACK分组,则在步骤158中指示设备离得远。可以重复步骤152和154几次,并且如果得到一致的结果就得出结论。
图5中示出了在最大延迟时段内接收到自定义ACK分组的情况的时序图。示出了对第一无线设备的发送和接收的信号。分组200在时刻零处被发送,且被置于按目的地的队列中。这对应于图3中的步骤112。在标准延迟时段之后但在最大延迟时段之前接收到自定义ACK分组210,这指示在目的地处成功地接收到分组200。将分组200重队列中移除并且不进行重发。这对应于图3中的步骤114和116。
图6中示出了在最大延迟时段内没有接收到自定义ACK分组的情况的时序图。示出了对第一无线设备的发送和接收的信号。在时刻零处发送分组220。自定义ACK分组230或是没有被接收到,或是在最大延迟时段超时后被接收到。在这种情况下,在最大延迟时段超时后并且没有接收到自定义ACK分组的情况下重发分组200。这对应于图3中的步骤114、120和124。
本发明的上述实施例可以用多种方式中的任一种来实现。例如,各实施例可以使用硬件、软件或其组合来实现。当用软件实现时,软件代码可以在任何适当的处理器或处理器集合上执行,而不管处理器是在单个计算机中提供的还是分布在多个计算机之中。
同样地,这里概述的各种方法和过程可以被编码为在采用多种操作系统或平台的任一种的一个或多个处理器上执行的软件。此外,这种软件可以使用多种合适的编程语言和/或传统编程或脚本工具中的任一种来编写,并且也可以被编译成可执行机器语言代码。
在这方面,本发明可被具体化为由一个或多个程序编码的计算机可读介质(或多个计算机可读媒体)(例如计算机存储器、一个或多个软盘、紧致盘、光盘、磁盘等),这些程序当在一个或多个计算机或其他处理器上执行时执行实现上述本发明各个实施例的方法。计算机可读介质或媒体可以是可运输的,这样使得其上的一个或多个程序可以被载入到一个或多个不同计算机或其他处理器上,以实现上述本发明的各个方面。
在本申请中使用的一般意义上的术语“程序”或“软件”是指可用于对计算机或其他处理器编程以实现上述本发明的各方面的任何类型的计算机代码或计算机可执行指令集。此外,应该理解,依照本实施例的一方面,当执行时执行本发明各方法的一个或多个计算机程序无需驻留在单个计算机或处理器上,而是可以以模块化的方式分布在多个不同的计算机或处理器之中以实现本发明的各个方面。
计算机可执行指令可以采用许多形式,诸如由一个或多个计算机或其他设备执行程序模块。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能可以按照各实施例所需地组合或分布。
本发明的各个方面可以单独、组合或者以不同于以上描述的实施例中具体讨论的各种排列来使用,由此不会将其应用限于以上描述中阐明或在附图中示出的细节和组件排列。例如,一个实施例中描述的各方面可以用任何方式与其他实施例中描述的各方面相结合。
在权利要求中使用诸如“第一”、“第二”和“第三”等序数词来修饰权利要求要去本身并不意味着一个权利要求要求对于另一个权利要求要素的任何优先级、优先次序或顺序,或执行方法的各动作的时间顺序,而只是用作将具有某个名称的一个权利要求要素与具有同一名称(但使用序数词)的另一个要素相区分的标签,以便区分权利要求要素。
同样,本申请中所使用的措词和术语是旨在描述,而不应该被认为是限制。在本申请中使用的“包括”、“包含”或“具有”、“含有”、“涉及”及其变体旨在包含此后所列示的项目、其等价物以及其他项目。
在如此描述了本发明的至少一个说明性实施例之后,可以理解,各种改变、修改和改进对本领域的技术人员而言会是显而易见的。这种改变、修改和改进旨在成为本发明的一部分,并且旨在落入本发明的精神和范围内。因此,以上描述和附图仅作为示例。