用于tcp/ip协议组的传输控制设备和方法

文档序号:7929491阅读:271来源:国知局
专利名称:用于tcp/ip协议组的传输控制设备和方法
技术领域
本发明涉及传输控制协议/网际协议(TCP/IP),特别涉及用于TCP/IP协议组的数据链路层的传输控制设备和方法。
IP是网络层(081参考模型的第三层)协议,包括地址信息和一些使分组能够路由的控制信息。同时,IP通过互连网络提供分组的无连接和最有效传输,并且提供分组的分割和重组以支持数据链路。
TCP是传输层(081参考模型的第四层)协议,在IP环境中提供数据的可靠传输。尤其是,TCP通过提供互连网络间的面向连接的、端对端可靠分组传输而确保可靠性,并且确保有效的信息流控制,这表示当向源发送回应答信号时,接收TCP过程指出它能够接收的、不会使其内部缓冲器溢出的最大序号。
但是,在TCP/IP模型中,没有指定在TCP/IP协议栈底部对应于OSI参考模型的数据链路(第二层)和物理层(第一层)的网络接入层的功能,从而很难期望通过物理媒体进行数据的可靠传输。
本发明的一个目的是通过实现其中的可靠协议层2(RPL2),提供控制TCP/IP栈的网络接入层中数据传输的传输控制设备和方法。
本发明的另外一个目的是基于数据链路层的数据传输可靠性,提供控制多个设备的传输控制设备和方法。
为了实现这些和其它目的,本发明的传输控制设备包括可靠服务单元,用于提供TCP/IP栈的预定层(例如层2)中的可靠对等数据通信;和设置单元,用于对可靠服务单元进行设置。
可靠服务单元包括分割部件,用于把来自上层的服务数据单元(SDU)分割为预定长度的协议数据单元;发送缓冲器,用于暂时存储来自分割部件的协议数据单元(PDU) 接收缓冲器,用于暂时存储通过通信信道接收到的协议数据单元;重组部件,用于将存储在接收缓冲器中的协议数据单元组合为上层的服务数据单元;轮询器(poller),用于通过检查网络状况而控制数据发送/接收;以及控制单元,用于控制分割部件、发送缓冲器、接收缓冲器、重组部件和轮询器。
本发明的传输控制方法包括对TCP/IP栈的预定层(例如,层2)中的可靠对等数据通信进行初始化,对连接到端口的传输控制设备和装置的端口进行注册,确定是否有上层SDU要发送,在有上层SDU要发送时发送上层SDU,当没有上层SDU要发送时确定是否有下层PDU要接收,如果有下层PDU要接收,则接收下层PDU。
本发明的其它优点、目的和特征有一部分将在以下的说明书中进行阐述,有一部分则对于本领域的技术人员经过对以下内容的检验后会变得明了,或者通过本发明的实践而体验到。所附的权利要求书具体指出了本发明的目的和优点。
优选实施例详细说明下面结合附图对本发明的优选实施例进行描述。


