链路数据保护的方法和装置的制造方法

文档序号:9250889阅读:455来源:国知局
链路数据保护的方法和装置的制造方法
【技术领域】
[0001]本发明属于信息技术领域,具体说涉及一种链路数据保护的方法和装置。
【背景技术】
[0002]在信息技术的诸多领域里,数据板卡之间的高速通信越来越常见。例如,在存储技术领域,为云计算服务的存储设备,为了追求卓越的性能往往使用闪存进行数据存储,在负责网络处理的板卡和负责数据存储的板卡之间会存在大量的数据通信。板卡之间的通信常使用高速serdes (英文serializer(串行器)/deserializer (解串器)的合并简称)链路。高速serdes链路传输数据容易存在传输错误、接收方对数据流量不可预知、链路异常等问题,因此保证链路传输的正确性显得非常重要。
[0003]通常高速serdes链路只负责传输数据,并不保证数据正确,也不会在板卡之间出现数据拥堵时及时控制链路上的数据流量,更无法在链路出现异常时保证数据不丢失。在存储技术领域,如果出现数据包错误、数据包丢失或硬件设备受到干扰失灵等问题,会对存储请求造成致命影响。为了防止这样的问题出现,确保正确的数据传输,一般在上层软件层面对数据包进行标识、校验,数据流量过大时直接丢弃处理,然后发送请求消息,要求数据板卡重新传输。这样实际上是由上层系统来保证数据的正确性,会增加上层系统的数据处理及数据存储压力,另外还会导致整个数据通路延长,保障的风险加大。
[0004]在说明书“【背景技术】”部分公开的内容,有助于本领域技术人员理解本发明的技术方案,但不应据此认为这些内容一定属于现有技术或公知常识。

【发明内容】

[0005]本发明提供一种链路数据保护的方法,该方法与数据板卡相关。
[0006]本发明所述的数据板卡,泛指能够传输数据(即发送或接收数据)的设备或装置。数据板卡为了实现传输数据的功能,相应的也要具备一定的数据处理、数据存储等其他功能。数据板卡之间传输数据时需要建立链路,处于链路上的正在发送或接收过程中的数据可以称为链路数据。数据板卡之间传输数据要遵照一定的通信协议。通信协议往往将数据分割为数据包,以数据包作为发送或接收数据的最小单位。数据板卡一般通过集成电路即硬件的方式实现,如果有必要也可以使用软件来虚拟数据板卡。
[0007]本发明涉及到发送板卡和接收板卡,这两个概念是相对于某数据的发送或接收过程而言的,是相对而非是绝对的概念。例如,数据板卡a将数据A发送给数据板卡b,同时从数据板卡c接收数据B,则数据板卡a相对于数据A和数据板卡b而言是发送板卡,相对于数据B和数据板卡c而言是接收板卡。
[0008]链路数据保护的方法,包括:发送板卡发送附带序号和校验值的主数据包,接收板卡验证收到的主数据包的序号和校验值,根据验证结果进行处理。
[0009]本发明所涉及的数据包,包括主数据包和验证包。数据板卡传输的数据包中,一类数据包是由根据数据板卡的功能设计“真正需要”发送或接收的数据形成的,这类数据包称为主数据包;而另一类数据包只是用来反馈主数据包是否传输成功,这类数据包称为验证包。本发明所述的发送板卡和接收板卡,基于主数据包进行定义,发送主数据包的板卡为发送板卡,接收主数据包的板卡为接收板卡。为了区别某个数据包是主数据包还是验证包,数据板卡为数据包设置了一个标识,本发明涉及的所有数据包都带有标识。
[0010]主数据包的序号,指为了验证主数据包是否传输成功而设置的数值。主数据包的序号最常见的生成规则是发送板卡发送的第一个主数据包的序号设为0,之后依次发送的主数据包的序号逐次增加I。
[0011]校验值,指对数据包中的数据进行校验计算后产生的数值。目前已经公开了非常多的数据校验算法,如crcl6算法。发送板卡发送主数据包时进行一次校验计算得到校验值,将该校验值附带在主数据包中,接收板卡收到主数据包后再进行一次检验计算得到校验值,比较该校验值与主数据包中附带的校验值是否一致就可以得知主数据包中的数据在传输过程中是否发生了错误。
[0012]对于验证包,为了保证其数据的正确性,验证包也应附带校验值,校验值的生成方法及验证包的校验方法与主数据包相同。由于验证包是为了反馈主数据包是否传输成功,验证包不需要独立的序号,附带由其反馈信息的主数据包(即对应的主数据包)的序号即可,其对应的主数据包的序号也可以视为验证包的序号。
[0013]上述“根据验证结果进行处理”,包括如下几种处理方法:
[0014]如果接收板卡收到的主数据包的序号与序号生成规则一致,对主数据包数据计算得到的校验值与主数据包中附带的校验值一致,则接收板卡存储该主数据包并向发送板卡发送显示验证正确的验证包。
[0015]这种情况意味着主数据包中的数据正确,链路在数据传输过程中不存在错误,发送板卡向接收板卡发送数据包的过程将持续下去。
[0016]如果接收板卡收到的主数据包的序号与序号生成规则一致,对主数据包数据计算得到的校验值与主数据包中附带的校验值不一致,则接收板卡丢弃该主数据包并向发送板卡发送显示验证错误的验证包。
[0017]这种情况意味着主数据包在传输过程中不存在异常丢包,但主数据包中的数据产生了错误(这种错误可以称为比特错误,bit eiror)。发送板卡收到显示验证错误的验证包后,向接收板卡重新发送该主数据包。
[0018]如果接收板卡收到的主数据包的序号与序号生成规则不一致,则接收板卡丢弃该主数据包,不向发送板卡发送任何验证包。
[0019]这种情况意味着主数据包在传输过程中存在异常丢包。发送板卡未收到验证包达到一定时间后,将所有未收到对应验证包的主数据包重新向接收板卡发送(这称为timeout 机制)。
[0020]除了上面几种情况外,链路还可能出现非正常断开、重新连接等异常情况,这会导致主数据包和验证包产生其他问题。这时相应的处理方法包括:
[0021]如果对验证包数据计算得到的校验值与验证包中附带的校验值不一致,发送板卡视为未收到验证包。数据传输过程中,主数据包可能产生比特错误,验证包同样可能产生比特错误。发送板卡收到验证包后也需要再计算一次校验值,如果对验证包数据计算得到的校验值与验证包中附带的校验值不一致,表明验证包中的数据产生了比特错误,此时发送板卡将该验证包直接丢弃,视为未收到验证包。这样处理,发送板卡可以启动timeout机制,保证主数据包的传输不存在问题。
[0022]如果接收板卡在收到某个主数据包并向发送板卡发送显示验证正确的验证包后又收到该主数据包,则丢弃后收到的该主数据包。出现这种情况表明验证包出现了丢包,发送板卡不知道接收板卡已经收到了正确的主数据包,通过timeout机制重新发送。此时接收板卡将后面又收到的该主数据包直接丢弃即可。
[0023]链路数据保护的方法,还包括:发送板卡主数据包的存储空间和接收板卡主数据包的存储空间相等。发送板卡在发送主数据包后未收到接收板卡对应的显示验证正确的验证包前,不删除该主数据包。
[0024]数据板卡之间发送或接收数据,应当实施必要的数据流量控制,特别是当数据板卡之间采用高速链路时。高速链路往往默认数据只要发出对方就可以接收,不进行数据流量控制会严重影响数据传输的安全性。如前所述,数据板卡也具有数据存储的功能,将发送板卡主数据包的存储空间和接收板卡主数据包的存储空间设计为相等,实现了发送数据和接收数据的对等,不会出现发送板卡发送的主数据包过多,接收板卡无法接收只能丢弃的情况。同时,发送板卡在发送主数据包后未收到接收板卡对应的显示验证正确的验证包前,不删除该主数据包释放其存储空间,这样进一步使得接收板卡未能正确接收主数据包时发送板卡因存储空间的限制无法继续大量发送主数据包,实现了对数据流量的控制,保证了链路的运行效率。
[0025]链路数据保护的方法,还包括:数据板卡(发送板卡或接收板卡)对于待发送的主数据包和验证包,优先发送验证包。
[0026]由于发送板卡和接收板卡是一个相对的概念,有时可能出现某个数据板卡同时作为发送板卡发送主数据包和接收板卡发送验证包的情况,此时两种数据包的发送就形成了竞争关系,需要仲裁解决发送的优先级。由于验证包关系到其他板卡主数据包的发送,对由所有数据板卡构成的板卡体系数据传输的影响较大,对于同时提交的待发送的主数据包和验证包,应当优先发送验证包。特别注意,该仲裁规则只在所有数据包都为待发送状态时方有效。如果主数据包开始发送后验证包的发送请求才提交,为了保证数据包的完整性和数据传输的稳定性,不允许中断主数据包的发送,只有当主数据包发送完成后才能发送验证
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1