D-SACK的确定方法、处理器与通信系统技术方案

技术编号:35061985 阅读:20 留言:0更新日期:2022-09-28 11:16
本申请提供了一种D

【技术实现步骤摘要】
D

SACK的确定方法、处理器与通信系统


[0001]本申请涉及通信领域,具体而言,涉及一种D

SACK的确定方法、计算机可读存储介质、处理器与通信系统。

技术介绍

[0002]D

SACK(Duplicate

SACK,重复选择确认)用于表示TCP的SACK(Selective Acknowledgement,选择确认)报文中携带了接收端收到的重复数据段信息,它一般是由无效重传或者虚假重传引起的。IETF RFC2883定义了TCP SACK及D

SACK的标准。D

SACK的目的是为了更好地进行数据传输的流量控制,主要有以下几个用处:
[0003]1)、用于判断是发送的数据包丢失还是返回的ACK包丢失;
[0004]2)、用于判断数据包在传输过程中是否被路由器复制并转发;
[0005]3)、用于判断丢包检测算法是否存在问题导致发生无效重传。
[0006]IETF RFC2883所定义的D

SACK实现适用于TCP(传输控制协议,Transmission Control Protocol),而对于基于UDP(用户数据报协议,User Datagram Protocol)等其他协议构建的传输协议,由于网络数据包的定义格式以及传输算法的实现流程和TCP协议存在较大的差异,因此,IETF RFC2883所定义的D

SACK便不再适用
[0007]因此,亟需一种能够对基于UDP等其他协议构建的传输协议进行D

SACK检测的方法。
[0008]在
技术介绍
部分中公开的以上信息只是用来加强对本文所描述技术的
技术介绍
的理解,因此,
技术介绍
中可能包含某些信息,这些信息对于本领域技术人员来说并未形成在本国已知的现有技术。

技术实现思路

[0009]本申请的主要目的在于提供一种D

SACK的确定方法、计算机可读存储介质、处理器与通信系统,以解决现有技术中难以对基于UDP等其他协议构建的传输协议进行D

SACK检测的问题。
[0010]根据本专利技术实施例的一个方面,提供了一种D

SACK的确定方法,包括:在发送端与接收端建立通信连接的情况下,所述发送端将多个数据包发送至所述接收端,所述数据包包括根据所述接收端的业务请求信息而生成的业务响应数据和第一包号;所述发送端接收所述接收端发送的多个ACK包,并对所述ACK包进行解析和处理,得到第一目标信息,所述第一目标信息至少包括第二包号和是否接收信息,所述是否接收信息为所述接收端是否已经接收到所述数据包所携带的所述业务响应数据的信息;在所述数据包的所述第一包号与所述第二包号相同的情况下,确定所述接收端已接收到所述第一包号对应的所述数据包,并根据所述是否接收信息,确定所述ACK包是否携带有D

SACK信息。
[0011]可选地,根据所述是否接收信息,确定所述ACK包是否携带有D

SACK信息,包括:在所述是否接收信息为已接收的情况下,确定所述ACK包携带有所述D

SACK信息,并确定与所
述第二包号对应的所述数据包为无效重传包;在所述是否接收信息为未接收的情况下,确定所述ACK包不携带有所述D

SACK信息。
[0012]可选地,所述发送端包括元数据管理队列,所述元数据管理队列中有多个所述数据包,每一个所述数据包均具有第二目标信息,所述第二目标信息至少包括所述第一包号、父包号、子包号和接收标志信息,所述接收标志信息用于表征所述发送端发送的所述数据包所携带的所述业务响应数据是否已被所述接收端接收到,在所述是否接收信息为未接收的情况下,确定所述ACK包不携带有所述D

