[发明专利]一种报文重传的方法、请求端、响应端以及系统有效
申请号: | 201410250643.1 | 申请日: | 2014-06-06 |
公开(公告)号: | CN104065465B | 公开(公告)日: | 2018-03-16 |
发明(设计)人: | 石仔良;陈步林 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | H04L1/18 | 分类号: | H04L1/18 |
代理公司: | 广州三环专利商标代理有限公司44202 | 代理人: | 郝传鑫,熊永强 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 报文 方法 请求 响应 以及 系统 | ||
技术领域
本发明涉及通信领域,尤其涉及一种报文重传的方法、请求端、响应端以及系统。
背景技术
RDMA(Remote Direct Memory Access,远端直接数据存取)技术用于网络中服务器间的数据传输,数据传输过程中,请求端服务器的带RDMA功能的网卡通过零复制技术经网络把数据直接传输到响应端服务器的存储区。在具体的实现过程中,响应端服务器可能会因为各种原因而接收数据错误或者超时接收数据。在这种情况下,需要请求端服务器重新传输数据到响应端服务器,即数据重传,由于数据是以报文形式进行传输的,故数据重传又称为报文重传。
目前报文重传的方法是,请求端服务器需要为每个用于传输的数据队列的每个消息记录首报文的序列号并保存在表项中,在响应端服务器发送来报错消息时从表项中读取首报文的序列号,通过将首报文的序列号与报错消息中的出错报文的序列号对比,获取出错报文存储地址的偏移地址,进而确定报文重传开始的位置,进行报文重传。但是,当数据队列规模较大(例如256K~1M)以及每个数据队列支持的并发消息较多(例如16K)的时候,所述表项将耗费巨大的存储资源(即16K*256K~16K*1M bits)。显然,这样大的表项硬件存储设备难以承受,并且放在硬件存储设备不利于扩展,故该方法通常将上述表项放到主机服务器的内存中,这样每次发送完一个消息时需要请求端服务器在上述内存中增添该表项内容,收到响应端服务器发送来的报错消息时需要从上述内存中读取该表项内容,增加了延时和操作的复杂度。
发明内容
本发明实施例提供一种报文重传的方法、请求端、响应端以及系统,用于在报文传送出错重传出错报文时,减少延时性和提高操作简便性。
为了解决上述技术问题,本发明实施例第一方面提供了一种报文重传的方法,包括:
向响应端发送多个数据队列,所述数据队列包括至少一个消息,所述消息包括至少一个报文,所述报文的长度是固定的,且所述数据队列包括的所有报文都是连续编号的;
获得所述响应端发送来的报错消息,所述报错消息包括用于获得所述出错报文的序列号相对于所述出错报文所属消息的首报文的序列号的偏移值的信息、所述出错报文所属消息的数据队列的队列号以及所述出错报文所属消息的序列号;
根据所述用于获得所述出错报文的序列号相对于所述出错报文所属消息的首报文的序列号的偏移值的信息获得所述偏移值,并根据所述偏移值和所述报文的长度的乘积,获得所述出错报文相对于所述出错报文所属消息的首报文的偏移地址;
根据所述数据队列的队列号和所述出错报文所属消息的序列号,定位出所述出错报文所属消息的起始存储地址,其中,所述数据队列的队列号和所述出错报文所属消息的序列号两者与所述出错报文所属消息的起始存储地址之间具有对应关系;
根据所述出错报文相对于所述出错报文所属消息的首报文的偏移地址和所述出错报文所属消息的起始存储地址,定位出所述出错报文的起始存储地址,并从所述出错报文的起始存储地址处向所述响应端重传报文,其中,所述出错报文所属消息的起始存储地址即为所述出错报文所属消息的首报文的起始存储地址。
在第一方面的一种可能实现方式中,所述用于获得所述出错报文的序列号相对于所述出错报文所属消息的首报文的序列号的偏移值的信息,具体包括:
所述出错报文的序列号和所述出错报文所属消息的首报文的序列号;
所述根据所述用于获得所述出错报文的序列号相对于所述出错报文所属消息的首报文的序列号的偏移值的信息获得所述偏移值,具体包括:
根据所述出错报文的序列号和所述出错报文所属消息的首报文的序列号,计算出所述出错报文的序列号相对于所述出错报文所属消息的首报文的序列号的偏移值,所述出错报文的序列号是以所述出错报文所属消息的首报文的序列号为基数,按照一定顺序进行计数得到的一个数值。
本发明实施例第二方面提供了一种报文重传的方法,包括:
接收请求端发送的多个数据队列,所述数据队列包括至少一个消息,所述消息包括至少一个报文,所述报文的长度是固定的,且所述数据队列包括的所有报文都是连续编号的;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410250643.1/2.html,转载请声明来源钻瓜专利网。