[发明专利]快速通道互联系统中数据包重传方法、节点有效
申请号: | 201280001769.4 | 申请日: | 2012-12-20 |
公开(公告)号: | CN103141050A | 公开(公告)日: | 2013-06-05 |
发明(设计)人: | 刘建根;刘钢;蔡卫光 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | H04L1/16 | 分类号: | H04L1/16;H04L1/18;H04L29/08;H04L12/931 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 快速通道 联系 数据包 方法 节点 | ||
技术领域
本发明涉及计算机技术,尤其涉及一种快速通道互联系统中数据包重传方法、装置和系统。
背景技术
快速通道互联(Quick Path Interconnect,简称QPI)技术,广泛应用于多处理器平台的中央处理器(Central Processing Unit,简称CPU)之间的数据交换,是一种基于数据包传输的串行式高速点对点连接协议,采用差分信号与专门的时钟进行数据传输,用来实现CPU之间的直接互联,可提供较高的访问带宽。基于QPI总线的接口协议包括:物理层(也称为下层,Lower Layer)、链路层(Link Layer)和协议层(也称为上层,Upper Layer)。物理层负责接收外部CPU发送的数据包以及向外部CPU发送数据包;协议层负责QPI端口与该端口所在CPU内部的通讯;链路层位于协议侧和物理层之间,负责将来自协议层的数据包经物理层发送给外部CPU,以及对物理层接收到的数据包进行译码、并将译码成功的数据包经协议层发送给该端口所在CPU内部。
为了提高QPI系统不同CPU之间数据传输的可靠性,QPI技术在链路层引入了数据包重传机制。QPI系统中如果本地链路层检测到远端发送的数据包出错时,会经本地物理层向远端发送重传请求,用于请求重传出错的数据包;由于链路时延等因素,在本地链路层确定接收到出错的数据包到远端重传该出错的数据包期间,远端向本地持续发送一个或多个数据包,本地链路层则丢弃出错数据包之后本地物理层接收到的各数据包;远端链路层根据重传请求确定需要重传的数据包,并经远端物理层向本地重传自该出错数据包之后发送的所有数据包。
现有QPI系统当传输的数据包出错时,远端链路层重传的是出错的数据包之后发送的所有数据包,其中包括远端链路层已向本地发送过的数据包,由此造成系统带宽资源的浪费。
发明内容
本发明提供一种快速通道互联总线的数据包重传方法、节点,用于减少数据包重传所需占用的系统资源,进而有利于提高系统资源的利用率。
本发明提供了一种快速通道互联总线的数据包重传方法,包括:
接收来自远端节点的第二数据包,所述第二数据包中不包含该数据包的序列号;
启动第一计数器,所述第一计数器的第一计数值的初始值为0;
对接收到的每一个第二数据包进行检测,如果检测结果正确,则缓存该正确的第二数据包,所述第一计数器将第一计数值加1,向所述远端节点发送第二接收确认信息,所述第二接收确认信息中不包含该正确的第二数据包的序列号;如果检测结果错误,则第一计数器停止计数,启动第二计数器,所述第二计数器的第二计数值的初始值为0,向所述远端节点发送第一重传请求,所述第一重传请求中携带所述第一计数值,所述第一计数值代表该错误的第二数据包的序列号;
在检测到所述错误的第二数据包后,继续接收来自远端节点的第二数据包,对每一个第二数据包进行检测,如果检测结果正确,则缓存该正确的第二数据包,所述第二计数器将第二计数值加1;
接收到来自所述远端节点的第一重传响应后,则对所述第一重传响应后的首个第二数据包进行检测,检测结果正确,向所述远端节点发送第二接收确认信息,所述第二接收确认信息中不包含该第二数据包的序列号,所述第一计数器将第二计数值加到所述第一计数值,所述第一计数器重新开始计数。
本发明提供了一种节点,包括:
接收模块,用于接收来自远端节点的数据,所述数据为第二数据包或第一重传响应,其中所述第二数据包中不包含该数据包的序列号;
接收译码模块,用于启动第一计数器,所述第一计数器的第一计数值的初始值为0;对接收到的每一个第二数据包进行检测,如果检测结果正确,将该第二数据包缓存到接收缓存模块,向系统控制模块发送该正确的第二数据包的译码信息;所述第一计数器将第一计数值加1;如果检测结果错误,则通知所述接收缓存模块启动第二计数器,所述第二计数器的第二计数值的初始值为0;第一计数器停止计数;向所述系统控制模块发送第一计数值;所述接收译码模块还用于在检测到所述错误的第二数据包后继续检测来自所述远端节点的每一个第二数据包,如果检测结果正确,则将该第二数据包缓存到接收缓存模块,所述第二计数器将第二计数值加1;所述接收译码模块还用于对所述第一重传响应后的首个第二数据包进行检测,若检测结果正确,则所述第一计数器将第二计数值加到所述第一计数值,所述第一计数器重新开始计数;向所述系统控制模块发送该第二数据包的译码信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201280001769.4/2.html,转载请声明来源钻瓜专利网。