CN117792571A - 一种ib网络链路层的报文重传方法和装置 - Google Patents

一种ib网络链路层的报文重传方法和装置 Download PDF

Info

Publication number
CN117792571A
CN117792571A CN202311740094.1A CN202311740094A CN117792571A CN 117792571 A CN117792571 A CN 117792571A CN 202311740094 A CN202311740094 A CN 202311740094A CN 117792571 A CN117792571 A CN 117792571A
Authority
CN
China
Prior art keywords
link layer
data packet
retransmission
nak
response
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.)
Pending
Application number
CN202311740094.1A
Other languages
English (en)
Inventor
方林敏
宁佐林
苏海亮
冯波
龚晓华
马乐
杜欣
朱炯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Zhongxing Microsystem Technology Co ltd
Original Assignee
Wuxi Zhongxing Microsystem Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuxi Zhongxing Microsystem Technology Co ltd filed Critical Wuxi Zhongxing Microsystem Technology Co ltd
Priority to CN202311740094.1A priority Critical patent/CN117792571A/zh
Publication of CN117792571A publication Critical patent/CN117792571A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Communication Control (AREA)

Abstract

本发明提供了一种IB网络链路层的报文重传方法和装置,该方法包括:链路层发送端获取数据包,标记数据包的序列号和对应流控信用值,CRC校验后发送给链路层接收端,同时存储在重传缓存中;链路层接收端接收到数据包时对序列号和校验值进行检测,并在检测成功时向所述链路层发送端反馈ACK响应,检测失败时向所述链路层发送端反馈NAK响应以通知发送端重传。如果发送端接收到当前数据包的NAK响应或者在预定义时间内未接收到任何响应,则从重传缓存发起当前数据包的重传,并将对应的流控信用值同步到接收端。本发明的方案保证链路层数据可靠性传输。

Description