图1显示的是根据本发明的一个实施例的包括RPL2的协议栈的概念图。
如图所示,协议栈包括第一、第二和第三协议层,以及优选地置于第二协议层中的RPL2层。即使通过不可靠的信道进行数据传输,RPL2也保证数据到达接收器。换言之,通过将OSI参考模型中定义的数据链路层的可靠服务应用到TCP/IP模型的网络接入层,来确保可靠的数据传输。
为了保证数据链路层中的可靠数据传输,RPL2对于上层数据单元提供了分割和重组功能,对误差控制和流控制采用了GO-BACK-NARQ和滑动窗口算法。为了检测错误,可以选用CRC16。
图2显示的是根据本发明实施例的传输控制设备的框图。如图所示,传输控制设备包括可靠服务单元10,用于在层2进行可靠对等数据传输;以及设置部件30,用于设置可靠服务单元10的端口和连接到该端口的设备。通过通信信道20,将传输控制设备连接到其它的网络设备。
可靠服务单元10包括分割部件11,用于把来自上层的服务数据单元(SDU)分割为预定长度的协议数据单元(PDU);发送缓冲器12,用于对来自分割部件11的PDU进行暂时存储;接收缓冲器14,用于对通过通信信道20接收到的数据进行暂时存储;重组部件15,用于组合存储在接收缓冲器中的数据以形成上层的SDU;轮询器13,用于通过检查网络状况而控制数据传输;以及控制单元16,用于控制上述各部件。
PRL2对多个端口进行注册,这些端口对应于所需要的多个数据链路,在逻辑上建立到各个端口的点对点信道,以通过这些信道分别向上层提供相应服务。由于对各个端口进行独立管理,各个上层实体通过相应的端口和具有不同传输特性的下层实体进行通信。
RPL2使用滑动窗口机制确保可靠数据传输。为了实现此目的,当从上层接收到数据时,发送器的RPL2使用分割部件将上层数据分割为预定大小的协议数据单元,将协议数据单元暂时存储在发送缓冲器12中,然后通过轮询器13的滑动窗口机制进行数据传输。根据窗口的大小,发送存储在发送缓冲器12中的协议数据单元,然后,如果从接收器接收到应答信号(ACK),则滑动窗口,从而发送下一个协议数据单元。另一方面,接收器的RPL2在接收缓冲器14中存储协议数据单元,然后检查所接收协议数据单元的序号。如果在所接收的协议数据单元中有丢失的序号,则接收器的RPL2请求发送器重新传输丢失的协议数据单元,并且重组协议数据单元,从而在正常接收到所有的协议数据单元时,在重组部件15中重新恢复上层服务数据单元。
在图2中,“rpl2_send”是请求从上层进行数据传输的功能调用,“confirm”(确认)是向上层通报可靠服务正常执行的信号,“timeout”(超时)是向上层通报数据传输失败的信号,“received”(接收)是在重组数据之后,使用回叫功能向上层发送正常接收到的数据的信号。
图3显示的是根据本发明可以使用的PDU格式的一种类型。如图所示,根据本发明的PDU包括一个字节的类型字段,一个字节的PDU_No字段,2个字节的SEQ_No字段,2个字节的Serial_No字段,2个字节的数据规格字段,可变长度的数据字段,和2个字节的CRC字段。类型字段表示PDU的类型,PDU_No字段表示包含在上层SDU中的PDU的数目,SEQ)No字段表示PDU的序号,Serial_No字段表示SDU的序号,而Data_Size字段表示插在数据字段中的有效负荷长度,而数据字段表示以PDU的形式进行传输的上层有效负荷。
图4显示的是可以在图2的传输控制设备中实现的设备注册过程的概念图。由于确保了对数据链路层中上层的可靠服务,可以在数据链路层注册相应连接到这些端口的端口和设备。
由用户通过设置单元30人工进行端口注册。端口注册信息包括端口ID、设备ID、设备的逻辑链路号、窗口规格、上层的最大SDU大小、在上层中定义的回叫功能。设备注册信息包括设备ID、下层的最大PDU大小和设备的传输功能指针。
端口注册表

设备注册表

如图4所示,在端口注册过程中,一个端口注册一个设备,而一个设备可以占有两个端口(参见端口注册表)。
在图2中,分割单元II将上层SDU分割为PDU,从而下层设备可以处理从上层传输到下层的数据。PDU具有和SDU同样的序号,存储在发送缓冲器,然后通过设备驱动器进行发送。由每个应用程序对序号进行管理,也可以将序号指定为预定的号,例如,直到32766。当序号达到预定号时(例如,32766),其重新从0开始。
在接收处理中,轮询器检查所接收PDU的序号,以判断PDU是否从同一个SDU而来,并且如果PDU的序号相同,在去除RPL2报头之后,将PDU放置在接收缓冲器中,直到接收到整个SDU。在接收到整个SDU时,由重组单元15对相关的PDU进行重组,并且传输到上层。同时,将接收缓冲器的指针和大小报告给上层,从而从上层指定新的接收缓冲器,以接收下一个PDU。
将发送缓冲器12以一定数目(最好是比PDU最大帧长度(下文中称MFL)长64倍)的大小,分配给相应的注册端口,从而存储来自上层SDU的下层PDU的分割成MFL大小的数据。以窗口大小对存储在发送缓冲器中的数据进行读取和传输,然后在缓冲器中存储要传输的下一个数据。
以和上层SDU的MFL相同的长度将接收缓冲器14分配给相应的注册端口,以存储PDU,直到接收到整个上层SDU。当接收到等于整个上层SDU的足够PDU时,重组单元15对PDU进行重组,并且传输到上层。如果由上层应用程序读取PDU,则释放接收缓冲器14。
在用户进行端口注册处理时,将窗口尺寸定义为与所注册的设备性能适合的大小,从而在从接收器接收应答信号之前,传输控制设备的发送器能够以窗口尺寸的大小发送PDU。当从接收器接收到应答信号时,窗口移动所接收PDU的数目。
图5显示的是当发生数据丢失时,本发明所实现的重新传输处理的消息序列图。如图所示,对于当发送器传输和窗口大小同样多的PDU时丢失PDU4的情况,接收器检查PDU的序号,确认丢失了PDU4。当发生此情况时,接收器通过向发送器发送REJ4信号,请求重新传输PDU4。在收到REJ4信号时,接收器重新传输PDU。如果必要,丢失PDU的重新传输重复预定的次数,并且如果重新传输数结束时,向上层发送传输错误信息。
图6显示的是当ACK丢失时,本发明实现的进行重新传输处理的消息序列图。如图所示,在预定时间内,发送器传输对应于窗口大小数量的PDU,并且在预定时间内等待接收器的ACK。如果在预定时间内没有接收到ACK,则向接收器发送超时(TO)信号,并且启动TO计时器。在接收到TO信号后,接收器使用接收期望(RE)PDU报告要接收的PDU号。然后,发送器重复发送对应于具有由RE PDU报告的PDU号的PDU的数据。重复传送预定数目次数的TO信号(例如,5次),如果对第五个TO信号没有应答,则报告数据链路中断。对于每个端口管理计时器和重传计数器。
结合图6到图8,描述根据本发明的数据传输控制方法。
图7显示的是包含初始步骤的本发明的数据传输控制方法的流程图。
在步骤ST11对本发明的传输控制设备进行初始化,然后在步骤ST12,通过设置单元30,对传输控制设备的端口和连接到端口的设备进行注册。在注册了端口和设备之后,传输控制设备在步骤ST13确定是否有要发送的数据。如果有要发送的数据,则将数据分为具有最大PDU大小的下层PDU,然后在步骤ST14进行发送。另一方面,如果没有要发送的数据,在步骤ST15,传输控制设备确定是否有要接收的数据。如果有要接收的数据,传输控制设备检查包含在数据中的PDU的类型,并且在步骤ST16,根据PDU的类型进行处理。
图8显示的是图7中数据传输控制方法的传输处理的更为详尽的概念图。如图所示,当从上层传送要传输的数据时,由分割单元11将上层数据分为具有预定大小的下层PDU,然后存储在发送缓冲器12中。由轮询器13使用下层发送功能对存储在发送缓冲器中的数据进行传输。
只要没有从接收器接收到REJ信号,发送器传输优选地对应于窗口大小数量的数据,在启动计时器的时候,等待接收器的ACK。如果发送器在预定时间内没有从接收器接收到ACK信号,计时器超时,并且向接收器发送超时信号。当计时器超时的时候,重复发送预定次数(例如3次)的超时信号,如果即使传送预定次数的超时信号之后仍然没有从接收器接收到ACK,则通过向上层发送回叫信号而生成超时事件。另一方面,如果从接收器正常接收到ACK信号,上层通过回叫生成检查事件,并且传送适合于窗口的下一数据。
图9显示的是图7中数据传输控制方法所实现的数据接收处理的概念图。如图所示,当通过通信信道20接收PDU时,控制单元16检查PDU报头的类型字段,并且进行这种PDU类型的合适处理。同时,控制单元16检查所接收PDU的SEQ_No,当没有期望的SEQ_No时,丢弃所接收的PDU。然后通过使用RE PDU报告SEQ_No,请求重新传送丢失的PDU。将成功接收的PDU发送到接收器的重组单元10,在此处进行重组,以便恢复成初始的上层SDU。将上层SDU和数据的指针及数据规格一起发送到上层,以实现回叫功能。
总之,本发明的数据传输控制设备和方法最好用于TCP/IP栈的数据链路层,其中使用GO-Back-N ARQ和滑动窗口算法进行相应的差错和流的控制,以实现可靠传输服务,例如,在层2。同时,由于本发明的数据传输控制设备和方法在层2支持可靠数据传输,使得在数据链路层水平对设备进行管理成为可能。
尽管结合当前认为是实际和优选的实施例对本发明进行了描述,但是需要理解的是,本发明不限于这些公开的实施例。相反,本发明覆盖在所附权利要求书的宗旨和范围中的不同的修改和等同结构。
前面所述的实施例和优点仅仅是示例性的,并不认为是对本发明的限制。本发明的教导可以容易地应用于其它类型的设备。本发明的说明书是说明性的,并不限于权利要求的范围。对于本领域的技术人员,显然可以有很多替换、改进和变化。在权利要求书中,装置加功能的语句旨在涵盖执行所述功能的结构,其不仅是结构等同的,也包括等同的结构。
权利要求
1.在具有发送终端(发送器)和接收终端(接收器)的通信网络中,一种传输控制设备,包括可靠服务单元,用于在TCP/IP栈的层2提供可靠对等数据通信。
2.根据权利要求1的传输控制设备,还包括设置单元,用于设置所述的可靠服务单元。
3.根据权利要求2的传输控制设备,其特征在于,可靠服务单元包括分割部件,用于把来自上层的服务数据单元(SDU)分割为预定长度的协议数据单元(PDU);发送缓冲器,用于暂时存储来自分割部件的PDU;接收缓冲器,用于暂时存储通过通信信道接收到的PDU;重组部件,用于将存储在接收缓冲器中的PDU组合为上层的SDU;轮询器,用于根据网络状况控制数据发送/接收;和控制单元,用于控制分割部件、发送缓冲器、接收缓冲器、重组部件和轮询器中的至少一个。
4.根据权利要求3的传输控制设备,其特征在于,每个PDU包括类型、PDU_No、SEQ_No、Serial_No、Data_Size、数据和CRC字段。
5.根据权利要求4的传输控制设备,其特征在于,类型字段表示PDU的类型,PDU_No字段表示包含在SDU中的PDU数目,SEQ_No字段表示PDU的序号,Serial_No字段表示SDU的序号,而Data_Size字段表示数据字段的有效负荷长度。
6.根据权利要求2的传输控制设备,其特征在于,可靠服务单元包括多个端口和多个通过设置单元连接到注册端口中的相应端口的设备。
7.根据权利要求6的传输控制设备,其特征在于,用于注册端口的信息包括端口ID、设备ID、设备的逻辑链路号、窗口规格、上层的最大SDU大小,以及上层中定义的回叫功能。
8.根据权利要求7的传输控制设备,其特征在于,用于注册设备的信息包括设备ID、下层的最大PDU大小,以及设备的传输功能指针。
9.根据权利要求8的传输控制设备,还包括发送缓冲器,用于存储由上层SDU而来的PDU,其中,以比PDU最大帧长(MFL)长64倍的大小把发送缓冲器分配给分别注册的端口。
10.根据权利要求9的传输控制设备,还包括接收缓冲器,用于存储通过通信信道接收到的PDU,其中,以和SDU MFL相同的大小把接收缓冲器分配给分别注册的端口。
11.根据权利要求7的传输控制设备,其特征在于,窗口规格表示在从接收器接收到应答信号之前能够发送的PDU的数目。
12.根据权利要求4的传输控制设备,其特征在于,如果根据所接收PDU的Serial_No字段中的信息,PDU的序号彼此相同,则控制单元将PDU存储在接收缓冲器中,直到接收到完整的SDU。
13.根据权利要求4的传输控制设备,其特征在于,控制单元向发送器发送重传请求信号,请求重新传输丢失的PDU,根据所接收PDU的SEQ_No字段中的信息发送所述的重传请求信号。
14.在具有发送终端(发送器)和接收终端(接收器)的通信网络中,一种传输控制方法,包括(a)在TCP/IP栈的层2对可靠对等数据通信进行初始化;(b)对传输控制设备的端口和要连接到该端口的设备进行注册;(c)确定是否有上层SDU要发送;(d)发送上层SDU;(e)当没有上层SDU要发送时,确定是否有下层PDU要接收;(f)如果有下层PDU要接收,接收下层PDU。
15.根据权利要求14的传输控制方法,其特征在于,步骤(d)包括(d-1)将上层SDU分割为下层PDU;(d-2)在发送缓冲器中存储PDU;(d-3)发送对应于预定窗口规格的多个PDU。
16.根据权利要求15的传输控制方法,其特征在于,步骤(d-3)包括当从接收器接收到ACK消息时,发送对应于窗口规格的多个后继的PDU。
17.根据权利要求15的传输控制方法,其特征在于,步骤(d-3)包括当从接收器接收到接收期望(RE)消息时,重新发送丢失的PDU。
18.根据权利要求14的传输控制方法,其特征在于,步骤(f)包括(f-1)检查所接收PDU的类型字段;以及(f-2)根据步骤(f-1)中确定的PDU类型,对PDU进行处理。
19.根据权利要求18的传输控制方法,其特征在于,步骤(f-2)包括通过检查PDU的SEQ_No字段,确定PDU的顺序是否正确;对于顺序不正确的情况,向发送器请求重新传输具有正确SEQ_No的PDU;将PDU存储在接收缓冲器中,直到接收到对应于完整SDU的多个PDU;将PDU重组为SDU单元;以及将重组的PDU传送到上层。
20.一种控制沿着TCP/IP栈的数据链路层的数据传输的方法,包括将来自上层的服务数据单元分割为多个协议数据单元;将协议数据单元传输到下层;以及确认下层终端接收到了协议数据单元。
21.根据权利要求20的方法,其特征在于,所述的传输步骤包括通过滑动窗口机制将协议数据单元传输到下层。
22.根据权利要求21的方法,其特征在于,所述传输步骤包括基于滑动窗口机制的窗口规格,将协议数据单元传输到下层。
23.根据权利要求20的方法,其特征在于,所述确认步骤包括基于从下层设备发来的应答信号,确认下层设备接收到了协议数据单元。
24.根据权利要求20的方法,还包括在数据链路层,注册数据传输设备的至少一个端口,以及至少一个连接到所述至少一个端口的设备。
25.根据权利要求24的方法,其特征在于,人工实现所述的注册步骤。
26.根据权利要求24的方法,其特征在于,基于包括端口ID、所述设备的ID、所述设备的逻辑链路号、窗口规格、上层的最大服务数据单元大小、和上层中定义的回叫功能中至少一个的端口注册信息,执行注册所述至少一个端口的步骤。
27.根据权利要求24的方法,其特征在于,基于所述设备的ID、最大协议数据单元大小、和所述设备的传输功能指针,执行注册所述至少一个设备的步骤。
28.一种控制沿着TCP/IP栈的数据链路层的数据传输的方法,包括从下层接收协议数据单元;确认已经接收到期望数目的协议数据单元;以及将协议数据单元组合为上层服务数据单元。
29.根据权利要求28的方法,其特征在于,所述确认步骤包括检查所接收协议数据单元中的序列信息;基于检查步骤的结果,确认所接收到的协议数据单元是否是从同一下层设备始发的。
30.根据权利要求28的方法,其特征在于,所述确认步骤包括检查包含在所接收协议数据单元中的序列信息;基于检查步骤的结果,确认是否丢失了至少一个从下层设备发送来的协议数据单元。
31.根据权利要求30的方法,还包括如果确定丢失了至少一个协议数据单元,则向发送协议数据单元的下层设备发送重传请求信号。
32.根据权利要求28的方法,还包括在存储设备中存储所接收的协议数据单元,其中,在存储设备中存储了等于上层服务数据单元的多个协议数据单元之后,执行所述的组合步骤。
33.一种协议栈,包括第一协议层;第二协议层;位于第一协议层和第二协议层之间的第三协议层,其中,第一协议层是IP层,第二协议层是物理层,而第三协议层通过位于IP层和物理层之间的数据链路层携带说明数据传输完整性的信息。
34.根据权利要求33的协议栈,其特征在于,第三协议层包含在数据链路层中。
35.根据权利要求34的协议栈,其特征在于,第三协议层提供将来自上层的SDU分割为多个PDU以及重组通过通信信道接收到的多个PDU两者中的至少一个功能。
36.根据权利要求35的协议栈,其特征在于,在具有对应于SDU大小的窗口中对通过通信信道接收到的多个PDU进行重组。
全文摘要
本发明的传输控制设备包括可靠服务单元,在TCP/IP栈的层2中提供可靠对等数据通信;设置单元,设置可靠服务单元。可靠服务单元包括分割部件,把上层的服务数据单元(SDU)分割为协议数据单元(PDU);发送缓冲器,暂时存储来自分割部件的PDU;接收缓冲器,暂时存储接收到的PDU;重组部件,将存储在接收缓冲器中的PDU组合为上层SDU;轮询器,通过检查网络状况而控制数据发送/接收;控制单元,用于控制以上部件。本发明的传输控制方法包括对TCP/IP栈层2中的可靠对等数据通信进行初始化,对传输控制设备的端口和要连接到该端口的设备进行注册,确定是否有上层SDU要发送,发送上层SDU,若没有上层SDU要发送,确定是否有下层PDU要接收,若有下层PDU要接收,接收下层PDU。
文档编号H04L12/28GK1406035SQ0214265
公开日2003年3月26日 申请日期2002年9月17日 优先权日2001年9月17日
发明者金永洛 申请人:Lg电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1