SACK信息之后,所述确定方法还包括:将所述数据包的所述接收标志信息更新为已接收。
[0013]可选地,在将所述数据包的所述接收标志信息更新为已接收之后,所述确定方法还包括:在所述数据包的所述父包号为0的情况下,确定所述发送端发送至所述接收端的所述数据包为初传包;在所述数据包的所述父包号不为0的情况下,确定所述发送端发送至所述接收端的所述数据包为所述重传包。
[0014]可选地,在所述数据包的所述父包号为0的情况下,确定所述发送端发送至所述接收端的所述数据包为所述初传包之后,所述确定方法还包括:确定所述子包号是否为0,在所述子包号不为0的情况下,将所述子包号对应的所述数据包确定为所述重传包,并将所述重传包的所述接收标志信息更新为已接收。
[0015]可选地,在所述数据包的所述父包号不为0的情况下,确定所述发送端发送至所述接收端的所述数据包为所述重传包之后,所述确定方法还包括:将所述父包号对应的所述数据包确定为所述初传包,并所述初传包的所述接收标志信息更新为已接收,并将所述子包号对应的所述数据包确定为所述重传包,并将所述重传包的所述接收标志信息更新为已接收。
[0016]可选地,所述发送端包括元数据管理队列,所述元数据管理队列中有多个所述数据包,每一个所述数据包均具有第二目标信息,所述第二目标信息至少包括所述第一包号、父包号、子包号和接收标志信息,所述接收标志信息用于表征所述发送端发送的所述数据包所携带的所述业务响应数据是否已被所述接收端接收到,在所述发送端将多个数据包发送至所述接收端之前,所述确定方法还包括:在所述数据包为重传包的情况下,执行:将所述重传包的所述父包号设置为对应的初传包的所述第一包号、将所述重传包的所述子包号设置为0、将所述重传包的所述第一包号设置为所述初传包的所述子包号、将所述重传包的所述接收标志信息设置为未接收;在所述数据包不为重传包的情况下,将所述数据包的所述父包号设置为0以及将所述子包号设置为0,并将所述数据包的所述接收标志信息设置为未接收。
[0017]根据本专利技术实施例的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序执行任意一种所述的确定方法。
[0018]根据本专利技术实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行任意一种所述的确定方法。
[0019]根据本专利技术实施例的再一方面,还提供了一种通信系统,包括:发送端,用于执行任意一种所述的确定方法;接收端,与所述发送端通信连接。
[0020]在本专利技术实施例中,所述的D

SACK的确定方法中,首先,在发送端与接收端建立通信连接的情况下,发送端将多个数据包发送至接收端,其中,数据包包括根据接收端的业务
请求信息而生成的业务响应数据和第一包号;然后,发送端对接收到的接收端发送的多个ACK包进行解析和处理,得到第一目标信息,其中,所述第一目标信息至少包括第二包号和是否接收信息;最后,在数据包的第一包号与解本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种D

SACK的确定方法,其特征在于,包括:在发送端与接收端建立通信连接的情况下,所述发送端将多个数据包发送至所述接收端,所述数据包包括根据所述接收端的业务请求信息而生成的业务响应数据和第一包号;所述发送端接收所述接收端发送的多个ACK包,并对所述ACK包进行解析和处理,得到第一目标信息,所述第一目标信息至少包括第二包号和是否接收信息,所述是否接收信息为所述接收端是否已经接收到所述数据包所携带的所述业务响应数据的信息;在所述数据包的所述第一包号与所述第二包号相同的情况下,确定所述接收端已接收到所述第一包号对应的所述数据包,并根据所述是否接收信息,确定所述ACK包是否携带有D

SACK信息。2.根据权利要求1所述的确定方法,其特征在于,根据所述是否接收信息,确定所述ACK包是否携带有D

SACK信息,包括:在所述是否接收信息为已接收的情况下,确定所述ACK包携带有所述D

SACK信息,并确定与所述第二包号对应的所述数据包为重传包;在所述是否接收信息为未接收的情况下,确定所述ACK包不携带有所述D

SACK信息。3.根据权利要求2所述的确定方法,其特征在于,所述发送端包括元数据管理队列,所述元数据管理队列中有多个所述数据包,每一个所述数据包均具有第二目标信息,所述第二目标信息至少包括所述第一包号、父包号、子包号和接收标志信息,所述接收标志信息用于表征所述发送端发送的所述数据包所携带的所述业务响应数据是否已被所述接收端接收到,在所述是否接收信息为未接收的情况下,确定所述ACK包不携带有所述D

SACK信息之后,所述确定方法还包括:将所述数据包的所述接收标志信息更新为已接收。4.根据权利要求3所述的确定方法,其特征在于,在将所述数据包的所述接收标志信息更新为已接收之后,所述确定方法还包括:在所述数据包的所述父包号为0的情况下,确定所述发送端发送至所述接收端的所述数据包为初传包;在所述数据包的所述父包号不为0的情况下,确定所述发送端发送至所述接...

【专利技术属性】
技术研发人员:陈伟龙陈文生
申请(专利权)人:网宿科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1