一种IB网络链路层的报文重传方法和装置
技术领域
本发明属于网络传输领域,特别涉及一种IB网络链路层的报文重传方法和装置。
背景技术
无限带宽(InfiniBand,IB)网络是一种用于高性能计算的计算机网络通信标准,应用于计算机之间的数据互连。IB网络也用作服务器与存储系统之间的直接或交换互连,以及存储系统之间的互连。因此IB网络对传输有高带宽、低延迟和可增强的扩展性要求。
随着IB网路的带宽越来越高,物理链路的误码率越来越高,对数据信息的可靠性传输带来极大的挑战。在现有IB网络技术中,传输层只对可靠的传输服务使用完成应答/失败应答(ACK/NAK)的组合来验证数据包的传递顺序、正确性以及是否需要重传。对于不可靠的传输服务不进行安全性的重传保护。另外,传输层检测到包信息出错时,发起的端到端重传时间长,且会引起信息带宽的大量浪费。因此在现有的传输层端到端重传方案中,无法满足IB网络对信息传输有高带宽、低延迟和可增强的扩展性要求。ACK/NAK机制是一种典型的重传机制,如PCIe的链路层采用的也是ACK/NAK机制原理进行链路的重传保护。但PCIe的重传方案是适配PCIe的LTSSM(Link Training and Status State Machine,链路训练状态机)状态机,只支持PCIe的基于信用的流量控制机制。仅以ACK/NAK为原理的重传机制无法适配应用于IB网络定义的链路层状态机(LSM)。此外,重传机制如果没有充分考虑到IB网络链路定义的基于信用的流量控制机制下的链路初始化以来发送包的总块数FCTBS和流控控制信用额度FCCL的流控信用同步,会造成链路层的虚拟通道VL缓存出现信用偏小或信用溢出的风险。
发明内容
本发明的目的在于提供一种IB网络链路层的报文重传方法和装置,旨在通过保证数据可靠性传输的同时,快速完成链路层重传。
根据本发明的第一方面,提供了一种IB网络链路层的报文重传方法,包括:
链路层发送端获取待发送的链路层数据包,标记所述数据包的序列号和对应的流控信用值,并在对所述数据包进行CRC校验后发送给链路层接收端,同时将所述数据包和对应的流控信用值存储在重传缓存中;
链路层接收端接收到所述数据包时,对所述序列号和CRC校验值进行检测,并在检测成功时向所述链路层发送端反馈ACK响应,检测失败时向所述链路层发送端反馈NAK响应以通知所述链路层发送端进行重传。
如果所述链路层发送端接收到当前数据包的NAK响应,或者在预定义时间内未接收到当前数据包的任何响应,则从所述重传缓存发起当前数据包的重传,并在重传过程中将对应的流控信用值同步到所述链路层接收端。
优选地,在所述向所述链路层发送端反馈ACK响应之后,进一步包括:
根据所述ACK响应对应的当前数据包的序列号,由所述链路层发送端清除所述重传缓存中的当前数据包,以及该序列号之前的数据包。
优选地,所述向所述链路层发送端反馈NAK响应之后,进一步包括:
根据所述NAK响应对应的当前数据包的序列号,由所述链路层发送端清除所述重传缓存中的当前数据包的序列号之前的数据包。
优选地,所述通知所述链路层发送端进行重传,进一步包括:
记录同一数据包发送失败的次数,当失败次数超过预定义阈值时,强制物理层重新进行链路训练。
优选地,所述向所述链路层发送端反馈NAK响应,进一步包括:
当所述链路层接收端成功接收到有效的数据包时,将NAK完成标志位清零,当所述链路层接收端完成NAK响应的生成时,将所述NAK完成标志位置位,禁止所述链路层接收端生成其他NAK报文。
本发明的第二方面提供了一种IB网络链路层的报文重传装置,包括:
发送单元,用于在链路层发送端获取待发送的链路层数据包时,标记所述数据包的序列号和对应的流控信用值,并在对所述数据包进行CRC校验后发送给链路层接收端,同时将所述数据包和对应的流控信用值存储在重传缓存中;
响应单元,用于在链路层接收端接收到所述数据包时,对所述序列号和CRC校验值进行检测,并在检测成功时向所述链路层发送端反馈ACK响应,检测失败时向所述链路层发送端反馈NAK响应以通知所述链路层发送端进行重传;
重传单元,用于在所述链路层发送端接收到当前数据包的NAK响应,或者在预定义时间内未接收到当前数据包的任何响应时,从所述重传缓存发起当前数据包的重传,并在重传过程中将对应的流控信用值同步到所述链路层接收端。
相比于现有技术,本发明的技术方案具备以下优点:
1.结合IB网络链路层的LSM状态机来控制重传机制,避免链路可发包或不发包时都可以正常工作。同时结合对IB流控信用管理,链路将retry_bu脆r对应的FCTBS信用值二次同步到对端,确保对端的ABR信用指针在重传过程和发送端发送数据包的FCTBS保持一致,确保数据包在快速重传时,对于VL缓存的流控信用的计算正确。兼容传输层的重传机制,适配IB网络,具有可扩展性。
2.基于IB网络链路层的点到点传输,可以保证IB网络所有的数据包传输使用(ACK/NAK)来验证数据包的传递顺序、正确性,以及是否需要重传,保证数据的可靠性传输。
3.当链路传输过程产生异常包时,可以通过链路层的retry_buffer快速完成数据的溯源。链路层在短时间内重传,可以在端到端发起重传前,快速完成数据包的重传溯源,避免传输层的端到端重传,从而节省了链路的带宽。
4.当链路传输过程因误码导致链路多次收到无效的ACK/NAK包或者链路检测到同一个数据包重传次数超过预设阈值时,会主动触发物理层链路重训练自修复(PCSretrain),提高传输可靠性。
本发明的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可以通过在说明书、权利要求书以及附图中所指出的结构和流程来实现和获取。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见的是,下面描述中的附图是本发明的某些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获取其他的附图。
图1是根据本发明的IB网络链路层的报文重传的总体流程图。
图2是根据本发明的链路层重传机制的架构图。
图3是根据本发明的重传发送侧流程设计图。
图4是根据本发明的重传接收侧流程设计图。
图5是根据本发明的重传ACK/NAK处理流程设计图。
图6是根据本发明的重传机制的电路设计框图。
图7是根据本发明的IB网络的基本传输头(BTH)格式示意图。
图8是根据本发明的IB网络的流控包FCP格式示意图。
图9是根据本发明实施例的IB网络的ACK/NAK响应包格式示意图。
具体实施方式
为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
基于以上分析,本发明提出一种IB网络链路层的报文重传方法和装置,采用基于IB网络链路层点到点的重传机制,保证IB网络所有的数据包传输都使用ACK/NAK来验证数据包的传递顺序和正确性,以及是否需要重传,有效确保所有IB网络的信息可靠性传输。链路层的重传机制比传输层更快检测到数据传输是否出错,且具备更高的效率发起重传的自我溯源,从而减少传输层端到端的重传,以减少传输层端到端链路重传引起的带宽浪费。
本发明的重传机制根据IB网络的链路层状态,决定是否工作或保持。当链路状态层允许工作时,重传机制开始工作,IB网络的链路层发送端接收上游的数据包,并标记链路层数据包序列号LPSN及对应的FCTBS信用值后,将数据包存储到用于对错误的重传包进行二次发送的重传缓存retry_buffer,然后LPSN序列号累加给下一个数据包。链路层发送端将已标记有LPSN的数据包完成CRC添加,发给对端的IB链路层。对端链路层对数据包的LPSN及CRC进行检测。检测成功后接收端携带该LPSN值反馈ACK响应包,否则携带该LPSN-1的值反馈NAK响应包。发送端链路层收到ACK响应,则认为该LPSN及在前的数据包已经被正常接收,清除发送端retry_buffer中LPSN及在前的数据包。否则发送端收到NAK响应,则认为该LPSN-1及在前的数据包已经被正常接收,从retry_buffer中清除,然后将retry_buffer中LPSN及其后的数据包进行快速二次发送。当数据包需要重传时,链路同时将retry_buffer对应的FCTBS信用值二次同步到对端,使得对端的接收调整块数ABR信用指针在重传过程中与发送端发送数据包的FCTBS保持一致,以确保数据包在快速重传时,对于VL缓存的流控信用计算正确。
参见图1的流程图,本发明提供的所述IB网络链路层的报文重传方法包括:
步骤101:链路层发送端获取待发送的链路层数据包,标记所述数据包的序列号和对应的流控信用值,并在对所述数据包进行CRC校验后发送给链路层接收端,同时将所述数据包和对应的流控信用值存储在重传缓存中。
以下结合图2的方案结构图介绍整个物理链路的原理实现方案。
在重传机制的发送侧流程中,链路层发送端接收上游的数据包,并标记序列号和流控信用FCTBS后,存储到retry_buffer,然后序列号累加给下一个数据包。
链路层发送端将标记有序列号的数据包完成CRC添加,发给对端链路层。
步骤102:链路层接收端接收到所述数据包时,对所述序列号和CRC校验值进行检测,并在检测成功时向所述链路层发送端反馈ACK响应,检测失败时向所述链路层发送端反馈NAK响应以通知所述链路层发送端进行重传。
在重传机制的接收侧流程中,对端链路层对数据包的序列号LPSN及CRC进行检测。检测成功时则接收端携带该LPSN值反馈ACK响应包,否则携带该LPSN-1的值反馈NAK响应包,通知对端链路层进行快速重传。
在可选的实施例中,如果发送端链路层收到ACK响应,则认为该LPSN及在前的数据包已经被正常接收,清除发送端retry_buffer中LPSN及在前的数据包。否则如果发送端收到NAK响应,则认为该LPSN-1及在前的数据包已经被正常接收,从retry_buffer中清除,然后将retry_buffer中LPSN及其后的数据包进行快速二次发送。
在优选的实施例中,发送端收到接收端发出的ACK/NAK包的处理流程如下:
对接收到的ACK/NAK包携带的序列号进行取模判断。其中NTS为下一个待发送数据包的序列号,AS为发送端已经收到对端响应的序列号。
判断是否满足(NTS-AS)mod 4096>=2048。
发送端在接收到ACK/NAK报文最后一步要检验NTS与AS的差值,NTS与AS差值最小为2048。
如果NTS-AS>2048成立,则说明数据链路层存在协议错误。
如果NTS-AS<=2048成立,则数据链路层继续传输数据包。
然后检查是否满足(LPSN-AS)mod 4096>=2048。
发送端在接收到ACK/NAK报文最后一步要检验LPSN与AS的差值,LPSN-AS差值最小为2048。
如果LPSN-AS>=2048成立,则说明数据链路层有协议错误。
如果LPSN-AS<2048成立,则数据链路层继续传输数据包。
步骤103:如果所述链路层发送端接收到当前数据包的NAK响应,或者在预定义时间内未接收到当前数据包的任何响应,则从所述重传缓存发起当前数据包的重传,并在重传过程中将对应的流控信用值同步到所述链路层接收端。
一旦检测到数据包已经发送给对端链路层则开始计时,预定义时间内没有收到ACK/NAK响应则视为链路不稳定,超时触发retry_buffer进行数据包的二次发送。当发送端检测到同一个数据包重传的次数达到预设阈值后,触发物理链路进行自我重新训练和修复。
重传机制的控制电路retry_ctrl设计框图如图6所示。主状态控制模块结合IB链路层的LSM主状态机跳转,控制重传功能,增加状态异常控制保护,使重传机制适配IB状态机跳转过程的各种收发包管理。发送侧在参考传统的ACK/NAK协议设计的基础上,增加对IB流控信用的同步更新处理,保证IB链路层重传时,不影响IB流控信用FCTBS的更新。接收侧在参考传统的ACK/NAK协议设计的基础上,增加流控信用同步的保护,在由于坏包而出现丢包时,保证IB流控信用的ABR更新不受影响的前提下,才发起链路重传。
如图6所示,retry_ctrl电路具体包括重传状态控制器、发送序列计数器、重传缓存、重传定时器、重传次数寄存器、应答寄存器、接收序列计数器、应答报文生成器和应答超时定时器。各个模块的功能详细描述如下:
所述重传状态控制器retry_state_ctrl,用于根据IB链路的状态,决定重传机制的工作情况,如表1所示:
表1
链路状态 工作情况
Link_down Retry不工作,配置初始化寄存器
Link_initial Retry开始工作
Link_arm Retry继续工作
Link_active Retry继续工作
Link_actdefer Retry暂停工作,工作状态不变
所述重传状态控制器还用于根据链路的发送和接收流程处理情况,决定是否生成相应的ACK/NAK报文通知对端。如上所述,通过判断(NTS-AS)mod 4096>2048和(LPSN-AS)mod 4096>=2048是否成立,确定链路层是否产生协议错误。根据链路的状态,生成重传中断,通知物理层重新训练。
所述发送序列计数器NEXT_TRANSMIT_SEQ(NTS)为12位的计数器,用于产生下一个待发送的数据包的序列号;在链路处于初始化Link_initial状态时,该计数器被初始化为0。该计数器只会执行加1操作,当其到达最大值4095时,继续加1则变回0。
所述重传缓存Retry Buffer,用于存储已传输的数据包及对应流控信用的FCTBS。当由NAK或replay_timer溢出触发重传机制时,阻塞上游发送新的数据包。当发送端收到ACK报文时,删除序列号为acknak_seq_num和它之前的数据包。如接收到NAK报文,则删除序列号为acknak_seq_num和它之前的包,然后重新发送剩余的数据包。当链路进行数据包重传时,同时更新同步对应的FCTBS,保证信用更新同步。
所述重传定时器Replay_Timer作为发送侧看门狗定时器,当计数溢出时,表示发送端已经发送了一个或多个数据包,但并未收到接收端的应答信号。此时,发送端会将Retry Buffer中的数据包重新发送,并重启定时器。对于每一次重发,从传输第一个数据包的最后一个符号开始计时。当收到应答信号之后,定时器会立即被清零。此时如果RetryBuffer仍然有数据包仍未得到应答,会立即重新启动定时器。如果Buffer中为空,则定时器不会被重新启动,直到有新的数据包被发送。Replay_Timer支持寄存器配置超时时间,也支持按照协议规定,该超时时间和链路速率相关。
所述重传次数寄存器Replay_num用于记录同一个数据包发送失败的次数。当失败次数超过软件配置阈值时,此时链路层会自动地强制物理层重新进行链路训练。当完成链路训练之后,数据包重新编号再开始发送(即重新发送先前发送失败的数据包)。当发送端接收到来自接收端的NAK报文或者发送端Replay_Timer溢出时,该重传次数计数器都会被加1。当接收到ACK报文时,该计数器则会被清零。在链路处于初始化initial状态时,该计数器则会被清零。该重传次数寄存器软件可配,达到阈值之后上报中断,由软件决定是否复位训练链路。
所述应答寄存器ACKD_SEQ/AS为12位寄存器,用于存储最近接收到的ACK或NAK中的序列号。在链路处于初始化initial状态时,该寄存器会被初始化为12’hFFF。如果NAK报文的Sequence ID=AS,说明没有新的数据包传输。此时需要将Retry_buffer中所有的数据包重新发送,并且更新重传次数寄存器Relay_num加1。而如果NAK报文的Sequence ID>AS,说明有新的数据包传输。此时需要将Retry_buffer中NAK报文中Sequence ID之前的数据包全部清空,并将当前的数据包重新发送。具体参见表2所示。与此同时,将Replay_timer以及Replay_num重置,并且Replay_num重置后加1。
表2
所述接收序列计数器NEXT_RCV_SEQ,用于维护下一个待接收数据包的序列号NRS。NEXT_RCV_SEQ为12位计数器,取值范围0~4095。在链路处于初始化initial状态时为12’h000。当成功接收数据包则NRS加1。主要用于检查当前接收到的数据包是否属于应该接收的数据包。
所述应答报文生成器ACK/NAK Generator根据接收端的反馈NRS情况,生成相应的ACK/NAK报文通知对端。采用包长计算接收到数据包的带宽,每4kB反馈ACK报文,NAK报文则是实时触发。带宽阈值触发ACK报文,支持阈值寄存器ACK_bandwidth(32位)可配置。
所述应答超时定时器ACK/NAK Latency Timer为接收方向的看门狗超时计数器,一旦ACK/NAK生成器超过Latency Timer还没有向发送端发送ACK/NAK报文,就会强制ACK/NAK生成器发送ACK报文,发送ACK报文之后将ACK/NAK Latency Timer重置。该定时器会在接收端成功接收到有效的数据包,且并未向发送端反馈ACK之前运行。当该定时器溢出时,接收端会立即向发送端反馈ACK报文(携带的序列号为NRS-1,即一个ACK对应多个有效的数据包)。无论接收端反馈ACK还是NAK,该定时器都会被复位,但是只有当接收端再次收到有效的数据包时,该定时器才会被重新启动。如果最初没有未确认的数据包,然后接收到数据包,则该定时器仅在数据包已转发到接收下游时开始计数。该定时器支持寄存器配置超时时间,也支持按照协议规定,超时时间和链路速率相关。
此外,所述重传控制电路设置NAK完成标志位NAK_SCHEDULED Flag,用于避免多发NAK报文,导致多次不同序列号重传。当接收端完成NAK报文的生成时,将该标志位置位。当接收端成功接收到有效的数据包时,将该标志位清零。在链路处于初始化initial状态时清零。当该标志位处于置位状态时,禁止接收端的retry_ctrl产生其他的NAK报文。
所述重传控制电路进一步设置所述NAK生成标志位NAK_OK/REQ,在对发现坏包进行丢包时,保证IB流控信用的ABR更新不受影响的前提下,才发起链路重传。当检测到数据包要重传时,拉高NAK_REQ丢弃后续流控包的FCTBS信用,避免ABR更新。在完成对该数据包的丢弃后,拉高NAK_OK,表示可以生成NAK包通知对端重发数据包。在检测到新的数据包正常时,拉低NAK_REQ/OK,接收流控包的FCTBS信用同步到ABR。
以上是基于IB网络的示例,然而本发明的方法具有通用性和可扩展性。本发明方法的报文序列号定义示例可以参考如下,IB网络的数据包中有多个reserve保留字段,可以利用这些保留字段作为链路传输的LPSN。例如本方法中IB点到点的重传序列号所在位置如图7所示:
BTH.resv6[5:0]=LPSN[11:6]
BTH.resv7[5:0]=LPSN[5:0]
ACK/NAK报文的格式定义则可参考IB网络的FCP报文格式,IB流控的报文如图8所示。对于Op值的解析,长度为4位,0表示普通流控包,1表示初始化流控包。FCTBS为12位,VL为4位,FCCL为12位,LPCRC为16位。协议规定不同op值的处理如下:当链路初始化时,FCP.op=1。当链路初始化完毕允许发普通数据包时,FCP.op=0。如果Op为其他值,则丢弃。
如图9所示,IB点到点重传机制的自定义的ACK/NAK报文可以采用op的其他字段,对报文内部字段进行复制后,在接收端进行一致性比对检验,ACK/NAK报文格式定义如下:
Op=4’b0010:NAK报文
Op=4’b0011:ACK报文
可见,本发明提出的IB网络链路层的报文重传方法,相比于现有技术具备以下优点:
1.结合IB网络链路层的LSM状态机来控制重传机制,避免链路可发包或不发包时都可以正常工作。同时结合对IB流控信用管理,链路将retry_buffer对应的FCTBS信用值二次同步到对端,确保对端的ABR信用指针在重传过程和发送端发送数据包的FCTBS保持一致,确保数据包在快速重传时,对于VL缓存的流控信用的计算正确。兼容传输层的重传机制,适配IB网络,具有可扩展性。
2.基于IB网络链路层的点到点传输,可以保证IB网络所有的数据包传输使用(ACK/NAK)来验证数据包的传递顺序、正确性,以及是否需要重传,保证数据的可靠性传输。
3.当链路传输过程产生异常包时,可以通过链路层的retry_buffer快速完成数据的溯源。链路层在短时间内重传,可以在端到端发起重传前,快速完成数据包的重传溯源,避免传输层的端到端重传,从而节省了链路的带宽。
4.当链路传输过程因误码导致链路多次收到无效的ACK/NAK包或者链路检测到同一个数据包重传次数超过预设阈值时,会主动触发物理层链路重训练自修复(PCSretrain),提高传输可靠性。
相应地,本发明在第二方面提供了一种IB网络链路层的报文重传装置,包括:
发送单元,用于在链路层发送端获取待发送的链路层数据包时,标记所述数据包的序列号和对应的流控信用值,并在对所述数据包进行CRC校验后发送给链路层接收端,同时将所述数据包和对应的流控信用值存储在重传缓存中;
响应单元,用于在链路层接收端接收到所述数据包时,对所述序列号和CRC校验值进行检测,并在检测成功时向所述链路层发送端反馈ACK响应,检测失败时向所述链路层发送端反馈NAK响应以通知所述链路层发送端进行重传;
重传单元,用于在所述链路层发送端接收到当前数据包的NAK响应,或者在预定义时间内未接收到当前数据包的任何响应时,从所述重传缓存发起当前数据包的重传,并在重传过程中将对应的流控信用值同步到所述链路层接收端。
上述装置可通过上述第一方面的实施例提供的IB网络链路层的报文重传方法实现,具体的实现方式可以参见第一方面的实施例中的描述,在此不再赘述。
可以理解,上述实施例中描述的电路结构、名称和参数仅为举例。本领域技术人员还可以根据使用需要,对以上多个实施例的结构特征进行容易想到的组合和调整,而不应将本发明的构思限制于上述示例的具体细节。
尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种IB网络链路层的报文重传方法,其特征在于,包括:
链路层发送端获取待发送的链路层数据包,标记所述数据包的序列号和对应的流控信用值,并在对所述数据包进行CRC校验后发送给链路层接收端,同时将所述数据包和对应的流控信用值存储在重传缓存中;
链路层接收端接收到所述数据包时,对所述序列号和CRC校验值进行检测,并在检测成功时向所述链路层发送端反馈ACK响应,检测失败时向所述链路层发送端反馈NAK响应以通知所述链路层发送端进行重传;
如果所述链路层发送端接收到当前数据包的NAK响应,或者在预定义时间内未接收到当前数据包的任何响应,则从所述重传缓存发起当前数据包的重传,并在重传过程中将对应的流控信用值同步到所述链路层接收端。
2.根据权利要求1所述的IB网络链路层的报文重传方法,其特征在于,在所述向所述链路层发送端反馈ACK响应之后,进一步包括:
根据所述ACK响应对应的当前数据包的序列号,由所述链路层发送端清除所述重传缓存中的当前数据包,以及该序列号之前的数据包。
3.根据权利要求2所述的IB网络链路层的报文重传方法,其特征在于,所述向所述链路层发送端反馈NAK响应之后,进一步包括:
根据所述NAK响应对应的当前数据包的序列号,由所述链路层发送端清除所述重传缓存中的当前数据包的序列号之前的数据包。
4.根据权利要求1所述的IB网络链路层的报文重传方法,其特征在于,所述通知所述链路层发送端进行重传,进一步包括:
记录同一数据包发送失败的次数,当失败次数超过预定义阈值时,强制物理层重新进行链路训练。
5.根据权利要求1所述的IB网络链路层的报文重传方法,其特征在于,所述向所述链路层发送端反馈NAK响应,进一步包括:
当所述链路层接收端成功接收到有效的数据包时,将NAK完成标志位清零,当所述链路层接收端完成NAK响应的生成时,将所述NAK完成标志位置位,禁止所述链路层接收端生成其他NAK报文。
6.一种IB网络链路层的报文重传装置,其特征在于,包括:
发送单元,用于在链路层发送端获取待发送的链路层数据包时,标记所述数据包的序列号和对应的流控信用值,并在对所述数据包进行CRC校验后发送给链路层接收端,同时将所述数据包和对应的流控信用值存储在重传缓存中;
响应单元,用于在链路层接收端接收到所述数据包时,对所述序列号和CRC校验值进行检测,并在检测成功时向所述链路层发送端反馈ACK响应,检测失败时向所述链路层发送端反馈NAK响应以通知所述链路层发送端进行重传;
重传单元,用于在所述链路层发送端接收到当前数据包的NAK响应,或者在预定义时间内未接收到当前数据包的任何响应时,从所述重传缓存发起当前数据包的重传,并在重传过程中将对应的流控信用值同步到所述链路层接收端。
7.根据权利要求6所述的IB网络链路层的报文重传装置,其特征在于,所述响应单元,进一步用于:
在向所述链路层发送端反馈ACK响应之后,根据所述ACK响应对应的当前数据包的序列号,由所述链路层发送端清除所述重传缓存中的当前数据包,以及该序列号之前的数据包。
8.根据权利要求7所述的IB网络链路层的报文重传装置,其特征在于,所述响应单元,进一步用于:
在向所述链路层发送端反馈NAK响应之后,根据所述NAK响应对应的当前数据包的序列号,由所述链路层发送端清除所述重传缓存中的当前数据包的序列号之前的数据包。
9.根据权利要求6所述的IB网络链路层的报文重传装置,其特征在于,所述响应单元,进一步用于:
记录同一数据包发送失败的次数,当失败次数超过预定义阈值时,强制物理层重新进行链路训练。
10.根据权利要求6所述的IB网络链路层的报文重传装置,其特征在于,所述响应单元,进一步用于:
当所述链路层接收端成功接收到有效的数据包时,将NAK完成标志位清零,当所述链路层接收端完成NAK响应的生成时,将所述NAK完成标志位置位,禁止所述链路层接收端生成其他NAK报文。
CN202311740094.1A 2023-12-15 2023-12-15 一种ib网络链路层的报文重传方法和装置 Pending CN117792571A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311740094.1A CN117792571A (zh) 2023-12-15 2023-12-15 一种ib网络链路层的报文重传方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311740094.1A CN117792571A (zh) 2023-12-15 2023-12-15 一种ib网络链路层的报文重传方法和装置

