一种基于用户数据包协议实现网络数据高速可靠传输的方法

文档序号:7762903阅读:734来源:国知局
专利名称:一种基于用户数据包协议实现网络数据高速可靠传输的方法
技术领域
本发明涉及一种网络数据传输技术领域,具体提供一种基于用户数据包协议实现 网络数据高速可靠传输的方法。
背景技术
随着网络带宽时延产品(BDP)的增加,通常的TCP协议(TransmissionControl Protocol传输控制协议)开始变的低效。这是因为它的AIMD (additive increase multiplicative decrease)算法彻底减少了 TCP拥塞窗口,但不能快速的恢复可用带宽。 理论上的流量分析表明TCP在BDP增加到很高的时候比较容易受包损失攻击。另外,继承自TCP拥塞控制的不公平的RTT (Round-Trip Time,往返时延)也成为 在分布式数据密集程序中的严重问题。拥有不同RTT的并发TCP流将不公平的分享带宽。 尽管在小的BDP网络中使用通常的TCP实现来相对平等的共享带宽,但在拥有大量BDP的 网络中,通常的基于TCP的程序就必须承受严重的不公平的问题。这个RTT基于的算法严 重的限制了其在广域网分布式计算的效率,例如dnternet上的网格计算。一直到今天,对标准的TCP的提高一直都不能在高BDP环境中效率和公平性方面 达到满意的程度(特别是基于RTT的问题)。例如TCP的修改,RFC1423(高性能扩展), RFC2018 (SACK)、RFC2582 (New Reno)、RFC2883 (D-SACK)、和 RFC2988 (RT0 计算)都或多或少 的提高了点效率,但最根本的AIMD算法没有解决。HS TCP (RFC 3649)通过根本上改变TCP 拥塞控制算法来在高BDP网络中获得高带宽利用率,但公平性问题仍然存在。考虑到上面的背景,需要一种在高BDP网络支持高性能数据传输的传输协议。

发明内容
本发明是针对以上问题,提供一种基于用户数据包协议实现网络数据高速可靠传 输的方法,其能够实现网络数据的高速可靠的传输,并且保证了数据的完整性和准确性。本发明的采用的技术方案如下一种基于用户数据包协议实现网络数据高速可靠传输的方法,其包括数据发送和 数据接收两个步骤,其中数据发送步骤具体包括Al、初始化网络环境;A2、发送方发送连接命令包到指定的接收方用户数据包协议端口上,其中命令包 中包括窗口大小;A3、接收方接收到连接命令包后回复一个响应包;A4、发送方根据接收到的响应包计算数据包往返时间,根据往返时间来设定发送 方的间隔时间;A5、发送方设定两个定时器,一个是发送定时器,一个是重发定时器;发送定时器 是根据往返时间定时发送帧,而重发定时器是发送的数据超出等待响应帧的时间,重新发送一次帧;A6、发送方定时发送数据帧,当等待响应帧超时则重新发送等待响应的数据帧;当 接收到响应帧,首先判断是否在发送帧窗口之内,如果是在其内则删除该帧序列号之前数 据帧的超时定时器,扩展窗口左沿;当受到丢失帧和错误帧时,不仅重新传指定的数据帧, 同时对该帧的前面的帧进行定时器删除,扩展窗口 ;A7、当发送方需要关闭连接时,则发送关闭命令帧,通知接收方将关闭连接。其中接收步骤具体包括Bi、初始化网络环境;B2、接收方接收到发送方发出的连接命令包后回复一个响应包;B3、接收方设定一个辅助定时器,并且辅助定时器的超时间隔应该明显短于与数 据帧相关联的重发定时器的超时间隔;B4、接收方定时接收发送过来的数据帧,接收到数据帧后,首先判定是否在允许的 窗口范围内,不在则直接舍弃;如果在其内则判断数据帧校验位是否正确,如果正确则放入 缓冲区,反之发送错误帧;接收方如果在指定时间内未收到数据帧则发送超时帧请求发送 方重新发送该帧;B5、当接收方受到关闭命令帧后,停止接收定时器,把缓冲区数据发送给上层程 序,清空缓冲区退出。本发明的一种基于用户数据包协议实现网络数据高速可靠传输的方法,其数据包 大小以及结构设计原则如下为了保证数据包的完整避免拆包的可能性,数据包的大小设 定为512字节。其中包括一些必要的包信息数据位,如帧类型、信道出错类型、帧序列号、应 答序列号、CRC校验、时间戳等。传输过程中的流量控制协议原则如下每一个发出的帧包含一个序列号,范围从0到某个最大值。最大值通常是2n-l,以 便刚好对应一个η位的字段。在任意时刻发送方都保持一个连续的序列号表,对应于允许 发送的帧,这些帧被称限定在发送窗口之内。同样,接收方也保持一个接收窗口,对应于允 许接收的帧。发送方和接收方不必具有同样大小的窗口和上、下限值。传输过程中的差错控制协议如下接收到的数据必须为上层提供无差错的数据,无差错的传输不仅要防止将出错数 据交给上层,还有保证交付数据的顺序也是正确的。当接收端收到一个出错的帧时,因为发送端并不了解这个情况,所以仍将继续发 送帧,直到发进窗口占满后停止发送为止。在接收端,对出错帧之后到来的帧,可以采用选 择性重传策略,该方法发送过程和接收过程都维持一个可以接受的序列号的窗口。发送方 的窗口大小从0开始,增长到某个预定最大值MAX_SEQ。与之相比,接收方的窗口总是保持 固定大小,且其值不超过(MAX_SEQ+l)/2.接收方为即将到来且允许接收的帧保留接收窗 口大小的帧缓冲区,这样,当信道出错时,接收方将存储所有跟在坏帧之后的正确的帧,并 只要求发送方重传出错的帧。如果重传正确,接收方将按顺序排列的多个正确帧交给上层 程序,并且仅对最高序列号的帧进行确认。另外,对于选择性重传方法通常还辅之以发送否 定的应答的策略,即当接收方检测到有错误发生(如帧的校验和错误,或者收到的帧序列 号与所期望的不一致)时,它发送一个否定的确认帧(NAK),NAK可以激发发送端立刻执行
4重传操作,而不需要等到相应定时器超时,因此,使用NAK可以提高传输性能。本发明的一种基于用户数据包协议实现网络数据高速可靠传输的方法与现有技 术相比,其具有以下特点1、本发明有效避免数据丢失、数据包乱序等现象。2本发明由于 采用流量控制协议,根据网络带宽情况,充分的利用网络带宽资源。3、本发明采用了差错控 制协议不及保证数据完整性,也提高了数据的准确性。


附图1为本发明的一种基于用户数据包协议实现网络数据高速可靠传输的方法 的发送方流程图;附图2为本发明的一种基于用户数据包协议实现网络数据高速可靠传输的方法 的接收方流程图。
具体实施例方式下面结合附图和具体实施例对本发明的一种基于用户数据包协议实现网络数据 高速可靠传输的方法作进一步的描述。如附图1、2所示,首先发送方和接收方进行传输准备,发送方发送CNT (connect, 连接)命令包到指定的接收方UDP端口上,接收方接收到CNT命令包后回传一个 ACK (acknowledge响应)响应包,至此发送方和接收方建立了连接。发送方发送CNT命令包到指定的接收方UDP端口上,其中命令包中包括窗口大 小;接收方接收到CNT命令包后回复一个ACK响应包;发送方根据接收到的ACK响应包计算数据包往返时间RTT,根据RTT来设定发送方 的间隔时间STP ;发送方设定两个定时器,一个是发送定时器,一个是重发定时器。发送定时器是根 据RTT时间定时发送帧,而重发定时器是发送的数据超出等待响应帧的时间,重新发送一 次帧。接收方设定一个辅助定时器,并且辅助定时器的超时间隔应该明显短于与数据帧 相关联的重发定时器的超时间隔。发送方定时发送数据帧,当等待响应帧超时则重新发送等待响应的数据帧。当接 收到响应帧,首先判断是否在发送帧窗口之内,如果是在其内则删除该帧序列号之前数据 帧的超时定时器,扩展窗口左沿。当受到丢失帧和错误帧时,不仅重新传指定的数据帧,同 时对该帧的前面的帧进行定时器删除,扩展窗口。接收方定时接收发送过来的数据帧,接收到数据帧后,首先判定是否在允许的窗 口范围内,不在则直接舍弃。如果在其内则判断数据帧CRCKyclicRedundancy Check循环 冗余校验)校验位是否正确,如果正确则放入缓冲区,反之发送错误帧NAK (NAK是否定应答 或者非应答的缩写)。接收方如果在指定时间内未收到数据帧则发送超时帧请求发送方重 新发送该帧。当发送方需要关闭连接时,则发送CLOSE (关闭)命令帧,通知接收方我将关闭连接。
当接收方受到CLOSE命令帧后,停止接收定时器,把缓冲区数据发送给上层程序, 清空缓冲区退出。以上所述的实施例,只是本发明较优选的具体实施方式
的一种,本领域的技术人 员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。前文中一些英文译文及其注释Request For Comments (RFC),是一系列以编号排定的文件。文件收集了有关 因特网相关资讯,以及UNIX和因特网社群的软件文件。目前RFC文件是由Internet Society(ISOC)所赞助发行。基本的因特网通讯协定都有在RFC文件内详细说明。RFC文件 还在标准内额外加入了许多的论题,例如对于因特网新开发的协定及发展中所有的记录。 因此几乎所有的因特网标准都收录在RFC文件之中。SACK (Selective Acknowledgment,选择性确认New Reno快速重传和快速恢复算法RTO 超时重传时间(Retransmission Time—Out)D-SACK Double SACK功能主要是使接受者能够通过sack的块来报道接收到的重 复的段,从而使发送者更好的进行拥塞控制。HS TCP Highspeed TCP 高速 TCP 传输协议。
权利要求
一种基于用户数据包协议实现网络数据高速可靠传输的方法,其包括数据发送和数据接收两个步骤,其中数据发送步骤具体包括A1、初始化网络环境;A2、发送方发送连接命令包到指定的接收方用户数据包协议端口上,其中命令包中包括窗口大小;A3、接收方接收到连接命令包后回复一个响应包;A4、发送方根据接收到的响应包计算数据包往返时间,根据往返时间来设定发送方的间隔时间;A5、发送方设定两个定时器,一个是发送定时器,一个是重发定时器;发送定时器是根据往返时间定时发送帧,而重发定时器是发送的数据超出等待响应帧的时间,重新发送一次帧;A6、发送方定时发送数据帧,当等待响应帧超时则重新发送等待响应的数据帧;当接收到响应帧,首先判断是否在发送帧窗口之内,如果是在其内则删除该帧序列号之前数据帧的超时定时器,扩展窗口左沿;当受到丢失帧和错误帧时,不仅重新传指定的数据帧,同时对该帧的前面的帧进行定时器删除,扩展窗口;A7、当发送方需要关闭连接时,则发送关闭命令帧,通知接收方将关闭连接。其中接收步骤具体包括B1、初始化网络环境;B2、接收方接收到发送方发出的连接命令包后回复一个响应包;B3、接收方设定一个辅助定时器,并且辅助定时器的超时间隔应该明显短于与数据帧相关联的重发定时器的超时间隔;B4、接收方定时接收发送过来的数据帧,接收到数据帧后,首先判定是否在允许的窗口范围内,不在则直接舍弃;如果在其内则判断数据帧校验位是否正确,如果正确则放入缓冲区,反之发送错误帧;接收方如果在指定时间内未收到数据帧则发送超时帧请求发送方重新发送该帧;B5、当接收方受到关闭命令帧后,停止接收定时器,把缓冲区数据发送给上层程序,清空缓冲区退出。
全文摘要
本发明涉及一种网络数据传输技术领域,具体提供一种基于用户数据包协议实现网络数据高速可靠传输的方法。其通过在数据发送方即数据接收方设置定时器,进而使数据传输能够以规定的方法进行传输,不但能够实现网络数据的高速可靠的传输,并且保证了数据的完整性和准确性。
文档编号H04L29/06GK101969371SQ20101051700
公开日2011年2月9日 申请日期2010年10月19日 优先权日2010年10月19日
发明者高杰 申请人:高杰
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1