CN109391605A - 数据传输方法、装置及系统 - Google Patents

数据传输方法、装置及系统 Download PDF

Info

Publication number
CN109391605A
CN109391605A CN201710691394.3A CN201710691394A CN109391605A CN 109391605 A CN109391605 A CN 109391605A CN 201710691394 A CN201710691394 A CN 201710691394A CN 109391605 A CN109391605 A CN 109391605A
Authority
CN
China
Prior art keywords
rtp
data packet
rtp data
byte
retransmission instruction
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
Application number
CN201710691394.3A
Other languages
English (en)
Other versions
CN109391605B (zh
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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201710691394.3A priority Critical patent/CN109391605B/zh
Priority to EP18846893.8A priority patent/EP3672189B1/en
Priority to PCT/CN2018/100506 priority patent/WO2019034061A1/zh
Priority to US16/639,533 priority patent/US11196792B2/en
Publication of CN109391605A publication Critical patent/CN109391605A/zh
Application granted granted Critical
Publication of CN109391605B publication Critical patent/CN109391605B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • H04L1/1816Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of the same, encoded, message
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明公开了一种数据传输方法、装置及系统,属于通信技术领域。所述方法包括:通过与接收端建立的实时传输协议RTP数据链路,向接收端发送多个第一RTP数据包;接收接收端发送的重传指示消息,重传指示消息用于指示多个第一RTP数据包中的待重传RTP数据包;根据重传指示消息,对待重传RTP数据包进行封装,得到第二RTP数据包,其中,第二RTP数据包包括用于指示第二RTP数据包为重传的RTP数据包的RTP填充字段;通过RTP数据链路,向接收端发送第二RTP数据包。本发明解决了数据包重传的步骤较繁琐,数据传输的效率较低的问题。本发明用于数据的传输。

Description

数据传输方法、装置及系统
技术领域
本发明涉及通信技术领域,特别涉及一种数据传输方法、装置及系统。
背景技术
在通信技术领域中,发送端和接收端可以基于实时传输协议(英文: Real-timeTransport Protocol;简称:RTP)进行数据的传输。示例的,发送端可 以与接收端建立RTP数据链路,并通过该RTP数据链路向接收端发送RTP数据 包。需要说明的是,每个RTP数据链路只允许一种RTP数据包传输,该种RTP 数据包中有效载荷类型(英文:payload type;简称:PT)指示位与该RTP数据 链路相对应。
相关技术中,接收端在接收到发送端通过RTP数据包发送的RTP数据包后, 可以确定多个RTP数据包中的待重传RTP数据包(也即多个RTP数据包中丢失 的RTP数据包),并向发送端发送用于指示该待重传RTP数据包的重传指示消 息。在接收到该重传指示消息后,发送端会修改该待重传RTP数据包中的PT 指示位,得到新的RTP数据包。发送端还需要与接收端建立与修改后的PT指示 位对应的数据链路,并通过该RTP数据链路向接收端发送该新的RTP数据包。
由于相关技术中,发送端在接收到重传指示信息后,需要重新建立RTP数 据链路,且建立RTP数据链路的过程较复杂,因此,数据包重传的步骤较繁琐, 数据传输的效率较低。
发明内容
为了解决相关技术数据包重传的步骤较繁琐,数据传输的效率较低的问题, 本发明提供了一种数据传输方法、装置及系统。所述技术方案如下:
第一方面,提供了一种数据传输方法,用于发送端,所述方法包括:
通过与接收端建立的实时传输协议RTP数据链路,向所述接收端发送多个 第一RTP数据包;
接收所述接收端发送的重传指示消息,所述重传指示消息用于指示所述多 个第一RTP数据包中的待重传RTP数据包;
根据所述重传指示消息,对所述待重传RTP数据包进行封装,得到第二RTP 数据包,其中,所述第二RTP数据包包括用于指示所述第二RTP数据包为重传 的RTP数据包的RTP填充字段,且所述第二RTP数据包中的类型指示位与所述 第一RTP数据包中的类型指示位相同;
通过所述RTP数据链路,向所述接收端发送所述第二RTP数据包。
可选的,所述根据所述重传指示消息,对所述待重传RTP数据包进行封装, 包括:
在所述待重传RTP数据包后增加填充单元,所述第二RTP数据包中的RTP 填充字段包括所述填充单元,所述填充单元包括:重传指示字节,所述重传指 示字节用于指示所述第二RTP数据包为重传的RTP数据包。
可选的,所述重传指示字节至少包括:重传指示位和次数指示位,
所述重传指示位用于指示所述第二RTP数据包为重传的RTP数据包;
所述次数指示位用于指示所述发送端发送所述第二RTP数据包的次数。
可选的,所述重传指示字节还包括:数据指示位,
所述数据指示位用于指示所述第二RTP数据包中的RTP数据字段是否为所 述待重传RTP数据包中的RTP数据字段。
可选的,所述重传指示字节为所述填充单元中的倒数第二个字节,所述长 度指示字节为所述填充单元中的最后一个字节;
所述重传指示位包括两个比特位,所述次数指示位包括三个比特位,所述 数据指示位包括一个比特位;
所述重传指示位、所述数据指示位和所述次数指示位在所述重传指示字节 中依次排列,且所述重传指示位中的两个比特位为所述重传指示字节中的前两 个比特位。
可选的,所述根据所述重传指示消息,对所述待重传RTP数据包进行封装, 还包括:
在所述待重传RTP数据包后增加填充单元之前,判断所述待重传RTP数据 包是否包括RTP填充字段;
若所述待重传RTP数据包包括RTP填充字段,则在所述待重传RTP数据包 后增加填充单元,得到所述第二RTP数据包;
若所述待重传RTP数据包不包括RTP填充字段,则在所述待重传RTP数据 包后增加填充单元之后,更新所述待重传RTP数据包中的RTP头字段中的填充 指示位,得到所述第二RTP数据包,其中,更新后的所述填充指示位用于指示 所述第二RTP数据包包括RTP填充字段。
可选的,在所述待重传RTP数据包后增加填充单元之前,所述根据所述重 传指示消息,对所述待重传RTP数据包进行封装,还包括:
获取预设的单位字节数,所述待重传RTP数据包的字节总数为所述单位字 节数的整数倍,且所述单位字节数为2的n次方,所述n为大于或等于1的整 数;
根据所述单位字节数,确定由m个字节组成的所述填充单元,其中,所述 m个字节至少包括所述重传指示字节和所述长度指示字节,所述m为所述单位 字节数的整数倍。
可选的,所述填充单元还包括:长度指示字节,所述长度指示字节用于指 示所述第二RTP数据包中RTP填充字段的长度。
第二方面,提供了另一种数据传输方法,用于接收端,所述方法包括:
通过与发送端建立的实时传输协议RTP数据链路,接收所述发送端发送的 RTP数据包;
当所述RTP数据包包括RTP填充字段时,根据所述RTP数据包的RTP填 充字段,确定所述RTP数据包是否为重传的RTP数据包。
可选的,所述根据所述RTP数据包的RTP填充字段,确定所述RTP数据包 是否为重传的RTP数据包,包括:
获取所述RTP填充字段中的重传指示字节;
根据所述重传指示字节,确定所述RTP数据包是否为重传的RTP数据包。
可选的,所述重传指示字节至少包括:重传指示位和次数指示位,所述次 数指示位用于指示所述发送端发送所述RTP数据包的次数,所述根据所述重传 指示字节,确定所述RTP数据包是否为重传的RTP数据包,包括:
根据所述重传指示字节中的所述重传指示位,确定所述RTP数据包是否为 重传的RTP数据包。
可选的,所述重传指示字节还包括:数据指示位,所述方法还包括:
当所述重传指示位用于指示所述RTP数据包为重传的RTP数据包时,获取 所述重传指示字节中的所述数据指示位;
当所述数据指示位用于指示所述RTP数据包中的RTP数据字段为待重传 RTP数据包中的RTP数据字段时,获取并存储所述RTP数据包中的RTP数据字 段;
当所述数据指示位用于指示所述RTP数据包中的RTP数据字段不为所述待 重传RTP数据包中的RTP数据字段时,删除所述RTP数据包。
可选的,所述重传指示字节为所述填充单元中的倒数第二个字节,所述长 度指示字节为所述填充单元中的最后一个字节;
所述重传指示位包括两个比特位,所述次数指示位包括三个比特位,所述 数据指示位包括一个比特位;
所述重传指示位、所述数据指示位和所述次数指示位在所述重传指示字节 中依次排列,且所述重传指示位中的两个比特位为所述重传指示字节中的前两 个比特位。
可选的,在所述根据所述RTP数据包的RTP填充字段,确定所述RTP数据 包是否为重传的RTP数据包之前,所述方法还包括:
获取所述RTP数据包中的RTP头字段中的填充指示位;
根据所述填充指示位,确定所述RTP数据包是否包括RTP填充字段。
可选的,在所述根据所述RTP数据包的RTP填充字段,确定所述RTP数据 包是否为重传的RTP数据包之前,所述方法还包括:
获取预设的单位字节数;
根据所述单位字节数,将所述RTP数据包划分为多个数据段,每个所述数 据段的字节总数等于所述单位字节数;
分别解析所述多个数据段。
可选的,在所述通过与发送端建立的实时传输协议RTP数据链路,接收所 述发送端发送的RTP数据包之后,所述方法还包括:
获取所述RTP填充字段中的长度指示字节;
根据所述长度指示字节,确定所述RTP填充字段的长度;
获取所述RTP数据包中RTP头字段的预设长度;
根据所述RTP填充字段的长度,以及所述RTP数据包中RTP头字段的预设 长度,确定所述RTP数据包中的RTP数据字段。
第三方面,提供了一种数据传输装置,用于发送端,所述数据传输装置包 括:第一发送模块,用于通过与接收端建立的实时传输协议RTP数据链路,向 所述接收端发送多个第一RTP数据包;
接收模块,用于接收所述接收端发送的重传指示消息,所述重传指示消息 用于指示所述多个第一RTP数据包中的待重传RTP数据包;
封装模块,用于根据所述重传指示消息,对所述待重传RTP数据包进行封 装,得到第二RTP数据包,其中,所述第二RTP数据包包括用于指示所述第二 RTP数据包为重传的RTP数据包的RTP填充字段,且所述第二RTP数据包中的 类型指示位与所述第一RTP数据包中的类型指示位相同;
第二发送模块,用于通过所述RTP数据链路,向所述接收端发送所述第二 RTP数据包。
可选的,所述封装模块还用于:
在所述待重传RTP数据包后增加填充单元,所述第二RTP数据包中的RTP 填充字段包括所述填充单元,所述填充单元包括:重传指示字节,所述重传指 示字节用于指示所述第二RTP数据包为重传的RTP数据包。
可选的,所述重传指示字节至少包括:重传指示位和次数指示位,
所述重传指示位用于指示所述第二RTP数据包为重传的RTP数据包;
所述次数指示位用于指示所述发送端发送所述第二RTP数据包的次数。
可选的,所述重传指示字节还包括:数据指示位,
所述数据指示位用于指示所述第二RTP数据包中的RTP数据字段是否为所 述待重传RTP数据包中的RTP数据字段。
可选的,所述重传指示字节为所述填充单元中的倒数第二个字节,所述长 度指示字节为所述填充单元中的最后一个字节;
所述重传指示位包括两个比特位,所述次数指示位包括三个比特位,所述 数据指示位包括一个比特位;
所述重传指示位、所述数据指示位和所述次数指示位在所述重传指示字节 中依次排列,且所述重传指示位中的两个比特位为所述重传指示字节中的前两 个比特位。
可选的,所述封装模块还用于:
在所述待重传RTP数据包后增加填充单元之前,判断所述待重传RTP数据 包是否包括RTP填充字段;
若所述待重传RTP数据包包括RTP填充字段,则在所述待重传RTP数据包 后增加填充单元,得到所述第二RTP数据包;
若所述待重传RTP数据包不包括RTP填充字段,则在所述待重传RTP数据 包后增加填充单元之后,更新所述待重传RTP数据包中的RTP头字段中的填充 指示位,得到所述第二RTP数据包,其中,更新后的所述填充指示位用于指示 所述第二RTP数据包包括RTP填充字段。
可选的,所述封装模块,还用于:
获取预设的单位字节数,所述待重传RTP数据包的字节总数为所述单位字 节数的整数倍,且所述单位字节数为2的n次方,所述n为大于或等于1的整 数;
根据所述单位字节数,确定由m个字节组成的所述填充单元,其中,所述 m个字节至少包括所述重传指示字节和所述长度指示字节,所述m为所述单位 字节数的整数倍。
可选的,所述填充单元还包括:长度指示字节,所述长度指示字节用于指 示所述第二RTP数据包中RTP填充字段的长度。
第四方面,提供了另一种数据传输装置,用于接收端,所述数据传输装置 包括:
接收模块,用于通过与发送端建立的实时传输协议RTP数据链路,接收所 述发送端发送的RTP数据包;
第一确定模块,用于在所述RTP数据包包括RTP填充字段时,根据所述RTP 数据包的RTP填充字段,确定所述RTP数据包是否为重传的RTP数据包。
可选的,所述第一确定模块还用于:
获取所述RTP填充字段中的重传指示字节;
根据所述重传指示字节,确定所述RTP数据包是否为重传的RTP数据包。
可选的,所述重传指示字节至少包括:重传指示位和次数指示位,所述次 数指示位用于指示所述发送端发送所述RTP数据包的次数,所述第一确定模块 还用于:
根据所述重传指示字节中的所述重传指示位,确定所述RTP数据包是否为 重传的RTP数据包。
可选的,所述重传指示字节还包括:数据指示位,所述数据传输装置还包 括:
第一获取模块,用于在所述重传指示位用于指示所述RTP数据包为重传的 RTP数据包时,获取所述重传指示字节中的所述数据指示位;
第二获取模块,用于在所述数据指示位用于指示所述RTP数据包中的RTP 数据字段为待重传RTP数据包中的RTP数据字段时,获取并存储所述RTP数据 包中的RTP数据字段;
删除模块,用于在所述数据指示位用于指示所述RTP数据包中的RTP数据 字段不为所述待重传RTP数据包中的RTP数据字段时,删除所述RTP数据包。
可选的,所述重传指示字节为所述填充单元中的倒数第二个字节,所述长 度指示字节为所述填充单元中的最后一个字节;
所述重传指示位包括两个比特位,所述次数指示位包括三个比特位,所述 数据指示位包括一个比特位;
所述重传指示位、所述数据指示位和所述次数指示位在所述重传指示字节 中依次排列,且所述重传指示位中的两个比特位为所述重传指示字节中的前两 个比特位。
可选的,所述数据传输装置还包括:
第三获取模块,用于获取所述RTP数据包中的RTP头字段中的填充指示位;
第二确定模块,用于根据所述填充指示位,确定所述RTP数据包是否包括 RTP填充字段。
可选的,所述数据传输装置还包括:
第四获取模块,用于获取预设的单位字节数;
划分模块,用于根据所述单位字节数,将所述RTP数据包划分为多个数据 段,每个所述数据段的字节总数等于所述单位字节数;
解析模块,用于分别解析所述多个数据段。
可选的,所述数据传输装置还包括:
第五获取模块,用于获取所述RTP填充字段中的长度指示字节;
第三确定模块,用于根据所述长度指示字节,确定所述RTP填充字段的长 度;
第六获取模块,用于获取所述RTP数据包中RTP头字段的预设长度;
第四确定模块,用于根据所述RTP填充字段的长度,以及所述RTP数据包 中RTP头字段的预设长度,确定所述RTP数据包中的RTP数据字段。
第五方面,提供了一种数据传输系统,所述数据传输系统包括:发送端和 接收端,所述发送端包括:第三方面提供的数据传输装置,所述接收端包括: 第四方面提供的数据传输装置。
第六方面,提供了一种计算机设备,所述计算机设备包括:处理器和存储 器,
其中,所述存储器,用于存放计算机程序;所述处理器,用于执行所述存 储器上所存放的程序,实现第一方面提供的数据传输方法,或者,实现第二方 面提供的数据传输方法。
第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内 存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的数据 传输方法;或者,所述计算机程序被处理器执行时实现第二方面提供的数据传 输方法。
本发明提供的技术方案带来的有益效果是:
本发明公开了一种数据传输方法、装置及系统,在该数据传输方法中,发 送端在对待重传RTP数据包进行封装后,得到的第二RTP数据包中,RTP填充 字段能够指示该第二RTP数据包为重传的RTP数据包,且第一RTP数据包中的 类型指示位和第二RTP数据包中类型指示位相同。所以,第二RTP据包与第一 RTP数据包可以在同一个RTP数据链路上传输,在重传待重传RTP数据包前, 发送端无需与接收端重新建立RTP数据链路,因此,简化了数据包重传的步骤, 提高了数据传输的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种RTP帧的结构示意图;
图2为本发明实施例提供的一种数据传输方法的方法流程图;
图3为本发明实施例提供的一种发送端得到第二RTP数据包的方法流程图;
图4为本发明实施例提供的一种填充单元的结构示意图;
图5为本发明实施例提供的一种待重传RTP数据包与第二RTP数据包的结 构示意图;
图6为本发明实施例提供的一种接收端对接收到的RTP数据包进行解析的 方法流程图;
图7为本发明实施例提供的一种数据传输装置的结构示意图;
图8为本发明实施例提供的另一种数据传输装置的结构示意图;
图9为本发明实施例提供的又一种数据传输装置的结构示意图;
图10为本发明实施例提供的再一种数据传输装置的结构示意图;
图11为本发明另一实施例提供的一种数据传输装置的结构示意图;
图12为本发明另一实施例提供的另一种数据传输装置的结构示意图;
图13为本发明实施例提供的一种计算机设备的结构示意图;
图14为本发明实施例提供的另一种计算机设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明 实施方式作进一步地详细描述。
在通信技术领域中,发送端和接收端可以基于RTP(如版本号为RFC3550 的RTP)进行数据的传输。示例的,发送端可以与接收端建立RTP数据链路, 并通过该RTP数据链路向接收端发送由至少一个RTP数据包(英文:RTP Packet) 组成的RTP帧(英文:Frame)。
图1为本发明实施例提供的一种RTP帧的结构示意图。如图1所示,一个 RTP帧包括至少一个RTP数据包,每个RTP数据包可以包括RTP头标准字段(以 下简称为RTP头字段)、RTP数据字段(图1中未标出)和RTP填充字段。其 中,RTP数据字段可以包括:RTP头私有扩展字段或RTP标准负载字段。需要 说明的是,RTP帧包含的至少一个RTP数据包中,部分RTP数据包包括RTP 填充字段,而部分RTP数据包可能不包括RTP填充字段,图1以RTP数据包 包括RTP填充字段为例。
进一步的,图1还示出了RTP头字段的语法格式。如图1所示,RTP头字 段的语法格式中,“+”表示间隔符,每相邻的两个“+”中间的“—”或者“=” 代表1个比特位。
RTP头字段包括多个比特位,其中,V=2为版本(英文:version)指示位, 占2个比特位,用来表示V=2所在的RTP数据包的版本。
P为填充(英文:padding)指示位,占1个比特位,用来表示P所在的RTP 数据包尾部是否有RTP填充字段。示例的,当P被设置为1时,表示该RTP数 据包尾部有RTP填充字段;当P被设置为0时,表示该RTP数据包尾部没有 RTP填充字段。
X为扩展(英文:extension)指示位,占1个比特位,用来表示X所在的 RTP数据包的RTP头字段和数据字段之间是否存在扩展字段。示例的,当X被 设置为1时,表示该RTP数据包的RTP头字段包含扩展字段;当X被设置为0 时,表示该RTP数据包的RTP头字段不包含扩展字段。
CC为贡献源字段(英文:contributing source count;简称:CSRC)指示位, 占4个比特位,用来表示CSRC的个数。
M为标记(英文:marker)指示位,占1个比特位,用来表示M所在的RTP 数据包是否是该RTP数据包所在的RTP帧中的最后一个RTP数据包。示例的, 当M被设置为1时,表示该RTP数据包是该RTP帧中的最后一个RTP数据包; 当M被设置为0时,表示该RTP数据包不是该RTP帧中的最后一个RTP数据 包。
PT为有效载荷类型(英文:payload type)指示位,占7个比特位,用来表 示PT所在的RTP数据包中的RTP数据字段的类型。
SN为序列号(英文:sequence number)指示位,占16个比特位,用来表 示SN所在的RTP数据包的发送顺序,也即是接收端收到该RTP数据包后送到 解码器里的顺序。发送端在依次发送多个RTP数据包的过程中,通常会在每发 一个RTP数据包时,为该RTP数据包的SN的值递增1。示例的,发送端依次 发送的三个RTP数据包A1、A2和A3的序列号可以依次为:0000000000000000、 0000000000000001和0000000000000010。
时间戳(英文:timestamp)指示位,占32个比特位,用来表示时间戳所在 的RTP数据包中RTP数据字段的采集时刻。
RTP头字段的语法格式中还包括一些其他比特位,如同步源(英文:synchronization source;简称:SSRC)标识符(英文:identifier)和CSRC标识 符等比特位,此处不进行一一列举。RTP头字段的语法格式中的各指示位所占 比特位的数量可以根据实际情况进行调整,例如,序列号指示位SN也可以占 15个比特位,有效载荷类型指示位PT也可以占6个比特位。
图2为本发明实施例提供的一种数据传输方法的方法流程图。本发明实施 例中将对:在发送端首次向接收端发送多个第一RTP数据包后,由于接收端并 未接收到所有的第一RTP数据包,而使得发送端需要对多个第一RTP数据包中 的重传数据包进行重传的过程进行举例说明。实际应用中,接收端也有可能接 收到所有的第一RTP数据包,本发明实施例对此不作赘述。如图2所示,该数 据传输方法包括:
步骤201、发送端与接收端建立RTP数据链路。
在本发明的一个实施例中,每个RTP数据链路只允许一种RTP数据包传输, 该种RTP数据包中类型指示位所指示的类型与该RTP数据链路相对应,也即是 每个RTP数据链路只允许一种类型的RTP数据包传输。例如,某RTP数据链路 只允许传输媒体类型的RTP数据包,媒体类型的RTP数据包中的类型指示位可 以为有效载荷类型指示位PT,当PT对应的比特位为0000001时可以指示该RTP 数据包为媒体类型,则能够在该RTP数据链路传输的每个RTP数据包中的类型 指示位PT对应的比特位均为0000001。
步骤202、发送端通过RTP数据链路,向接收端发送多个第一RTP数据包。
发送端可以通过步骤201中建立的数据链路发送多个第一RTP数据包,该 多个第一RTP数据包为同一类型的RTP数据包。示例的,当步骤201中建立的 RTP数据链路用于传输媒体类型的数据包时,该多个第一RTP数据包中的每个 第一RTP数据包中的类型指示位(如图1中的PT或者SSRC)可以用于指示该 第一RTP数据包为媒体类型。
在步骤202中,发送端可以按顺序向接收端依次发送该多个第一RTP数据 包,且该多个第一RTP数据包的发送顺序可以通过第一RTP数据包中的序列号 来体现。
步骤203、接收端对接收到的第一RTP数据包进行解析。
接收端在对第一RTP数据包进行解析时,可以获取第一RTP数据包中的每 个比特位,并确定每个比特位的内容,进而确定每个比特位的内容所指示的信 息,并根据第一RTP数据包中比特位的内容所指示的信息,确定该第一RTP数 据包是否为重传的RTP数据包。
需要说明的是,步骤203可以通过图6对应的实施例实现,本发明实施例 在此不做赘述。
步骤204、接收端根据第一RTP数据包的解析结果,对第一RTP数据包中 的RTP数据字段进行存储。
由于本发明实施例中以第一RTP数据包为发送端首次发送的RTP数据包为 例,因此,在步骤203中,第一RTP数据包的解析结果为:第一RTP数据包不 为重传的RTP数据包,也即第一RTP数据包为发送端首次发送的RTP数据包。 在步骤204中,接收端可以直接将第一RTP数据包中的RTP数据字段以首次传 输的数据的格式进行存储。
步骤205、接收端根据第一RTP数据包的解析结果,确定需要重传的待重 传RTP数据包。
进一步的,在步骤203中,接收端在对接收到的第一RTP数据包依次进行 解析时,还可以获取每个接收到的第一RTP数据包中的序列号。当接收端当前 获取到的序列号与获取到的前一个序列号之间的差值大于1时,接收端可以确 定这两个序列号之间的序列号所在的第一RTP数据包丢失。
在本发明的一个可选实施例中,在步骤203中,接收端在对接收到的第一 RTP数据包依次进行解析时,还可以获取每个第一RTP数据包中的标记指示位, 并根据该标记指示位确定当前第一RTP数据包是否为发送端发送的最后一个第 一RTP数据包(也即步骤202中多个第一RTP数据包中的最后一个数据包)。 当接收端解析接收到的最后一个第一RTP数据包时,如果接收端确定接收到的 最后一个第一RTP数据包为发送端发送的最后一个第一RTP数据包,则在该接 收到的最后一个第一RTP数据包之后再无丢失的数据包。如果接收端接收到的 最后一个第一RTP数据包不为发送端发送的最后一个第一RTP数据包,则接收 端可以确定发送端发送的多个第一RTP数据包中位于接收端接收到的最后一个 第一RTP数据包之后的所有第一RTP数据包均被丢失。最后,接收端可以将每 个丢失的第一RTP数据包确定为需要重传的待重传RTP数据包。
示例的,如果发送端向接收端发送了5个第一RTP数据包,分别为A1、 A2、A3、A4和A5,其中,A1中的序列号为0(此处将序列号的比特位转换为 十进制进行举例说明),A2中的序列号为1,A3中的序列号为2,A4中的序列 号为3,A5中的序列号为4,且A5中的标记指示位用于指示A5是发送端发送 的最后一个第一RTP数据包。如果接收端依次接收到A1、A2和A4,当接收端 解析A1、A2和A4时,接收端可以确定A4中的序列号(序列号为3)与A2 中的序列号(序列号为1)之间的差值(差值为2)大于1,进一步的,接收端 可以确定序列号2所在的第一RTP数据包丢失,也即是A3丢失。由于A4为接 收端接收到的最后一个第一RTP数据包,接收端在解析A4后确定A4并不是发 送端发送的最后一个第一RTP数据包,此时,接收端可以确定发送端发送的多 个第一RTP数据包中位于A4之后的第一RTP数据包均被丢失。因此接收端可 以确定待重传RTP数据包包括:A3以及发送端在A4之后发送的每个第一RTP 数据包(也即A5)。
步骤206、接收端向发送端发送重传指示消息,该重传指示消息用于指示多 个第一RTP数据包中的待重传RTP数据包。
示例的,接收端可以向发送端发送重传指示消息,指示多个第一RTP数据 包A1、A2、A3、A4和A5中,A3和A5为待重传RTP数据包。
步骤207、发送端根据重传指示消息,对待重传RTP数据包进行封装,得 到第二RTP数据包。
示例的,该第二RTP数据包可以包括用于指示该第二RTP数据包为重传的 RTP数据包的RTP填充字段,且该第二RTP数据包中的类型指示位与该第一 RTP数据包中的类型指示位相同。示例的,该类型指示位可以是有效载荷类型 指示位PT或者SSRC标识符。
如图3所示,步骤207可以包括:
步骤2071、发送端获取预设的单位字节数。
在本发明的可选实施例中,为了接收端在接收到RTP数据包后,便于对RTP 数据包进行处理,发送端发送的RTP数据包的字节总数均为单位字节数的整数 倍,且该单位字节数为2的n次方,n为大于或等于1的整数。因此,本发明实 施例中,待重传RTP数据包的字节总数也为该单位字节数的整数倍。示例的, 该单位字节数可以为4,待重传RTP数据包的字节总数可以为100。本发明实施 例以单位字节数为4来进行解释说明。可选地,实际应用中单位字节数也可以 是2,也可以是8等等,本发明实施例在此不作限定。
步骤2072、发送端根据单位字节数,确定由m个字节组成的填充单元。
其中,m为单位字节数的整数倍,例如,该填充单元可以由4个字节组成, 即m=4。
步骤2073、发送端根据填充单元对待重传RTP数据包进行封装,得到第二 RTP数据包。
具体的,发送端在根据填充单元对待重传RTP数据包进行封装时,可以首 先获取待重传RTP数据包中的填充指示位,然后根据填充指示位确定待重传 RTP数据包是否包括填充字段。
若待重传RTP数据包包括填充字段,则发送端可以直接在待重传RTP数据 包后增加填充单元,得到第二RTP数据包,且该第二RTP数据包的RTP头字段 中的填充指示位(与待重传RTP数据包的RTP头字段中的填充指示位相同)用 于指示第二RTP数据包包括RTP填充字段;若待重传RTP数据包并不包括RTP 填充字段,则发送端可以在待重传RTP数据包后增加填充单元,并且对待重传 RTP数据包的RTP头字段中的填充指示位进行更新,得到第二RTP数据包,以 使得更新后的填充指示位(与待重传RTP数据包的RTP头字段中的填充指示位 不同)用于指示第二RTP数据包包括RTP填充字段。
例如,当填充指示位为0时,该填充指示位用于指示RTP数据包不包括RTP 填充字段,当填充指示位为1时,该填充指示位用于指示RTP数据包包括RTP 填充字段。
若待重传RTP数据包中的RTP头字段中的填充指示位为1,则在步骤2073 中发送端可以在待重传RTP数据包后增加填充单元,从而得到第二RTP数据包。 以使得第二RTP数据包的RTP头字段中的填充指示位(也即1)用于指示第二 RTP数据包包括RTP填充字段。若待重传RTP数据包中的RTP头字段中的填充 指示位为0,则在步骤2073中发送端可以在待重传RTP数据包后增加填充单元, 并将待重传RTP数据包中的填充指示位由0更新为1,从而得到第二RTP数据 包。以使得第二RTP数据包的RTP头字段中的填充指示位(也即1)用于指示 第二RTP数据包包括RTP填充字段。
示例的,填充单元可以包括:重传指示字节和长度指示字节。重传指示字 节用于指示第二RTP数据包为重传的RTP数据包,重传指示字节可以为填充单 元中的倒数第二个字节。长度指示字节用于指示第二RTP数据包中RTP填充字 段的长度,长度指示字节可以为填充单元中的最后一个字节。该重传指示字节 可以包括:在重传指示字节中依次排列的重传指示位、数据指示位和次数指示 位。该重传指示位用于指示第二RTP数据包为重传的RTP数据包,重传指示位 可以包括两个比特位,且该两个比特位可以为重传指示字节中的前两个比特位。 该数据指示位用于指示第二RTP数据包中的RTP数据字段是否为待重传RTP数据包中的RTP数据字段,数据指示位可以包括一个比特位。该次数指示位用于 指示发送端发送第二RTP数据包的次数,次数指示位可以包括三个比特位。填 充单元除了重传指示字节和长度指示字节之外,如果还包括其他字节,则其他 字节中的每个比特位均可以为1。
若在步骤207之前,发送端已经删除该待重传RTP数据包,则在步骤206 之后,发送端可以随意选取一个RTP数据包作为替代数据包,并对该替代数据 包执行步骤207。其中,在发送端确定的填充单元中的数据指示位可以用于指示: RTP数据包中的RTP数据字段与待重传数据包中的RTP数据字段不同。如果在 步骤207之前,发送端并未删除该待重传RTP数据包,则发送端确定的填充单 元中的数据指示位用于指示:RTP数据包中的RTP数据字段与待重传数据包中 的RTP数据字段相同。
接收端在向发送端发送重传指令之后,会每隔一定的预设时间段,检测是 否接收到发送端发送的第二RTP数据包。如果接收端在预设时间段结束时,还 未检测到发送端发送的第二RTP数据包,则接收端会再次向发送端发送重传指 令,以指示发送端向接收端再次发送第二RTP数据包,这样可以保证接收端能 够有效接收到重传的RTP数据包。相应的,在填充单元中,次数指示位N用于 指示发送端发送第二RTP数据包的次数,次数指示位N所占的比特位数用于限 定最大重传次数(即是发送端向接收端发送同一第二RTP数据包的最大次数)。 也即是,本发明实施例中,限定了发送端向接收端发送第二RTP数据包的最大 次数,这样一来,防止了在由于接收端出现故障而无法接收到第二RTP数据包 的情况下,发送端多次向接收端发送第二RTP数据包的情况,减少了资源的大 量浪费。
示例的,图4为填充单元的结构示意图,如图4所示,填充单元40可以由4个字节组成。填充单元40可以包括重传指示字节a和长度指示字节b,且重 传指示字节a为填充单元40的倒数第二个字节,长度指示字节b为填充单元40 的最后一个字节。其中,重传指示字节a可以包括:重传指示位V、数据指示位 F、次数指示位N和保留位R。重传指示位V、数据指示位F、次数指示位N和 保留位R依次排列在重传指示字节中。保留位R无实际意义,可以将其填充为 1。需要说明的是,图4中每相邻的两个“+”中间有“—”代表1个比特位, 重传指示位V占2个比特位,数据指示位F占1个比特位,次数指示位N占3 个比特位,保留位R占剩余的2个比特位。
例如,当重传指示位V为01时,表示第二RTP数据包是重传的RTP数据 包;当重传指示位V为00、10或11时,表示第二RTP数据包不是重传的RTP 数据包。当重传指示位V为01且数据指示位F为1时,表示第二RTP数据包 是接收端请求的重传RTP数据包;当重传指示位V为01且数据指示位F为0 时,表示第二RTP数据包不是接收端请求的重传RTP数据包,可能是其他任意 一个普通的RTP数据包。图4中的次数指示位N占3个比特位,当发送端第一 次发送第二RTP数据包时,次数指示位N为000;当发送端第二次发送第二RTP 数据包时,次数指示位N为001;以此类推,当发送端第八次发送第二RTP数 据包时,次数指示位N为111,且此次为发送端最后一次向接收端发送第二RTP 数据包。
需要说明的是,发送端在执行步骤2073时,若待重传RTP数据包不包括 RTP填充字段,则发送端得到的第二RTP数据包的RTP填充字段仅包括填充单 元;若待重传RTP数据包包括RTP填充字段,则发送端得到的第二RTP数据包 的RTP填充字段包括:填充单元与待重传RTP数据包的RTP填充字段。
假设待重传RTP数据包并不包括RTP填充字段,即第二RTP数据包中的 RTP填充字段仅包括图4所示的填充单元40,填充单元40由4个字节组成,此 时长度指示字节b的内容为00000100。又假设待重传RTP数据包包括RTP填充 字段,且第二RTP数据包的RTP填充字段如图1所示时,RTP填充字段可以包 括:填充数据、自定义部分和扩展长度,其中,填充数据部分可以为待重传RTP 数据包中的RTP填充字段,自定义部分与扩展长度部分可以共同构成填充单元, 扩展长度部分可以为填充单元中的长度指示字节,自定义部分可以为填充单元 除长度指示字节外的剩余部分。例如填充数据部分由4个字节组成,填充单元 仍如图4所示的填充单元40,则其中长度指示字节b的内容为00001000。
图5为本发明实施例提供的一种待重传RTP数据包与第二RTP数据包的结 构示意图,具体的,图5示出了对4个不同的待重传RTP数据包封装后得到4 个第二RTP数据包,如图5所示,每个待重传RTP数据包中每一小格表示4个 字节,在第二RTP数据包中每一小格表示1个字节。如图5所示,第一个待重 传RTP数据包中有长度为8字节的RTP填充字段,第二个待重传RTP数据包中 有长度为7字节的RTP填充字段,第三个待重传RTP数据包中有长度为4字节 的RTP填充字段,第四个待重传RTP数据包中无RTP填充字段。发送端在对每 个待重传RTP数据包进行封装时,可以在每个待重传RTP数据包后均添加长度 为4字节的填充单元,且填充单元中的倒数第二个字节为重传指示字节,最后 一个字节为长度指示字节。
在图5所示的4个第二RTP数据包中,第一个第二RTP数据包中的RTP填 充字段的长度可以为12字节(8字节+4字节),则长度指示字节b1的比特位 为00001100;第二个第二RTP数据包中的RTP填充字段的长度可以为11字节 (7字节+4字节),则长度指示字节b2的比特位为00000111;第三个第二RTP 数据包中的RTP填充字段的长度可以为8字节(4字节+4字节),则长度指示 字节b3的比特位为00001000;第四个第二RTP数据包中的RTP填充字段的长 度可以为4字节(0字节+4字节),则长度指示字节b4的比特位为00000100。
步骤208、发送端通过RTP数据链路,向接收端发送第二RTP数据包。
RTP数据链路为步骤201中,发送端与接收端建立的RTP数据链路。由于 第二RTP数据包中类型指示位与每个第一RTP数据包(包括待重传RTP数据包) 中类型指示位相同,因此,第二RTP数据包的类型与第一RTP数据包的类型相 同,所以发送端可以通过步骤201建立的RTP数据链路,向接收端发送第二RTP 数据包,而无需再建立新的RTP数据链路。
步骤209、接收端对接收到的第二RTP数据包进行解析。
接收端在对第二RTP数据包进行解析时,可以获取第二RTP数据包中的每 个比特位,并确定每个比特位的内容,进而确定每个比特位的内容所指示的信 息,并根据第二RTP数据包中比特位的内容所指示的信息,确定该第二RTP数 据包是否为重传的RTP数据包。
步骤209可以采用图6对应的实施例实现,本发明实施例在此不做赘述。
步骤210、接收端根据第二RTP数据包的解析结果,对第二RTP数据包中 的RTP数据字段进行存储。
由于本发明实施例中以第二RTP数据包为发送端重复发送的RTP数据包, 且该第二RTP数据包中的RTP数据字段与接收端要求重传的RTP数据包中的 RTP数据字段相同为例,因此,在步骤209中,第二RTP数据包的解析结果为: 第二RTP数据包为重传的RTP数据包,也即第二RTP数据包为发送端重复发送 的RTP数据包。在步骤210中,接收端可以直接将第二RTP数据包中的RTP数 据字段以重传格式进行存储。
进一步的,在步骤203和步骤209中,接收端均对接收到的RTP数据包进 行了解析(如步骤203中接收端对接收到的第一RTP数据包进行解析,步骤209 中接收端对接收到的第二RTP数据包进行解析)。示例的,接收端对接收到的 RTP数据包进行解析时,接收端可以首先获取预设的单位字节数,然后根据该 单位字节数,将接收到的RTP数据包(第一RTP数据包或第二RTP数据包)划 分为多个数据段,且每个数据段的字节总数等于该单位字节数。最后,接收端 可以分别解析RTP数据包中的多个数据段,也即接收端以数据段为单位,对RTP 数据包中的每个比特位进行解析,如对RTP数据包中的填充指示位、重传指示 位、数据指示位以及次数指示位进行解析。
其中,如图6所示,接收端对接收到的RTP数据包进行解析,具体可以包 括:
步骤301、接收端获取RTP数据包中RTP头字段中的填充指示位。执行步 骤302。
如图1所示,接收端可以获取RTP头字段中的第三个比特位(也即填充指 示位)。
步骤302、接收端根据填充指示位,判断RTP数据包是否包括RTP填充字 段。当RTP数据包包括RTP填充字段时,执行步骤303;当RTP数据包不包括 RTP填充字段时,执行步骤309。
示例的,RTP数据包的RTP头字段中的填充指示位可以用于指示该RTP数 据包是否包括RTP填充字段,因此,接收端可以根据填充指示位,确定该RTP 数据包是否包括RTP填充字段。
步骤303、接收端获取RTP数据包中RTP填充字段中的重传指示位,判断 RTP数据包是否为重传的RTP数据包。当RTP数据包是重传的RTP数据包时, 执行步骤304。当RTP数据包不是重传的RTP数据包时,执行步骤309。
请参照图4,在步骤303中,接收端可以获取RTP填充字段中倒数第二个 字节中的前两个比特位(也即重传指示位)。示例的,当重传指示位V为01时, 表示该RTP数据包是重传的RTP数据包;当重传指示位V为00、10或11时, 表示该RTP数据包不是重传的RTP数据包。
步骤304、接收端获取RTP数据包中RTP填充字段中的数据指示位。执行 步骤305。
请参照图4,接收端可以获取RTP填充字段中倒数第二个字节中的第三个 比特位(也即数据指示位)。
步骤305、接收端根据数据指示位,判断该RTP数据包中的RTP数据字段 是否为待重传RTP数据包中的RTP数据字段。当该RTP数据包中的RTP数据 字段为待重传RTP数据包中的RTP数据字段时,执行步骤306。当该RTP数据 包中的RTP数据字段不为待重传RTP数据包中的RTP数据字段时,执行步骤 308。
示例的,请继续参照图4,接收端获取RTP数据包中的数据指示位F。当数 据指示位F为1时,表示该RTP数据包中的RTP数据字段是待重传RTP数据包 中的RTP数据字段。当数据指示位F为0时,表示该RTP数据包中的RTP数据 字段不是待重传RTP数据包中的RTP数据字段。
步骤306、接收端获取RTP数据包中RTP填充字段中的长度指示字节中的 比特位。执行步骤307。
步骤307、接收端根据长度指示字节中的比特位以及RTP头字段的预设长 度,获取并存储RTP数据包中的RTP数据字段。
在步骤307中,首先,接收端可以根据长度指示字节中的比特位,确定RTP 填充字段的长度,然后,接收端可以获取RTP数据包中RTP头字段的预设长度, 并且根据RTP填充字段的长度,以及RTP数据包中RTP头字段的预设长度,确 定RTP数据包中的RTP数据字段对应的比特位。最后,接收端可以根据RTP数 据字段对应的比特位获取RTP数据字段,并以重传格式存储该RTP数据字段。
示例的,某一RTP数据包中的长度指示字节的比特位可以为00001000,接 收端可以根据该长度指示位确定该RTP数据包中填充字段的长度为8个字节。 接收端还可以获取该RTP数据包中RTP头字段的预设长度,例如该预设长度为 9个字节。则接收端可以确定该RTP数据包中,从第9个字节到倒数第8个字 节之间的所有字节的比特位为RTP数据字段对应的比特位,然后接收端可以根 据该比特位获取该RTP数据字段,并以重传格式存储该RTP数据字段。
步骤307与图2所示的实施例中的步骤210对应,对于第二RTP数据包, 经过步骤304,接收端可以确定该第二RTP数据包中的RTP数据字段即为待重 传RTP数据包中的RTP数据字段,因此接收端可以对该第二RTP数据包中的 RTP数据字段直接以重传格式进行存储。
步骤308、接收端删除RTP数据包。
在步骤305中,当接收端确定RTP数据包中的RTP数据字段不是待重传RTP 数据包中的RTP数据字段时,接收端可以确定接收到的该RTP数据包为发送端 发送的替代数据包,并非接收端请求的待重传RTP数据包,因此接收端可以直 接将该RTP数据包删除。
步骤309、接收端根据RTP数据包中RTP头字段的预设长度,获取并存储 RTP数据包中的RTP数据字段。
示例的,在步骤309中,首先,接收端可以获取RTP数据包中RTP头字段 的预设长度,然后根据RTP填充字段的长度,确定RTP数据包中的RTP数据字 段对应的比特位。最后接收端可以获取RTP数据包中的RTP数据字段,并以首 次传输的格式存储该RTP数据包中的RTP数据字段。
示例的,在步骤302之后,当接收端确定接收到的某一RTP数据包中无RTP 填充字段时,则接收端可以确定该RTP数据包为发送端首次发送的RTP数据包, 接收端可以获取RTP数据包中RTP头字段的预设长度,例如该预设长度为9字 节,接收端可以确定该RTP数据包中,第9个字节之后的所有字节的比特位为 RTP数据字段对应的比特位,接收端可以根据该比特位获取该RTP数据包中的 RTP数据字段,并以首次传输格式存储该RTP数据字段。
步骤309与图2所示的实施例中的步骤204对应,对于第一RTP数据包, 经过步骤302,接收端可以确定该第一RTP数据包为发送端首次传输的RTP数 据包,因此接收端可以对该第一RTP数据包中的RTP数据字段直接以首次传输 格式进行存储。
步骤307与步骤309中接收端在存储RTP数据包中的RTP数据字段时,分 别以重传格式和首次传输格式对RTP数据字段进行了存储,因此,可以有效的 区别首次传输的RTP数据包中的数据字段和重传的RTP数据包中的数据字段。 进而可以更加方便的进行丢包率(丢包率为单位时间内丢失的包数量与理论应 该收到的包数量的比值)的统计,需要说明的是,一方面,该丢失的包可以包 括:重传成功的RTP数据包,以及未重传成功的RTP数据包;另一方面,该丢 失的包也可以仅包括:未重传成功的RTP数据包(而不包括重传成功的RTP数 据包)。
综上所述,由于本发明实施例提供的数据传输方法中,发送端在对待重传 RTP数据包进行封装后,得到的第二RTP数据包中,RTP填充字段能够指示该 第二RTP数据包为重传的RTP数据包,且第一RTP数据包中的类型指示位和第 二RTP数据包中类型指示位相同。所以,第二RTP据包与第一RTP数据包可以 在同一个RTP数据链路上传输,在重传待重传RTP数据包前,发送端无需与接 收端重新建立RTP数据链路,因此,简化了数据包重传的步骤,提高了数据传 输的效率。
图7为本发明实施例提供的一种数据传输装置的结构示意图,该数据传输 装置用于发送端。如图7所示,该数据传输装置70包括:
第一发送模块701,用于通过与接收端建立的实时传输协议RTP数据链路, 向接收端发送多个第一RTP数据包;
接收模块702,用于接收接收端发送的重传指示消息,该重传指示消息用于 指示多个第一RTP数据包中的待重传RTP数据包;
封装模块703,用于根据重传指示消息,对待重传RTP数据包进行封装, 得到第二RTP数据包,其中,第二RTP数据包包括用于指示第二RTP数据包为 重传的RTP数据包的RTP填充字段,且第二RTP数据包中的类型指示位与第一 RTP数据包中的类型指示位相同;
第二发送模块704,用于通过RTP数据链路,向接收端发送第二RTP数据 包。
综上所述,由于本发明实施例提供的数据传输装置中,封装模块在对待重 传RTP数据包进行封装后,得到的第二RTP数据包中,RTP填充字段能够指示 该第二RTP数据包为重传的RTP数据包,且第一RTP数据包中的类型指示位和 第二RTP数据包中类型指示位相同。所以,第二RTP据包与第一RTP数据包可 以在同一个RTP数据链路上传输,在重传待重传RTP数据包前,发送端无需与 接收端重新建立RTP数据链路,因此,简化了数据包重传的步骤,提高了数据 传输的效率。
可选的,封装模块还用于:在待重传RTP数据包后增加填充单元,第二RTP 数据包中的RTP填充字段包括填充单元,填充单元包括:重传指示字节,重传 指示字节用于指示第二RTP数据包为重传的RTP数据包。
可选的,重传指示字节至少包括:重传指示位和次数指示位。重传指示位 用于指示第二RTP数据包为重传的RTP数据包;次数指示位用于指示发送端发 送第二RTP数据包的次数。
可选的,重传指示字节还包括:数据指示位。数据指示位用于指示第二RTP 数据包中的RTP数据字段是否为待重传RTP数据包中的RTP数据字段。
可选的,重传指示字节为填充单元中的倒数第二个字节,长度指示字节为 填充单元中的最后一个字节;重传指示位包括两个比特位,次数指示位包括三 个比特位,数据指示位包括一个比特位;重传指示位、数据指示位和次数指示 位在重传指示字节中依次排列,且重传指示位中的两个比特位为重传指示字节 中的前两个比特位。
可选的,封装模块还用于:在待重传RTP数据包后增加填充单元之前,判 断待重传RTP数据包是否包括RTP填充字段;若待重传RTP数据包包括RTP 填充字段,则在待重传RTP数据包后增加填充单元,得到第二RTP数据包;若 待重传RTP数据包不包括RTP填充字段,则在待重传RTP数据包后增加填充单 元之后,更新待重传RTP数据包中的RTP头字段中的填充指示位,得到第二RTP 数据包,其中,更新后的填充指示位用于指示第二RTP数据包包括RTP填充字 段。
可选的,封装模块还用于:获取预设的单位字节数,待重传RTP数据包的 字节总数为单位字节数的整数倍,且单位字节数为2的n次方,n为大于或等于 1的整数;根据单位字节数,确定由m个字节组成的填充单元,其中,m个字 节至少包括重传指示字节和长度指示字节,m为单位字节数的整数倍。
可选的,填充单元还包括:长度指示字节,长度指示字节用于指示第二RTP 数据包中RTP填充字段的长度。
图8是本发明实施例提供的另一种数据传输装置的结构示意图,该数据传 输装置用于接收端。如图8所示,该数据传输装置80包括:
接收模块801,用于通过与发送端建立的实时传输协议RTP数据链路,接 收发送端发送的RTP数据包;
第一确定模块802,用于在RTP数据包包括RTP填充字段时,根据RTP数 据包的RTP填充字段,确定该RTP数据包是否为重传的RTP数据包。
综上所述,由于本发明实施例提供的数据传输装置中,第一确定模块可以 根据RTP数据包的RTP填充字段,确定该RTP数据包是否为重传的RTP数据 包。也即是,重传的RTP数据包可以根据RTP填充字段来进行标识,无需改变 重传的RTP数据包中的类型指示位,所以,接收端与发送端不需要重新建立RTP 数据链路来传输待重传RTP数据包。因此,简化了数据包重传的步骤,提高了 数据传输的效率。
可选的,第一确定模块还可以用于:获取RTP填充字段中的重传指示字节; 根据重传指示字节,确定RTP数据包是否为重传的RTP数据包。
可选的,重传指示字节至少包括:重传指示位和次数指示位,次数指示位 用于指示发送端发送RTP数据包的次数。
第一确定模块还可以用于:根据重传指示字节中的重传指示位,确定RTP 数据包是否为重传的RTP数据包。
可选的,重传指示字节还可以包括:数据指示位。如图9所示,在图8的 基础上,该数据传输装置80还可以包括:
第一获取模块803,用于在重传指示位用于指示RTP数据包为重传的RTP 数据包时,获取重传指示字节中的数据指示位;
第二获取模块804,用于在数据指示位用于指示RTP数据包中的RTP数据 字段为待重传RTP数据包中的RTP数据字段时,获取并存储RTP数据包中的 RTP数据字段;
删除模块805,用于在数据指示位用于指示RTP数据包中的RTP数据字段 不为待重传RTP数据包中的RTP数据字段时,删除RTP数据包。
可选的,重传指示字节可以为填充单元中的倒数第二个字节,长度指示字 节可以为填充单元中的最后一个字节;重传指示位可以包括两个比特位,次数 指示位可以包括三个比特位,数据指示位可以包括一个比特位;重传指示位、 数据指示位和次数指示位可以在重传指示字节中依次排列,且重传指示位中的 两个比特位可以为重传指示字节中的前两个比特位。
可选的,如图10所示,在图8的基础上,该数据传输装置80还可以包括:
第三获取模块806,用于获取RTP数据包中的RTP头字段中的填充指示位;
第二确定模块807,用于根据填充指示位,确定RTP数据包是否包括RTP 填充字段。
可选的,如图11所示,在图8的基础上,该数据传输装置80还可以包括:
第四获取模块808,用于获取预设的单位字节数;
划分模块809,用于根据单位字节数,将RTP数据包划分为多个数据段, 每个数据段的字节总数等于单位字节数;
解析模块810,用于分别解析多个数据段。
可选的,如图12所示,在图8的基础上,该数据传输装置80还可以包括:
第五获取模块811,用于获取RTP填充字段中的长度指示字节;
第三确定模块812,用于根据长度指示字节,确定RTP填充字段的长度;
第六获取模块813,用于获取RTP数据包中RTP头字段的预设长度;
第四确定模块814,用于根据RTP填充字段的长度,以及RTP数据包中RTP 头字段的预设长度,确定RTP数据包中的RTP数据字段。
综上所述,由于本发明实施例提供的数据传输装置中,第一确定模块可以 根据RTP数据包的RTP填充字段,确定该RTP数据包是否为重传的RTP数据 包。也即是,重传的RTP数据包可以根据RTP填充字段来进行标识,无需改变 重传的RTP数据包中的类型指示位,所以,接收端与发送端不需要重新建立RTP 数据链路来传输待重传RTP数据包。因此,简化了数据包重传的步骤,提高了 数据传输的效率。
本发明实施例提供了一种数据传输系统,该数据传输系统可以包括:发送 端和接收端。
其中,该发送端可以包括图7所示的数据传输装置,该接收端可以包括图 8-图12任一所示的数据传输装置。
图13为本发明实施例提供的一种计算机设备的结构示意图,该计算机设备 可以用于数据传输系统中的发送端,如图13所示,计算机设备01可以包括: 处理器011和存储器012。
其中,存储器012,用于存放计算机程序;
处理器011,用于执行存储器012上所存放的程序,实现图2所示的数据传 输方法中的步骤201、步骤202、步骤207和步骤208,示例的,该方法可以包 括:
通过与接收端建立的实时传输协议RTP数据链路,向所述接收端发送多个 第一RTP数据包;
接收所述接收端发送的重传指示消息,所述重传指示消息用于指示所述多 个第一RTP数据包中的待重传RTP数据包;
根据所述重传指示消息,对所述待重传RTP数据包进行封装,得到第二RTP 数据包,其中,所述第二RTP数据包包括用于指示所述第二RTP数据包为重传 的RTP数据包的RTP填充字段,且所述第二RTP数据包中的类型指示位与所述 第一RTP数据包中的类型指示位相同;
通过所述RTP数据链路,向所述接收端发送所述第二RTP数据包。
具体的,处理器011包括一个或者一个以上处理核心。处理器011通过运 行存储器012存储的计算机程序,该计算机程序包括软件程序以及单元,从而 执行各种功能应用以及数据处理。
存储器012存储的计算机程序包括软件程序以及单元。具体的,存储器012 可存储操作系统0121、至少一个功能所需的应用程序单元0122。操作系统0121 可以是实时操作系统(英文:Real Time eXecutive;简称:RTX)、LINUX、UNIX、 WINDOWS或OSX之类的操作系统。该应用程序单元0122可以包括第一发送 单元0122a、接收单元0122b、封装单元0122c和第二发送单元0122d。
第一发送单元0122a,具有与图7所示的数据传输装置中第一发送模块701 相同或相似的功能。
接收单元0122b,具有与图7所示的数据传输装置中接收模块702相同或相 似的功能。
封装单元0122c,具有与图7所示的数据传输装置中封装模块703相同或相 似的功能。
第二发送单元0122d,具有与图7所示的数据传输装置中第二发送模块704 相同或相似的功能。
图14为本发明实施例提供的另一种计算机设备的结构示意图,该计算机设 备可以数据传输系统中的接收端,计算机设备02可以包括:处理器021和存储 器022。
其中,存储器022,用于存放计算机程序;
处理器021,用于执行存储器022上所存放的程序,实现图2所示的数据传 输方法中的步骤201、步骤203、步骤204、步骤205、步骤206、步骤209和步 骤210,示例的,该方法可以包括:
通过与发送端建立的实时传输协议RTP数据链路,接收所述发送端发送的 RTP数据包;
当所述RTP数据包包括RTP填充字段时,根据所述RTP数据包的RTP填 充字段,确定所述RTP数据包是否为重传的RTP数据包。
具体的,处理器021包括一个或者一个以上处理核心。处理器021通过运 行存储器022存储的计算机程序,该计算机程序包括软件程序以及单元,从而 执行各种功能应用以及数据处理。
存储器022存储的计算机程序包括软件程序以及单元。具体的,存储器022 可存储操作系统0221、至少一个功能所需的应用程序单元0222。操作系统0221 可以是RTX、LINUX、UNIX、WINDOWS或OS X之类的操作系统。该应用程 序单元0222可以包括接收单元0222a和第一确定单元0222b。
接收单元0222a,具有与图8所示的数据传输装置中接收模块801相同或相 似的功能。
第一确定单元0222b,具有与图8所示的数据传输装置中第一确定模块802 相同或相似的功能。
本发明实施例提供了一种存储介质,该存储介质可以为非易失性的计算机 可读存储介质,其上存储有计算机程序,当所述存储介质中的程序由发送端执 行时,实现如图2所示的数据传输方法中的步骤201、步骤202、步骤205、步 骤207和步骤208,或者实现如图2所示的数据传输方法中的步骤201、步骤203、 步骤204、步骤205、步骤206、步骤209和步骤210。
需要说明的是:上述实施例提供的数据传输装置在传输数据时,仅以上述 各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分 配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完 成以上描述的全部或者部分功能。另外,上述实施例提供的数据传输装置实施 例与数据传输方法实施例属于同一构思,其具体实现过程详见方法实施例,这 里不再赘述。
以上所述仅为本发明的可选实施例,并不用以限制本发明,凡在本发明的 精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的 保护范围之内。

Claims (35)

1.一种数据传输方法,其特征在于,用于发送端,所述方法包括:
通过与接收端建立的实时传输协议RTP数据链路,向所述接收端发送多个第一RTP数据包;
接收所述接收端发送的重传指示消息,所述重传指示消息用于指示所述多个第一RTP数据包中的待重传RTP数据包;
根据所述重传指示消息,对所述待重传RTP数据包进行封装,得到第二RTP数据包,其中,所述第二RTP数据包包括用于指示所述第二RTP数据包为重传的RTP数据包的RTP填充字段,且所述第二RTP数据包中的类型指示位与所述第一RTP数据包中的类型指示位相同;
通过所述RTP数据链路,向所述接收端发送所述第二RTP数据包。
2.根据权利要求1所述的方法,其特征在于,所述根据所述重传指示消息,对所述待重传RTP数据包进行封装,包括:
在所述待重传RTP数据包后增加填充单元,所述第二RTP数据包中的RTP填充字段包括所述填充单元,所述填充单元包括:重传指示字节,所述重传指示字节用于指示所述第二RTP数据包为重传的RTP数据包。
3.根据权利要求2所述的方法,其特征在于,所述重传指示字节至少包括:重传指示位和次数指示位,
所述重传指示位用于指示所述第二RTP数据包为重传的RTP数据包;
所述次数指示位用于指示所述发送端发送所述第二RTP数据包的次数。
4.根据权利要求3所述的方法,其特征在于,所述重传指示字节还包括:数据指示位,
所述数据指示位用于指示所述第二RTP数据包中的RTP数据字段是否为所述待重传RTP数据包中的RTP数据字段。
5.根据权利要求4所述的方法,其特征在于,
所述重传指示字节为所述填充单元中的倒数第二个字节,所述长度指示字节为所述填充单元中的最后一个字节;
所述重传指示位包括两个比特位,所述次数指示位包括三个比特位,所述数据指示位包括一个比特位;
所述重传指示位、所述数据指示位和所述次数指示位在所述重传指示字节中依次排列,且所述重传指示位中的两个比特位为所述重传指示字节中的前两个比特位。
6.根据权利要求2所述的方法,其特征在于,所述根据所述重传指示消息,对所述待重传RTP数据包进行封装,还包括:
在所述待重传RTP数据包后增加填充单元之前,判断所述待重传RTP数据包是否包括RTP填充字段;
若所述待重传RTP数据包包括RTP填充字段,则在所述待重传RTP数据包后增加填充单元,得到所述第二RTP数据包;
若所述待重传RTP数据包不包括RTP填充字段,则在所述待重传RTP数据包后增加填充单元之后,更新所述待重传RTP数据包中的RTP头字段中的填充指示位,得到所述第二RTP数据包,其中,更新后的所述填充指示位用于指示所述第二RTP数据包包括RTP填充字段。
7.根据权利要求2至6任一所述的方法,其特征在于,在所述待重传RTP数据包后增加填充单元之前,所述根据所述重传指示消息,对所述待重传RTP数据包进行封装,还包括:
获取预设的单位字节数,所述待重传RTP数据包的字节总数为所述单位字节数的整数倍,且所述单位字节数为2的n次方,所述n为大于或等于1的整数;
根据所述单位字节数,确定由m个字节组成的所述填充单元,其中,所述m个字节至少包括所述重传指示字节和所述长度指示字节,所述m为所述单位字节数的整数倍。
8.根据权利要求2所述的方法,其特征在于,
所述填充单元还包括:长度指示字节,所述长度指示字节用于指示所述第二RTP数据包中RTP填充字段的长度。
9.一种数据传输方法,其特征在于,用于接收端,所述方法包括:
通过与发送端建立的实时传输协议RTP数据链路,接收所述发送端发送的RTP数据包;
当所述RTP数据包包括RTP填充字段时,根据所述RTP数据包的RTP填充字段,确定所述RTP数据包是否为重传的RTP数据包。
10.根据权利要求9所述的方法,其特征在于,
所述根据所述RTP数据包的RTP填充字段,确定所述RTP数据包是否为重传的RTP数据包,包括:
获取所述RTP填充字段中的重传指示字节;
根据所述重传指示字节,确定所述RTP数据包是否为重传的RTP数据包。
11.根据权利要求10所述的方法,其特征在于,所述重传指示字节至少包括:重传指示位和次数指示位,所述次数指示位用于指示所述发送端发送所述RTP数据包的次数,所述根据所述重传指示字节,确定所述RTP数据包是否为重传的RTP数据包,包括:
根据所述重传指示字节中的所述重传指示位,确定所述RTP数据包是否为重传的RTP数据包。
12.根据权利要求11所述的方法,其特征在于,所述重传指示字节还包括:数据指示位,所述方法还包括:
当所述重传指示位用于指示所述RTP数据包为重传的RTP数据包时,获取所述重传指示字节中的所述数据指示位;
当所述数据指示位用于指示所述RTP数据包中的RTP数据字段为待重传RTP数据包中的RTP数据字段时,获取并存储所述RTP数据包中的RTP数据字段;
当所述数据指示位用于指示所述RTP数据包中的RTP数据字段不为所述待重传RTP数据包中的RTP数据字段时,删除所述RTP数据包。
13.根据权利要求12所述的方法,其特征在于,
所述重传指示字节为所述填充单元中的倒数第二个字节,所述长度指示字节为所述填充单元中的最后一个字节;
所述重传指示位包括两个比特位,所述次数指示位包括三个比特位,所述数据指示位包括一个比特位;
所述重传指示位、所述数据指示位和所述次数指示位在所述重传指示字节中依次排列,且所述重传指示位中的两个比特位为所述重传指示字节中的前两个比特位。
14.根据权利要求9所述的方法,其特征在于,
在所述根据所述RTP数据包的RTP填充字段,确定所述RTP数据包是否为重传的RTP数据包之前,所述方法还包括:
获取所述RTP数据包中的RTP头字段中的填充指示位;
根据所述填充指示位,确定所述RTP数据包是否包括RTP填充字段。
15.根据权利要求9至14任一所述的方法,其特征在于,
在所述根据所述RTP数据包的RTP填充字段,确定所述RTP数据包是否为重传的RTP数据包之前,所述方法还包括:
获取预设的单位字节数;
根据所述单位字节数,将所述RTP数据包划分为多个数据段,每个所述数据段的字节总数等于所述单位字节数;
分别解析所述多个数据段。
16.根据权利要求10所述的方法,其特征在于,在所述通过与发送端建立的实时传输协议RTP数据链路,接收所述发送端发送的RTP数据包之后,所述方法还包括:
获取所述RTP填充字段中的长度指示字节;
根据所述长度指示字节,确定所述RTP填充字段的长度;
获取所述RTP数据包中RTP头字段的预设长度;
根据所述RTP填充字段的长度,以及所述RTP数据包中RTP头字段的预设长度,确定所述RTP数据包中的RTP数据字段。
17.一种数据传输装置,其特征在于,用于发送端,所述数据传输装置包括:
第一发送模块,用于通过与接收端建立的实时传输协议RTP数据链路,向所述接收端发送多个第一RTP数据包;
接收模块,用于接收所述接收端发送的重传指示消息,所述重传指示消息用于指示所述多个第一RTP数据包中的待重传RTP数据包;
封装模块,用于根据所述重传指示消息,对所述待重传RTP数据包进行封装,得到第二RTP数据包,其中,所述第二RTP数据包包括用于指示所述第二RTP数据包为重传的RTP数据包的RTP填充字段,且所述第二RTP数据包中的类型指示位与所述第一RTP数据包中的类型指示位相同;
第二发送模块,用于通过所述RTP数据链路,向所述接收端发送所述第二RTP数据包。
18.根据权利要求17所述的数据传输装置,其特征在于,所述封装模块还用于:
在所述待重传RTP数据包后增加填充单元,所述第二RTP数据包中的RTP填充字段包括所述填充单元,所述填充单元包括:重传指示字节,所述重传指示字节用于指示所述第二RTP数据包为重传的RTP数据包。
19.根据权利要求18所述的数据传输装置,其特征在于,所述重传指示字节至少包括:重传指示位和次数指示位,
所述重传指示位用于指示所述第二RTP数据包为重传的RTP数据包;
所述次数指示位用于指示所述发送端发送所述第二RTP数据包的次数。
20.根据权利要求19所述的数据传输装置,其特征在于,所述重传指示字节还包括:数据指示位,
所述数据指示位用于指示所述第二RTP数据包中的RTP数据字段是否为所述待重传RTP数据包中的RTP数据字段。
21.根据权利要求20所述的数据传输装置,其特征在于,
所述重传指示字节为所述填充单元中的倒数第二个字节,所述长度指示字节为所述填充单元中的最后一个字节;
所述重传指示位包括两个比特位,所述次数指示位包括三个比特位,所述数据指示位包括一个比特位;
所述重传指示位、所述数据指示位和所述次数指示位在所述重传指示字节中依次排列,且所述重传指示位中的两个比特位为所述重传指示字节中的前两个比特位。
22.根据权利要求18所述的数据传输装置,其特征在于,所述封装模块还用于:
在所述待重传RTP数据包后增加填充单元之前,判断所述待重传RTP数据包是否包括RTP填充字段;
若所述待重传RTP数据包包括RTP填充字段,则在所述待重传RTP数据包后增加填充单元,得到所述第二RTP数据包;
若所述待重传RTP数据包不包括RTP填充字段,则在所述待重传RTP数据包后增加填充单元之后,更新所述待重传RTP数据包中的RTP头字段中的填充指示位,得到所述第二RTP数据包,其中,更新后的所述填充指示位用于指示所述第二RTP数据包包括RTP填充字段。
23.根据权利要求18至22任一所述的数据传输装置,其特征在于,所述封装模块还用于:
获取预设的单位字节数,所述待重传RTP数据包的字节总数为所述单位字节数的整数倍,且所述单位字节数为2的n次方,所述n为大于或等于1的整数;
根据所述单位字节数,确定由m个字节组成的所述填充单元,其中,所述m个字节至少包括所述重传指示字节和所述长度指示字节,所述m为所述单位字节数的整数倍。
24.根据权利要求18所述的数据传输装置,其特征在于,
所述填充单元还包括:长度指示字节,所述长度指示字节用于指示所述第二RTP数据包中RTP填充字段的长度。
25.一种数据传输装置,其特征在于,用于接收端,所述数据传输装置包括:
接收模块,用于通过与发送端建立的实时传输协议RTP数据链路,接收所述发送端发送的RTP数据包;
第一确定模块,用于在所述RTP数据包包括RTP填充字段时,根据所述RTP数据包的RTP填充字段,确定所述RTP数据包是否为重传的RTP数据包。
26.根据权利要求25所述的数据传输装置,其特征在于,所述第一确定模块还用于:
获取所述RTP填充字段中的重传指示字节;
根据所述重传指示字节,确定所述RTP数据包是否为重传的RTP数据包。
27.根据权利要求26所述的数据传输装置,其特征在于,所述重传指示字节至少包括:重传指示位和次数指示位,所述次数指示位用于指示所述发送端发送所述RTP数据包的次数,所述第一确定模块还用于:
根据所述重传指示字节中的所述重传指示位,确定所述RTP数据包是否为重传的RTP数据包。
28.根据权利要求27所述的数据传输装置,其特征在于,所述重传指示字节还包括:数据指示位,所述数据传输装置还包括:
第一获取模块,用于在所述重传指示位用于指示所述RTP数据包为重传的RTP数据包时,获取所述重传指示字节中的所述数据指示位;
第二获取模块,用于在所述数据指示位用于指示所述RTP数据包中的RTP数据字段为待重传RTP数据包中的RTP数据字段时,获取并存储所述RTP数据包中的RTP数据字段;
删除模块,用于在所述数据指示位用于指示所述RTP数据包中的RTP数据字段不为所述待重传RTP数据包中的RTP数据字段时,删除所述RTP数据包。
29.根据权利要求28所述的数据传输装置,其特征在于,
所述重传指示字节为所述填充单元中的倒数第二个字节,所述长度指示字节为所述填充单元中的最后一个字节;
所述重传指示位包括两个比特位,所述次数指示位包括三个比特位,所述数据指示位包括一个比特位;
所述重传指示位、所述数据指示位和所述次数指示位在所述重传指示字节中依次排列,且所述重传指示位中的两个比特位为所述重传指示字节中的前两个比特位。
30.根据权利要求25所述的数据传输装置,其特征在于,所述数据传输装置还包括:
第三获取模块,用于获取所述RTP数据包中的RTP头字段中的填充指示位;
第二确定模块,用于根据所述填充指示位,确定所述RTP数据包是否包括RTP填充字段。
31.根据权利要求25至30任一所述的数据传输装置,其特征在于,所述数据传输装置还包括:
第四获取模块,用于获取预设的单位字节数;
划分模块,用于根据所述单位字节数,将所述RTP数据包划分为多个数据段,每个所述数据段的字节总数等于所述单位字节数;
解析模块,用于分别解析所述多个数据段。
32.根据权利要求26所述的数据传输装置,其特征在于,所述数据传输装置还包括:
第五获取模块,用于获取所述RTP填充字段中的长度指示字节;
第三确定模块,用于根据所述长度指示字节,确定所述RTP填充字段的长度;
第六获取模块,用于获取所述RTP数据包中RTP头字段的预设长度;
第四确定模块,用于根据所述RTP填充字段的长度,以及所述RTP数据包中RTP头字段的预设长度,确定所述RTP数据包中的RTP数据字段。
33.一种数据传输系统,其特征在于,所述数据传输系统包括:发送端和接收端,
所述发送端包括:权利要求17-24任一所述的数据传输装置,所述接收端包括:权利要求18-32任一所述的数据传输装置。
34.一种计算机设备,其特征在于,包括处理器和存储器,
其中,
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序,实现权利要求1-8任一所述的数据传输方法,或者,实现权利要求9-16任一所述的数据传输方法。
35.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,
所述计算机程序被处理器执行时实现权利要求1-8任一所述的数据传输方法;或者,所述计算机程序被处理器执行时实现权利要求9-16任一所述的数据传输方法。
CN201710691394.3A 2017-08-14 2017-08-14 数据传输方法、装置及系统 Active CN109391605B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201710691394.3A CN109391605B (zh) 2017-08-14 2017-08-14 数据传输方法、装置及系统
EP18846893.8A EP3672189B1 (en) 2017-08-14 2018-08-14 Data transmission method, device and system
PCT/CN2018/100506 WO2019034061A1 (zh) 2017-08-14 2018-08-14 数据传输方法、装置及系统
US16/639,533 US11196792B2 (en) 2017-08-14 2018-08-14 Method, device and system for transmitting data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710691394.3A CN109391605B (zh) 2017-08-14 2017-08-14 数据传输方法、装置及系统

Publications (2)

Publication Number Publication Date
CN109391605A true CN109391605A (zh) 2019-02-26
CN109391605B CN109391605B (zh) 2021-01-26

Family

ID=65362393

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710691394.3A Active CN109391605B (zh) 2017-08-14 2017-08-14 数据传输方法、装置及系统

Country Status (4)

Country Link
US (1) US11196792B2 (zh)
EP (1) EP3672189B1 (zh)
CN (1) CN109391605B (zh)
WO (1) WO2019034061A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021097686A1 (zh) * 2019-11-19 2021-05-27 Oppo广东移动通信有限公司 用于传输以太网压缩包的方法和设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230308213A1 (en) * 2020-08-07 2023-09-28 Hyannis Port Research, Inc. Systems and methods of low latency data communication for physical link layer reliability
US11758108B2 (en) * 2021-06-18 2023-09-12 Qingdao Pico Technology Co., Ltd. Image transmission method, image display device, image processing device, image transmission system, and image transmission system with high-transmission efficiency

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080009134A1 (en) * 2006-07-06 2008-01-10 Tsung-Yu Hung Method for fabricating metal silicide
CN101552660A (zh) * 2008-04-01 2009-10-07 中国移动通信集团公司 对流媒体数据进行重传、播放的方法、装置及通信系统
CN101656747A (zh) * 2009-09-25 2010-02-24 深圳创维数字技术股份有限公司 流媒体数据的传输方法及系统
CN102546081A (zh) * 2010-12-21 2012-07-04 中兴通讯股份有限公司 丢包检测方法、系统和媒体客户端
CN102595251A (zh) * 2011-01-11 2012-07-18 中兴通讯股份有限公司 流媒体丢包重传实现方法和系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100539879B1 (ko) 1999-06-29 2005-12-28 삼성전자주식회사 이동 통신시스템에서 라디오링크프로토콜에 따른 데이터 송수신 장치 및 방법
FI19992470A (fi) * 1999-11-17 2001-05-18 Nokia Mobile Phones Ltd Tiedonsiirto
CN1567915A (zh) * 2003-07-02 2005-01-19 明基电通股份有限公司 一种无线传输控制协议/网际协议报头设定传输方法
US20060291468A1 (en) * 2005-06-22 2006-12-28 Rajendra Bopardikar Selective re-transmission of lost multi-media data packets
KR100678156B1 (ko) * 2005-12-12 2007-02-02 삼성전자주식회사 무선 패킷 데이터 송신기 및 수신기와 송신 및 수신방법
CN101262321A (zh) * 2008-02-03 2008-09-10 杭州华三通信技术有限公司 媒体数据处理方法、编码设备及媒体平台
US7991750B1 (en) * 2008-06-10 2011-08-02 Network Appliance, Inc. Application recovery from network-induced data corruption
US8169914B2 (en) * 2009-03-16 2012-05-01 Sling Media Pvt. Ltd. Method and node for transmitting data over a communication network using negative acknowledgment
US10033779B2 (en) * 2009-07-08 2018-07-24 Dejero Labs Inc. Multipath data streaming over multiple wireless networks
CN102208969B (zh) * 2010-03-31 2013-08-28 华为技术有限公司 重传方法、装置及通信系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080009134A1 (en) * 2006-07-06 2008-01-10 Tsung-Yu Hung Method for fabricating metal silicide
CN101552660A (zh) * 2008-04-01 2009-10-07 中国移动通信集团公司 对流媒体数据进行重传、播放的方法、装置及通信系统
CN101656747A (zh) * 2009-09-25 2010-02-24 深圳创维数字技术股份有限公司 流媒体数据的传输方法及系统
CN102546081A (zh) * 2010-12-21 2012-07-04 中兴通讯股份有限公司 丢包检测方法、系统和媒体客户端
CN102595251A (zh) * 2011-01-11 2012-07-18 中兴通讯股份有限公司 流媒体丢包重传实现方法和系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021097686A1 (zh) * 2019-11-19 2021-05-27 Oppo广东移动通信有限公司 用于传输以太网压缩包的方法和设备
CN114365470A (zh) * 2019-11-19 2022-04-15 Oppo广东移动通信有限公司 用于传输以太网压缩包的方法和设备
CN114365470B (zh) * 2019-11-19 2023-09-08 Oppo广东移动通信有限公司 用于传输以太网压缩包的方法和设备

Also Published As

Publication number Publication date
EP3672189A4 (en) 2020-07-01
EP3672189B1 (en) 2022-07-06
US11196792B2 (en) 2021-12-07
WO2019034061A1 (zh) 2019-02-21
EP3672189A1 (en) 2020-06-24
US20210176293A1 (en) 2021-06-10
CN109391605B (zh) 2021-01-26

Similar Documents

Publication Publication Date Title
US10237153B2 (en) Packet retransmission method and apparatus
CN102006283B (zh) 数据传输的方法和装置
JP6025880B2 (ja) データ伝送方法、装置及びシステム
KR101216100B1 (ko) 단편화 패킹 확장헤더를 수반하는 mac pdu를 전송하는 방법 및 장치
CN110086578A (zh) 数据传输方法、装置和系统
US20060195753A1 (en) Bitmap manager, method of allocating a bitmap memory, method of generating an acknowledgement between network entities, and network entity implementing the same
CN106209915A (zh) 一种实时流媒体无线传输方法及其系统
CN104780119B (zh) 一种基于scps‑tp的丢包定位及检测方法
JP5925916B2 (ja) データを送信、受信する方法及び装置
WO2010121467A1 (zh) 一种包头压缩通信方法和装置
CN105934907A (zh) 无线资源调度方法及装置
CN109391605A (zh) 数据传输方法、装置及系统
CN104618007B (zh) 一种同步卫星tcp协议分段连接优化方法
CN103944880B (zh) 一种ZigBee数据传输的方法
CN105100100A (zh) 适用于分布式网络的udp传输方法和系统
KR20190097963A (ko) 무선 통신 시스템에서 데이터 송수신 방법 및 장치
CN111431672A (zh) 数据的重传方法、装置、存储介质及电子装置
CN110011758B (zh) 一种多链路下tcp的ack传输优化方法、相关装置及系统
CN105871512B (zh) 一种数据传输方法及装置
CN111147483A (zh) 一种对原始网络数据包的有损压缩存储方法和装置
US9819602B2 (en) Efficient datagram segmentation and reassembly for packet-switched networks
EP4131817A1 (en) Data transmission method and network device
CN105763375A (zh) 一种数据包发送方法、接收方法及微波站
CN110611548B (zh) 数据传输方法、设备、发送设备、接收设备及存储介质
US7554977B2 (en) Method and apparatus for indicating packet boundaries in frames

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