CN104426866A - 一种数据传输方法及装置 - Google Patents
一种数据传输方法及装置 Download PDFInfo
- Publication number
- CN104426866A CN104426866A CN201310382184.8A CN201310382184A CN104426866A CN 104426866 A CN104426866 A CN 104426866A CN 201310382184 A CN201310382184 A CN 201310382184A CN 104426866 A CN104426866 A CN 104426866A
- Authority
- CN
- China
- Prior art keywords
- packet
- receiving system
- dispensing device
- tlp
- indicate
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
Abstract
本发明实施例提供一种数据传输方法及装置,涉及通信领域,通过定义一种面向流媒体业务的数据传输方法,满足了流媒体业务对传输实时性的要求,有效降低了链路延时,提高了链路通信效率。该方法包括:发送装置获取数据传输指令,数据传输指令用于指示发送装置发送至少一个数据包至接收装置,其中,每个数据包内设置有用户自定义类型UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收装置待接收的数据包的个数,序列号用于指示若接收装置未正确接收到数据包,发送装置是否重新发送数据包至接收装置;发送装置发送至少一个数据包至接收装置。
Description
技术领域
本发明涉及通信领域,尤其涉及一种数据传输方法及装置。
背景技术
随着现代处理器技术的发展,高速差分总线逐渐取代了并行总线被应用在互连领域中。PCIe(Personal Computer Interface Express,新一代总线接口)总线就是通过使用高速差分信号提高总线带宽,并使用数据包进行数据传输的,数据在进行接收和发送过程中,需要通过事务层、数据链路层和物理层等多个层次。
PCIe总线传输机制能够为用户提供可靠的传输服务,以确保数据的可靠传输。其中,PCIe总线的数据链路层主要用来保证来自事务层的TLP(Transaction Layer Packet,事务层传输包)在PCIe链路中的正确传递,为此数据链路层定义了DLLP(Data Link LayerPacket,数据链路层传输包),另外,数据链路层使用了容错和重传机制来保证数据传送的完整性和一致性。同时,采用复杂的credit-based流量控制机制来避免链路拥塞。
然而,现有技术中数据链路层使用ACK/NAK协议保证了TLP的正确传送。其中,ACK/NAK协议是一种滑动窗口协议,滑动窗口协议需要在待传送的数据上加入序列号前缀。当来自事务层的TLP发送到接收端后,发送端的数据链路层根据来自接收端的ACK/NAK DLLP报文决定是否需要重发这些TLP。发送端在接收到接收端的正向反馈之后,才会进行后续数据的发送。而且当接收端出现错误后,还要对出现错误的数据进行重传,这些对于流媒体业务是没有必要的,但却给链路带来了较大延时。其中,流媒体是指以流的方式在网络中传输音频、视频和多媒体文件的形式。同时,现有技术中PCIe总线使用的Credit-Based流量控制机制是由事务层和数据链路层协调实现的,这种流量控制机制硬件实现复杂,需要较多的接收缓存,因此实现流控的代价较大。
发明内容
本发明的实施例提供一种数据传输方法及装置,通过定义一种面向流媒体业务的数据传输方法,满足了流媒体业务对传输实时性的要求,有效降低了链路延时,提高了链路通信效率。
为达到上述目的,本发明的实施例采用如下技术方案:
本发明实施例提供一种数据传输方法,该方法包括:
发送装置获取数据传输指令,所述数据传输指令用于指示所述发送装置发送至少一个数据包至接收装置,
其中,每个所述数据包内设置有用户自定义类型UT字段、事务层传输包TLP计数字段和序列号,所述UT字段用于指示所述数据包是否为流媒体业务数据包,所述TLP计数字段用于指示所述接收装置待接收的数据包的个数,所述序列号用于指示若所述接收装置未正确接收到所述数据包,所述发送装置是否重新发送所述数据包至所述接收装置;
所述发送装置发送所述至少一个数据包至所述接收装置。
在第一种可能的实现方式中,根据第一方面,若所述UT字段内设置有第一标识,所述数据包为流媒体业务数据包。
在第二种可能的实现方式中,结合第一方面或第一种可能的实现方式,若所述序列号内设置有第二标识,且所述接收装置未正确接收到所述数据包,所述发送装置不重新发送所述数据包至所述接收装置。
在第三种可能的实现方式中,结合第一方面或第一种可能的实现方式或第二种可能的实现方式,所述第二标识具体设置于所述序列号的第一个比特位。
在第四种可能的实现方式中,结合第一方面或第一种可能的实现方式至第三种可能的实现方式,在所述发送装置发送所述至少一个数据包至所述接收装置后,所述方法还包括:
所述发送装置接收所述接收装置发送的第一反馈信息,所述第一反馈信息用于指示所述接收装置待接收的数据包的个数为0。
在第五种可能的实现方式中,结合第一方面或第一种可能的实现方式至第四种可能的实现方式,所述方法还包括:
所述发送装置接收所述接收装置发送的第二反馈信息;
所述发送装置根据所述第二反馈信息,控制发送所述数据包至所述接收装置的速率。
第二方面,本发明实施例提供一种数据传输方法,该方法包括:
接收装置接收发送装置发送的至少一个数据包,
其中,每个所述数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,所述UT字段用于指示所述数据包是否为流媒体业务数据包,所述TLP计数字段用于指示所述接收装置待接收的数据包的个数,所述序列号用于指示若所述接收装置未正确接收到所述数据包,所述发送装置是否重新发送所述数据包至所述接收装置。
在第一种可能的实现方式中,根据第二方面,在所述接收装置接收所述发送装置发送的所述至少一个数据包后,所述方法还包括:
所述接收装置判断所述UT字段内是否设置有第一标识,若所述UT字段内设置有第一标识,所述数据包为流媒体业务数据包。
在第二种可能的实现方式中,结合第二方面或第一种可能的实现方式,在所述接收装置接收所述发送装置发送的所述至少一个数据包后,所述方法还包括:
所述接收装置判断所述序列号内是否设置有第二标识;
若所述序列号内设置有第二标识,且所述接收装置未正确接收到所述数据包,所述接收装置不发送重新发送信息至所述发送装置,以使得所述发送装置不重新发送所述数据包至所述接收装置。
在第三种可能的实现方式中,结合第二方面或第一种可能的实现方式或第二种可能的实现方式,所述第二标识具体设置于所述序列号的第一个比特位。
在第四种可能的实现方式中,结合第二方面或第一种可能的实现方式至第三种可能的实现方式,在所述接收装置接收所述发送装置发送的所述至少一个数据包后,所述方法还包括:
所述接收装置发送第一反馈信息至所述发送装置,所述第一反馈信息用于指示所述接收装置待接收的数据包的个数为0。
在第五种可能的实现方式中,结合第二方面或第一种可能的实现方式至第四种可能的实现方式,所述方法还包括:
所述接收装置获取接收所述数据包的速率;
所述接收装置根据所述接收所述数据包的速率,发送第二反馈信息至所述发送装置,以使得所述发送装置根据所述第二反馈信息,控制发送所述数据包至所述接收装置的速率。
在第六种可能的实现方式中,结合第二方面或第一种可能的实现方式至第五种可能的实现方式,所述接收装置获取接收所述数据包的速率具体包括:
所述接收装置通过Rate-Based流量控制机制获取接收所述数据包的速率。
在第七种可能的实现方式中,结合第二方面或第一种可能的实现方式至第六种可能的实现方式,所述Rate-Based流量控制机制使用Leaky Bucket算法和/或Token Bucket算法计算所述接收所述数据包的速率。
第三方面,本发明实施例提供一种发送装置,该装置包括:
获取模块,用于获取数据传输指令,所述数据传输指令用于指示所述发送装置发送至少一个数据包至接收装置,
其中,每个所述数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,所述UT字段用于指示所述数据包是否为流媒体业务数据包,所述TLP计数字段用于指示所述接收装置待接收的数据包的个数,所述序列号用于指示若所述接收装置未正确接收到所述数据包,所述发送装置是否重新发送所述数据包至所述接收装置;
发送模块,用于发送所述至少一个数据包至所述接收装置。
在第一种可能的实现方式中,根据第三方面,若所述UT字段内设置有第一标识,所述数据包为流媒体业务数据包。
在第二种可能的实现方式中,结合第三方面或第一种可能的实现方式,若所述序列号内设置有第二标识,且所述接收装置未正确接收到所述数据包,所述发送装置不重新发送所述数据包至所述接收装置。
在第三种可能的实现方式中,结合第三方面或第一种可能的实现方式或第二种可能的实现方式,所述第二标识具体设置于所述序列号的第一个比特位。
在第四种可能的实现方式中,结合第三方面或第一种可能的实现方式至第三种可能的实现方式,在所述发送模块发送所述至少一个数据包至所述接收装置后,所述发送装置还包括:
接收模块,用于接收所述接收装置发送的第一反馈信息,所述第一反馈信息用于指示所述接收装置待接收的数据包的个数为0。
在第五种可能的实现方式中,结合第三方面或第一种可能的实现方式至第四种可能的实现方式,所述发送装置还包括:
所述接收模块,还用于接收所述接收装置发送的第二反馈信息;
处理模块,用于根据所述第二反馈信息,控制发送所述数据包至所述接收装置的速率。
第四方面,本发明实施例提供一种接收装置,该装置包括:
接收单元,用于接收发送装置发送的至少一个数据包,
其中,每个所述数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,所述UT字段用于指示所述数据包是否为流媒体业务数据包,所述TLP计数字段用于指示所述接收装置待接收的数据包的个数,所述序列号用于指示若所述接收装置未正确接收到所述数据包,所述发送装置是否重新发送所述数据包至所述接收装置。
在第一种可能的实现方式中,根据第四方面,在所述接收单元接收发送装置发送的至少一个数据包后,所述接收装置还包括:
判断单元,用于判断所述UT字段内是否设置有第一标识,若所述UT字段内设置有第一标识,所述数据包为流媒体业务数据包。
在第二种可能的实现方式中,结合第四方面或第一种可能的实现方式,在所述接收单元接收发送装置发送的至少一个数据包后,所述接收装置还包括:
所述判断单元,还用于判断所述序列号内是否设置有第二标识;
发送单元,用于若所述序列号内设置有第二标识,且所述接收装置未正确接收到所述数据包,不发送重新发送信息至所述发送装置,以使得所述发送装置不重新发送所述数据包至所述接收装置。
在第三种可能的实现方式中,结合第四方面或第一种可能的实现方式或第二种可能的实现方式,所述第二标识具体设置于所述序列号的第一个比特位。
在第四种可能的实现方式中,结合第四方面或第一种可能的实现方式至第三种可能的实现方式,在所述接收单元接收发送装置发送的至少一个数据包后,
所述发送单元,还用于发送第一反馈信息至所述发送装置,所述第一反馈信息用于指示所述接收装置待接收的数据包的个数为0。
在第五种可能的实现方式中,结合第四方面或第一种可能的实现方式至第四种可能的实现方式,所述接收装置还包括:
获取单元,用于获取接收所述数据包的速率;
所述发送模块,还用于根据所述接收所述数据包的速率,发送第二反馈信息至所述发送装置,以使得所述发送装置根据所述第二反馈信息,控制发送所述数据包至所述接收装置的速率。
在第六种可能的实现方式中,结合第四方面或第一种可能的实现方式至第五种可能的实现方式,所述接收装置获取接收所述数据包的速率具体包括:
所述接收装置通过Rate-Based流量控制机制获取接收所述数据包的速率。
在第七种可能的实现方式中,结合第四方面或第一种可能的实现方式至第六种可能的实现方式,所述Rate-Based流量控制机制使用Leaky Bucket算法和/或Token Bucket算法计算所述接收所述数据包的速率。
本发明实施例所提供的一种数据传输方法及装置,通过发送装置获取数据传输指令,数据传输指令用于指示发送装置发送至少一个数据包至接收装置,其中,每个数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收装置待接收的数据包的个数,序列号用于指示若接收装置未正确接收到数据包,发送装置是否重新发送数据包至接收装置,以及发送装置发送至少一个数据包至接收装置。通过该方案,定义一种面向流媒体业务的数据传输方法,满足了流媒体业务对传输实时性的要求,有效降低了链路延时,提高了链路通信效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据传输方法的流程示意图一;
图2为现有技术中数据传输方法的流程示意图;
图3为本发明实施例提供的一种数据传输方法的流程示意图二;
图4为本发明实施例提供的TLP的包格式;
图5为本发明实施例提供的另一种数据传输方法的流程示意图一;
图6为本发明实施例提供的另一种数据传输方法的流程示意图二;
图7为本发明实施例提供的正向反馈的第二反馈信息的格式;
图8为本发明实施例提供的发送装置的结构示意图一;
图9为本发明实施例提供的发送装置的结构示意图二;
图10为本发明实施例提供的发送装置的结构示意图三;
图11为本发明实施例提供的接收装置的结构示意图一;
图12为本发明实施例提供的接收装置的结构示意图二;
图13为本发明实施例提供的接收装置的结构示意图三;
图14为本发明实施例提供的接收装置的结构示意图四;
图15为本发明实施例提供的发送器的结构示意图;
图16为本发明实施例提供的接收器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
实施例一
本发明实施例提供一种数据传输方法,如图1所示,该方法包括:
S101、发送装置获取数据传输指令,数据传输指令用于指示发送装置发送至少一个数据包至接收装置。
其中,每个数据包内设置有UT(User Define Type,用户自定义类型)字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收装置待接收的数据包的个数,序列号用于指示若接收装置未正确接收到数据包,发送装置是否重新发送数据包至接收装置。
现有技术中,若发送装置需要向接收装置发送数据时,数据的传输过程如图2所示,对于发送装置,发送装置的事务层首先获取待发送的数据,并将待发送的数据封装为TLP后,由事务层发送至数据链路层。TLP经由发送装置的事务层发送至数据链路层后,发送装置的数据链路层为TLP添加序列号前缀和CRC(Cyclic Redundancy Check,循环冗余校验码)后缀。其中,发送装置的数据链路层用于保证来自事务层的TLP可以可靠、完整地发送到接收装置的数据链路层,因此,发送装置的数据链路层定义了DLLP。发送装置的数据链路层为TLP添加序列号前缀和CRC后缀后,将待发送的数据包从数据链路层发送至物理层,经由物理层链路传输至接收装置。
对于接收装置,接收装置的物理层从信道上接收发送装置发送的数据包,并将该数据包从物理层发送至数据链路层。数据链路层使用ACK/NAK协议保证了TLP的正确传送。接收装置的数据链路层根据Error Check单元检查接收到的TLP,若TLP被正确接收,则接收装置向发送装置发送ACK DLLP,即表示该TLP已被正确接收,发送装置清除该TLP;若该TLP未被正确接收,则接收装置向发送装置发送NAK DLLP,即表示该TLP未被正确接收,发送装置向接收装置重新发送该TLP。接收装置的数据链路层正确接收了该TLP后,将该TLP从数据链路层发送至事务层。然而,使用了ACK/NAK协议保证了TLP正确传送的方法需要发送装置在接收到接收装置的ACK DLLP反馈后,才会进行后续数据的发送。而且当接收装置出现错误后,还要对出现错误的数据包进行重传,这些对于流媒体业务是没有必要的,但却给链路带来了较大延时。
其中,流媒体是指以流的方式在网络中传输音频、视频和多媒体文件的形式。比如视频、云数据等,这类流媒体业务不同于其他常规业务,流媒体业务对于数据传输的事实性要求较高,对数据传输的可靠性要求较低。
本发明实施例提供了一种数据传输方法,定义一种面向流媒体业务的数据传输方法,满足了流媒体业务对传输实时性的要求,有效降低了链路延时,提高了链路通信效率。
首先,发送装置获取数据传输指令,数据传输指令用于指示发送装置发送至少一个数据包至接收装置。其中,每个数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收装置待接收的数据包的个数,序列号用于指示若接收装置未正确接收到数据包,发送装置是否重新发送数据包至接收装置。
具体的,发送装置在每个数据包内设置UT字段、TLP计数字段和序列号的过程将在下述实施例中进行详细描述,此处不再赘述。
S102、发送装置发送至少一个数据包至接收装置。
在发送装置获取数据传输指令后,发送装置发送至少一个数据包至接收装置。
本发明实施例提供一种数据传输方法,通过发送装置获取数据传输指令,数据传输指令用于指示发送装置发送至少一个数据包至接收装置,其中,每个数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收装置待接收的数据包的个数,序列号用于指示若接收装置未正确接收到数据包,发送装置是否重新发送数据包至接收装置,以及发送装置发送至少一个数据包至接收装置。通过该方案,定义一种面向流媒体业务的数据传输方法,满足了流媒体业务对传输实时性的要求,有效降低了链路延时,提高了链路通信效率。
实施例二
本发明实施例提供一种数据传输方法,如图3所示,该方法包括:
S201、发送装置获取数据传输指令,数据传输指令用于指示发送装置发送至少一个数据包至接收装置。
其中,每个数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收装置待接收的数据包的个数,序列号用于指示若接收装置未正确接收到数据包,发送装置是否重新发送数据包至接收装置。
现有技术中,若发送装置需要向接收装置发送数据时,对于发送装置,发送装置的事务层首先获取待发送的数据,并将待发送的数据封装为TLP后,由事务层发送至数据链路层。TLP经由发送装置的事务层发送至数据链路层后,发送装置的数据链路层为TLP添加序列号前缀和CRC(Cyclic Redundancy Check,循环冗余校验码)后缀。其中,发送装置的数据链路层用于保证来自事务层的TLP可以可靠、完整地发送到接收装置的数据链路层,因此,发送装置的数据链路层定义了DLLP。发送装置的数据链路层为TLP添加序列号前缀和CRC后缀后,将待发送的数据包从数据链路层发送至物理层,经由物理层链路传输至接收装置。
对于接收装置,接收装置的物理层从信道上接收发送装置发送的数据包,并将该数据包从物理层发送至数据链路层。数据链路层使用ACK/NAK协议保证了TLP的正确传送。接收装置的数据链路层根据Error Check单元检查接收到的TLP,若TLP被正确接收,则接收装置向发送装置发送ACK DLLP,即表示该TLP已被正确接收,发送装置清除该TLP;若该TLP未被正确接收,则接收装置向发送装置发送NAK DLLP,即表示该TLP未被正确接收,发送装置向接收装置重新发送该TLP。接收装置的数据链路层正确接收了该TLP后,将该TLP从数据链路层发送至事务层。然而,使用了ACK/NAK协议保证了TLP正确传送的方法需要发送装置在接收到接收装置的ACK DLLP反馈后,才会进行后续数据的发送。而且当接收装置出现错误后,还要对出现错误的数据包进行重传,这些对于流媒体业务是没有必要的,但却给链路带来了较大延时。
需要说明的是,流媒体是指以流的方式在网络中传输音频、视频和多媒体文件的形式。比如视频、云数据等,这类流媒体业务不同于其他常规业务,流媒体业务对于数据传输的事实性要求较高,对数据传输的可靠性要求较低。
本发明实施例提供了一种数据传输方法,定义一种面向流媒体业务的数据传输方法,满足了流媒体业务对传输实时性的要求,有效降低了链路延时,提高了链路通信效率。
首先,发送装置获取数据传输指令,数据传输指令用于指示发送装置发送至少一个数据包至接收装置。其中,每个数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收装置待接收的数据包的个数,序列号用于指示若接收装置未正确接收到数据包,发送装置是否重新发送数据包至接收装置。
需要说明的是,对于发送装置,若发送装置需要向接收装置发送数据时,发送装置首先要对待发送的数据进行封包。发送装置的事务层首先获取待发送的数据,并将待发送的数据封装为TLP,其中TLP的包格式如图4所示,包格式内设置有UT字段和TLP计数字段,其中,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收装置待接收的数据包的个数。
UT字段用于指示数据包是否为流媒体业务数据包,如图4所示,UT字段占用1个比特位。若UT字段内设置有第一标识,数据包为流媒体业务数据包,其中,第一标识为数值1。同理,若UT字段内未设置有第一标识,数据包不为流媒体业务数据包。
需要补充的是,根据用户策略的不同,第一标识的取值也不同,第一标识可以为数值1,也可以为0等其他的数值,本发明不做限制。
TLP计数字段用于指示接收装置待接收的数据包的个数,如图4所示,TLP计数字段占用10个比特位。若TLP计数字段取值不为0,则说明此时接收装置待接收的数据包的个数不为0,在流媒体业务的应用场景下,无需使用ACK/NAK协议保证TLP的正确传送,即不需要发送装置在接收到接收装置的ACK/NAK DLLP反馈后,才进行后续数据的发送,从而有效地降低了链路延时。同理,若TLP计数字段取值为0,则说明此时接收装置待接收的数据包的个数为0,在流媒体业务的应用场景下,当TLP计数字段取值为0,则说明接收装置此时已经没有要接受的数据包了,此时接收装置向发送装置发送ACK/NAKDLLP反馈。
需要说明的是,由于TLP计数字段占用10个比特位,因此在二进制环境下,接收装置待接收的数据包的个数最大为1023。当然,根据用户策略的不同,TLP计数字段占用的比特位也可以不同,本发明不做限制。
需要补充的是,虽然TLP计数字段用于指示接收装置待接收的数据包的个数,待接收的数据包的个数的最大值取决于TLP计数字段占用了多少个比特位,但是,若接收装置设置有最大接受值,即接收装置待接收的数据包的个数的最大值。因此,TLP计数字段所表示的接收装置待接收的数据包的个数,不能大于接收装置设置的最大接受值。
发送装置的事务层首先获取待发送的数据,并将待发送的数据封装为TLP后,将封装好的TLP由事务层发送至数据链路层。TLP经由发送装置的事务层发送至数据链路层后,发送装置的数据链路层为TLP添加序列号。其中,为了保证实时流媒体业务的有效传输,封装好的TLP通过最高优先级的虚通道,并且采用强续传送规则由事务层发送至数据链路层。
若序列号内设置有第二标识,且接收装置未正确接收到数据包,发送装置不重新发送数据包至接收装置。
其中,第二标识具体设置于序列号的第一个比特位。
需要说明的是,序列号是添加在封装好的TLP前的,能够使接收装置获知该封装好的TLP的类型。序列号一般占用12个比特位。若序列号内设置有第二标识,其中,第二标识具体设置于序列号的第一个比特位,第二标识取值为0,且接收装置未正确接收到数据包,发送装置不重新发送数据包至接收装置。由于序列号内设置有第二标识,且第二标识取值为0,则说明该数据包为流媒体业务数据包,流媒体业务对于数据传输的事实性要求较高,对数据传输的可靠性要求较低,因此,即使接收装置未正确接收到数据包,发送装置也不需要重新发送数据包至接收装置。
需要补充的是,根据用户策略的不同,第二标识的取值也不同,第二标识可以为数值0,也可以为1等其他的数值,本发明不做限制。
发送装置的数据链路层为TLP添加序列号后,将待发送的数据包从数据链路层发送至物理层。
S202、发送装置发送至少一个数据包至接收装置。
在发送装置获取数据传输指令后,发送装置发送至少一个数据包至接收装置。
S203、发送装置接收接收装置发送的第一反馈信息,第一反馈信息用于指示接收装置待接收的数据包的个数为0。
接收装置的物理层从信道上接收到发送装置发送的至少一个数据包后,将该数据包从物理层通过数据链路层发送到事务层。接收装置的事务层对数据包进行解包,确认TLP包格式内设置的UT字段和TLP计数字段,若TLP计数字段的取值为0,即接收装置待接收的数据包的个数为0,则接收装置发送第一反馈信息至发送装置。
发送装置接收接收装置发送的第一反馈信息,第一反馈信息用于指示接收装置待接收的数据包的个数为0。
S204、发送装置接收接收装置发送的第二反馈信息。
由于流媒体业务对于数据传输的事实性要求较高,对数据传输的可靠性要求较低,因此需要保证发送装置和接收装置之间的链路通信效率。接收装置根据流量控制机制获取当前时刻的数据包的接受速率,并根据情况,发送第二反馈信息至发送装置。具体的,接收装置如何根据流量控制机制获取当前时刻的数据包的接受速率将在下述实施例中进行详细描述,此处不再赘述。
发送装置接收接收装置发送的第二反馈信息。
S205、发送装置根据第二反馈信息,控制发送数据包至接收装置的速率。
在发送装置接收接收装置发送的第二反馈信息后,发送装置根据第二反馈信息,控制发送数据包至接收装置的速率。
本发明实施例提供一种数据传输方法,通过发送装置获取数据传输指令,数据传输指令用于指示发送装置发送至少一个数据包至接收装置,其中,每个数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收装置待接收的数据包的个数,序列号用于指示若接收装置未正确接收到数据包,发送装置是否重新发送数据包至接收装置,以及发送装置发送至少一个数据包至接收装置。通过该方案,定义一种面向流媒体业务的数据传输方法,满足了流媒体业务对传输实时性的要求,有效降低了链路延时,提高了链路通信效率。
实施例三
本发明实施例提供另一种据传输方法,如图5所示,该方法包括:
S301、接收装置接收发送装置发送的至少一个数据包。
其中,每个数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收装置待接收的数据包的个数,序列号用于指示若接收装置未正确接收到数据包,发送装置是否重新发送数据包至接收装置。
现有技术中,若发送装置需要向接收装置发送数据时,对于发送装置,发送装置的事务层首先获取待发送的数据,并将待发送的数据封装为TLP后,由事务层发送至数据链路层。TLP经由发送装置的事务层发送至数据链路层后,发送装置的数据链路层为TLP添加序列号前缀和CRC(Cyclic Redundancy Check,循环冗余校验码)后缀。其中,发送装置的数据链路层用于保证来自事务层的TLP可以可靠、完整地发送到接收装置的数据链路层,因此,发送装置的数据链路层定义了DLLP。发送装置的数据链路层为TLP添加序列号前缀和CRC后缀后,将待发送的数据包从数据链路层发送至物理层,经由物理层链路传输至接收装置。
对于接收装置,接收装置的物理层从信道上接收发送装置发送的数据包,并将该数据包从物理层发送至数据链路层。数据链路层使用ACK/NAK协议保证了TLP的正确传送。接收装置的数据链路层根据Error Check单元检查接收到的TLP,若TLP被正确接收,则接收装置向发送装置发送ACK DLLP,即表示该TLP已被正确接收,发送装置清除该TLP;若该TLP未被正确接收,则接收装置向发送装置发送NAK DLLP,即表示该TLP未被正确接收,发送装置向接收装置重新发送该TLP。接收装置的数据链路层正确接收了该TLP后,将该TLP从数据链路层发送至事务层。然而,使用了ACK/NAK协议保证了TLP正确传送的方法需要发送装置在接收到接收装置的ACK DLLP反馈后,才会进行后续数据的发送。而且当接收装置出现错误后,还要对出现错误的数据包进行重传,这些对于流媒体业务是没有必要的,但却给链路带来了较大延时。
需要说明的是,流媒体是指以流的方式在网络中传输音频、视频和多媒体文件的形式。比如视频、云数据等,这类流媒体业务不同于其他常规业务,流媒体业务对于数据传输的事实性要求较高,对数据传输的可靠性要求较低。
本发明实施例提供了一种数据传输方法,定义一种面向流媒体业务的数据传输方法,满足了流媒体业务对传输实时性的要求,有效降低了链路延时,提高了链路通信效率。
接收装置接收发送装置发送的至少一个数据包,其中,每个数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收装置待接收的数据包的个数,序列号用于指示若接收装置未正确接收到数据包,发送装置是否重新发送数据包至接收装置。
具体的,接收装置如何获取设置在每个数据包内设置UT字段、TLP计数字段和序列号的过程将在下述实施例中进行详细描述,此处不再赘述。
本发明实施例提供一种数据传输方法,通过接收装置接收发送装置发送的至少一个数据包,其中,每个数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收装置待接收的数据包的个数,序列号用于指示若接收装置未正确接收到数据包,发送装置是否重新发送数据包至接收装置。通过该方案,定义一种面向流媒体业务的数据传输方法,满足了流媒体业务对传输实时性的要求,有效降低了链路延时,提高了链路通信效率。
实施例四
本发明实施例提供另一种据传输方法,如图6所示,该方法包括:
S401、接收装置接收发送装置发送的至少一个数据包。
其中,每个数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收装置待接收的数据包的个数,序列号用于指示若接收装置未正确接收到数据包,发送装置是否重新发送数据包至接收装置。
对于接收装置,接收装置的物理层从信道上接收发送装置发送的数据包,并将该数据包从物理层发送至数据链路层。数据链路层使用ACK/NAK协议保证了TLP的正确传送。接收装置的数据链路层根据Error Check单元检查接收到的TLP,若TLP被正确接收,则接收装置向发送装置发送ACK DLLP,即表示该TLP已被正确接收,发送装置清除该TLP;若该TLP未被正确接收,则接收装置向发送装置发送NAK DLLP,即表示该TLP未被正确接收,发送装置向接收装置重新发送该TLP。接收装置的数据链路层正确接收了该TLP后,将该TLP从数据链路层发送至事务层。然而,使用了ACK/NAK协议保证了TLP正确传送的方法需要发送装置在接收到接收装置的ACK DLLP反馈后,才会进行后续数据的发送。而且当接收装置出现错误后,还要对出现错误的数据包进行重传,这些对于流媒体业务是没有必要的,但却给链路带来了较大延时。
需要说明的是,流媒体是指以流的方式在网络中传输音频、视频和多媒体文件的形式。比如视频、云数据等,这类流媒体业务不同于其他常规业务,流媒体业务对于数据传输的事实性要求较高,对数据传输的可靠性要求较低。
本发明实施例提供了一种数据传输方法,定义一种面向流媒体业务的数据传输方法,满足了流媒体业务对传输实时性的要求,有效降低了链路延时,提高了链路通信效率。
首先,接收装置接收发送装置发送的至少一个数据包,其中,每个数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收装置待接收的数据包的个数,序列号用于指示若接收装置未正确接收到数据包,发送装置是否重新发送数据包至接收装置。
需要说明的是,对于发送装置,若发送装置需要向接收装置发送数据时,发送装置首先要对待发送的数据进行封包。发送装置的事务层首先获取待发送的数据,并将待发送的数据封装为TLP,包格式内设置有UT字段和TLP计数字段,其中,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收装置待接收的数据包的个数。
UT字段用于指示数据包是否为流媒体业务数据包,UT字段占用1个比特位。若UT字段内设置有第一标识,数据包为流媒体业务数据包,其中,第一标识为数值1。同理,若UT字段内未设置有第一标识,数据包不为流媒体业务数据包。
需要补充的是,根据用户策略的不同,第一标识的取值也不同,第一标识可以为数值1,也可以为0等其他的数值,本发明不做限制。
TLP计数字段用于指示接收装置待接收的数据包的个数,TLP计数字段占用10个比特位。若TLP计数字段取值不为0,则说明此时接收装置待接收的数据包的个数不为0,在流媒体业务的应用场景下,无需使用ACK/NAK协议保证TLP的正确传送,即不需要发送装置在接收到接收装置的ACK/NAK DLLP反馈后,才进行后续数据的发送,从而有效地降低了链路延时。同理,若TLP计数字段取值为0,则说明此时接收装置待接收的数据包的个数为0,在流媒体业务的应用场景下,当TLP计数字段取值为0,则说明接收装置此时已经没有要接受的数据包了,此时接收装置向发送装置发送ACK/NAK DLLP反馈。
需要说明的是,由于TLP计数字段占用10个比特位,因此在二进制环境下,接收装置待接收的数据包的个数最大为1023。当然,根据用户策略的不同,TLP计数字段占用的比特位也可以不同,本发明不做限制。
需要补充的是,虽然TLP计数字段用于指示接收装置待接收的数据包的个数,待接收的数据包的个数的最大值取决于TLP计数字段占用了多少个比特位,但是,若接收装置设置有最大接受值,即接收装置待接收的数据包的个数的最大值。因此,TLP计数字段所表示的接收装置待接收的数据包的个数,不能大于接收装置设置的最大接受值。
发送装置的事务层首先获取待发送的数据,并将待发送的数据封装为TLP后,将封装好的TLP由事务层发送至数据链路层。TLP经由发送装置的事务层发送至数据链路层后,发送装置的数据链路层为TLP添加序列号。其中,为了保证实时流媒体业务的有效传输,封装好的TLP通过最高优先级的虚通道,并且采用强续传送规则由事务层发送至数据链路层。
若序列号内设置有第二标识,且接收装置未正确接收到数据包,发送装置不重新发送数据包至接收装置。
其中,第二标识具体设置于序列号的第一个比特位。
需要说明的是,序列号是添加在封装好的TLP前的,能够使接收装置获知该封装好的TLP的类型。序列号一般占用12个比特位。若序列号内设置有第二标识,其中,第二标识具体设置于序列号的第一个比特位,第二标识取值为0,且接收装置未正确接收到数据包,发送装置不重新发送数据包至接收装置。由于序列号内设置有第二标识,且第二标识取值为0,则说明该数据包为流媒体业务数据包,流媒体业务对于数据传输的事实性要求较高,对数据传输的可靠性要求较低,因此,即使接收装置未正确接收到数据包,发送装置也不需要重新发送数据包至接收装置。
需要补充的是,根据用户策略的不同,第二标识的取值也不同,第二标识可以为数值0,也可以为1等其他的数值,本发明不做限制。
发送装置的数据链路层为TLP添加序列号后,将待发送的数据包从数据链路层发送至物理层。
接收装置接收的发送装置发送的至少一个数据包,就是发送装置经过上述封包过程后,发送的至少一个数据包。
S402、接收装置判断序列号内是否设置有第二标识。
在接收装置接收发送装置发送的至少一个数据包后,接收装置判断序列号内是否设置有第二标识。
需要说明的是,接收装置是由接收装置的物理层从信道上接收到发送装置发送的至少一个数据包,物理层接收到数据包后,将该数据包从物理层发送到数据链路层,数据链路层对该数据包进行解包。接收装置的数据链路层能够获取发送装置的数据链路层为TLP添加序列号。
S403、若序列号内设置有第二标识,且接收装置未正确接收到数据包,接收装置不发送重新发送信息至发送装置,以使得发送装置不重新发送数据包至接收装置。
其中,第二标识具体设置于序列号的第一个比特位。
若序列号内设置有第二标识,且接收装置未正确接收到数据包,接收装置不发送重新发送信息至发送装置,以使得发送装置不重新发送数据包至接收装置。其中,第二标识具体设置于序列号的第一个比特位。
由于序列号是添加在封装好的TLP前的,能够使接收装置获知该封装好的TLP的类型。序列号一般占用12个比特位。若序列号内设置有第二标识,其中,第二标识具体设置于序列号的第一个比特位,第二标识取值为0,且接收装置未正确接收到数据包,则说明该数据包为流媒体业务数据包,流媒体业务对于数据传输的事实性要求较高,对数据传输的可靠性要求较低,因此,即使接收装置未正确接收到数据包,接收装置也不需要发送重新发送信息至发送装置。
S404、接收装置判断UT字段内是否设置有第一标识,若UT字段内设置有第一标识,数据包为流媒体业务数据包。
在接收装置的物理层将该数据包发送到数据链路层,数据链路层对该数据包进行解包后,将该数据包从数据链路层发送到事务层。事务层对该数据包进行解包。接收装置的事务层能够获取数据包内的UT字段和TLP计数字段。
接收装置判断UT字段内是否设置有第一标识,若UT字段内设置有第一标识,数据包为流媒体业务数据包。
需要说明的是,UT字段占用1个比特位。若UT字段内设置有第一标识,数据包为流媒体业务数据包,其中,第一标识为数值1。同理,若UT字段内未设置有第一标识,数据包不为流媒体业务数据包。
需要补充的是,根据用户策略的不同,第一标识的取值也不同,第一标识可以为数值1,也可以为0等其他的数值,本发明不做限制。
S405、接收装置发送第一反馈信息至发送装置,第一反馈信息用于指示接收装置待接收的数据包的个数为0。
在接收装置的物理层将该数据包发送到数据链路层,数据链路层对该数据包进行解包后,将该数据包从数据链路层发送到事务层。事务层对该数据包进行解包。接收装置的事务层能够获取数据包内的UT字段和TLP计数字段。
TLP计数字段用于指示接收装置待接收的数据包的个数,若TLP计数字段的取值为0,则即接收装置待接收的数据包的个数为0,则接收装置发送第一反馈信息至发送装置,第一反馈信息用于指示接收装置待接收的数据包的个数为0。
S406、接收装置获取接收数据包的速率。
其中,接收装置获取接收数据包的速率具体包括:
接收装置通过Rate-Based流量控制机制获取接收数据包的速率。
由于流媒体业务对于数据传输的事实性要求较高,对数据传输的可靠性要求较低,因此需要保证发送装置和接收装置之间的链路通信效率。接收装置根据流量控制机制获取接收数据包的速率。具体的,接收装置获取接收数据包的速率具体包括:接收装置通过Rate-Based流量控制机制获取接收数据包的速率。
其中,Rate-Based流量控制机制使用Leaky Bucket算法和/或Token Bucket算法计算接收数据包的速率。
S407、接收装置根据接收数据包的速率,发送第二反馈信息至发送装置,以使得发送装置根据第二反馈信息,控制发送数据包至接收装置的速率。
在接收装置获取接收数据包的速率后,接收装置根据接收数据包的速率,发送第二反馈信息至发送装置,以使得发送装置根据第二反馈信息,控制发送数据包至接收装置的速率。
需要说明的是,第二反馈信息用于告知发送装置当前时刻接收装置接收数据包的速率。该速率可能过快,即发送装置发送数据包的速率过快导致链路拥塞,称作反向反馈;也有可能过慢,即发送装置发送数据包的速率过慢导致链路没有得到充分利用,称作正向反馈。
示例性的,正向反馈的第二反馈信息如图7所示,其中,ON字段表明发送装置发送数据包的速率过慢导致链路没有得到充分利用,因此,发送装置在接收到正向反馈的第二反馈信息后,可以适当的提高发送速率。
根据用户策略,接收装置周期性或者非周期性地获取接收数据包的速率,并根据接收数据包的速率,发送第二反馈信息至发送装置,以使得发送装置根据第二反馈信息,控制发送数据包至接收装置的速率。
需要补充的是,本发明实施例提供的数据传输方法,不仅可以使用在不同的通信节点之间,也可以使用在单个通信节点内。例如,当一台PC的摄像头要向CPU传输数据,本发明实施例提供的数据传输方法同样适用,本发明不做限制。
本发明实施例提供一种数据传输方法,通过接收装置接收发送装置发送的至少一个数据包,其中,每个数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收装置待接收的数据包的个数,序列号用于指示若接收装置未正确接收到数据包,发送装置是否重新发送数据包至接收装置。通过该方案,定义一种面向流媒体业务的数据传输方法,满足了流媒体业务对传输实时性的要求,有效降低了链路延时,提高了链路通信效率。
实施例五
本发明实施例提供一种发送装置1,如图8所示,该发送装置1包括:
获取模块10,用于获取数据传输指令,数据传输指令用于指示发送装置1发送至少一个数据包至接收装置,
其中,每个数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收装置待接收的数据包的个数,序列号用于指示若接收装置未正确接收到数据包,发送装置1是否重新发送数据包至接收装置。
发送模块11,用于发送至少一个数据包至接收装置。
进一步地,若UT字段内设置有第一标识,数据包为流媒体业务数据包。
进一步地,若序列号内设置有第二标识,且接收装置未正确接收到数据包,发送装置不重新发送数据包至接收装置。
进一步地,第二标识具体设置于序列号的第一个比特位。
进一步地,如图9所示,在发送模块11发送至少一个数据包至接收装置后,发送装置1还包括:
接收模块12,用于接收接收装置发送的第一反馈信息,第一反馈信息用于指示接收装置待接收的数据包的个数为0。
进一步地,如图10所示,发送装置1还包括:
接收模块12,还用于接收接收装置发送的第二反馈信息;
处理模块13,用于根据第二反馈信息,控制发送数据包至接收装置的速率。
本发明实施例提供一种发送装置,包括获取模块,用于获取数据传输指令,数据传输指令用于指示发送装置发送至少一个数据包至接收装置,其中,每个数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收装置待接收的数据包的个数,序列号用于指示若接收装置未正确接收到数据包,发送装置是否重新发送数据包至接收装置,以及发送模块,用于发送至少一个数据包至接收装置。通过该方案,定义一种面向流媒体业务的数据传输方法,满足了流媒体业务对传输实时性的要求,有效降低了链路延时,提高了链路通信效率。
实施例六
本发明实施例提供一种接收装置2,如图11所示,该接收装置2包括:
接收单元20,用于接收发送装置发送的至少一个数据包,
其中,每个数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收装置待接收的数据包的个数,序列号用于指示若接收装置未正确接收到数据包,发送装置是否重新发送数据包至接收装置。
进一步地,如图12所示,在接收单元20接收发送装置发送的至少一个数据包后,接收装置2还包括:
判断单元21,用于判断UT字段内是否设置有第一标识,若UT字段内设置有第一标识,数据包为流媒体业务数据包。
进一步地,如图13所示,在接收单元20接收发送装置发送的至少一个数据包后,接收装置2还包括:
判断单元21,还用于判断序列号内是否设置有第二标识;
发送单元22,用于若序列号内设置有第二标识,且接收装置未正确接收到数据包,不发送重新发送信息至发送装置,以使得发送装置不重新发送数据包至接收装置。
进一步地,第二标识具体设置于序列号的第一个比特位。
进一步地,在接收单元20接收发送装置发送的至少一个数据包后,
发送单元22,还用于发送第一反馈信息至发送装置1,第一反馈信息用于指示接收装置2待接收的数据包的个数为0。
进一步地,如图14所示,接收装置2还包括:
获取单元23,用于获取接收数据包的速率;
发送模块22,还用于根据接收数据包的速率,发送第二反馈信息至发送装置1,以使得发送装置1根据第二反馈信息,控制发送数据包至接收装置2的速率。
进一步地,接收装置2获取接收数据包的速率具体包括:
接收装置2通过Rate-Based流量控制机制获取接收数据包的速率。
进一步地,Rate-Based流量控制机制使用Leaky Bucket算法和/或Token Bucket算法计算接收数据包的速率。
本发明实施例提供一种接收装置,包括接收单元,用于接收发送装置发送的至少一个数据包,其中,每个数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收装置待接收的数据包的个数,序列号用于指示若接收装置未正确接收到数据包,发送装置是否重新发送数据包至接收装置。通过该方案,定义一种面向流媒体业务的数据传输方法,满足了流媒体业务对传输实时性的要求,有效降低了链路延时,提高了链路通信效率。
实施例七
本发明实施例提供一种发送器3,如图15所示,该发送器3包括:
处理器30,用于获取数据传输指令,数据传输指令用于指示发送器3发送至少一个数据包至接收器,
其中,每个数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收器待接收的数据包的个数,序列号用于指示若接收器未正确接收到数据包,发送器3是否重新发送数据包至接收器。
处理器30,还用于发送至少一个数据包至接收器。
进一步地,若UT字段内设置有第一标识,数据包为流媒体业务数据包。
进一步地,若序列号内设置有第二标识,且接收器未正确接收到数据包,发送器不重新发送数据包至接收器。
进一步地,第二标识具体设置于序列号的第一个比特位。
进一步地,在处理器30发送至少一个数据包至接收器后,
处理器30,还用于接收接收器发送的第一反馈信息,第一反馈信息用于指示接收器待接收的数据包的个数为0。
进一步地,处理器30,还用于接收接收器发送的第二反馈信息;
处理器30,还用于根据第二反馈信息,控制发送数据包至接收器的速率。
本发明实施例提供一种发送器,包括处理器,用于获取数据传输指令,数据传输指令用于指示发送器发送至少一个数据包至接收器,其中,每个数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收器待接收的数据包的个数,序列号用于指示若接收器未正确接收到数据包,发送器是否重新发送数据包至接收器,以及发送至少一个数据包至接收器。通过该方案,定义一种面向流媒体业务的数据传输方法,满足了流媒体业务对传输实时性的要求,有效降低了链路延时,提高了链路通信效率。
实施例八
本发明实施例提供一种接收器4,如图16所示,该接收器4包括:
处理器40,用于接收发送器发送的至少一个数据包,
其中,每个数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收器待接收的数据包的个数,序列号用于指示若接收器未正确接收到数据包,发送器是否重新发送数据包至接收器。
进一步地,在处理器40接收发送器发送的至少一个数据包后,
处理器40,还用于判断UT字段内是否设置有第一标识,若UT字段内设置有第一标识,数据包为流媒体业务数据包。
进一步地,在处理器40接收发送器发送的至少一个数据包后,
处理器40,还用于判断序列号内是否设置有第二标识;
处理器40,还用于若序列号内设置有第二标识,且接收器未正确接收到数据包,不发送重新发送信息至发送器,以使得发送器不重新发送数据包至接收器。
进一步地,第二标识具体设置于序列号的第一个比特位。
进一步地,在处理器40接收发送器发送的至少一个数据包后,
处理器40,还用于发送第一反馈信息至发送器3,第一反馈信息用于指示接收器4待接收的数据包的个数为0。
进一步地,处理器40,还用于获取接收数据包的速率;
处理器40,还用于根据接收数据包的速率,发送第二反馈信息至发送器3,以使得发送器3根据第二反馈信息,控制发送数据包至接收器4的速率。
进一步地,接收器4获取接收数据包的速率具体包括:
接收器4通过Rate-Based流量控制机制获取接收数据包的速率。
进一步地,Rate-Based流量控制机制使用Leaky Bucket算法和/或Token Bucket算法计算接收数据包的速率。
本发明实施例提供一种接收器,包括处理器,用于接收发送器发送的至少一个数据包,其中,每个数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,UT字段用于指示数据包是否为流媒体业务数据包,TLP计数字段用于指示接收器待接收的数据包的个数,序列号用于指示若接收器未正确接收到数据包,发送器是否重新发送数据包至接收器。通过该方案,定义一种面向流媒体业务的数据传输方法,满足了流媒体业务对传输实时性的要求,有效降低了链路延时,提高了链路通信效率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (28)
1.一种数据传输方法,其特征在于,包括:
发送装置获取数据传输指令,所述数据传输指令用于指示所述发送装置发送至少一个数据包至接收装置,
其中,每个所述数据包内设置有用户自定义类型UT字段、事务层传输包TLP计数字段和序列号,所述UT字段用于指示所述数据包是否为流媒体业务数据包,所述TLP计数字段用于指示所述接收装置待接收的数据包的个数,所述序列号用于指示若所述接收装置未正确接收到所述数据包,所述发送装置是否重新发送所述数据包至所述接收装置;
所述发送装置发送所述至少一个数据包至所述接收装置。
2.根据权利要求1所述的数据传输方法,其特征在于,若所述UT字段内设置有第一标识,所述数据包为流媒体业务数据包。
3.根据权利要求1所述的数据传输方法,其特征在于,若所述序列号内设置有第二标识,且所述接收装置未正确接收到所述数据包,所述发送装置不重新发送所述数据包至所述接收装置。
4.根据权利要求3所述的数据传输方法,其特征在于,所述第二标识具体设置于所述序列号的第一个比特位。
5.根据权利要求1所述的数据传输方法,其特征在于,在所述发送装置发送所述至少一个数据包至所述接收装置后,所述方法还包括:
所述发送装置接收所述接收装置发送的第一反馈信息,所述第一反馈信息用于指示所述接收装置待接收的数据包的个数为0。
6.根据权利要求1-5中任意一项所述的数据传输方法,其特征在于,所述方法还包括:
所述发送装置接收所述接收装置发送的第二反馈信息;
所述发送装置根据所述第二反馈信息,控制发送所述数据包至所述接收装置的速率。
7.一种数据传输方法,其特征在于,包括:
接收装置接收发送装置发送的至少一个数据包,
其中,每个所述数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,所述UT字段用于指示所述数据包是否为流媒体业务数据包,所述TLP计数字段用于指示所述接收装置待接收的数据包的个数,所述序列号用于指示若所述接收装置未正确接收到所述数据包,所述发送装置是否重新发送所述数据包至所述接收装置。
8.根据权利要求7所述的数据传输方法,其特征在于,在所述接收装置接收所述发送装置发送的所述至少一个数据包后,所述方法还包括:
所述接收装置判断所述UT字段内是否设置有第一标识,若所述UT字段内设置有第一标识,所述数据包为流媒体业务数据包。
9.根据权利要求7所述的数据传输方法,其特征在于,在所述接收装置接收所述发送装置发送的所述至少一个数据包后,所述方法还包括:
所述接收装置判断所述序列号内是否设置有第二标识;
若所述序列号内设置有第二标识,且所述接收装置未正确接收到所述数据包,所述接收装置不发送重新发送信息至所述发送装置,以使得所述发送装置不重新发送所述数据包至所述接收装置。
10.根据权利要求9所述的数据传输方法,其特征在于,所述第二标识具体设置于所述序列号的第一个比特位。
11.根据权利要求7所述的数据传输方法,其特征在于,在所述接收装置接收所述发送装置发送的所述至少一个数据包后,所述方法还包括:
所述接收装置发送第一反馈信息至所述发送装置,所述第一反馈信息用于指示所述接收装置待接收的数据包的个数为0。
12.根据权利要求7-11中任意一项所述的数据传输方法,其特征在于,所述方法还包括:
所述接收装置获取接收所述数据包的速率;
所述接收装置根据所述接收所述数据包的速率,发送第二反馈信息至所述发送装置,以使得所述发送装置根据所述第二反馈信息,控制发送所述数据包至所述接收装置的速率。
13.根据权利要求12所述的数据传输方法,其特征在于,所述接收装置获取接收所述数据包的速率具体包括:
所述接收装置通过Rate-Based流量控制机制获取接收所述数据包的速率。
14.根据权利要求13所述的数据传输方法,其特征在于,所述Rate-Based流量控制机制使用Leaky Bucket算法和/或Token Bucket算法计算所述接收所述数据包的速率。
15.一种发送装置,其特征在于,包括:
获取模块,用于获取数据传输指令,所述数据传输指令用于指示所述发送装置发送至少一个数据包至接收装置,
其中,每个所述数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,所述UT字段用于指示所述数据包是否为流媒体业务数据包,所述TLP计数字段用于指示所述接收装置待接收的数据包的个数,所述序列号用于指示若所述接收装置未正确接收到所述数据包,所述发送装置是否重新发送所述数据包至所述接收装置;
发送模块,用于发送所述至少一个数据包至所述接收装置。
16.根据权利要求15所述的发送装置,其特征在于,若所述UT字段内设置有第一标识,所述数据包为流媒体业务数据包。
17.根据权利要求15所述的发送装置,其特征在于,若所述序列号内设置有第二标识,且所述接收装置未正确接收到所述数据包,所述发送装置不重新发送所述数据包至所述接收装置。
18.根据权利要求17所述的发送装置,其特征在于,所述第二标识具体设置于所述序列号的第一个比特位。
19.根据权利要求15所述的发送装置,其特征在于,在所述发送模块发送所述至少一个数据包至所述接收装置后,所述发送装置还包括:
接收模块,用于接收所述接收装置发送的第一反馈信息,所述第一反馈信息用于指示所述接收装置待接收的数据包的个数为0。
20.根据权利要求15-19中任意一项所述的发送装置,其特征在于,所述发送装置还包括:
所述接收模块,还用于接收所述接收装置发送的第二反馈信息;
处理模块,用于根据所述第二反馈信息,控制发送所述数据包至所述接收装置的速率。
21.一种接收装置,其特征在于,包括:
接收单元,用于接收发送装置发送的至少一个数据包,
其中,每个所述数据包内设置有UT字段、事务层传输包TLP计数字段和序列号,所述UT字段用于指示所述数据包是否为流媒体业务数据包,所述TLP计数字段用于指示所述接收装置待接收的数据包的个数,所述序列号用于指示若所述接收装置未正确接收到所述数据包,所述发送装置是否重新发送所述数据包至所述接收装置。
22.根据权利要求21所述的接收装置,其特征在于,在所述接收单元接收发送装置发送的至少一个数据包后,所述接收装置还包括:
判断单元,用于判断所述UT字段内是否设置有第一标识,若所述UT字段内设置有第一标识,所述数据包为流媒体业务数据包。
23.根据权利要求21所述的接收装置,其特征在于,在所述接收单元接收发送装置发送的至少一个数据包后,所述接收装置还包括:
所述判断单元,还用于判断所述序列号内是否设置有第二标识;
发送单元,用于若所述序列号内设置有第二标识,且所述接收装置未正确接收到所述数据包,不发送重新发送信息至所述发送装置,以使得所述发送装置不重新发送所述数据包至所述接收装置。
24.根据权利要求23所述的接收装置,其特征在于,所述第二标识具体设置于所述序列号的第一个比特位。
25.根据权利要求21所述的接收装置,其特征在于,在所述接收单元接收发送装置发送的至少一个数据包后,
所述发送单元,还用于发送第一反馈信息至所述发送装置,所述第一反馈信息用于指示所述接收装置待接收的数据包的个数为0。
26.根据权利要求21-25中任意一项所述的接收装置,其特征在于,所述接收装置还包括:
获取单元,用于获取接收所述数据包的速率;
所述发送模块,还用于根据所述接收所述数据包的速率,发送第二反馈信息至所述发送装置,以使得所述发送装置根据所述第二反馈信息,控制发送所述数据包至所述接收装置的速率。
27.根据权利要求26所述的接收装置,其特征在于,所述接收装置获取接收所述数据包的速率具体包括:
所述接收装置通过Rate-Based流量控制机制获取接收所述数据包的速率。
28.根据权利要求27所述的接收装置,其特征在于,所述Rate-Based流量控制机制使用Leaky Bucket算法和/或Token Bucket算法计算所述接收所述数据包的速率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310382184.8A CN104426866B (zh) | 2013-08-28 | 2013-08-28 | 一种数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310382184.8A CN104426866B (zh) | 2013-08-28 | 2013-08-28 | 一种数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104426866A true CN104426866A (zh) | 2015-03-18 |
CN104426866B CN104426866B (zh) | 2018-12-14 |
Family
ID=52974821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310382184.8A Active CN104426866B (zh) | 2013-08-28 | 2013-08-28 | 一种数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104426866B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016197659A1 (zh) * | 2015-06-12 | 2016-12-15 | 中兴通讯股份有限公司 | 网络媒体流收包方法、装置及系统 |
CN110943935A (zh) * | 2018-09-25 | 2020-03-31 | 华为技术有限公司 | 一种实现数据传输的方法、装置和系统 |
CN115173990A (zh) * | 2022-06-15 | 2022-10-11 | 杭州海康机器人技术有限公司 | 一种数据包传输方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004056029A2 (en) * | 2002-12-16 | 2004-07-01 | Nortel Networks Limited | Communication system with uplink space-time coding via coordinated mobile terminals |
CN1921346A (zh) * | 2005-08-24 | 2007-02-28 | 华为技术有限公司 | 数据分割级联传送方法 |
CN101179362A (zh) * | 2006-11-07 | 2008-05-14 | 中兴通讯股份有限公司 | 适宜移动流媒体应用的自动重传请求机制 |
CN101299711A (zh) * | 2007-04-30 | 2008-11-05 | 华为技术有限公司 | 数据单元转换的方法、设备及数据单元传输的系统 |
CN101841469A (zh) * | 2010-03-24 | 2010-09-22 | 北京创毅视讯科技有限公司 | 一种物联网中的数据传输方法、系统和装置 |
CN101860422A (zh) * | 2009-04-09 | 2010-10-13 | 华为技术有限公司 | 一种数字用户线路的数据传输方法、装置及系统 |
CN102143137A (zh) * | 2010-09-10 | 2011-08-03 | 华为技术有限公司 | 媒体流发送及接收方法、装置和系统 |
CN102833858A (zh) * | 2012-09-06 | 2012-12-19 | 东莞宇龙通信科技有限公司 | 数据通信装置和数据通信方法 |
-
2013
- 2013-08-28 CN CN201310382184.8A patent/CN104426866B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004056029A2 (en) * | 2002-12-16 | 2004-07-01 | Nortel Networks Limited | Communication system with uplink space-time coding via coordinated mobile terminals |
CN1921346A (zh) * | 2005-08-24 | 2007-02-28 | 华为技术有限公司 | 数据分割级联传送方法 |
CN101179362A (zh) * | 2006-11-07 | 2008-05-14 | 中兴通讯股份有限公司 | 适宜移动流媒体应用的自动重传请求机制 |
CN101299711A (zh) * | 2007-04-30 | 2008-11-05 | 华为技术有限公司 | 数据单元转换的方法、设备及数据单元传输的系统 |
CN101860422A (zh) * | 2009-04-09 | 2010-10-13 | 华为技术有限公司 | 一种数字用户线路的数据传输方法、装置及系统 |
CN101841469A (zh) * | 2010-03-24 | 2010-09-22 | 北京创毅视讯科技有限公司 | 一种物联网中的数据传输方法、系统和装置 |
CN102143137A (zh) * | 2010-09-10 | 2011-08-03 | 华为技术有限公司 | 媒体流发送及接收方法、装置和系统 |
CN102833858A (zh) * | 2012-09-06 | 2012-12-19 | 东莞宇龙通信科技有限公司 | 数据通信装置和数据通信方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016197659A1 (zh) * | 2015-06-12 | 2016-12-15 | 中兴通讯股份有限公司 | 网络媒体流收包方法、装置及系统 |
CN110943935A (zh) * | 2018-09-25 | 2020-03-31 | 华为技术有限公司 | 一种实现数据传输的方法、装置和系统 |
WO2020063338A1 (zh) * | 2018-09-25 | 2020-04-02 | 华为技术有限公司 | 一种实现数据传输的方法、装置和系统 |
US11502962B2 (en) | 2018-09-25 | 2022-11-15 | Huawei Technologies Co., Ltd. | Method, apparatus, and system for implementing data transmission |
CN115173990A (zh) * | 2022-06-15 | 2022-10-11 | 杭州海康机器人技术有限公司 | 一种数据包传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104426866B (zh) | 2018-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10868767B2 (en) | Data transmission method and apparatus in optoelectronic hybrid network | |
CN108631950B (zh) | 发送反馈信息的方法和设备 | |
CN103141050B (zh) | 快速通道互联系统中数据包重传方法、节点 | |
CN103647759A (zh) | 一种mss的协商方法及装置 | |
EP2928108B1 (en) | System, method and apparatus for multi-lane auto-negotiation over reduced lane media | |
KR102046792B1 (ko) | 송신 노드로부터 목적지 노드로의 데이터 전송 방법 | |
CN105162706B (zh) | 组播传输方法、装置及系统 | |
JP2015027100A (ja) | パケット通信の伝送制御方法及びパケット通信システム | |
CN104980257B (zh) | 物联网通讯方法及装置 | |
CN103188059A (zh) | 快速通道互联系统中数据包重传方法、装置和系统 | |
CN107707338A (zh) | 码块组分组确定/指示方法、用户设备、基站及存储介质 | |
CN108092745A (zh) | 点对点设备的数据传输方法、装置、设备及存储介质 | |
CN104426866A (zh) | 一种数据传输方法及装置 | |
CN105871512B (zh) | 一种数据传输方法及装置 | |
CN103973414A (zh) | 一种数据传输方法及装置 | |
CN110138635B (zh) | 一种支持fc与以太网的协议转换功能验证装置及方法 | |
KR101769133B1 (ko) | Tcp/ udp를 적응적으로 선택하는 전자기기 및 이의 패킷 송수신 방법 | |
CN103731424B (zh) | 一种网络数据的传输方法、装置及系统 | |
EP2916234B1 (en) | Method and universal interface chip for achieving high-speed data transmission | |
CN102932820A (zh) | 一种链路处理方法、装置和系统 | |
CN103368865A (zh) | 基于多网络访问接口的自适应通信方法及系统 | |
CN104022961A (zh) | 一种数据传输方法、装置及系统 | |
EP3496489A1 (en) | Communication method, terminal and network device | |
CN104298630A (zh) | 基于串行外设接口的通信方法、装置和设备 | |
CN103036984A (zh) | 一种单向流量的检测方法及网络设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |