CN100428745C - 一种数据的传输方法和装置 - Google Patents
一种数据的传输方法和装置 Download PDFInfo
- Publication number
- CN100428745C CN100428745C CNB2006101036805A CN200610103680A CN100428745C CN 100428745 C CN100428745 C CN 100428745C CN B2006101036805 A CNB2006101036805 A CN B2006101036805A CN 200610103680 A CN200610103680 A CN 200610103680A CN 100428745 C CN100428745 C CN 100428745C
- Authority
- CN
- China
- Prior art keywords
- data
- frame
- request
- sending terminal
- described data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据的传输方法和装置,属于数据传输领域。为了克服现有技术中TCP滑动窗口协议实现复杂、对大数据包要在IP层进行分片处理的缺点,本发明提出了一种利用固定大小滑动窗口传输协议进行大数据传输的方法:首先使用块命令控制帧建立块传输通道,然后通过此块通道,以固定大小滑动窗口的方式进行块数据的传输,最后关闭块传输通道完成块数据的传输。本发明提供了一种数据的传输装置,用于完成大数据的传输。本发明还引入了定期扫描机制,简单实用满足了大数据快速准确的传输要求,而且还引入了滑动窗口协议的上层控制命令及数据接收端的状态持久化机制,使得崩溃恢复机制、压缩机制得以实现。
Description
技术领域
本发明涉及数据传输领域,特别涉及一种数据传输的方法和装置。
背景技术
在高速信息化的今天,人们越来越多的通过网络来进行数据的传输。尤其是大数据的传输日益增加,使得网络设备承受了比较大的负荷。如何实现大数据高速、准确的传输对提高工作效率有着积极的意义。
目前现有技术是采用TCP的滑动窗口协议来完成数据的传输。TCP滑动窗口技术是通过动态改变窗口大小来调节两个实体之间的数据传输。TCP中采用滑动窗口来进行传输控制,滑动窗口的大小意味着接收方还有多大的缓冲区可以用于接收数据。发送方可以通过滑动窗口的大小来确定应该发送多少字节的数据。当滑动窗口为0时,发送方一般不能再发送数据包。但有两种情况除外;一种情况是可以发送紧急数据。例如,允许用户终止在远端机上的运行进程。另一种情况是可以发送一个1字节的数据包来通知接收方重新声明它希望接收的下一字节及发送方滑动窗口的大小。假定发送方设备以每一次三个数据包的方式发送数据,也就是说,窗口大小为3。发送方发送序列号为1、2、3的三个数据包,接收方设备成功接收数据包,用序列号4确认。发送方设备收到确认,继续以窗口大小3发送数据。当接受方设备要求降低或者增大网络流量时,可以对窗口大小进行减小或者增加。本例降低窗口大小为2,则每一次发送两个数据包。当接收方设备要求窗口大小为0,表明接收方已经接收了全部数据,或者接收方应用程序没有时间读取数据,要求暂停发送。发送方接收到携带窗口号为0的确认,停止这一方向的数据发送。
网管产品要求将网元设备收集的大量性能数据传送到性能数据服务器(PerformanceData Server PDS),进行性能数据的统一分析处理。对于大数据的传输,目前现有技术存在以下缺点:
1.现有技术中的大数据传输方法需要利用TCP/IP协议,而网管产品在单板上可能没有TCP/IP协议栈,如果要实现标准的TCP协议也需要增加成本,并占用较多的资源,而且标准TCP协议无法满足通信系统对TCP/IP协议栈的严格需求,如可扩展性等;
2.网管产品对性能采集数据记录(Performance Collection Data Record PCDR)进行高效的数据传输过程中,由于PCDR的大小不一,有的只几十字节,有的大到几十千字节,如果直接使用TCP协议,那么对于大于MTU(最大传输单元,一般系统默认的TCP/IP数据包最大值为1500)字节的PCDR就会在IP层自动进行分片处理,从而增加了大数据的处理过程,使得大数据的传输效率降低;
3.TCP协议中的滑动窗口协议方法在确认和写操作问题上有两种机制:一种是先发送确认后进行写,如果发送确认后,未完成写操作时系统发生崩溃,这时会丢失数据单元;另一种是先进行写后发送确认,如果完成了写操作,未发送确认时系统崩溃,数据会重传造成重复数据单元,显然这样的崩溃恢复机制是不可靠的;
4.TCP协议中的滑动窗口协议由于是标准协议的实现方法,通信行业对标准协议有严格统一的规范,不可能对它进行一些更改,这也造成了TCP的滑动窗口协议方法在控制接口的扩展能力方面比较弱。
发明内容
为了克服现有技术中TCP滑动窗口协议实现复杂、对大数据包要在IP层进行分片处理的缺点,本发明提出了一种数据的传输方法和装置。
所述技术方案如下:首先使用控制命令帧在数据发送端和数据接收端建立块传输通道,然后所述数据发送端以固定大小滑动窗口的方式发送数据帧到所述数据接收端,所述数据接收端定期扫描当前滑动窗口内容,并且根据扫描结果发送所述数据帧的应答帧到所述数据发送端,所述数据发送端发送所述数据接收端请求的数据帧,一直到所述数据接收端收到了全部的数据帧,最后使用控制命令帧关闭所述块传输通道。
在数据发送端和数据接收端的缓冲区分别设立大小相同且固定的滑动窗口,将数据打包成块数据,并将块内数据分解成大小相同的数据帧,并执行以下步骤:
步骤A:建立数据发送端和数据接收端之间的块传输通道;
步骤B:所述数据发送端向所述数据接收端发送所述滑动窗口中包含的数据帧;
步骤C:所述数据接收端接收到所述数据帧后,并定期扫描当前滑动窗口的数据帧的接收情况,根据扫描结果滑动当前滑动窗口,向所述数据发送端发送所述数据帧的应答,所述应答的内容包括请求发送的开始帧号和帧的数量;
步骤D:所述数据发送端收到所述数据帧的应答后,根据收到的所述数据帧的应答内容进行后续数据帧的发送,并执行步骤C,直至所述块数据中的数据帧全部发送完毕;
步骤E:关闭所述数据发送端和所述数据接收端之间的块传输通道;
步骤F:重复执行步骤A至E,直到所述数据接收端收到所述数据发送端发送的全部所述块数据。
所述步骤A具体包括:
步骤A1:所述数据发送端向所述数据接收端发送建立块传输通道的请求,所述请求的内容包括所述数据发送端发送的块数据的编号;
步骤A2:所述数据接收端收到所述请求后,向所述数据发送端发送建立块传输通道的应答,所述应答的内容包括所述数据接收端的块数据的编号;
步骤A3:检查是否是新启动,如果是,所述数据发送端向所述数据接收端发送强制建立块传输通道的请求,否则比较所述数据发送端当前的块数据编号和所述数据接收端的块数据编号是否一致,如果一致则块传输通道建立成功,否则所述数据发送端向所述数据接收端发送强制建立块传输通道的请求。
所述步骤C中根据扫描结果滑动当前滑动窗口的步骤具体包括:当所述数据接收端收到所述数据发送端发送的全部数据时,所述数据接收端的当前滑动窗口向数据尾帧方向滑动一个满窗口,并要求所述数据发送端向数据尾帧方向滑动一满窗口发送其窗口内的数据。
所述步骤C中根据扫描结果滑动当前滑动窗口的步骤具体包括:当所述数据接收端没有收到所述数据发送端发送的全部数据时,所述数据接收端的当前滑动窗口滑动到第一个丢帧处,并要求所述数据发送端从丢帧处重新发送数据。
所述步骤D具体包括:所述数据发送端收到所述数据帧的应答后,如果所述请求发送的开始帧号落在当前滑动窗口的范围内,则根据收到的所述数据帧的应答内容进行后续数据帧的发送,如果所述请求发送的开始帧号连续多次落在当前滑动窗口的范围外,则向所述数据接收端发送强制建立块传输通道的请求,重新发送所述块数据,直至所述块数据中的数据帧全部发送完毕。
所述步骤E具体包括:
步骤E1:所述数据发送端向所述数据接收端发送关闭所述块传输通道的请求,所述请求的内容包括该块的编号和该块的总校验和;
步骤E2:所述数据接收端收到关闭所述块通道的请求后,将所述数据接收端收到的所述块数据进行保存,向所述数据发送端发送关闭所述块传输通道的应答,所述应答的内容包括所述数据接收端的块编号和所述块的保存应答;
步骤E3:所述数据发送端收到所述应答后,检查所述块的保存是否成功,如果是则所述数据接收端将其状态进行持久化,所述持久化的信息为成功保存的所述块数据的编号,完成所述块数据的发送,否则所述数据发送端向所述数据接收端发送强制建立块传输通道的请求。
所述将数据打包成块数据之前还包括将所述数据压缩的步骤。
本发明还提供了一种数据传输装置,所述装置包括数据发送端和数据接收端,所述数据发送端包括块通道建立请求发送模块、数据帧发送模块、块通道关闭请求模块,所述数据接收端包括块通道建立请求应答模块、定期扫描模块、数据帧接收模块、块通道关闭请求应答模块;
所述块通道建立请求发送模块用于所述数据发送端向所述数据接收端发送建立块传输通道的请求,所述请求的内容包括所述数据发送端发送的块数据的编号;
所述数据帧发送模块用于所述数据发送端向所述数据接收端发送所述滑动窗口中包含的数据帧和根据接收到的所述数据帧的应答进行所述数据帧的发送;
所述块通道关闭请求发送模块用于所述数据发送端向所述数据接收端发送关闭所述块传输通道的请求,所述请求的内容包括该块的编号和该块的总校验和;
所述块通道建立请求应答模块用于所述数据接收端收到所述请求后,向所述数据发送端发送建立块传输通道的应答,所述应答的内容包括所述数据接收端的块数据的编号;
所述定期扫描模块用于所述数据接收端接收到所述数据帧后,并定期扫描当前滑动窗口的数据帧的接收情况,根据扫描结果滑动当前滑动窗口,向所述数据发送端发送所述数据帧的应答,所述应答的内容包括请求发送的开始帧号和帧的数量;
所述数据帧接收模块用于接收所述数据发送端发送的数据帧;
所述块通道关闭请求应答模块用于向所述数据发送端发送关闭所述块传输通道的应答,所述应答的内容包括所述数据接收端的块编号和所述块的保存应答。
所述装置进一步包括检查模块,所述检查模块用于检查是否是新启动,如果是,所述数据发送端向所述数据接收端发送强制建立块传输通道的请求,否则比较所述数据发送端当前的块数据编号和所述数据接收端的块数据编号是否一致,如果一致则块传输通道建立成功,否则所述数据发送端向所述数据接收端发送强制建立块传输通道的请求。
所述定期扫描模块包括数据帧检查单元,所述数据帧检查单元用于检查所述数据接收端的数据帧的接收情况,如果检查到所述数据接收端收到全部数据,所述数据接收端的当前滑动窗口向数据尾帧方向滑动一个满窗口,并要求所述数据发送端向数据尾帧方向滑动一满口发送其窗口内的数据;如果检查到所述数据接收端没有收到全部数据,所述数据接收端的当前滑动窗口滑动到第一个丢帧处,并要求所述数据发送端从丢帧处重新发送数据。
所述数据帧发送模块包括帧号检查单元,所述帧号检查单元用于检查请求发送的开始帧号是否落在当前滑动窗口的范围内,如果落在当前滑动窗口范围内,则根据收到的所述数据帧的应答内容进行后续数据帧的发送,如果所述请求发送的开始帧号连续多次落在当前滑动窗口的范围外,则向所述数据接收端发送强制建立块传输通道的请求,重新发送所述块数据,直至所述块数据中的数据帧全部发送完毕。
所述块通道关闭请求应答模块包括块数据保存单元、块数据保存检查单元、状态持久化单元;
所述块数据保存单元用于将所述数据接收端收到的所述块数据进行保存;
所述块数据保存检查单元用于检查所述块数据的保存是否成功,如果成功则所述数据接收端将其状态进行持久化,完成所述块数据的发送,否则所述数据发送端向所述数据接收端发送强制建立块传输通道的请求;
所述状态持久化单元用于将所述数据接收端的所述块数据的成功保存状态信息进行持久化。
采用本发明所述方法与现有技术相比的有益效果是:
1.本发明所述方法由于引入了滑动窗口协议的上层控制命令,使得大数据的传输不要求协议栈底层存在TCP/IP协议栈,这样大大地提高了适用性;
2.本发明所述方法对要发送的数据进行压缩打包并分帧发送(帧大小控制在小于MTU范围内),有效地克服了大数据在传输过程中在IP层自动进行分片处理地问题,提高了传输效率;
3.本发明所述方法在数据接收端引入了状态持久化机制,使得崩溃恢复机制得以可靠的实现;
4.本发明所述方法可以不需要TCP/IP协议栈,这样就解除了标准TCP协议的种种限制,从而大大地提高了控制接口的扩展能力,使得大数据的传输得以简单化。
附图说明
图1是本发明所述FSSWTP协议栈层次图;
图2是本发明所述数据发送端窗口示意缓冲图;
图3是本发明所述数据接收端窗口示意缓冲图;
图4是本发明所述固定大小滑动窗口协议的控制方法流程图;
图5是本发明所述大数据传输的装置结构图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。
为了解决大的PCDR在IP层自动进行分片处理的问题,本发明将多个PCDR数据打包成块数据,并将块内数据分解成大小相同的数据帧,数据发送时以块为控制单位,以帧(FRAME)为数据传输单元,帧的大小取1024字节或其它保证不会被IP分片的大小,并以固定窗口大小的滑动窗口方法来控制数据帧进行有效传输,在控制命令帧和数据传输帧中辅以数据校验来保证其有效性和安全性,在数据接收端引入状态持久化机制来实现崩溃恢复的可靠性。本发明还可以先将多个PCDR压缩后打包成块数据,这样可以进一步地提高数据的传输效率,而且本发明所述方法不仅适用于大数据的传输,对于一般数据的传输也有着同样的意义。
本发明所述的技术方案中,首先提出了固定大小滑动窗口传输协议(FSSWTP)。FSSWTP是个单边控制协议,由数据发送端(DST-Data Send Termination)发起控制命令,数据接收端(DRT-Data Receive Termination)根据控制命令产生应答。其协议栈可分为四层,如图1所示,从底到上分别是底层(LL-Lower Layer),协议不指定、IP层或兼容性IP层(和IETF RFC 791兼容)、TCP/UDP层或兼容性TCP/UDP层(和IETF RFC 793/768兼容)及FSSWTP层,其中IP层及TCP/UDP层可以缺失,FSSWTP直接通过LL层进行通讯及数据传输,其上为使用大数据滑动窗口传输方法的应用层。
下面首先描述FSSWTP的控制命令帧和数据传输帧的结构。FSSWTP控制命令帧和数据传输帧中的项如表1所示。
Version |
Instantiation Identity |
Command Code |
Data Length |
Check Sum |
Application Data |
表1
在上述帧结构中,“Version”表示协议版本号;“Instantation Identity”表示滑动窗口实例的唯一标识。“Command Code”表示控制命令帧和数据传输帧的帧命令码。“Data Length”表示Application Data项中数据的长度。“Check Sum”表示整个帧的校验和。“Application Data”表示帧的应用数据,在Application Data项之前的各项构成控制命令帧和数据传输帧的头部。
控制命令帧和数据传输帧的帧命令码包括如下三对命令码:
BLOCK_REQUEST_SEND 请求发送块帧
BLOCK_REQUESTSEND_ACK 请求发送块帧的应答帧
BLOCK_END 块结束帧
BLOCK_END_ACK 块结束帧的应答帧
FRAME_SEND 数据帧
FRAME_SEND_ACK 数据帧的应答帧
下面详细叙述FSSWTP的控制命令帧和数据传输帧的具体结构:
1)请求发送块帧和请求发送块帧的应答帧:这一对命令用来打开一个块的传输通道。
请求发送块帧BLOCK_REQUEST_SEND帧结构如表2所示:
Version |
Instantiation Identity |
Command Code |
Data Length |
Check Sum |
Block Identity |
Block Data Length |
Start Data Frame Number |
Data Frame Amount |
Force Flag |
Compression Identity |
表2
上述帧结构的具体说明如下:
Block Identity:该块的编号。
Block Data Length:该块的数据总长度。
Start Data Frame Number:该块的数据帧的起始帧号。
Data Frame Amount:该块的数据帧的总帧数。
Force Flag:当表示非强制时:DRT接收后要同步数据帧帧号;当表示强制时:DRT接收后要同时同步块编号与数据帧帧号并清空缓冲区。
Compression Identity:该块所使用的压缩算法的标识。
请求发送块帧的应答帧BLOCK_REQUESTSEND_ACK帧结构如表3所示:
Version |
Instantiation Identity |
Command Code |
Data Length |
Check Sum |
Block Identity of DRT |
Data Frame Number of SW Header |
表3
上述帧结构的具体说明如下:
Block Identity of DRT:DRT的块的编号。
Data Frame Number of SW Header:DRT滑动窗口头的帧号。
2)块结束帧和块结束帧的应答帧:这一对命令用来关闭一个数据已被完全接收的块传输通道。
块结束帧BLOCK_END帧结构如表4所示:
Version |
Instantiation Identity |
Command Code |
Data Length |
Check Sum |
Block Identity |
Total Check Sum |
表4
上述帧结构的具体说明如下:
Block Identity:该块的编号。
Total Check Sum:该块的总校验和。
结束帧的应答帧BLOCK_END_ACK帧结构如表5所示:
Version |
Instantiation Identity |
Command Code |
Data Length |
Check Sum |
Block Identity of DRT |
Save Result |
表5
上述帧结构的具体说明如下:
Block Identity of DRT:DRT的块的编号。
Save Result:DRT的块的保存应答,如果保存失败,DST将重发该块的数据。
3)数据帧和数据帧的应答帧:该对命令用于帧数据的传输和控制。
数据帧FRAME_SEND帧结构如表6所示:
Version |
Instantiation Identity |
Command Code |
Data Length |
Check Sum |
Frame Number |
Frame Data |
表6
上述帧结构的具体说明如下:
Frame Number:该数据帧的帧号。
Frame Data:该块具体分配到这一数据帧的数据。
数据帧的应答帧FRAME_SEND_ACK帧结构如表7所示:
Version |
Instantiation Identity |
Command Code |
Data Length |
Check Sum |
Request Begin Frame Number |
Request Frame Count |
表7
上述帧结构的具体说明如下:
Request Begin Frame Number:请求发送的数据帧的开始帧号。
Request Frame Count:请求发送的从Request Begin Frame Number开始的数据帧数量。
参见图2和图3,DST和DRT都维持一个存储数据的缓冲区,在缓冲区中引入固定大小滑动窗口。滑动窗口由窗口头和窗口尾之间的缓冲区组成,该滑动窗口之间的区域为固定的大小。DST和DRT分别使用一个合适的大小相同的滑动窗口。数据帧的应答帧驱动DST和DRT缓冲区中的窗口头帧号和窗口尾帧号保持同步,DST保证数据帧号在一个块范围内不会翻转。在DRT,当前滑动窗口范围内的帧对应允许接收的帧,窗口头以前的帧是已收到且已发回确认的帧,不允许接收,窗口尾后的帧要等待滑动窗口滑动才能接收。如果数据帧的应答帧中请求开始的数据帧号落在DST当前滑动窗口范围内,DST就滑动窗口继续发送DRT请求的数据帧;如果数据帧的应答帧中请求开始的数据帧号连续多次(连续3次以上)落在DST当前滑动窗口范围外,DST向DRT发送表示强制的请求发送块帧,准备重发当前块的数据。
为了加快数据传输速度,需要选择一个合适的发送滑动窗口大小,可参考如下的计算公式:假设网络往返时延RTT是T1(s),网络带宽B(Mbps),传输的数据帧大小N(KB),DRT滑窗扫描间隔T2(s),DST处理延时T3(s),DRT处理延时T4(s)。则每秒最大可传输数据帧帧数是MAXSENDSIZE=(1-(T1+T3+T4)*(1/T2))*B*1024/8/N。DST最大滑窗大小:MAXSWSIZE=(T2-T1-T3-T4)*B*1024/8/N。
本发明所述大数据的传输方法是分帧后的块数据的传输控制方法。FSSWTP的控制是以块为单位进行数据的发送,参见图4,块数据的传输过程包括如下步骤:
步骤A:数据发送端向数据接收端发送建立块传输通道的请求,数据接收端向数据发送端发送应答,建立块传输通道。具体包括以下步骤:
步骤101:DST向DRT发送请求发送块帧,即建立块传输通道的请求,该帧的内容包括该块的编号、该块的数据总长度、该块的数据帧的起始帧号、该块的数据帧的总帧数、该请求发送块帧为非强制、以及该块所使用的压缩算法的标识。
步骤102:DRT收到DST的请求发送块帧后,向DST发送请求发送块帧的应答帧,该帧的内容包括DRT的块编号和DRT滑动窗口头的帧号。
步骤103:检查是否新启动,是执行步骤104,否则执行步骤105;
步骤104:DST向DRT重新发送强制的请求发送块帧,即重新建立块传输通道的请求,该帧的内容包括该块的编号、该块的数据总长度、该块的数据帧的起始帧号、该块的数据帧的总帧数、该请求发送块帧为强制、以及该块所使用的压缩算法的标识;DRT收到DST的请求后,向DST发送应答,并执行步骤106。
步骤105:比较DST发送请求的块编号和收到应答的块编号是否一致,一致执行步骤106,否则执行步骤104。
至此,块通道建立成功,将进行数据帧的发送和接收。
步骤B:数据发送端向数据接收端发送滑动窗口中包含的数据帧。具体包括以下步骤:
步骤106:DST以固定大小滑动窗口的方式向DRT发送滑动窗口中包含的数据帧,数据帧的内容包括该数据帧的帧号和分配到该数据帧的数据。
步骤C:数据接收端接收到所述数据帧后,并定期扫描当前滑动窗口的数据帧的接收情况,根据扫描结果滑动当前滑动窗口,向数据发送端发送数据帧的应答,应答的内容包括请求发送的开始帧号和帧的数量。具体包括以下步骤:
步骤107:DRT接收到第一个数据帧后,启动定时器,以后定期扫描以检查当前滑动窗口内数据帧的接收情况,并按扫描结果滑动当前滑动窗口,以及向DST发送数据帧的应答帧,应答帧的内容包括请求发送的开始帧号和帧的数量。由于本步骤的具体内容比较复杂,将在后面进行详细叙述。
步骤D:数据发送端收到数据帧的应答后,根据收到的数据帧的应答内容进行后续数据帧的发送,并执行步骤C,直至块数据中的数据帧全部发送完毕;
步骤108:DST收到DRT的应答帧后,检查请求发送的开始帧号是否落在DST当前滑动窗口范围内,如果是,说明请求发送的开始帧号以前的数据帧已经接收到,DST滑动当前滑动窗口,发送请求的数据帧,执行步骤109,如果多次落在当前滑动窗口范围外,说明DRT当前滑动窗口位置出现异常,执行步骤104;
步骤109:扫描DRT当前滑动窗口的数据帧,查看是否收到所有数据帧,如果是执行步骤110,否则执行步骤106;
步骤E:关闭数据发送端和数据接收端之间的块传输通道。具体包括以下步骤:
步骤110:DST向DRT发送块结束帧,即关闭块传输通道的请求,该帧的内容包括该块的编号和该块的总校验和;
步骤111:DRT收到DST的块结束帧后,将块数据进行保存,向DST发送块结束帧的应答帧,应答帧的内容包括DRT的块的编号和DRT的块的保存应答;
步骤112:DST收到块结束帧的应答帧后,检查块的保存是否成功,如果是则数据接收端将其状态进行持久化,持久化的信息为成功保存的块数据的编号,执行步骤113,否则执行步骤104;
步骤113:完成块数据的发送。
步骤F:重复执行步骤A至E,直到数据接收端收到数据发送端发送的全部块数据。具体包括以下步骤:
步骤114:数据接收端检查是否收到了数据发送端发送的全部的块数据,如果收到了全部的块数据,数据发送端就结束数据的发送,否则执行步骤115;
步骤115:数据发送端继续向数据接收端发送下一个块数据,执行步骤101。
在DST,所有发送的帧(命令帧和数据帧)响应超时都会重发,但帧的内容不变。
所有帧都有校验和(Check Sum),接收后都要检验正确与否,不正确则直接丢弃。步骤107具体处理过程如下:
本发明在DRT引入定期扫描来查看数据帧的接收情况。首先定期扫描DRT的当前滑动窗口内容,然后根据扫描结果DRT的当前滑动窗口进行滑动,最后向DST发送数据帧的应答帧。扫描结果大致分为以下两种情况:
1.正常情况:DRT收到DST发送的全部数据帧。DRT的当前滑动窗口先滑动,然后发送Request Begin Frame Number和Request Frame Count,取值分别为当前滑动窗口尾帧号+1的帧号和0XFFFF的FRAME_SEND_ACK;DST收到该FRAME_SEND_ACK后,根据FRAME_SEND_ACK的Request Frame Count的值为0XFFFF,发送从Request BeginFrame Number开始的一满窗口的数据;
2.非正常情况:DRT没有收到DST发送的全部数据帧,即丢帧。在丢帧情况下,DRT会要求DST从丢帧处重新开始发送。
丢帧如果是数据接收端当前滑动窗口头数据桢,则数据接收端的当前滑动窗口先不滑动,向数据发送端发送请求开始帧号为当前滑动窗口的首窗口号,请求发送的帧的数量为1的数据帧的应答帧。
丢帧如果是包含数据接收端窗口头数据帧的连续的数据帧,则数据接收端的当前滑动窗口先不滑动,向数据发送端发送请求开始帧号为当前滑动窗口的首窗口号,请求发送的帧的数量为丢帧个数的数据帧的应答帧。
丢帧如果是任意一个非数据接收端窗口头数据帧或任意多个非连续的非数据接收端窗口头数据帧,则数据接收端的当前滑动窗口向前滑动到丢帧开始处,向数据发送端发送请求开始帧号为所述丢帧的帧号,请求发送的帧的数量为1的数据帧的应答帧。
丢帧如果是连续的数据接收端非窗口头数据帧,则数据接收端的当前滑动窗口向前滑动到第一个丢帧处,向数据发送端发送请求开始帧号为第一个丢帧的帧号,请求发送的帧的数量为丢帧个数的数据帧的应答帧。
丢帧如果是数据接收端窗口尾数据帧,则数据接收端的当前滑动窗口向前滑动到窗口尾,向数据发送端发送请求开始帧号为当前滑动窗口的尾窗口号,请求发送的帧的数量为0XFFFF的数据帧的应答帧。
丢帧如果是包含数据接收端窗口尾数据帧的连续数据帧,则数据接收端的当前滑动窗口向前滑动到第一个丢帧处,向数据发送端发送请求开始帧号为第一个丢帧的帧号,请求发送的帧的数量为0XFFFF的数据帧的应答帧。
下面以一个具体的例子来详细的说明上述过程:
例:设窗口大小为10,DST及DRT当前的窗口号为10~19,DST首先发送一个窗口共10帧的数据,其帧号为10~19,当DRT定期扫描时发现其接收到如下窗口号的数据;
a)12,13,14,15,16,17,19(其中缺少了10,11,18)DRT先不滑动窗口,发送Request Begin Frame Number和Request Frame Count取值分别为10和2的FRAME_SEND_ACK;
DST收到该FRAME_SEND_ACK后,先对FRAME_SEND_ACK的Request BeginFrame Number进行判断,如果其为DST端当前窗口的首窗口号且Request Frame Count不为0XFFFF则发送其所要求的帧号为10和11的数据帧;
DRT定期扫描后,发现缺少18号帧,DRT先窗口滑动8帧,发送Request Begin FrameNumber和Request Frame Count取值分别为18和1的FRAME_SEND_ACK给DST;
DST收到该FRAME_SEND_ACK后,先对FRAME_SEND_ACK的Request BeginFrame Number进行判断,因为18号帧不为DST端当前窗口的首窗口号,则将当前窗口向前滑动8帧,并发送帧号为20-27的数据帧,这样处理主要是防止帧号为18的帧滞后到达,减少发送重帧的数量;
DRT定期扫描后,发现缺少18号帧,因为是窗口头数据帧,DRT先不滑动窗口,发送Request Begin Frame Number和Request Frame Count取值分别为18和1的FRAME_SEND_ACK给DST;
DST收到该FRAME_SEND_ACK后,先对FRAME SEND_ACK的Request BeginFrame Number进行判断,因为18号帧为DST端当前窗口的首窗口号,且Request FrameCount不为0XFFFF,则发送所要求的帧号为18的数据帧;
至此缺少的帧号为10、11、18的数据帧DRT全部收到。
b)10,11,12,13,16,17(其中缺少14,15,18,19)
DRT先窗口滑动4帧,发送Request Begin Frame Number和Request Frame Count取值分别为14和2的FRAME_SEND_ACK;
DST收到该FRAME_SEND_ACK后,先对FRAME_SEND_ACK的Request BeginFrame Number进行判断,因为不为DST端当前窗口的首窗口号则将当前窗口向前滑动4帧,并发送帧号为20、21、22、23的数据帧,这样处理主要是防止帧号为14、15的帧滞后到达,减少发送重帧的数量;
DRT定期扫描后,发现缺少帧号为14、15、18、19的数据帧,因为是窗口头数据帧,DRT先不滑动窗口,发送Request Begin Frame Number和Request Frame Count取值分别为14和2的FRAME_SEND_ACK给DST;
DST收到该FRAME_SEND_ACK后,先对FRAME_SEND_ACK的Request BeginFrame Number进行判断,因为14号帧为DST端当前窗口的首窗口号,且Request FrameCount不为0XFFFF,则发送所要求的帧号为14、15的数据帧;
DRT定期扫描后,发现缺少帧号为18、19的数据帧,DRT向前滑动窗口4帧,发送Request Begin Frame Number和Request Frame Count取值分别为18和2的FRAME_SEND_ACK给DST;
DST收到该FRAME_SEND_ACK后,先对FRAME_SEND_ACK的Request BeginFrame Number进行判断,因为18号帧不为DST端当前窗口的首窗口号则将当前窗口向前滑动4帧,并发送帧号为24、25、26、27的数据帧;
DRT定期扫描后,发现缺少帧号为18、19的数据帧,因为是窗口头数据帧,DRT先不滑动窗口,发送Request Begin Frame Number和Request Frame Count取值分别为18和2的FRAME SEND ACK给DST;
DST收到该FRAME_SEND_ACK后,先对FRAME_SEND_ACK的Request BeginFrame Number进行判断,因为18号帧为DST端当前窗口的首窗口号,且Request FrameCount不为0XFFFF,则发送所要求的帧号为18、19的数据帧;
至此帧号为14、15、18、19的数据帧DRT全部收到。
c)10,11,12,13,14,15,16,17(其中少18,19)
DRT先窗口滑动8帧,发送Request Begin Frame Number和Request Frame Count取值分别为18和0XFFFF的FRAME_SEND_ACK;
DST收到该FRAME_SEND_ACK后,先对FRAME_SEND_ACK的Request BeginFrame Number进行判断,因为其不为DST端当前窗口的首窗口号则将当前窗口向前滑动8帧,并发送一满窗口的数据,即发送帧号为18~27的数据帧,这样处理主要是减少处理的复杂度。
至此帧号为18、19的数据帧DRT全部收到。
d)10,11,12,13,14,15,16,17,18,19(都接收到)
DRT先窗口滑动10帧,发送Request Begin Frame Number和Request Frame Count取值分别为20和0XFFFF的FRAME_SEND_ACK;
DST收到该FRAME_SEND_ACK后,根据FRAME_SEND_ACK的Request FrameCount的值为0XFFFF,发送从Request Begin Frame Number开始的一满窗口的数据,即发送帧号为20~29的数据帧。
参见图5,本发明还提供了一种数据传输装置,装置包括数据发送端和数据接收端,数据发送端包括块通道建立请求发送模块、数据帧发送模块、块通道关闭请求发送模块,数据接收端包括块通道建立请求应答模块、定期扫描模块、数据帧接收模块、块通道关闭请求应答模块;
块通道建立请求发送模块用于数据发送端向数据接收端发送建立块传输通道的请求,请求的内容包括数据发送端发送的块数据的编号;
数据帧发送模块用于数据发送端向数据接收端发送滑动窗口中包含的数据帧和根据接收到的数据帧的应答进行数据帧的发送;
块通道关闭请求发送模块用于数据发送端向数据接收端发送关闭块传输通道的请求,请求的内容包括该块的编号和该块的总校验和;
块通道建立请求应答模块用于数据接收端收到请求后,向数据发送端发送建立块传输通道的应答,应答的内容包括数据接收端的块数据的编号;
定期扫描模块用于数据接收端接收到数据帧后,并定期扫描当前滑动窗口的数据帧的接收情况,根据扫描结果滑动当前滑动窗口,向数据发送端发送数据帧的应答,应答的内容包括请求发送的开始帧号和帧的数量;
数据帧接收模块用于接收数据发送端发送的数据帧;
块通道关闭请求应答模块用于向数据发送端发送关闭块传输通道的应答,应答的内容包括数据接收端的块编号和块的保存应答;
装置进一步包括检查模块,检查模块可以位于数据发送端或数据接收端,检查模块用于检查是否是新启动,如果是,数据发送端向数据接收端发送强制建立块传输通道的请求,否则比较数据发送端当前的块数据编号和数据接收端的块数据编号是否一致,如果一致则块传输通道建立成功,否则数据发送端向数据接收端发送强制建立块传输通道的请求;
定期扫描模块包括数据帧检查单元,数据帧检查单元用于检查数据接收端的数据帧的接收情况,如果检查到数据接收端收到全部数据,数据接收端的当前滑动窗口向数据尾帧方向滑动一个满窗口,并要求数据发送端向数据尾帧方向滑动一满窗口发送其窗口内的数据;如果检查到数据接收端没有收到全部数据,数据接收端的当前滑动窗口滑动到第一个丢帧处,并要求数据发送端从丢帧处重新发送数据;
数据帧发送模块包括帧号检查单元,帧号检查单元用于检查请求发送的开始帧号是否落在当前滑动窗口的范围内,如果落在当前滑动窗口范围内,则根据收到的数据帧的应答内容进行后续数据帧的发送,如果请求发送的开始帧号连续多次落在当前滑动窗口的范围外,则向数据接收端发送强制建立块传输通道的请求,重新发送块数据,直至块数据中的数据帧全部发送完毕;
块通道关闭请求应答模块包括块数据保存单元、块数据保存检查单元、状态持久化单元;
块数据保存单元用于将数据接收端收到的块数据进行保存;
块数据保存检查单元用于检查块数据的保存是否成功,如果成功则数据接收端将其状态进行持久化,完成块数据的发送,否则数据发送端向数据接收端发送强制建立块传输通道的请求;
状态持久化单元用于将数据接收端的块数据的成功保存状态信息进行持久化。
以上所述的实施例只是本发明较优选的具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (12)
1.一种数据传输方法,其特征在于,在数据发送端和数据接收端的缓冲区分别设立大小相同且固定的滑动窗口,将数据打包成块数据,并将块内数据分解成大小相同的数据帧,并执行以下步骤:
步骤A:建立数据发送端和数据接收端之间的块传输通道;
步骤B:所述数据发送端向所述数据接收端发送所述滑动窗口中包含的数据帧;
步骤C:所述数据接收端接收到所述数据帧后,并定期扫描当前滑动窗口的数据帧的接收情况,根据扫描结果滑动当前滑动窗口,向所述数据发送端发送所述数据帧的应答,所述应答的内容包括请求发送的开始帧号和帧的数量;
步骤D:所述数据发送端收到所述数据帧的应答后,根据收到的所述数据帧的应答内容进行后续数据帧的发送,并执行步骤C,直至所述块数据中的数据帧全部发送完毕;
步骤E:关闭所述数据发送端和所述数据接收端之间的块传输通道;
步骤F:重复执行步骤A至E,直到所述数据接收端收到所述数据发送端发送的全部所述块数据。
2.如权利要求1所述的数据传输方法,其特征在于,所述步骤A具体包括:
步骤A1:所述数据发送端向所述数据接收端发送建立块传输通道的请求,所述请求的内容包括所述数据发送端发送的块数据的编号;
步骤A2:所述数据接收端收到所述请求后,向所述数据发送端发送建立块传输通道的应答,所述应答的内容包括所述数据接收端的块数据的编号;
步骤A3:检查是否是新启动,如果是,所述数据发送端向所述数据接收端发送强制建立块传输通道的请求,否则比较所述数据发送端当前的块数据编号和所述数据接收端的块数据编号是否一致,如果一致则块传输通道建立成功,否则所述数据发送端向所述数据接收端发送强制建立块传输通道的请求。
3.如权利要求1所述的数据传输方法,其特征在于,所述步骤C中根据扫描结果滑动当前滑动窗口的步骤具体包括:当所述数据接收端收到所述数据发送端发送的全部数据时,所述数据接收端的当前滑动窗口向数据尾帧方向滑动一个满窗口,并要求所述数据发送端向数据尾帧方向滑动一满窗口发送其窗口内的数据。
4.如权利要求1所述的数据传输方法,其特征在于,所述步骤C中根据扫描结果滑动当前滑动窗口的步骤具体包括:当所述数据接收端没有收到所述数据发送端发送的全部数据时,所述数据接收端的当前滑动窗口滑动到第一个丢帧处,并要求所述数据发送端从丢帧处重新发送数据。
5.如权利要求1所述的数据传输方法,其特征在于,所述步骤D具体包括:所述数据发送端收到所述数据帧的应答后,如果所述请求发送的开始帧号落在当前滑动窗口的范围内,则根据收到的所述数据帧的应答内容进行后续数据帧的发送,如果所述请求发送的开始帧号连续多次落在当前滑动窗口的范围外,则向所述数据接收端发送强制建立块传输通道的请求,重新发送所述块数据,直至所述块数据中的数据帧全部发送完毕。
6.如权利要求1所述的数据传输方法,其特征在于,所述步骤E具体包括:
步骤E1:所述数据发送端向所述数据接收端发送关闭所述块传输通道的请求,所述请求的内容包括该块的编号和该块的总校验和;
步骤E2:所述数据接收端收到关闭所述块通道的请求后,将所述数据接收端收到的所述块数据进行保存,向所述数据发送端发送关闭所述块传输通道的应答,所述应答的内容包括所述数据接收端的块编号和所述块的保存应答;
步骤E3:所述数据发送端收到所述应答后,检查所述块的保存是否成功,如果是,则所述数据接收端将其状态进行持久化,所述持久化的信息为成功保存的所述块数据的编号,完成所述块数据的发送,否则所述数据发送端向所述数据接收端发送强制建立块传输通道的请求。
7.如权利要求1所述的数据传输方法,其特征在于,所述将数据打包成块数据之前还包括将所述数据压缩的步骤。
8.一种数据传输装置,其特征在于,所述装置包括数据发送端和数据接收端,所述数据发送端包括块通道建立请求发送模块、数据帧发送模块、块通道关闭请求发送模块,所述数据接收端包括块通道建立请求应答模块、定期扫描模块、数据帧接收模块、块通道关闭请求应答模块;
所述块通道建立请求发送模块用于所述数据发送端向所述数据接收端发送建立块传输通道的请求,所述请求的内容包括所述数据发送端发送的块数据的编号;
所述数据帧发送模块用于所述数据发送端向所述数据接收端发送所述滑动窗口中包含的数据帧和根据接收到的所述数据帧的应答进行所述数据帧的发送;
所述块通道关闭请求发送模块用于所述数据发送端向所述数据接收端发送关闭所述块传输通道的请求,所述请求的内容包括该块的编号和该块的总校验和;
所述块通道建立请求应答模块用于所述数据接收端收到所述请求后,向所述数据发送端发送建立块传输通道的应答,所述应答的内容包括所述数据接收端的块数据的编号;
所述定期扫描模块用于所述数据接收端接收到所述数据帧后,并定期扫描当前滑动窗口的数据帧的接收情况,根据扫描结果滑动当前滑动窗口,向所述数据发送端发送所述数据帧的应答,所述应答的内容包括请求发送的开始帧号和帧的数量;
所述数据帧接收模块用于接收所述数据发送端发送的数据帧;
所述块通道关闭请求应答模块用于向所述数据发送端发送关闭所述块传输通道的应答,所述应答的内容包括所述数据接收端的块编号和所述块的保存应答。
9.如权利要求8所述的数据传输装置,其特征在于,所述装置进一步包括检查模块,所述检查模块用于检查是否是新启动,如果是,所述数据发送端向所述数据接收端发送强制建立块传输通道的请求,否则比较所述数据发送端当前的块数据编号和所述数据接收端的块数据编号是否一致,如果一致则块传输通道建立成功,否则所述数据发送端向所述数据接收端发送强制建立块传输通道的请求。
10.如权利要求8所述的数据传输装置,其特征在于,所述定期扫描模块包括数据帧检查单元,所述数据帧检查单元用于检查所述数据接收端的数据帧的接收情况,如果检查到所述数据接收端收到全部数据,所述数据接收端的当前滑动窗口向数据尾帧方向滑动一个满窗口,并要求所述数据发送端向数据尾帧方向滑动一满窗口发送其窗口内的数据;如果检查到所述数据接收端没有收到全部数据,所述数据接收端的当前滑动窗口滑动到第一个丢帧处,并要求所述数据发送端从丢帧处重新发送数据。
11.如权利要求8所述的数据传输装置,其特征在于,所述数据帧发送模块包括帧号检查单元,所述帧号检查单元用于检查请求发送的开始帧号是否落在当前滑动窗口的范围内,如果落在当前滑动窗口范围内,则根据收到的所述数据帧的应答内容进行后续数据帧的发送,如果所述请求发送的开始帧号连续多次落在当前滑动窗口的范围外,则向所述数据接收端发送强制建立块传输通道的请求,重新发送所述块数据,直至所述块数据中的数据帧全部发送完毕。
12.如权利要求8所述的数据传输装置,其特征在于,所述块通道关闭请求应答模块包括块数据保存单元、块数据保存检查单元、状态持久化单元;
所述块数据保存单元用于将所述数据接收端收到的所述块数据进行保存;
所述块数据保存检查单元用于检查所述块数据的保存是否成功,如果成功则所述数据接收端将其状态进行持久化,完成所述块数据的发送,否则所述数据发送端向所述数据接收端发送强制建立块传输通道的请求;
所述状态持久化单元用于将所述数据接收端的所述块数据的成功保存状态信息进行持久化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101036805A CN100428745C (zh) | 2006-07-28 | 2006-07-28 | 一种数据的传输方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101036805A CN100428745C (zh) | 2006-07-28 | 2006-07-28 | 一种数据的传输方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1889529A CN1889529A (zh) | 2007-01-03 |
CN100428745C true CN100428745C (zh) | 2008-10-22 |
Family
ID=37578788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101036805A Expired - Fee Related CN100428745C (zh) | 2006-07-28 | 2006-07-28 | 一种数据的传输方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100428745C (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101009535B (zh) * | 2007-01-26 | 2010-05-19 | 北京航空航天大学 | 基于滑动窗口的soap消息传输方法 |
CN102347955A (zh) * | 2011-11-01 | 2012-02-08 | 杭州依赛通信有限公司 | 一种基于虚拟通道的可靠数据传输协议 |
CN103873209B (zh) * | 2014-03-18 | 2017-06-16 | 上海交通大学 | 一种提高无线通信效率的帧校验机制 |
CN104378444B (zh) * | 2014-11-27 | 2018-03-27 | 电子科技大学 | 用于通过传输协议在测井数据链路上传输数据的方法 |
CN105704061B (zh) * | 2014-11-27 | 2019-02-26 | 中国移动通信集团江苏有限公司 | 一种发送速率控制方法及设备 |
CN104486442B (zh) * | 2014-12-29 | 2018-08-24 | 成都极驰科技有限公司 | 分布式存储系统的数据传输方法、装置 |
CN108173866A (zh) * | 2017-12-29 | 2018-06-15 | 苏州麦迪斯顿医疗科技股份有限公司 | 胸痛中心认证数据的集成方法、装置、设备及存储介质 |
CN112910658B (zh) * | 2021-02-02 | 2022-07-12 | 刘玉 | 一种数据包传输方法和提供tcp代理服务的方法、装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1469601A (zh) * | 2002-06-18 | 2004-01-21 | ���µ�����ҵ��ʽ���� | 使启动接收器发送速率增加最佳化 |
CN1520111A (zh) * | 2003-09-02 | 2004-08-11 | ����ͨѶ�ɷ�����˾ | 局域网内的数据传输方法 |
US6925502B1 (en) * | 2000-06-20 | 2005-08-02 | At&T Corp. | Methods and systems for improving data transmission rates having adaptive protocols |
CN1691590A (zh) * | 2004-04-19 | 2005-11-02 | 华为技术有限公司 | 无线链路数据传输中接收端发送窗口大小调整信息的方法 |
-
2006
- 2006-07-28 CN CNB2006101036805A patent/CN100428745C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6925502B1 (en) * | 2000-06-20 | 2005-08-02 | At&T Corp. | Methods and systems for improving data transmission rates having adaptive protocols |
CN1469601A (zh) * | 2002-06-18 | 2004-01-21 | ���µ�����ҵ��ʽ���� | 使启动接收器发送速率增加最佳化 |
CN1520111A (zh) * | 2003-09-02 | 2004-08-11 | ����ͨѶ�ɷ�����˾ | 局域网内的数据传输方法 |
CN1691590A (zh) * | 2004-04-19 | 2005-11-02 | 华为技术有限公司 | 无线链路数据传输中接收端发送窗口大小调整信息的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1889529A (zh) | 2007-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100428745C (zh) | 一种数据的传输方法和装置 | |
CN101179790B (zh) | 一种移动终端处理器之间的串口通信方法 | |
EP1166486B1 (en) | Packet discard notification for semi reliable retransmission protocol | |
JP5523350B2 (ja) | Tcpフロー制御のための方法及び装置 | |
US9043486B2 (en) | Data transfer method, system and protocol | |
KR102046792B1 (ko) | 송신 노드로부터 목적지 노드로의 데이터 전송 방법 | |
CN101369877B (zh) | 无线传输控制协议处理方法和设备 | |
CN105934907A (zh) | 无线资源调度方法及装置 | |
CN102292940A (zh) | 一种采用arq机制的头压缩通信方法和装置 | |
CN105657646A (zh) | 一种基于蓝牙4.0的设备间大数据通信方法 | |
US20060271680A1 (en) | Method For Transmitting Window Probe Packets | |
CN110958264A (zh) | 一种基于tcp/ip协议的服务器通信方法 | |
CN100574274C (zh) | 无线链路协议的传输系统及方法 | |
CN101325539A (zh) | 一种局域网内可靠通信的方法 | |
CN1988537A (zh) | 一种数据传输协议 | |
EP1562115A2 (en) | Socket connections over a serial link | |
CN101145968B (zh) | 网管系统和传输设备间数据发送及接收方法 | |
CN116963175A (zh) | 数据传输方法、装置及系统 | |
CN110430023B (zh) | 一种适用于SpaceWire总线通讯的数据传输方法 | |
KR20090043724A (ko) | 대용량 데이터의 직렬 송수신 방법 | |
CN106603203A (zh) | 数据传输的方法及装置 | |
JP2002176460A (ja) | 送信装置及び通信システム | |
Nada | Performance analysis of selective repeat ARQ protocol used in digital data transmission over unreliable channels | |
CN102347955A (zh) | 一种基于虚拟通道的可靠数据传输协议 | |
Morales et al. | Improving the specification of the WiMax ARQ operation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081022 Termination date: 20170728 |