Publications (1)

Publication Number Publication Date
CN117792571A true CN117792571A (zh) 2024-03-29

Family

ID=90390072

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311740094.1A Pending CN117792571A (zh) 2023-12-15 2023-12-15 一种ib网络链路层的报文重传方法和装置

Country Status (1)

Country Link
CN (1) CN117792571A (zh)

Similar Documents

Publication Publication Date Title
Balakrishnan et al. Explicit loss notification and wireless web performance
US8842528B2 (en) System and method for improving transport protocol performance in communication networks having lossy links
US7706405B2 (en) System for efficient recovery of Node-B buffered data following MAC layer reset
US8233431B2 (en) WCDMA uplink HARQ operation during the reconfiguration of the TTI length
US20080195912A1 (en) Method of communicatoin
US6961327B2 (en) TCP aware local retransmissioner scheme for unreliable transmission network
US6711128B1 (en) System and method for improving transport protocol performance in communication networks having lossy links
EP1909468B1 (en) Method and apparatus for backing up TCP connection
WO2007129856A1 (en) Retransmission apparatus and method for high-speed data processing
KR20030054981A (ko) 이동 통신 기지국의 티씨피 성능 향상 장치
CN103647625B (zh) 一种基于链路的数据可靠传输方法
CN107104902B (zh) 一种rdma数据传输的方法、相关装置与系统
US6983409B1 (en) Method of repeat transmission of messages in a centrally controlled communication network
KR20130065619A (ko) 송신 노드로부터 목적지 노드로의 데이터 전송 방법
US8219867B2 (en) Forward feedback for UL macrodiversity
US8381057B2 (en) Seamless change of retransmission and rescheduling queues in a communication system
CN101309129B (zh) 针对单独数据包或最后一个数据包的重传控制方法和系统
JP2005244897A (ja) 信頼性のある通信方法及びその装置
JP2000349742A (ja) 通信端末装置、基地局装置及び無線通信方法
US8185795B1 (en) Side channel for forward error correction used with long-haul IP links
CN117792571A (zh) 一种ib网络链路层的报文重传方法和装置
JP2006191368A (ja) ネットワーク伝送装置
CN101552658A (zh) 一种发送状态报告的方法和装置
West et al. TCP enhancements for heterogeneous networks
CN116743324B (zh) 数据传输方法、装置、接收端、存储介质、系统及服务器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination