一种改进的通信协议的制作方法

文档序号:7580168阅读:159来源:国知局
专利名称:一种改进的通信协议的制作方法
技术领域
本发明涉及在网络节点之间基于分组的通信领域,并且特别是涉及其中一个节点在多于一个其它节点的范围内的情况。
通信系统可以利用数据分组从一个节点向另一个节点传送信息。被传送的数据分组通常包括两种数据类型总开销数据和有效负荷数据。总开销数据可以包括支持被所述通信系统使用的协议类型的数据,并且还可以包括支持由于在节点之间的通信给所述分组造成的误差的检测和任选校正的冗余检验数据。对于一种特殊的通信系统,使能够共享可用和有限的系统容量的用户(节点)数量最大化,可以是一个目的。达到这个目的的一种方法是确保在所述节点之间通信的分组尽可能短。
一个节点可以在多于一个其它节点的范围内(即,能够从多于一个其它节点接收分组)。一种众所周知的区分节点的方法是使用编址。编址的缺点是,增加分组的总开销(对于一个给定的有效负荷大小,分组的长度被增加,这可能意味着每个单元时间有更少的分组,进而又可能限制能够共享所述系统容量的用户数量)。
例如,一个系统可以进行这样的通信,其中包括所述发送节点地址的一个被发送的分组被一个接收节点确认。所述确认(例如,一个确认分组)可以包括所述发送节点地址。这种方法的缺点是所述发送节点不能根据所述确认分组的内容确定哪个(以前被发送的)分组正被确认。
在另一个例子中,通信系统的节点可以利用包括总开销数据、有效负荷数据和冗余检验数据的分组。为了提供适当的分组误差防护,所述冗余检验数据可以是总开销数据和有效负荷数据的函数。一个第一节点可以发送一个消息分组到一个第二节点,所述分组是需要确认的类型。作为响应,所述第二节点可以将一个包括在所述消息分组(以及支持所述通信系统协议必要的任何总开销数据)中被接收的原始冗余检验数据的确认分组发送到所述第一节点。这样,所述第二节点确认所述消息分组(因为所述冗余检验数据是所述总开销数据和有效负荷数据的函数),同时,在相同的时间,最小化所述确认分组的大小。这种方法的一个缺点是,在所述确认分组内的冗余检验数据无保护地被发送。在被所述第一节点接收的确认分组的冗余检验数据中的误差可能例如(错误地)促使所述第一节点再发送所述原始消息分组以便克制被所述第二节点接收的消息分组的讹误已经发生的假定。
一种克服上述缺陷的方法是使用附加的冗余检验数据来保护所述原始消息的冗余检验数据,两种冗余检验数据都被包括在所述确认分组中。这种方法的一个明显的缺点是所述确认分组的大小因此而被增加。
本发明的一个目的是借助于在一个通信系统的终端之间传递数据报的方法为这些和其它问题提供一种解决方案。
根据本发明,提供了一种在一个通信系统的终端之间传递数据报的方法,其中,每个数据报包括被用于核对数据报完整性的冗余检验数据,所述方法包括步骤·产生包括消息数据和第一冗余检验数据的第一数据报,所述第一冗余检验数据根据所述消息数据被计算;·从第一终端发送所述第一数据报到第二终端;·核对所述第一数据报的完整性;·产生包括第二冗余检验数据的第二数据报,所述第二冗余检验数据根据响应数据和第一冗余检验数据被计算;·从所述第二终端发送所述第二数据报到所述第一终端;·核对所述第二数据报的完整性;以及,在其中所述第二数据报的完整性被确认的情况下,·识别所述第二数据报是对于所述第一数据报的响应。
本发明适合于很多类型的通信系统。尤其是,它可以适合于在一个网络的节点之间基于分组的通信,其中,当一个分组被从一个节点传递到另一个节点时,误差有可能出现。被用于接入导致例如分组冲突(即,在相同的时间在相同的信道中被不同节点发送的分组)的通信信道的方法可能造成这样的误差。尽管这种限制可以通过更复杂的方案被解决,但是这种接入方案的简单性可以导致有吸引力的成本优点。另外,或者可替代地,分组可以被包括(但不限于)由于衰减、多径或者其它失真造成的损耗的通信媒体本身的固有损耗所破坏。这种损耗是无线媒体特有的,所述媒体的例子包括,但不限于,无线电、激光、红外线和超声波。
为了允许误差检测,通过有损耗的通信媒体被发送的分组可以包括冗余检验数据。这个数据可以被一个接收节点用于核对被接收的分组数据的完整性。用于定义冗余检验数据的方案的范围包括(但不限于)检查和、海明编码和循环冗余检验(CRC)。尤其是,CRC通常根据性能(即,检测某些类型的数据误差的能力)和总开销(CRC数据的大小)之间的好的折中被选择。
在很多实际的通信系统中,为确保健壮性,信息的发送器必须具有接收器已经正确接收所述信息的知识。因此,通常,所述发送器需要来自所述接收器的一些形式的反馈,例如,所述消息已经被正确接收的确认。在其中有多个发送器和接收器在彼此的范围内(即,能够互相通信)并且其中一个发送器能够将一个专用消息寻址到一个接收器的情况中,存在一个问题,其中所述接收器需要将它的确认寻址到所述发送器并且需要将所述确认与所述正确的原始消息相联系。现有技术方法解决这些问题的一个或者另一个,但是只通过折中所述确认过程的效率来解决两者。
在一个使用本发明的方法的例子中,一个通信系统包括多个节点,其中,一个第一节点产生一个包括消息数据和第一冗余检验数据的第一数据报,所述第一冗余检验数据例如是一个检查和、海明编码或者CRC,但并不限于这些。优选地,第一冗余检验数据使用所述总开销数据(包括第一节点地址)和消息(或者有效负荷)数据被产生。这样,所述第一数据报包括冗余检验数据,所述冗余检验数据包含关于所述消息(第一节点地址)源和所述消息(有效负荷)内容的信息。优选地,一种CRC机制被使用。所述数据报被发送到一个第二节点。在接收时,例如,通过根据同意的方法(如被所述第一和第二节点两者使用的检查和、海明编码、CRC、等等)从所述被接收的数据报的内容计算冗余检验数据,所述第二节点可以测试所述被接收的(第一)数据报的完整性。所述被计算的冗余检验数据随后可以与被包括在所述被接收的第一数据报中的第一冗余检验数据比较。如果两个冗余检验数据对应,则随后所述第二节点对于第一数据报的无误差接收被确定。一种测试被接收的(第一)数据报的完整性的可替代的方法可以是将一个冗余检验数据发生器初始化为一个已知值并且随后将所述被接收的数据报的总开销数据、有效负荷数据和冗余检验数据应用到所述发生器。所述发生器的合成值可以被用于核对所述被接收的数据报的完整性。这个方法能够在CRC的实例中被使用,例如,一个CRC发生器可以先于应用所述被接收的数据报的数据之前被初始化。在这个例子中,CRC发生器后面的零值将表示验证。
很多系统使用所谓的肯定响应,借此,接收节点对于数据报的无误差接收导致所述接收节点的肯定响应,其中,所述接收节点将一个响应数据报发送回所述发送节点。因此,在这个例子中,所述第二节点可以产生一个第二数据报,该数据报代表一个对于所述第一数据报的响应。所述第二数据报包括一个第二冗余检验数据,它根据响应数据和在所述第一数据报中被接收的第一冗余检验数据被计算。这种计算的一个例子是,其中一个冗余检验数据发生器可以根据所述第一冗余检验数据(在所述第一数据报中被接收的)被初始化;响应数据随后可以被应用到所述发生器,所述第二冗余检验数据随后根据所述发生器的值被确定。应该注意,为最小化所述数据报的大小,所述第二节点地址可以从所述数据报中被省略,因为这个地址隐含在响应于原始数据报(第一数据报)的数据报中。然而,和现有的技术方法不同,根据所述第一冗余检验数据的第二冗余检验数据包括涉及所述第一节点的标识和所述第一数据报的有效负荷以及执行它的用于所述第二数据报的误差检测功能的信息。和所述第一冗余检验数据一样,所述第二冗余检验数据可以是一个检查和、海明编码、CRC或者其它适当的数据。优选地,一种CRC被用于所述第二冗余检验数据。在所述第一数据报的简单确认的情况中,所述第二节点可以产生一个只包括最小确认标识符数据(有效负荷数据)和所述第二冗余检验数据(以及如必要,支持被使用的通信协议的任何总开销数据)的第二数据报。优选地,所述确认标识符数据未被包括在所述第二数据报内,因为它可以是第一和第二节点共用并且通过局部存储器或者任何其它装置可接入的数据。这进一步减小所述确认数据报或者具有充分恒定的有效负荷数据内容的其它数据报的大小。
所述第二节点随后发送所述第二数据报。所述第一节点可以在很多其它节点的范围内,并且可以等待来自一个或多个节点的数据报作为对于以前被它自己发送的数据报的响应。所述第一节点可以接收所述第二数据报。随后,例如,根据同意的方法(如被所述第一和第二节点两者使用的检查和、海明编码、CRC、等等),通过根据与所述被接收的数据报和所述第一冗余检验数据有关的响应数据计算冗余检验数据,它可以测试所述被接收的(第二)数据报的完整性。所述被计算的冗余检验数据随后可以与被包括在所述被接收的第二数据报中的第二冗余检验数据比较。如果所述冗余检验数据对应,则随后所述第二数据报的完整性被核实。一种核对所述第二数据报的完整性的可替代的方法是,其中一个冗余检验数据发生器可以根据所述第一冗余检验数据被初始化;随后响应数据和第二冗余检验数据可以被应用到所述发生器,随后,所述第二数据报的完整性根据所述冗余检验数据发生器的值被确定。和现有的技术方法不同,如上面描述的第二数据报的验证也表示所述第二数据报是对于被第一节点发送的早期数据报的响应并且识别哪个特殊的早期数据报。
一种通信系统可以包括能够使用包括本发明的各个方面的数据报通信的节点或者终端。被所述通信系统使用的媒体可以是有线的或者无线的或者两者的组合。尤其是,适当的有线系统的例子包括,但不限于,以太网、RS232、UPnP和USB;适当的无线系统的例子包括,但不限于,WiFi、802.11、低功率无线电、蓝牙和ZigBee。优选地,适当的无线通信系统的终端根据标准IEEE802.15.4通信。
适合于支持本发明的各个方面的一种通信终端或者节点可以包括·一个可操作来接收来自另一个终端的数据报的第一端口;·一个处理器,可操作来·解码被接收的数据报;·计算冗余检验数据;·比较冗余检验数据;以及·产生一个数据报;·一个可操作来存储程序编码指令的第一存储器;·一个可操作来存储冗余检验数据的第二存储器;·一个可操作来发送数据报到另一个终端的第二端口;以及·一个可操作来与主应用程序交换数据的第三端口。
任何适当的硬件或者硬件/软件组合可以被用于实现根据本发明的各个方面的终端。在一些实现中,非易失存储器可以被用于存储所述软件程序编码。另外,或者可替代的,一种实现方案可以利用冗余检验数据发生器例如在具有有限处理能力或不具有处理能力的节点中实现CRC生成。
根据本发明构成的数据报的优点是,它们在使用不充足的通信资源方面是紧凑和有效的,与此同时,它们还可以保护所述数据报以避免误差并且它们可以指示自己涉及的源节点和特定的数据报。
将通过例子并且参考附图描述另外的特点和优点,其中

图1是一个包括本发明的一个方面的典型的方法的流程图;图2是一个通信终端或者节点的示意的表示。
图1显示一个包括本发明的一个方面的典型的方法的流程图。通常在100被显示的所述方法可以被在一个通信系统中的节点的网络内的第一和第二节点应用。一个例子可以是,其中,所述节点是根据ZigBee和/或IEE802.15.4标准操作的无线节点或者终端。所述方法在102启动,其中在104,消息数据被第一节点装配。这个消息数据可以包括要被从所述系统内的第一节点发送到第二节点的总开销数据(例如,但不限于,第一节点地址、第二节点地址、分组类型、成帧编码、顺序数据)和有效负荷(信息)数据。有效负荷信息可以通过所述节点本身或者通过与主应用程序的数据交换被处理。利用所述消息数据,第一冗余检验数据136被计算106。任何适当的冗余检验数据机制可以被使用。它们包括(但不限于)检查和、海明、CRC、等等。可以根据在通信信道中很可能遇到的误差类型并且也许还根据通信节点的可用的处理能力来选择适当的方案。一旦所述冗余检验数据已经被计算,则它可以被附加到所述消息数据以便产生108第一数据报。应该注意,本发明的方法不必要求上面详述的全部消息数据被包括在一个数据报内。发起一个消息的节点可能只需要供给对于预定的接受者节点足以重建包括本发明的各个方面的适当的冗余检验数据的信息。例如,如下面关于响应数据被进一步解释的,有效负荷数据可以不必被包括。所述第一数据报被发送110到第二节点。
所述第二节点接收112所述第一数据报。在114,根据在所述第一数据报中被接收的总开销数据和有效负荷数据来计算冗余检验数据。就在两个节点上计算相同的冗余检验数据的目的来说,被所述第二节点使用的计算匹配被所述第一节点使用的计算,并且在相同的数据(例如,总开销和有效负荷数据)上进行操作。所述被计算的冗余检验随后可以被与在所述第一数据报中被接收的第一冗余检验数据116比较118。如果所述比较为假,则因为被所述第二节点接收的第一数据报被破坏并且不可靠,所述方法终止142。如果所述比较为真,则所述第二节点随后继续产生126第二数据报作为对所述第一数据报的满意的接收的响应。所述第二数据报包括根据响应数据(有效负荷数据)120而计算的第二冗余检验数据122以及在所述第一数据报中被接收的第一冗余检验数据116。在这个方式中,所述第二冗余检验数据是所述响应数据、所述第一节点的标识(例如,地址)和所述第一数据报的内容的函数(因为所述第一冗余检验数据本身是后两项的函数)。所述第二数据报可以任选地124包括所述响应数据;在包括(但不限于)确认一个数据报的数据报、周期信标数据报或类似的数据报的一些普通或者标准类型情况中,所述响应数据对于参与所述通信的节点可以是已知的。例如,所述响应数据可以被局部地存储或者另外在每个节点上可得到;因此,在所述数据报本身中包括和传递这种数据可能是低效率的。随后,所述第二数据报被从所述第二节点发送128到所述第一节点。
当接收130到所述第二数据报时,所述第一节点使用在所述第二数据报中被接收的数据、所述第一冗余检验数据136和响应数据(在所述第二数据报中被提供,或者如上面讨论的局部地可得到的;为了清楚起见,在图1中未被显示)计算134冗余检验数据。所述被计算的冗余检验随后被与在所述第二数据报中被接收的第二冗余检验数据比较138。如果所述比较为假,则因为被所述第一节点接收的第二数据报被破坏并且不可靠,所述方法终止142。如果所述比较为真,则所述第一节点随后确定所述第二数据报的完整性为真,并且所述第二数据报代表140对于所述第一数据报的响应。所述方法随后终止142。在图1的例子中,例如使用前面被描述的冗余检验数据发生器的方法的一种适当的可替代的方法可以被用于核对所述数据报的完整性。
图2显示一种总体上由200来表示的、在包括本发明的各个方面的通信系统中被使用的通信终端或者节点的示意的表示。所述节点包括用于接收数据报的第一端口202、用于发送数据报的第二端口212、用于交换消息数据的第三端口218、CPU 204、用于存储程序指令的ROM 206、用于临时存储的RAM 208、存储器216和任选冗余检验数据发生器214,全部以本领域技术人员已知的方式通过总线210互连。在操作中,在ROM中的程序的控制下,CPU可以获得消息数据(局部地,或者通过所述第三端口;所述第三端口在所述程序的控制下可以可操作来与例如局部地位于所述节点或在一个网络或互联网上的主应用程序交换数据)用于发送到另一个节点。CPU随后安排要被产生的冗余检验数据;这可以在程序控制下通过CPU本身,或者可替代地通过专用冗余检验数据发生器214来进行。这种发生器的一个例子是一种实现一个CRC多项式的适当的有线移位寄存器。为了稍后使用,CPU可以安排来在存储器216中存储被产生的冗余检验数据的值。CPU随后装配一个数据报(它包括所述被产生的冗余检验数据)并且通过任何适当的通信协议,使用第二端口212发送所述数据报到另一个节点。当在输入端口202上接收到数据报时,CPU可以根据所述程序和被存储的冗余检验数据216处理和确认所述数据报。
上述方法和实现只是通过例子被呈现,并且代表一种能够容易地被本领域的技术人员识别以便利用本发明的优点的方法和实现的范围的选择。
在上面参考图1的描述中,公开了一种在一个通信系统的终端(节点)之间传递数据报的方法。在通过不可靠媒体操作的系统中,冗余检验数据136能够被包括在一个数据报中以用于当数据报被一个终端接收112时核对所述数据报的完整性;所述数据报的满意的接收能够通过所述接收终端发布128一个响应数据报(例如一个确认)到始发终端而被确认。本发明在用于所述确认(或者其它响应类型)数据报的新的冗余检验数据的生成122中利用被接收的原始数据报的冗余检验数据116(所述冗余检验数据包括关于所述始发终端的标识和所述数据报内容的信息)。所述始发终端接收130并且连同它自己的原始数据报的冗余检验数据136的局部记录一起处理134、138所述响应数据报。这样,本发明确保所述响应数据报的大小是紧凑的,同时使所述始发终端不仅仅能核对138所述响应数据报的完整性,而且还能认可140所述响应数据报是对于所述原始数据报的响应。
权利要求
1.一种在通信系统的终端之间传递数据报的方法,其中,每个数据报包括用于核对数据报完整性的冗余检验数据,所述方法包括步骤·产生(108)一个包括消息数据和第一冗余检验数据的第一数据报,所述第一冗余检验数据根据所述消息数据被计算;·从一个第一终端发送(110)第一数据报到一个第二终端;·核对所述第一数据报的完整性;·产生(126)一个包括第二冗余检验数据的第二数据报,所述第二冗余检验数据根据响应数据和第一冗余检验数据被计算;·从所述第二终端发送(128)第二数据报到第一终端;·核对所述第二数据报的完整性;以及,在所述第二数据报的完整性被确认的情况下,·识别所述第二数据报是对于所述第一数据报的响应。
2.根据权利要求1中所述的方法,其中,核对所述第一数据报的完整性的步骤包括步骤·根据所述消息数据计算第三冗余检验数据;·比较第三冗余检验数据和第一冗余检验数据;以及·根据所述比较来确定所述第一数据报的完整性。
3.根据权利要求2中所述的方法,其中,核对所述第二数据报的完整性的步骤包括步骤·根据所述响应数据和第一冗余检验数据来计算第四冗余检验数据;·比较第四冗余检验数据和第二冗余检验数据;以及·根据所述比较来确定所述第二数据报的完整性。
4.根据权利要求1中所述的方法,其中,计算第二冗余检验数据包括步骤·根据所述第一冗余检验数据初始化第一冗余检验数据发生器;·将响应数据应用到所述冗余检验数据发生器;以及·根据所述第一冗余检验数据发生器的值确定第二冗余检验数据。
5.根据权利要求1或4中所述的方法,其中,核对所述第二数据报的完整性的步骤包括步骤·根据所述第一冗余检验数据初始化第二冗余检验数据发生器;·将所述第二数据报的响应数据和第二冗余检验数据应用到所述发生器,所述响应数据被用于计算所述第二冗余检验数据;以及·根据所述第二冗余检验数据发生器的值确定所述第二数据报的完整性。
6.根据权利要求1到5任何之一中所述的方法,其中,所述第二数据报还包括所述响应数据。
7.一种包括多个终端的通信系统,其中,每个终端使用权利要求1到6任何之一中的方法。
8.如权利要求7中所述的通信系统,其中,所述终端可操作来使用在标准IEEE802.15.4中被定义的数据报进行通信。
9.一种用于在权利要求7到8任何之一中的通信系统并且根据权利要求1到6任何之一中的方法可操作的终端,所述终端包括·一个可操作来接收来自另一个终端的数据报的第一端口(202);·一个处理器(204),可操作来·解码被接收的数据报·计算冗余检验数据;·比较冗余检验数据;以及·产生一个数据报;·一个可操作来存储程序编码指令的第一存储器(206);·一个可操作来存储冗余检验数据的第二存储器(216);·一个可操作来发送数据报到另一个终端的第二端口(212);·一个可操作来与主应用程序交换数据的第三端口(218)。
10.根据权利要求9中所述的终端,其中,所述第一存储器是非易失的。
11.根据权利要求9中所述的终端,还包括一个冗余检验数据发生器。
全文摘要
一种在通信系统的终端(节点)之间传递数据报的方法。在通过不可靠媒体操作的系统中,冗余检验数据(136)可以被包括在一个数据报中,用于当被一个终端接收(112)时核对所述数据报的完整性;所述数据报的满意接收能够通过所述接收终端发布(128)例如一个确认的响应数据到所述原始终端而被确认。本发明在用于所述确认(或者其它类型的响应)数据报的新的冗余检验数据的生成(122)中利用被接收的原始数据报的冗余检验数据(116)(所述冗余检验数据包括关于所述原始终端的标识和所述数据报的内容的信息)。所述原始终端接收(130)并且连同它自己的所述原始数据报的冗余检验数据(136)的局部记录一起处理(134、138)所述响应数据报。这样,本发明确保所述响应数据报的大小是紧凑的,同时允许所述原始终端不仅仅核对(138)所述响应数据报的完整性,而且还认可(140)所述响应数据报是对于所述原始数据报的响应。
文档编号H04L29/06GK1711741SQ200380103153
公开日2005年12月21日 申请日期2003年10月30日 优先权日2002年11月13日
发明者A·J·菲舍尔, S·莫里迪 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1