CN110958084A - 传输确认报文的方法和通信设备 - Google Patents
传输确认报文的方法和通信设备 Download PDFInfo
- Publication number
- CN110958084A CN110958084A CN201811134342.7A CN201811134342A CN110958084A CN 110958084 A CN110958084 A CN 110958084A CN 201811134342 A CN201811134342 A CN 201811134342A CN 110958084 A CN110958084 A CN 110958084A
- Authority
- CN
- China
- Prior art keywords
- data
- field
- bytes
- acknowledgement
- message
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1642—Formats specially adapted for sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/04—Error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1628—List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1809—Selective-repeat protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
Abstract
本申请提供了传输确认报文的方法和通信设备。该方法包括:第一设备接收第二设备发送的数据;该第一设备向该第二设备发送该确认报文,该确认报文包括确认字段,该确认字段携带K组数据报文的数据长度,该数据长度随着第一设备接收/丢失的每组数据报文包含的数据的数量变化而变化。上述技术方案中,通过在确认报文中携带确认字段来明确指示第二设备需要重传的数据报文,可以减小资源浪费,并且根据每组数据报文的数据长度动态调整表示一组数据报文所需的字节数,能够使得确认报文占用较小的空间,从而提高宽带利用率。
Description
技术领域
本申请涉及通信领域,并且更具体地,涉及传输确认报文的方法和通信设备。
背景技术
可靠性传输协议(例如传输控制协议(transmission control protocol,TCP))通常包含报文确认机制,用来反馈数据报文已经被接收端成功接收、或协助发送端进行丢包重传。可靠性传输协议通过以下规则来保证数据在网络中的可靠传输:
1)可靠性传输协议为每个数据报文分配一个序列号,该序列号保证了数据报文从发送端到接收端的按序接收。在接收端收到数据报文后,会生成并发送一个包含相应序列号(可称为确认序列号)的确认报文(acknowledgment,ACK),表示相应数据报文已经成功被接收端接收;
2)如果发送端在合理的时间内未收到接收端的确认报文,那么发送端假设数据报文已丢失,触发数据报文重传机制。
以上过程说明了确认报文是如何协助可靠性传输协议进行数据报文达到的确认和协助完成重传的。但是确认报文仅仅只包含确认序列号,接收端在利用确认报文进行报文重传时,会面临着不能明确重传哪些数据报文的问题:
1)只重传超时的数据报文:对于超时的数据报文之后发送的数据报文都能够正常接收的状况,这种重传方式能提高重传效率;但是对于数据报文大量丢失的情形,发送端就需要一个个等待数据报文超时,然后接连进行报文重传,造成时间和带宽的大量浪费;
2)重传超时的数据报文以及之后发送的所有数据报文:在超时的数据报文之后发送的所有数据报文都丢失的情形下,这种重传方法重传效率很高;但是如果仅仅只是造成超时的那个数据报文丢失,重传之后的所有数据报文则会造成流量的严重浪费。
因此,不能明确重传哪些数据报文的问题亟待解决。
发明内容
本申请提供传输确认报文的方法和通信设备,能够明确需要重传的数据报文,从而减小资源浪费。
第一方面,本申请提供了一种传输确认报文的方法,该方法包括:第一设备接收第二设备发送的数据,其中该数据包括N个数据报文;该第一设备向该第二设备发送确认报文,该确认报文包括确认字段,该确认字段包括第一字段和第二字段,该第二字段包括K个位置和K个长度,该K个位置中的第i个位置为K组数据报文中的第i组数据报文的起始字节的位置或结束字节的位置,该K个长度中的第i个长度为该第K组数据报文中的第i组数据报文的长度,该K组数据报文中的每组数据报文包括一个数据报文或者多个连续的数据报文,该每组数据报文包括一个数据报文或者多个连续的数据报文属于该N个数据报文,i=1,……,K,该第一字段用于指示该K值。
上述技术方案中,通过在确认报文中携带确认字段来明确指示第二设备需要重传的数据报文,可以减小资源浪费。
此外,上述技术方案中,在确认字段,使用起始位置或结束位置以及长度来表示一组数据报文,且该数据长度随着第一设备接收/丢失的每组数据报文包含的数据的数量变化而变化,使得第一设备能够根据每组数据报文的数据长度动态调整表示一组数据报文所占的字节数,能够使得确认报文占用较小的空间,从而提高宽带利用率。
在一种可能的实现方式中,该起始位置为起始数据报文的序列号或起始字节的序列号,该结束位置为结束数据报文的序列号或结束字节的序列号。
上述技术方案中,使用数据报文的序列号或字节的序列号来表示位置,易于实现。
在一种可能的实现方式中,该长度为相对于该起始数据报文或者该结束数据报文的序列号偏移量,或者相对于该起始字节或者该结束字节的序列号偏移量。
上述技术方案中,结合起始位置或结束位置,使用偏移量,来表示一组数据报文,这样可以避免由于序列号不断叠加而引起的数据长度数值较大的问题,能够使得确认报文占用较小的空间,从而提高宽带利用率。
在一种可能的实现方式中,该第一字段包括该K值。
上述技术方案中,第一字段携带该K值,可以直接指示第二设备如何读取确认字段的内容,进而使第二设备正确解析该确认报文。
在一种可能的实现方式中,该第一字段包括第一字节数,该第一字节数为该确认字段所占的字节数。
上述技术方案中,第一字段携带该第一字节数,可以间接指示第二设备如何读取确认字段的内容,进而使第二设备正确解析该确认报文。
在一种可能的实现方式中,该第一字段还包括第二字节数,该第二字节数为表示一个该长度所占的字节数。
上述技术方案中,第二字节数随表示一个该长度所占的字节数变化而变化,可以动态调整表示一组数据报文所占的字节数,从而指示第二设备正确解析该确认报文。
在一种可能的实现方式中,该第一字段还包括第二字节数,该第二字节数为用于表示一个该位置与一个该长度共占的字节数。通过上述技术方案,第二设备可以正确解析该确认报文。
在一种可能的实现方式中,该表示一组数据报文的该长度所占的字节数为表示该K个长度中最大的长度所占的字节数。
上述技术方案中,该表示一组数据报文的该长度所占的字节数为表示该K个长度中最大的长度所占的字节数,能够在保证正确表示任意一组数据报文的前提下,减小确认报文占用的空间。
在一种可能的实现方式中,该确认字段还包括第三字段,该第三字段用于指示该确认字段的类型。
上述技术方案中,通过第三字段指示确认字段的类型,可以便于第二设备确定解析该确认报文的方法,进而正确解析该确认报文。
在一种可能的实现方式中,该K组数据报文为成功接收的数据报文。
上述技术方案中,通过向第二设备指示已经成功接收的数据报文,间接指示第二设备需要重传的数据报文,可以明确需要重传的数据报文,从而减小资源浪费。
在一种可能的实现方式中,该K组数据报文为未成功接收的数据报文。
上述技术方案中,通过向第二设备指示未成功接收的数据报文,直接指示第二设备需要重传的数据报文,可以明确需要重传的数据报文,从而减小资源浪费。
第二方面,本申请提供了一种传输确认报文的方法,该方法包括:第二设备向第一设备发送数据,其中该数据包括N个数据报文;该第二设备接收该第一设备发送的确认报文,该确认报文包括确认字段,该确认字段包括第一字段和第二字段,该第二字段包括K个位置和K个长度,该K个位置中的第i个位置为K组数据报文中的第i组数据报文的起始位置或结束位置,该K个长度中的第i个长度为该第K组数据报文中的第i组数据报文的长度,该K组数据报文中的每组数据报文包括一个数据报文或者多个连续的数据报文,该每组数据报文包括一个数据报文或者多个连续的数据报文属于该N个数据报文,i=1,……,K,该第一字段用于指示该K值。
上述技术方案中,通过在确认报文中携带确认字段来明确指示第二设备需要重传的数据报文,可以减小资源浪费。
此外,上述技术方案中,在确认字段,使用起始位置或结束位置以及长度来表示一组数据报文,且该数据长度随着第一设备接收/丢失的每组数据报文包含的数据的数量变化而变化,使得第一设备能够根据每组数据报文的数据长度动态调整表示一组数据报文所占的字节数,能够使得确认报文占用较小的空间,从而提高宽带利用率。
在一种可能的实现方式中,该起始位置为起始数据报文的序列号或起始字节的序列号,该结束位置为结束数据报文的序列号或结束字节的序列号。
上述技术方案中,使用数据报文的序列号或字节的序列号来表示位置,易于实现。
在一种可能的实现方式中,该长度为相对于该起始数据报文或者该结束数据报文的序列号偏移量,或者相对于该起始字节或者该结束字节的序列号偏移量。
上述技术方案中,结合起始位置或结束位置,使用偏移量,来表示一组数据报文,这样可以避免由于序列号不断叠加而引起的数据长度数值较大的问题,能够使得确认报文占用较小的空间,从而提高宽带利用率。
在一种可能的实现方式中,该第一字段包括该K值。
上述技术方案中,第一字段携带该K值,可以直接指示第二设备如何读取确认字段的内容,进而使第二设备正确解析该确认报文。
在一种可能的实现方式中,该第一字段包括第一字节数,该第一字节数为该确认字段所占的字节数。
上述技术方案中,第一字段携带该第一字节数,可以间接指示第二设备如何读取确认字段的内容,进而使第二设备正确解析该确认报文。
在一种可能的实现方式中,该第一字段还包括第二字节数,该第二字节数为表示一个该长度所占的字节数。
上述技术方案中,第二字节数随表示一个该长度所占的字节数变化而变化,可以动态调整表示一组数据报文所占的字节数,从而指示第二设备正确解析该确认报文。
在一种可能的实现方式中,该第一字段还包括第二字节数,该第二字节数为用于表示一个该位置与一个该长度共占的字节数。通过上述技术方案,第二设备可以正确解析该确认报文。
在一种可能的实现方式中,该表示一组数据报文的该长度所占的字节数为表示该K个长度中最大的长度所占的字节数。
上述技术方案中,该表示一组数据报文的该长度所占的字节数为表示该K个长度中最大的长度所占的字节数,能够在保证正确表示任意一组数据报文的前提下,减小确认报文占用的空间。
在一种可能的实现方式中,该确认字段还包括第三字段,该第三字段用于指示该确认字段的类型。
上述技术方案中,通过第三字段指示确认字段的类型,可以便于第二设备确定解析该确认报文的方法,进而正确解析该确认报文。
在一种可能的实现方式中,该K组数据报文为成功接收的数据报文。
上述技术方案中,通过向第二设备指示已经成功接收的数据报文,间接指示第二设备需要重传的数据报文,可以明确需要重传的数据报文,从而减小资源浪费。
在一种可能的实现方式中,该K组数据报文为未成功接收的数据报文。
上述技术方案中,通过向第二设备指示未成功接收的数据报文,直接指示第二设备需要重传的数据报文,可以明确需要重传的数据报文,从而减小资源浪费。
第三方面,本申请提供了一种通信设备,包括用于执行第一方面或第一方面任意一种实现方式中的模块。
第四方面,本申请提供了一种通信设备,包括用于执行第二方面或第二方面任意一种实现方式中的模块。
第五方面,本申请提供了一种芯片,包括处理器和收发器,用于执行第一方面或第一方面任意一种实现方式所述的方法。
第六方面,本申请提供了一种芯片,包括处理器和收发器,用于执行第二方面或第二方面任意一种实现方式所述的方法。
第七方面,本申请提供了一种通信设备,包括处理器和收发器,用于执行第一方面或第一方面任意一种实现方式所述的方法。
第八方面,本申请提供了一种通信设备,包括处理器和收发器,用于执行第二方面或第二方面任意一种实现方式所述的方法。
第九方面,本申请提供了一种计算机可读存储介质,包括指令,当其在通信设备上运行时,使得通信设备执行第一方面或第一方面任意一种实现方式所述的方法。
第十方面,本申请提供了一种计算机可读存储介质,包括指令,当其在通信设备上运行时,使得通信设备执行第二方面或第二方面任意一种实现方式所述的方法。
第十一方面,本申请提供了一种计算机程序产品,当其在通信设备上运行时,使得通信设备执行第一方面或第一方面任意一种实现方式所述的方法。
第十二方面,本申请提供了一种计算机程序产品,当其在通信设备上运行时,使得通信设备执行第二方面或第二方面任意一种实现方式所述的方法。
附图说明
图1是TCP确认报文机制的示意图。
图2是TCP报文重传机制的示意图。
图3是本申请实施例的传输确认报文的方法的示意性流程图。
图4是TCP确认报文的选项字段的位置的示意图。
图5是数据传输过程中一个大量丢包的情形的示意图。
图6是分别采用本申请实施例的方法和另一种方法的2个实例。
图7是根据本申请实施例提供的通信设备的示意性结构图。
图8是根据本申请另一实施例提供的通信设备的示意性结构图。
图9是根据本申请另一实施例提供的通信设备的示意性结构图。
图10是根据本申请另一实施例提供的通信设备的示意性结构图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本申请可以应用于各种应用可靠性传输协议的场景,例如,应用TCP的各种场景。本申请也可以应用于其他场景,只要该场景中存在某一端设备需要指示另一端设备需要重传哪些报文,该某一端设备需要按照某种方式解读并按照该另一端设备的指示重传报文即可,例如增加了确认机制的UDP的各种场景。
本申请对通信设备的类型不作具体限定,例如可以是应用可靠性传输协议的通信设备。应用可靠性传输协议的通信设备可以是电脑、手机、平板电脑等。
为了方便理解本申请实施例的方案,首先对本申请涉及到的概念及相关技术进行描述。
确认报文(acknowledge,ACK):以TCP确认报文机制为例对确认报文进行描述,图1是TCP确认报文机制的示意图。如图1所示,当数据从主机A发送到主机B时,主机B会返给主机A一个确认应答,例如图1中主机A向主机B发送序列号为1~1000的数据报文,主机B在成功接收序列号为1~1000的数据报文后,会向主机A发送一个包含确认序列号1001的确认应答,也就是确认报文,来表示期待的下一个数据报文的序列号为1001,主机A解析该确认应答后,向主机B发送序列号1001~2000的数据报文,以此类推;如果主机A在合理的时间内未收到主机B发送的确认报文,那么主机A假设数据报文已丢失,触发数据报文重传机制。
报文重传:同样以TCP报文重传机制为例对报文重传进行描述,图2是TCP报文重传机制的示意图。如图2所示,当主机A连续收到三个确认序列号均为100的确认报文时,主机A判断序列号为100的数据报文在传输过程中丢失,进行丢包重传。
但主机A将面临是只重传序列号为100数据报文,还是同时重传在序列号为100数据报文之后发送的序列号为120、135和141的数据报文的问题。
如果只重传序列号为100数据报文,在序列号为120、135和141的数据报文传输成功的情况下,能够提高重传效率;但是在序列号为120、135和141的数据报文同样丢失的情况下,主机A需要一个个等待序列号为120、135和141的数据报文超时,才能分别进行报文重传,这样会造成时间和带宽的大量浪费。
如果重传序列号为100的数据报文以及之后发送的序列号为120、135和141的数据报文,在序列号为120、135和141的数据报文都丢失的情况下,能够提高重传效率高;但是在只有序列号为100的数据报文丢失的情况下,则会造成流量的严重浪费。
因此,不管是只重传超时的数据报文,还是重传超时的数据报文以及之后发送的所有数据报文,在一定情况下都会造成传输资源的大量浪费。
本申请提供传输确认报文的方法,能够明确需要重传的数据报文,从而减小资源浪费。
图3是本申请实施例的传输确认报文的方法的示意性流程图。图3所示的方法包括以下内容的至少部分内容。
在310中,第二设备向第一设备发送数据,其中该数据包括N个数据报文。
在320中,该第一设备向该第二设备发送确认报文,该确认报文包括确认字段,该确认字段包括第一字段和第二字段,该第二字段包括K个位置和K个长度,该K个位置中的第i个位置为K组数据报文中的第i组数据报文的起始位置或结束位置,该K个长度中的第i个长度为该第K组数据报文中的第i组数据报文的长度,该K组数据报文中的每组数据报文包括一个数据报文或者多个连续的数据报文,所述每组数据报文包括一个数据报文或者多个连续的数据报文属于该N个数据报文,i=1,……,K,该第一字段用于指示该K值。
本申请实施例对第一设备和第二设备的类型不做具体限定,第一设备可以是任意的支持可靠性传输协议或确认机制的设备,例如,电脑、手机、平板电脑等。
应理解,当第一设备成功接收全部的数据报文时,确认报文可以没有确认字段。
上述技术方案中,通过在确认报文中携带确认字段来明确指示第二设备需要重传的数据报文,可以减小资源浪费。
此外,上述技术方案中,在确认字段,使用起始位置或结束位置以及长度来表示一组数据报文,该长度随着第一设备接收/丢失的每组数据报文包含的数据的数量变化而变化,可以根据每组数据报文的长度动态调整表示一组数据报文所需的字节数,能够使得确认报文占用较小的空间,从而提高宽带利用率。
下面分别对310和320进行描述。
在310中,第二设备向第一设备发送数据,其中该数据包括N个数据报文。
第一设备接收该N个数据报文。应理解,第一设备可能成功接收了全部N个数据报文,也可能只成功接收了N个数据报文中的部分数据报文。
每个数据报文可以由多个字节的数据构成。
在320中,该第一设备向该第二设备发送确认报文,该确认报文包括确认字段,该确认字段包括第一字段和第二字段,该第二字段包括K个序列号和K个长度,该K个序列号中的第i个序列号为K组数据报文中的第i组数据报文的起始位置或结束位置,该K个长度中的第i个长度为该第K组数据报文中的第i组数据报文的长度,该K组数据报文中的每组数据报文包括一个数据报文或者多个连续的数据报文,该每组数据报文包括一个数据报文或者多个连续的数据报文属于该N个数据报文,i=1,……,K,该第一字段用于指示所述K值。
第二设备接收并解析第一设备发送的确认报文,然后按照确认报文中的内容重传数据报文。
第一设备通过确认报文指示第二设备需要重传的数据报文。
需要重传的数据报文可以存在以下两种情况。
情况1:
单个数据报文,例如,4号数据报文。
情况2:
多个连读数据报文,例如,4-7号数据报文。
具体地,第一设备通过确认报文中的确认字段指示第二设备需要重传的数据报文。
可选地,该确认字段可以位于可靠性传输协议报文的预留字段。
例如,对于TCP,可以位于TCP确认报文的选项字段,如图4所示。
可选地,该确认字段可以是可靠性传输协议报文中新增加的字段。
更具体地,第一设备通过确认字段中的第二字段指示第二设备需要重传的数据报文。
本申请实施例使用K组数据报文的K个起始位置或K个结束位置,以及K个长度来表示该K组数据报文,其中K组数据报文可以是成功接收的数据报文,也可以是未成功接收的数据报文。
可选地,起始位置可以用一组数据报文中的起始数据报文的序列号来表示,结束位置可以用一组数据报文中的结束数据报文的序列号来表示,长度可以是相对于起始数据报文或者结束数据报文的序列号偏移量(此时数据报文可以是连续编号的,例如,4号数据报文、5号数据报文、6号数据报文、)。也就是说,使用一组数据报文中的起始数据报文的序列号或者结束数据报文的序列号,以及相对于起始数据报文或者结束数据报文的序列号偏移量来表示该组数据报文。例如,一组数据报文包括4-9号数据报文,那么可表示为(4,5)或者(9,5);一组数据报文包括4号数据报文,那么可表示为(4,0)。
可选地,起始位置可以用一组数据报文中的起始字节的序列号来表示,结束位置可以用一组数据报文中的结束字节的序列号来表示,长度可以是相对于起始字节或者结束字节的序列号偏移量。也就是说,使用一组数据报文中的起始字节的序列号或者结束字节的序列号,以及相对于起始字节或者结束字节的序列号偏移量来表示该组数据报文。例如,一组数据报文包括连续的两个数据报文分别为101号和151号数据报文,两个数据报文的数据长度为50,那么可表示为(101,99)或(200,99);一组数据报文包括101号数据报文,101号数据报文的数据长度为50,那么可表示为(101,49)或(150,49)。
上述技术方案中,使用数据报文的序列号或字节的序列号来表示位置,易于实现,并且结合起始位置或结束位置,使用偏移量,来表示一组数据报文,这样可以避免由于序列号不断叠加而引起的数据长度数值较大的问题,能够使得确认报文占用较小的空间,从而提高宽带利用率。
可选地,起始位置可以用一组数据报文中的起始数据报文的序列号来表示,结束位置可以用一组数据报文中的结束数据报文的序列号来表示,长度可以是该组数据报文中数据报文的数量。也就是说,使用一组数据报文中的起始数据报文的序列号或者结束数据报文的序列号,以及该组数据报文中的数据报文的数量来表示该组数据报文。例如,一组数据报文包括4-9号数据报文,那么可表示为(4,6)或者(9,6);一组数据报文包括4号数据报文,那么可表示为(4,1)。
可选地,起始位置可以用一组数据报文中的起始字节的序列号来表示,结束位置可以用一组数据报文中的结束字节的序列号来表示,长度可以是该组数据报文中字节数。也就是说,使用一组数据报文中的起始数据报文的序列号或者结束数据报文的序列号,以及该组数据报文中的字节数来表示该组数据报文。例如,一组数据报文包括连续的两个数据报文分别为101号和151号数据报文,两个数据报文的数据长度为50,那么可表示为(101,100)或(200,100);一组数据报文包括101号数据报文,101号数据报文的数据长度为50,那么可表示为(101,50)或(150,50)。
上述技术方案中,使用数据报文的序列号或字节的序列号来表示位置,易于实现,并且结合起始位置或结束位置,使用数据报文的数量或者字节数,来表示一组数据报文,这样可以避免由于序列号不断叠加而引起的数据长度数值较大的问题,能够使得确认报文占用较小的空间,从而提高宽带利用率。
上述技术方案中,对于数据报文是连续编号的情况,第二设备可以保存着每个数据报文相应的字节的序列号以及序列号偏移量,以便根据数据报文的序列号找到相应字节的序列号。
本申请实施例的起始位置还可以是起始数据段的序列号、起始数据包的序列号、起始比特(bit)的序列号、用于传输一组数据报文的数据帧中的起始帧的编号、用于传输一组数据报文的数据帧中的起始子帧的编号,或者对第二设备向第一设备发送的数据进行分组得到的任意可能的大小的组的起始组的组号等。
本申请实施例的结束位置还可以是结束数据段的序列号、结束数据包的序列号、结束比特(bit)的序列号、用于传输一组数据报文的数据帧中的结束帧的编号、用于传输一组数据报文的数据帧中的结束子帧的编号,或者对第二设备向第一设备发送的数据进行分组得到的任意可能的大小的组的结束组的组号等。
本申请实施例的长度还可以是相对于起始数据段的或者结束数据段的序列号偏移量、相对于起始数据包或者结束数据包的序列号偏移量、相对于起始比特(bit)或者结束比特(bit)的序列号偏移量、相对于起始帧或者结束帧的编号的偏移量、相对于起始子帧或者结束子帧的编号偏移量、相对于起始组或者结束组的组号偏移量;还可以是数据段数量、数据包的数量、比特(bit)数、帧的数量、子帧的数量、组数等。
在另一种可能的实现方式中,可以使用起始字节的序列号和结束字节的序列号来表示一个单个数据报文或者一组连续的多个数据报文。
例如,101号数据报文,数据长度为50,使用起始字节的序列号和结束字节的序列号表示为(101,150);连续的两个数据报文分别为101号和151号数据报文,101号数据报文的数据长度为50,102号数据报文的数据长度也为50,使用起始字节的序列号和结束字节的序列号表示为(101,200)。
相较于使用起始字节的序列号和结束字节的序列号来表示一个单个数据报文或者一组连续的多个数据报文,本申请的使用起始位置或者结束位置以及长度来表示一个单个数据报文或者一组连续的多个数据报文,可以占用较小的空间(因为数值较小,可以用较少的字节数来表示),从而节省资源。
此外,本申请的使用起始位置或者结束位置以及长度来表示一个单个数据报文或者一组连续的多个数据报文,还可以根据每组数据报文的数据长度动态调整表示一组数据报文所需的字节数,进一步减小确认报文的占据空间。
可选地,第二字段包括K个位置和K个长度,一个位置与一个长度可以表示上文的一个单个数据报文或者一组多个连续数据报文,可知第二字段可以指示K个单个数据报文,或者K组连续的多个数据报文,或者总数为K的单个数据报文和连续的多个数据报文,其中K为大于或者等于1的整数。
K个单个数据报文,或者K组连续数据报文,或者总数为K的单个数据报文和连续数据报文对应于K组数据报文。
可选地,第二字节中的第i个长度根据第i组数据报文的数据长度确定。
例如,第i组数据报文的数据长度小于或者等于256时,第i组数据报文的数据长度占用1个字节,该第i个长度为1;第i组数据报文的数据长度大于256且小于或者等于65535时,第i组数据报文的数据长度占用2个字节,该第i个长度为2;第i组数据报文的数据长度大于65535时,第i组数据报文的数据长度占用3个字节,该第i个长度为3,以此类推。
上述技术方案中,本申请实施例可以根据需要重传的数据报文的数据长度动态调整表示数据长度的占用的空间,避免空间浪费。
第一设备通过确认字段中的第一字段指示该K值,其中K值为第二字段可以指示的单个数据报文和多个连续数据报文的数量,K为大于或者等于1的整数。
可选地,第一字段包括该K值。
也就是说,第一字段通过携带该K值来指示第二设备该K值。
例如,在第一设备和第二设备已经约定好表示一个位置所占的字节数和一个长度所占的字节数的情况下,确认报文只需携带K值,就可以指示第二设备正确解析确认字段的内容。具体地,例如,在第一设备和第二设备已经约定好表示一个位置占的4个字节、一个长度占的2字节,确认字段携带的K值为2。
上述技术方案中,第一字段携带该K值,可以直接指示第二设备如何读取确认字段的内容,进而使第二设备正确解析该确认报文。
可选地,第一字段包括该K值和第二字节数,第二字节数为表示一个长度所占的字节数。
例如,在第一设备和第二设备已经约定好表示一个位置所占的字节数的情况下,确认报文通过携带该K值和第二字节数,就可以指示第二设备正确解析确认字段的内容。具体地,例如,在第一设备和第二设备已经约定好表示一个位置占的4个字节,确认字段携带的K值为2,第二字节数为2。
上述技术方案中,第一字段携带该K值,可以直接指示第二设备如何读取确认字段的内容,第二字节数随表示一个该长度所占的字节数变化而变化,可以动态调整表示一组数据报文所占的字节数和,从而指示第二设备正确解析该确认报文。
可选地,第一字段包括该K值和第二字节数,第二字节数为用于表示一个该位置与一个该长度共占的字节数。
例如,在第一设备和第二设备已经约定好表示一个位置所占的字节数的情况下,确认报文通过携带该K值和第二字节数,就可以指示第二设备正确解析确认字段的内容。具体地,例如,在第一设备和第二设备已经约定好表示一个位置占的4个字节、一个长度占的2字节,确认字段携带的K值为6。
上述技术方案中,第一字段携带该K值,可以直接指示第二设备如何读取确认字段的内容,第二字节数随表示一个该长度所占的字节数变化而变化,可以动态调整表示一组数据报文所占的字节数和,从而指示第二设备正确解析该确认报文。
可选地,第一字段包括第一字节数,该第一字节数表示该确认字段所占的字节数。
例如,在第一设备和第二设备已经约定好表示一个位置所占的字节数和一个长度所占的字节数的情况下,确认报文只需携带第一字节数,第二设备只需经过简单计算即可正确解析确认字段的内容。具体地,例如,在第一设备和第二设备已经约定好表示一个位置占的4个字节、一个长度占的2字节,确认字段携带的第一字节数为8。
上述技术方案中,第一字段携带该第一字节数,可以间接指示第二设备如何读取确认字段的内容,进而使第二设备正确解析该确认报文。
可选地,第一字段包括该第一字节数和该第二字节数,第二字节数为表示一个该长度所占的字节数。
例如,在第一设备和第二设备已经约定好表示一个位置所占的字节数的情况下,确认报文通过携带第一字节数和第二字节数,第二设备只需经过简单计算即可正确解析确认字段的内容。具体地,例如,在第一设备和第二设备已经约定好表示一个位置占的4个字节,确认字段携带的第一字节数为8、第二字节数为2。
上述技术方案中,第二字节数随表示一个该长度所占的字节数变化而变化,可以动态调整表示一组数据报文所占的字节数和,从而指示第二设备正确解析该确认报文。
此外,上述技术方案中,还可以根据需要重传的数据报文的数据长度动态调整K值,可以增强表达能力。
可选地,第一字段包括该第一字节数和该第二字节数,第二字节数为用于表示一个该位置与一个该长度共占的字节数。
例如,在第一设备和第二设备已经约定好表示一个位置所占的字节数的情况下,确认报文通过携带第一字节数和第二字节数,第二设备只需经过简单计算即可正确解析确认字段的内容。具体地,例如,在第一设备和第二设备已经约定好表示一个位置占的4个字节,确认字段携带的第一字节数为8、第二字节数为6。
上述技术方案中,第二字节数随表示一个该长度所占的字节数变化而变化,可以动态调整表示一组数据报文所占的字节数和,从而指示第二设备正确解析该确认报文。
此外,上述技术方案中,还可以根据需要重传的数据报文的数据长度动态调整K值,可以增强表达能力。
应理解,上述技术方案中,K组数据报文的位置和长度均使用相同的字节来表达,例如K组数据报文的位置均使用4个字节来表达,长度均使用2个字节来表达。
可选地,确认字段包括一个结束标识,用于指示确认字段的结束。此时,只要知道表示一个位置和一个长度所占的字节数,第二设备就可以正确解析确认字段。表示一个位置和一个长度所占的字节数可以预先约定好、也可以通过确认报文通知第二设备。应理解,此时,在表示一个位置和一个长度所占的字节数预先约定好的情况下,确认报文可以没有第一字段。
应理解,本申请实施例在构造第二字段时,表达第二字段中的每组数据报文占用的空间相同,这样可以避免由于占用的空间不同而引起的第二设备对确认字段内容的解析失误。
可选地,K值可以根据第二字节数确定。
例如,确认字段位于TCP选项字段,TCP选项字段最多为40个字节,如果第二字节数为6,那么K值最大为6。
上述技术方案中,本申请实施例可以根据需要重传的数据报文的数据长度动态调整K值,可以增强表达能力。
可选地,表示一组数据报文的该长度所占的字节数为表示该K个长度中最大的长度所占的字节数。
例如,K值为3时,实际表示第1组数据报文的位置需要4个字节,长度需要1个字节,共占5个字节数;实际表示第2组数据报文的位置需要4个字节,长度需要2个字节,共占6个字节数;实际表示第3组数据报文的位置需要4个字节,长度需要3个字节,共占7个字节数。第1-3组的长度均使用3个字节来表达,故第二字节数为7,并且在构造确认报文时,第1-3组数据报文的位置和长度均使用7个字节来表示。
上述技术方案中,表示一组数据报文的该长度所占的字节数为表示该K个长度中最大的长度所占的字节数,能够在保证正确表示任意一组数据报文的前提下,进一步减小确认报文占用的空间。
可选地,确认字段还包括第三字段,该第三字段用于指示该确认字段的类型。
例如,第三字段携带确认字段的类型编号。
上述技术方案中,通过第三字段指示确认字段的类型,可以便于第二设备确定解析该确认字段的方法,进而正确解析该确认字段。
可选地,确认报文还包括确认序列号,该确认序列号用于指示第二设备期待的下一个数据报文的序列号或者第一设备已经成功接收的数据报文的最大序列号。
可选地,该第一设备生成该确认报文。第一设备生成确认报文的方法包括以下两种。
方法1:
该第一设备根据成功接收的M个数据报文生成该确认报文,其中M小于N。
此时,K组数据报文为成功接收的数据报文,确认序列号为第二设备期待的下一个数据报文的序列号。
可选地,该第一设备可以不确定未成功接收的数据,由第二设备确定未成功发送的数据。
例如,第一设备通过确认报文指示第二设备第一设备成功接收的数据,第二设备根据该成功接收的数据确定需要重传的数据,也即第二设备未成功发送的数据,也即第一设备未成功接收的数据。
上述技术方案中,通过向第二设备指示已经成功接收的数据报文,间接指示第二设备需要重传的数据报文,可以明确需要重传的数据报文,从而减小资源浪费。
方法2:
第一设备根据成功接收的M个数据报文确定未成功接收的N-M个数据报文,再根据该未成功接收的N-M个数据报文的中K个位置和K个长度生成该确认报文。
此时,K组数据报文为未成功接收的数据报文,确认序列号为第一设备已经成功接收的数据报文的最大序列号。
上述技术方案中,通过向第二设备指示未成功接收的数据报文,直接指示第二设备需要重传的数据报文,可以明确需要重传的数据报文,从而减小资源浪费。
下面结合图5详细描述以上两种方法。如图5所示,第一设备成功接1-3号数据报文后,丢失了4-5号数据报文,之后又成功接收6-7号的数据报文,丢失了8-9号数据报文,最后成功接收10-12号数据报文。
采用方法1,第一设备回复给第二设备的确认报文关键内容为:ACK 4+6-7+10-12。其中,“ACK 4”代表确认序列号为4,表示第二设备期待的下一个数据报文的序列号为4;“6-7+10-12”为确认字段中的第二字段,表示虽然还没有成功接收4号数据报文,但第一设备已经成功接收后续6、7、10、11和12号数据报文;6-7和10-12分别为一组数据报文。当第一设备断定需进行丢包重传时(例如收到三个重复确认报文),发送端将依据确认序列号和确认字段的内容,放弃重传已经被认为成功接收的6-7号和10-12号数据报文,而依次对可能丢失的4-5号和8-9号数据报文进行比较精确的重传。
采用方法2,第一设备回复给第二设备的确认报文关键内容为:ACK 12+4-5+8-9。其中,“ACK 12”表示第一设备已经成功接收的数据报文的最大序列号为12;“4-5+8-9”表示虽然当前成功接收的数据报文的最大序列号为12,但在1-12号的所有数据报文中,4-5号和8-9号数据报文并没有被成功接收。当第二设备接收到该确认报文时,将按照确认报文中所指示数据报文的序列号进行丢包重传。
下面结合具体地例子对本申请实施例的方法进行更详细的描述。
应理解,下面的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。
本申请的确认报文的确认字段的一种构造方法为:
类型(1字节)+连续数据序列范围的总数量(4位)+每个连续数据序列范围所占字节数(4位)+起始字节的序列号(4字节)+数据长度(1字节:256或者2字节:65535…)
其中,类型可以对应于上文的第三字段,连续数据序列范围的总数量可以对应于上文的K值,每个连续数据序列范围所占字节数可以对应于上文的第二字节数,起始字节的序列号可以对应于上文的起始字节的序列号,数据长度可以对应于上文的长度。
数据长度部分所占用的字节数随着当前最大连续数据序列范围的变化而变化,最大可以为4字节,“1字节:256”的含义是连续数据序列范围长度小于256时,则数据长度占用字节数为1字节;类似的,“2字节:65535”表示连续数据序列范围长度大于256且小于或者等于65535时,则数据长度占用字节数为2字节,更长的“连续数据序列范围”以此类推。
上述技术方案中,根据连续接收/丢失数据序列范围的长度信息,动态调整确认报文中相关部分的占用长度和内容。连续数据序列范围小,则减少确认报文所占的字节数;连续数据序列范围大,则用更多字节的确认报文来表示。为了表达动态变化的连续的接收/丢失数据序列范围,本申请在确认报文中还新增每个连续数据序列范围的所占字节数和连续数据序列范围的总数量。
采用上述构造方法,确认字段所占的总长度可优化为:(2+L*N),5≤L≤8,其中N为连续数据序列范围的总数量,L的大小取决于最大的连续数据序列范围的数据长度,即连续数据范围的数据长度越长,所需数据长度则越大,确认字段占用空间就越多。
本申请实施例的确认字段的构造方法中连续数据序列范围的总数量和每个连续数据序列范围所占字节数分别用4位空间来表示。对于连续数据序列范围的总数量,由于确认字段所在的TCP选项的最大长度是40字节,减去控制字节2字节(类型字段1字节、连续数据序列范围的总数量和每个连续数据序列范围所占字节共占1字节),剩38字节;以最小的连续数据序列范围所占字节数为例(例如,起始字节的序列号4+数据长度1=5),则最大连续数据序列范围的总数量为38/5=7,因此用4位空间来表达连续数据序列范围的总数量是足够的。对于每个连续数据序列范围所占字节数,由于我们限制连续数据序列范围所占字节数的最大值为8字节,因此用4位空间来表达每个连续数据序列范围所占字节数也是足够的。
本申请实施例在构造每个连续数据序列范围时,使用表达最大的连续数据序列范围所需的空间。这样做的目的是为了防止由于连续数据序列范围大小不一致而引起的确认报文内容解析失误,副作用是可能引起一定空间浪费。
另一种确认字段的构造方法为:
类型(1字节)+长度(1字节)+起始字节的序列号(4字节)+结束字节的序列号(4字节)
其中,类型为确认报文的类型,起始字节的序列号为连续数据报文范围的起始字节的序列号,结束字节的序列号为连续数据序列范围的结束字节的序列号,一组起始字节的序列号和结束字节的序列号对应一个连续数据序列范围。
采用上述构造方法,确认字段所占的总长度为:2+8*N,其中N为连续数据序列范围的总数量。该构造方法固定采用8个字节表示一个连续数据序列范围。
以确认序列号为7778881,连续数据序列范围为7783261至7840201为例,采用上述两种确认报文的构造方法结果如下。
本申请:ACK:7778881+类型:*+连续数据序列范围的总数量:1+每个连续数据序列范围所占字节数:6+起始字节的序列号:7783261+数据长度:56940,其中*表示为新的确认字段的构造方法分配的新类型编号。
另一种方法:ACK:7778881+类型:5+长度:10+起始字节的序列号:7783261+结束字节的序列号:7840201。
可见在连续数据序列范围较小时,另一种方法会存在很大空间浪费,表达效率很低。确认报文中冗长的确认字段内容,不仅限制了确认报文中可以表达的额外接收(丢失)的连续数据序列范围的总数量,而且也限制了确认报文中其他功能选项的使用。以TCP选项字段为例,TCP选项字段的长度限制为40字节,该方法最多可以表达4个连续数据序列范围((40-2)/8=4.75);同时,除了确认字段以外,还有其他33种功能字段也同样使用TCP的选项字段,而冗长的确认字段内容也限制了这些功能的使用。
相较于另外一种方法中确认字段需要10个字节,本申请实施例的确认字段的构造方法的确认字段仅需8个字节。
更具体地,图6是分别采用本申请实施例的方法和另一种方法的2个实例。
第一个实例中,连续数据序列范围的数据长度超过了65535,因此数据长度字段需要3个字节的空间来表达。第二个实例中,存在两个连续数据序列范围,表示每个连续数据序列范围需要6个字节。可以看出,本申请实施例的确认字段的构造方法确能够有效的减少确认报文中确认字段占据的空间。
表1总结了随着连续数据序列范围数据长度的增长,采用本申请的方法构造的确认字段中的数据长度(data length,DL)部分也随着增长的情况下,本申请的方法构造的确认字段相比于另一种方法构造的确认字段,在空间节约和表达能力增加方面的提高情况。其中第一列以数据长度的占的字节数为标准,分析不同数据长度下能够支持的单个连续数据序列范围的长度最大值。第一行表示支持的连续数据序列范围的总数量,可见本申请的方法构造的确认字段最多可支持7个连续数据序列范围,而另一种方法构造的确认字段最多支持4个连续数据序列范围。最后一列为不同数据长度的情况下,本申请的方法构造的确认字段相比另一种方法构造的确认字段的平均空间节约率。
可见本申请的方法构造的确认字段,可以有效的减少确认报文信息所占的空间,提高确认报文空间利用率,从而减少上行带宽开销。
表1本申请的确认字段和另一种方法的确认字段效果对比
图7是根据本申请实施例提供的通信设备的结构框图。图7中的通信设备700可以对应于上文的第一设备。如图7所示,通信装置700包括接收模块701和发送模块702。
接收模块701,用于接收第二设备发送的数据,其中该数据包括N个数据报文。
发送模块702,用于向该第二设备发送确认报文,该确认报文包括确认字段,该确认字段包括第一字段和第二字段,该第二字段包括K个位置和K个长度,该K个位置中的第i个位置为K组数据报文中的第i组数据报文的起始字节位置或结束字节位置,该K个长度中的第i个长度为该第K组数据报文中的第i组数据报文的长度,该K组数据报文中的每组数据报文包括一个数据报文或者多个连续的数据报文,该每组数据报文包括一个数据报文或者多个连续的数据报文属于该N个数据报文,i=1,……,K,该第一字段用于指示该K值。
接收模块701可以由接收器实现。发送模块702可以由发送器实现。接收模块701和发送模块702的具体功能和有益效果可以参见图3所示的方法,在此就不再赘述。
图8是根据本申请另一实施例提供的通信设备的结构框图。图8中的通信设备800可以对应于上文的第二设备。如图8所示,通信装置800包括接收模块801和发送模块802。
发送模块802,用于向第一设备发送数据,其中该数据包括N个数据报文。
接收模块801,用于接收该第一设备发送的确认报文,该确认报文包括确认字段,该确认字段包括第一字段和第二字段,该第二字段包括K个位置和K个长度,该K个位置中的第i个位置为K组数据报文中的第i组数据报文的起始字节位置或结束字节位置,该K个长度中的第i个长度为该第K组数据报文中的第i组数据报文的长度,该K组数据报文中的每组数据报文包括一个数据报文或者多个连续的数据报文,该每组数据报文包括一个数据报文或者多个连续的数据报文属于该N个数据报文,i=1,……,K,该第一字段用于指示该K值。
接收模块801可以由接收器实现。发送模块802可以由发送器实现。接收模块801和发送模块802的具体功能和有益效果可以参见图3所示的方法,在此就不再赘述。
图9是本申请另一实施例提供的通信设备的示意性结构图。图9中的通信设备900可以对应于上文的第一设备。如图9所示,通信设备900包括收发器901、处理器902、存储器903。
图9中仅示出了一个存储器和处理器。在实际的通信设备产品中,可以存在一个或多个处理器和一个或多个存储器。存储器也可以称为存储介质或者存储设备等。存储器可以是独立于处理器设置,也可以是与处理器集成在一起,本申请实施例对此不做限制。
收发器901、处理器902、存储器903之间通过内部连接通路互相通信,传递控制和/或数据信号
上述本申请实施例揭示的方法可以应用于收发器901中,或者由收发器901实现。
具体地,收发器901,用于接收第二设备发送的数据,其中该数据包括N个数据报文;用于向该第二设备发送确认报文,该确认报文包括确认字段,该确认字段包括第一字段和第二字段,该第二字段包括K个位置和K个长度,该K个位置中的第i个位置为K组数据报文中的第i组数据报文的起始字节位置或结束字节位置,该K个长度中的第i个长度为该第K组数据报文中的第i组数据报文的长度,该K组数据报文中的每组数据报文包括一个数据报文或者多个连续的数据报文,该每组数据报文包括一个数据报文或者多个连续的数据报文属于该N个数据报文,i=1,……,K,该第一字段用于指示该K值。
该确认报文可以由处理器902或者收发器901中的处理模块生成。
通信设备900的具体工作过程和有益效果可以参见图3所示实施例中的描述。
图10是本申请另一实施例提供的通信设备的示意性结构图。图10中的通信设备1000可以对应于上文的第二设备。如图10所示,通信设备1000可以包括收发器1001、处理器1002、存储器1003。
图10中仅示出了一个存储器和处理器。在实际的通信设备产品中,可以存在一个或多个处理器和一个或多个存储器。存储器也可以称为存储介质或者存储设备等。存储器可以是独立于处理器设置,也可以是与处理器集成在一起,本申请实施例对此不做限制。
收发器1001、处理器1002、存储器1003之间通过内部连接通路互相通信,传递控制和/或数据信号
上述本申请实施例揭示的方法可以应用于收发器1001中,或者由收发器1001实现。具体地,收发器1001,用于向第一设备发送数据,其中该数据包括N个数据报文;用于接收该第一设备发送的确认报文,该确认报文包括确认字段,该确认字段包括第一字段和第二字段,该第二字段包括K个位置和K个长度,该K个位置中的第i个位置为K组数据报文中的第i组数据报文的起始字节位置或结束字节位置,该K个长度中的第i个长度为该第K组数据报文中的第i组数据报文的长度,该K组数据报文中的每组数据报文包括一个数据报文或者多个连续的数据报文,该每组数据报文包括一个数据报文或者多个连续的数据报文属于该N个数据报文,i=1,……,K,该第一字段用于指示该K值。
该确认报文可以由处理器1002或者收发器1001中的处理模块解析并处理。
通信设备1000的具体工作过程和有益效果可以参见图3所示实施例中的描述。
本申请各实施例所述的收发器也可以称为收发单元、收发机、收发装置等。处理器也可以称为处理单元,处理单板,处理模块、处理装置等。可选的,可以将收发器中用于实现接收功能的器件视为接收单元,将收发器中用于实现发送功能的器件视为发送单元,即收发器包括接收单元和发送单元。接收单元有时也可以称为接收机、接收器、或接收电路等。发送单元有时也可以称为发射机、发射器或者发射电路等。
本申请各实施例所述的存储器用于存储处理器运行所需的计算机指令和参数。
本申请各实施例所述的处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。本申请各实施例所述的处理器可以是通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的指令,结合其硬件完成上述方法的步骤。
在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (26)
1.一种传输确认报文的方法,其特征在于,包括:
第一设备接收第二设备发送的数据,其中所述数据包括N个数据报文;
所述第一设备向所述第二设备发送确认报文,所述确认报文包括确认字段,所述确认字段包括第一字段和第二字段,所述第二字段包括K个位置和K个长度,所述K个位置中的第i个位置为K组数据报文中的第i组数据报文的起始位置或结束位置,所述K个长度中的第i个长度为所述第K组数据报文中的第i组数据报文的长度,所述K组数据报文中的每组数据报文包括一个数据报文或者多个连续的数据报文,所述每组数据报文包括一个数据报文或者多个连续的数据报文属于所述N个数据报文,i=1,……,K,所述第一字段用于指示所述K值。
2.根据权利要求1所述的方法,其特征在于,所述起始位置为起始数据报文的序列号或起始字节的序列号,所述结束位置为结束数据报文的序列号或结束字节的序列号。
3.根据权利要求2所述的方法,其特征在于,所述长度为相对于所述起始数据报文或者所述结束数据报文的序列号偏移量,或者相对于所述起始字节或者所述结束字节的序列号偏移量。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一字段包括所述K值。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一字段包括第一字节数,所述第一字节数为所述确认字段所占的字节数。
6.根据权利要求4或5所述的方法,其特征在于,所述第一字段还包括第二字节数,所述第二字节数为表示一个所述长度所占的字节数。
7.根据权利要求4或5所述的方法,其特征在于,所述第一字段还包括第二字节数,所述第二字节数为用于表示一个所述位置与一个所述长度共占的字节数。
8.根据权利要求6或7所述的方法,其特征在于,所述表示一组数据报文的所述长度所占的字节数为表示所述K个长度中最大的长度所占的字节数。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述确认字段还包括第三字段,所述第三字段用于指示所述确认字段的类型。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述K组数据报文为成功接收的数据报文。
11.根据权利要求1至9中任一项所述的方法,其特征在于,所述K组数据报文为未成功接收数据报文。
12.一种传输确认报文的方法,其特征在于,包括:
第二设备向第一设备发送数据,其中所述数据包括N个数据报文;
所述第二设备接收所述第一设备发送的确认报文,所述确认报文包括确认字段,所述确认字段包括第一字段和第二字段,所述第二字段包括K个位置和K个长度,所述K个位置中的第i个位置为K组数据报文中的第i组数据报文的起始位置或结束位置,所述K个长度中的第i个长度为所述第K组数据报文中的第i组数据报文的长度,所述K组数据报文中的每组数据报文包括一个数据报文或者多个连续的数据报文,所述每组数据报文包括一个数据报文或者多个连续的数据报文属于所述N个数据报文,i=1,……,K,所述第一字段用于指示所述K值。
13.根据权利要求12所述的方法,其特征在于,所述起始位置为起始数据报文的序列号或起始字节的序列号,所述结束位置为结束数据报文的序列号或结束字节的序列号。
14.根据权利要求13所述的方法,其特征在于,所述长度为相对于所述起始数据报文或者所述结束数据报文的序列号偏移量,或者相对于所述起始字节或者所述结束字节的序列号偏移量。
15.根据权利要求12至14中任一项所述的方法,其特征在于,所述第一字段包括所述K值。
16.根据权利要求12至14中任一项所述的方法,其特征在于,所述第一字段包括第一字节数,所述第一字节数为所述确认字段所占的字节数。
17.根据权利要求15或16所述的方法,其特征在于,所述第一字段还包括第二字节数,所述第二字节数为表示一个所述长度所占的字节数。
18.根据权利要求15或16所述的方法,其特征在于,所述第一字段还包括第二字节数,所述第二字节数为用于表示一个所述位置与一个所述长度共占的字节数。
19.根据权利要求17或18所述的方法,其特征在于,所述表示一组数据报文的所述长度所占的字节数为表示所述K个长度中最大的长度所占的字节数。
20.根据权利要求12至19中任一项所述的方法,其特征在于,所述确认字段还包括第三字段,所述第三字段用于指示所述确认字段的类型。
21.根据权利要求12至20中任一项所述的方法,其特征在于,所述K组数据报文为成功接收的数据报文。
22.根据权利要求12至20中任一项所述的方法,其特征在于,所述K组数据报文为未成功接收数据报文。
23.一种通信设备,其特征在于,包括收发器,用于执行如权利要求1至11中任一项所述的方法。
24.一种通信设备,其特征在于,包括收发器,用于执行如权利要求12至22中任一项所述的方法。
25.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在通信设备上运行时,使得通信设备执行如权利要求1至11中任一项所述的方法。
26.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在通信设备上运行时,使得通信设备执行如权利要求12至22中任一项所述的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811134342.7A CN110958084B (zh) | 2018-09-27 | 2018-09-27 | 传输确认报文的方法和通信设备 |
EP19867987.0A EP3813284B1 (en) | 2018-09-27 | 2019-09-23 | Method for transmitting confirmation message, and communication device |
PCT/CN2019/107177 WO2020063501A1 (zh) | 2018-09-27 | 2019-09-23 | 传输确认报文的方法和通信设备 |
JP2021500682A JP7210867B2 (ja) | 2018-09-27 | 2019-09-23 | 確認パケット伝送方法および通信デバイス |
US17/162,556 US11533657B2 (en) | 2018-09-27 | 2021-01-29 | Acknowledgment packet transmission method and communications device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811134342.7A CN110958084B (zh) | 2018-09-27 | 2018-09-27 | 传输确认报文的方法和通信设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110958084A true CN110958084A (zh) | 2020-04-03 |
CN110958084B CN110958084B (zh) | 2021-12-14 |
Family
ID=69953287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811134342.7A Active CN110958084B (zh) | 2018-09-27 | 2018-09-27 | 传输确认报文的方法和通信设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11533657B2 (zh) |
EP (1) | EP3813284B1 (zh) |
JP (1) | JP7210867B2 (zh) |
CN (1) | CN110958084B (zh) |
WO (1) | WO2020063501A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114337942A (zh) * | 2021-12-29 | 2022-04-12 | 伟乐视讯科技股份有限公司 | 一种报文重传方法、装置及电子设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110958084B (zh) * | 2018-09-27 | 2021-12-14 | 华为技术有限公司 | 传输确认报文的方法和通信设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1645787A (zh) * | 2005-03-01 | 2005-07-27 | 广东省电信有限公司研究院 | 在分布式对等流媒体服务系统中实现可靠组播的方法 |
CN1859072A (zh) * | 2006-01-19 | 2006-11-08 | 华为技术有限公司 | 一种判断反向数据包字节丢失的方法 |
CN101247209A (zh) * | 2007-02-15 | 2008-08-20 | 大唐移动通信设备有限公司 | 反馈状态报告的方法及设备 |
US7436778B1 (en) * | 2003-05-12 | 2008-10-14 | Sprint Communications Company, L.P. | Related-packet identification |
CN102104468A (zh) * | 2011-02-18 | 2011-06-22 | 中兴通讯股份有限公司 | 一种基于路由代理的媒体感知arq控制方法及系统 |
US9112814B2 (en) * | 2011-02-04 | 2015-08-18 | Kabushiki Kaisha Toshiba | Wireless communication terminal |
CN107734547A (zh) * | 2016-08-12 | 2018-02-23 | 中兴通讯股份有限公司 | 状态报告生成和系统,及状态报告接收方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060136614A1 (en) * | 2004-07-30 | 2006-06-22 | Nokia Corporation | System and method for variable length aggregate acknowledgements in a shared resource network |
US8830846B2 (en) * | 2005-04-04 | 2014-09-09 | Interdigital Technology Corporation | Method and system for improving responsiveness in exchanging frames in a wireless local area network |
US8473825B2 (en) * | 2009-08-13 | 2013-06-25 | Research In Motion Limited | Evolved universal terrestrial radio access acknowledged mode radio link control status report for segmented protocol data units |
US9154468B2 (en) * | 2013-01-09 | 2015-10-06 | Netronome Systems, Inc. | Efficient forwarding of encrypted TCP retransmissions |
CN104518852B (zh) * | 2013-09-29 | 2018-06-15 | 普天信息技术研究院有限公司 | 一种传输反馈方法 |
CN106717053B (zh) * | 2014-08-29 | 2020-11-06 | 株式会社东芝 | 无线通信装置 |
US20160219458A1 (en) * | 2015-01-26 | 2016-07-28 | Qualcomm Incorporated | Methods and apparatus for radio link control switching |
CN106161583B (zh) * | 2015-05-12 | 2020-02-21 | 华为技术有限公司 | 一种块确认帧的传输方法及设备 |
CN106535351B (zh) * | 2015-09-09 | 2021-01-15 | 华为技术有限公司 | 传输数据的方法和装置 |
EP4283897A3 (en) * | 2015-10-07 | 2024-02-28 | LG Electronics Inc. | Ack/nack signal processing method and device for uplink multi-user transmission |
CN107231218B (zh) * | 2016-03-25 | 2021-07-30 | 大唐移动通信设备有限公司 | 一种ack/nack反馈方法及相关设备 |
US10361832B2 (en) * | 2016-04-22 | 2019-07-23 | Qualcomm Incorporated | Block acknowledgment generation and selection rules |
EP3986070A3 (en) * | 2016-05-18 | 2022-05-18 | Samsung Electronics Co., Ltd. | Method and apparatus for performing efficient layer 2 function in mobile communication system |
CN108282825B (zh) * | 2017-01-05 | 2019-12-20 | 电信科学技术研究院 | 一种信息处理方法及装置 |
CN110958084B (zh) * | 2018-09-27 | 2021-12-14 | 华为技术有限公司 | 传输确认报文的方法和通信设备 |
-
2018
- 2018-09-27 CN CN201811134342.7A patent/CN110958084B/zh active Active
-
2019
- 2019-09-23 JP JP2021500682A patent/JP7210867B2/ja active Active
- 2019-09-23 EP EP19867987.0A patent/EP3813284B1/en active Active
- 2019-09-23 WO PCT/CN2019/107177 patent/WO2020063501A1/zh unknown
-
2021
- 2021-01-29 US US17/162,556 patent/US11533657B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7436778B1 (en) * | 2003-05-12 | 2008-10-14 | Sprint Communications Company, L.P. | Related-packet identification |
CN1645787A (zh) * | 2005-03-01 | 2005-07-27 | 广东省电信有限公司研究院 | 在分布式对等流媒体服务系统中实现可靠组播的方法 |
CN1859072A (zh) * | 2006-01-19 | 2006-11-08 | 华为技术有限公司 | 一种判断反向数据包字节丢失的方法 |
CN101247209A (zh) * | 2007-02-15 | 2008-08-20 | 大唐移动通信设备有限公司 | 反馈状态报告的方法及设备 |
US9112814B2 (en) * | 2011-02-04 | 2015-08-18 | Kabushiki Kaisha Toshiba | Wireless communication terminal |
CN102104468A (zh) * | 2011-02-18 | 2011-06-22 | 中兴通讯股份有限公司 | 一种基于路由代理的媒体感知arq控制方法及系统 |
CN107734547A (zh) * | 2016-08-12 | 2018-02-23 | 中兴通讯股份有限公司 | 状态报告生成和系统,及状态报告接收方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114337942A (zh) * | 2021-12-29 | 2022-04-12 | 伟乐视讯科技股份有限公司 | 一种报文重传方法、装置及电子设备 |
CN114337942B (zh) * | 2021-12-29 | 2023-06-13 | 伟乐视讯科技股份有限公司 | 一种报文重传方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
EP3813284A1 (en) | 2021-04-28 |
EP3813284A4 (en) | 2021-08-11 |
EP3813284B1 (en) | 2023-08-30 |
US20210153075A1 (en) | 2021-05-20 |
CN110958084B (zh) | 2021-12-14 |
US11533657B2 (en) | 2022-12-20 |
JP2021532636A (ja) | 2021-11-25 |
WO2020063501A1 (zh) | 2020-04-02 |
JP7210867B2 (ja) | 2023-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11219049B2 (en) | Method and apparatus for transmitting and receiving signal in mobile communication system | |
CN106161583B (zh) | 一种块确认帧的传输方法及设备 | |
CN108347782B (zh) | 一种上行控制信息发送、接收方法、终端及基站 | |
US20100146351A1 (en) | Error correcting scheme for wireless communication | |
EP3582421B1 (en) | Method for transmitting feedback information, terminal device and network device | |
US11728931B2 (en) | Communication method, network device, and terminal | |
EP3595220B1 (en) | Method and apparatus for sending and receiving feedback information | |
EP3327967B1 (en) | Information transmitting and receiving method, and device | |
CN110958084B (zh) | 传输确认报文的方法和通信设备 | |
CN103999394B (zh) | 数据重传、反馈方法,以及相应的装置 | |
EP3790213B1 (en) | Mac-based hybrid automatic repeat request (harq) | |
CN113541880A (zh) | 一种harq-ack反馈方法及装置 | |
CN114337942B (zh) | 一种报文重传方法、装置及电子设备 | |
CN112134658B (zh) | 一种传输反馈信息的方法、用户设备和接入设备 | |
CN116963175A (zh) | 数据传输方法、装置及系统 | |
WO2023231910A1 (zh) | 反馈信息发送方法、反馈信息接收方法、终端及存储介质 | |
CN107888341B (zh) | 一种数据传输方法及装置 | |
WO2021062791A1 (zh) | 一种上行控制信息的传输方法、装置及存储介质 | |
CN114339883A (zh) | 一种数据传输方法、装置、电子设备和存储介质 | |
CN116055011A (zh) | Uwb数传系统的harq重传方法、装置、系统及介质 | |
JP2002344456A (ja) | パケット式データ伝送方式 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |