CN1558623A - 一种快速处理实时媒体流数据包的方法及其系统 - Google Patents
一种快速处理实时媒体流数据包的方法及其系统 Download PDFInfo
- Publication number
- CN1558623A CN1558623A CNA2004100151455A CN200410015145A CN1558623A CN 1558623 A CN1558623 A CN 1558623A CN A2004100151455 A CNA2004100151455 A CN A2004100151455A CN 200410015145 A CN200410015145 A CN 200410015145A CN 1558623 A CN1558623 A CN 1558623A
- Authority
- CN
- China
- Prior art keywords
- rtp
- rtcp
- packet
- udp
- function
- 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
- 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
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- 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/10—Architectures or entities
- H04L65/102—Gateways
- H04L65/1023—Media gateways
- H04L65/103—Media gateways in the network
-
- 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/1066—Session management
- H04L65/1101—Session protocols
-
- 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/80—Responding to QoS
-
- 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
-
- 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
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- 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/164—Adaptation or special uses of UDP protocol
-
- 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/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- 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/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/326—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
-
- 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/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/327—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the session layer [OSI layer 5]
-
- 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/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/663—Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports
-
- 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/12—Protocol engines
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明的一种快速处理实时媒体流数据包的方法及其系统,为媒体网关、综合接入设备IAD、多媒体终端等网络节点揭示了一种基于用户数据报协议UDP的实时传输协议/实时传输控制协议RTP/RTCP传输实时媒体流数据包的快速处理方法及其系统。该系统改进点在于增加了IP数据包快速过滤模块、UDP快速发送模块和基于本地UDP端口策略ARP表处理模块。这种方法包括:快速接收处理基于RTP/RTCP协议传输的实时媒体流数据包;快速发送基于RTP/RTCP协议传输的实时媒体流数据包;基于UDP端口策略ARP表及其刷新机制。相对于传统的TCP/IP协议栈及SOCKET编程的侦听接收与发送,使用本发明可快速处理实时媒体流数据包,提高设备的处理能力,减少媒体流数据包的网络时延,从而提高网络服务质量。
Description
技术领域
本发明涉及一种IP网络数据通讯处理技术,更确切地说是涉及基于UDP(User Datagram Protocol用户数据报协议)的RTP/RTCP(Real-timeTransport Protocol/Real-time Transport Control Protocol实时传输协议/实时传输控制协议)协议传输实时媒体流数据包的一种快速处理方法,应用于媒体网关、IAD(Integrate Access Device综合接入设备)、IP多媒体终端等设备中基于RTP/RTCP传输的实时媒体流数据包的快速接收和快速发送处理。
本发明还涉及一种用于快速处理实时媒体流数据包的系统。
背景技术
随着互联网的普及和多媒体技术在互联网上的应用,目前迫切要求能有解决实时传送视频、音频等实时媒体流的技术,目前一般使用RTP/RTCP(Real-time Transport Protocol/Real-time Transport Control Protocol实时传输协议/实时传输控制协议)协议来传输视频、音频等实时媒体流数据。
所述实时传输协议RTP提供时间信息和实现流同步;RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠实时传输控制协议RTCP提供这些服务;所述实时传输控制协议RTCP和实时传输协议RTP一起提供流量控制和拥塞控制服务;在RTP会话期间,各参与者周期性地传送RTCP包;该RTCP包中含有已发送的数据包的数量、丢失的数据包数量等统计资料,因此,可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP进行配合使用,能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。通常RTP算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分。网络传输协议RTP通常使用UDP来传送数据;当应用程序开始一个RTP会话时将使用两个本地端口:一个给RTP,一个给RTCP。
如图1所示的,为RTP/RTCP数据包的传统发送流程。所述RTP/RTCP应用层程序要发送实时媒体流数据包时,将调用SOCKET API函数的SendTo发送数据,在SOCKET层内部经过sendit、sosend等函数进行以下操作:sendit函数准备sosend系统调用所需的数据结构msghdr,初始化uio结构,创建MBUF,并将进程指定的输出缓存中的数据收集到内核缓存中,然后将控制和地址信息从进程空间复制到内核,最后将插口、目的地址、uio结构、控制信息和标志等全部传给函数sosend;所述sosend的功能是检查差错条件和等待发送缓存中的闲置空间,当检查差错情况时,为防止缓存发生改变,协议处理先被挂起,将进程来的数据复制到内核,通过调用udp_output并将数据传递给与插口相关的UDP协议层。UDP层用来分析控制信息、数据的内容及合法性,临时连接一个未连接上的插口,填充udpiphdr结构的字段,为检验和计算准备伪首部,计算检验和,填充UDP长度、TTL和TOS等,最后调用ip_output发送数据包到IP层。在IP层完成以下操作:初始化IP首部,确定一条到目的地的路由并获取下一跳的MAC地址,保证所述IP首部有一个有效源地址,复制数据和计算检验和,然后把分组提交给与路由相关的接口if_output函数,完成以太网头部数据的填充,最后调用网口驱动层的发送函数。所述网口驱动发送函数拷贝MBUF中的以太网包数据并驱动网络接口硬件把数据传输到物理层。
如图2所示的,为RTP/RTCP数据包的传统接收流程。一个基于UDP的RTP/RTCP实时媒体流数据包被网口接收函数(即网口驱动以太网帧接收函数)接收后,通过TCP/IP协议栈注册的回调函数ether_input把数据上传给TCP/IP协议栈,经过协议栈IP层的处理,分发给UDP层处理,UDP层的udp_input函数再按照UDP数据包中的目的端口号依次找到对应的接收SOCKET,并把数据放到对应的接收缓冲区中,如此分层拆包处理。RTP/RTCP协议层应用程序任务会每隔一定的时间间隔,调用recvfrom函数从SOCKET的接收缓冲区中读出数据放到应用程序任务的缓冲区中处理。
经过实验和分析发现,在媒体网关、IAD、IP多媒体终端等设备中使用这种发送RTP/RTCP数据包的方法存在一些不必要的处理,导致了处理效率很低,具体表现在以下3个方面:
1、实时媒体流数据通过RTP/RTCP数据包承载在UDP上,根据RTP/RTCP数据包的特性,RTP/RTCP协议层应用程序已经确定了数据包中的源IP、源PORT、目的IP、目的PORT等内容,而标准TCP/IP协议栈、SOCKET层存在很多协议、地址分析判断处理,这些处理和判断的结果对于RTP/RTCP数据包的发送来说是已知的和多余的,完全不需要。
2、标准TCP/IP协议栈在不同的层来填充数据包中的相关字段,分层来处理不同的协议层数据,因而层数多,层数多则必然需要更多的动态内存的申请操作,这样会进行大量的数据结构的转换、数据的拷贝以及数据判断等非常耗时、占CPU资源的操作。根据在一个会话中实时媒体流RTP/RTCP数据包的特征,实时媒体流数据包从上层应用程序到网络驱动发送可以由一个新的处理函数实现,跨越SOCKET层及标准协议栈。
3、通过所述标准TCP/IP协议栈发送数据时,每个数据包都要进行路由、ARP的查找,协议栈的这些操作是非常费时的。根据在一个会话中实时媒体流RTP/RTCP数据包的特征,软件可以采用基于端口的ARP策略来大大降低这种非常费时的路由、ARP查找操作。
在媒体网关、IAD、IP多媒体终端等设备中使用这种接收RTP/RTCP数据包的方法也存在一些不必要的处理,导致了处理效率很低,具体表现在以下2个方面:
1、这种分层拆包处理存在很多冗余、费时的处理,如多次协议类型、地址信息、数据合法性的判断,多次数据结构的转换,多次数据拷贝等等,这些操作对于已知端口范围的UDP数据接收来说是不必要的。
2、RTP/RTCP协议层应用程序任务采用SOCKET编程定时查询方式接收数据大大增加了时延并浪费了CPU资源。
如上所述,在传统的RTP/RTCP数据包的处理过程中,RTP/RTCP应用层通过SOCKET API与TCP/IP协议栈完成接口操作,由TCP/IP协议栈与网络驱动层完成数据的接收与发送。在发送方向上,RTP/RTCP应用层程序调用SOCKET API的发送函数把数据发送出去,存在处理效率低的问题;在接收方向上,RTP/RTCP协议应用程序以定时查询的方式调用SOCKET API的接收函数来接收数据包,并分层拆包处理,同样存在处理效率低下的问题。
发明内容
本发明的目的在于提供一种快速处理实时媒体流数据包的方法及其系统,由媒体网关、IAD以及IP多媒体终端等设备通过实现该系统来使用这种方法,通过在接收方向上使用IP数据包快速过滤模块取代TCP/IP协议栈的数据接收处理函数集及SOCKET接收处理,并去除了TCP/IP协议栈分层拆包过程中的数据结构转换,以及在发送方向上使用UDP快速发送模块代替TCP/IP协议栈的数据发送处理函数集及SOCKET发送处理,发送实时媒体流数据包时减少多层分发处理的函数调用,从而去除数据结构的多次转换和减少动态内存的申请和数据的拷贝,使之相对于使用传统的TCP/IP协议栈处理方式,RTP/RTCP数据包的处理效率明显提高,提高设备的处理能力,减少媒体流数据包的网络时延,从而提高网络服务质量。
本发明的目的通过如下技术方案实现:
一种快速处理实时媒体流数据包的系统,其包括:一IP数据包快速过滤模块、一UDP快速发送模块以及一基于本地UDP端口策略ARP表处理模块;所述系统还包括:一基于UDP端口注册的RTP/RTCP快速接收处理函数,所述RTP/RTCP快速接收处理函数位于RTP/RTCP应用层内;
所述基于本地UDP端口策略ARP表处理模块与所述IP数据包快速过滤模块和所述UDP快速发送模块通讯连接,并且:所述基于本地UDP端口策略ARP表处理模块根据设备RTP/RTCP协议端口资源的分配情况以及RTP/RTCP协议端口的特征,构造一个以端口映射值为下标的ARP表;
所述IP数据包快速过滤模块在数据链路层接收函数中,安装快速接收钩子函数;所述钩子函数用于分析以太网数据包的内容;RTP/RTCP应用层在所述钩子函数中注册UDP端口对应的RTP/RTCP快速接收处理函数;
所述UDP快速发送模块用于在所述RTP/RTCP应用层任务发送实时媒体流数据包时直接调用所述UDP快速发送模块提供的发送函数,经过该UDP快速发送模块的处理,最后调用对应的网口发送函数把数据发送出去;
所述IP数据包快速过滤模块用于把实时媒体流数据包从一网口接收函数接收后,传输给所述RTP/RTCP快速接收处理函数,从而直接传输到所述RTP/RTCP应用层的任务的缓冲区中。
所述的系统,其中,该系统还包括一TCP/IP协议栈模块,所述UDP快速发送模块还在无法完成数据包发送的情况下,通过TCP/IP协议栈模块使用SOCKET API发送数据包。
所述的系统,其中,所述ARP表中的信息主要有:数据包的目的IP地址、下一跳的MAC地址、该表项上次刷新时间。
所述的系统,其中,所述钩子函数分析以太网数据包的内容包括:分析是否是IP数据包,如果是进一步分析是否是UDP数据包,如果是进一步分析是否是已经注册了的UDP端口范围的数据包,如果是则调用对应的基于UDP端口注册的RTP/RTCP快速接收处理函数,将实时媒体流数据包直接传输到RTP/RTCP应用层任务的缓冲区中。
所述的系统,其中,所述钩子函数分析以太网数据包的内容还包括:分析是否是IP数据包,如果不是钩子函数实体进一步解析是否是免费ARP包,如果是则启动基于本地UDP端口策略的ARP表刷新机制,使策略ARP表无效。
一种所述的快速处理实时媒体流数据包的方法,其包括以下步骤:
a)所述基于本地UDP端口策略ARP表处理模块根据设备RTP/RTCP协议端口资源的分配情况以及RTP/RTCP协议端口的特征,构造一个以端口映射值为下标的ARP表;
b)上层应用调用所述UDP快速发送模块发送RTP/RTCP数据包,根据所述RTP/RTCP数据包的目的IP地址,使用传统TCP/IP协议栈的相关接口函数获取下一跳的MAC地址;
c)如果成功获取下一跳的MAC地址则刷新ARP表项中的下一跳的MAC地址并直接发送该RTP/RTCP数据包,此后如果在该UDP端口上所发送的目的IP地址不变且端口ARP表未到老化时间,则均直接使用ARP表项中的下一跳MAC地址填充以太网数据包的目的MAC地址,快速发送该RTP/RTCP数据包;
d)如果不能获取下一跳的MAC地址,则需要通过TCP/IP UDPSOCKET API发送这个RTP/RTCP数据包,以便TCP/IP协议栈获得下一跳MAC地址并刷新协议栈ARP表,在该端口的下一个数据包发送时,就可成功获取下一跳的MAC地址并刷新基于本地UDP端口的策略ARP表项中的下一跳的MAC地址。
所述的方法,其中,所述方法包括RTP/RTCP数据包的快速发送方法,其包括以下处理步骤:
a1)根据所述RTP/RTCP应用层的情况,初始化全局以太网数据帧结构,并填充相关字段;
a2)所述RTP/RTCP应用层在发送实时媒体流数据包时,准备协议层数据指针、数据长度、源IP地址、目的IP地址、源UDP端口号、目的UDP端口号等参数,调用所述UDP快速发送模块提供的RTP/RTCP发送函数
a3)所述UDP快速发送模块根据源UDP端口号、目的IP地址从ARP表中获取下一跳MAC地址;如果获取不成功,则通过TCP/IP协议栈模块发送这个RTP/RTCP数据包;
a4)如果获取成功,使用已初始化的以太网数据帧结构,并填充相应的字段,以及根据需要计算并填充IP、UDP的校验字段;
a5)调用网口发送函数发送数据包。
所述的方法,其中,所述方法的RTP/RTCP数据包的快速接收方法,其包括以下处理步骤:
b1)根据所述系统的本地UDP端口资源的分配情况维护一个协议层回调函数注册表,注册一RTP/RTCP快速接收处理函数来接收处理目的端口号对应的UDP数据包,所述RTP/RTCP快速接收处理函数完成把RTP/RTCP数据包写到RTP/RTCP应用层的缓冲区中
b2)在网口接收函数中注册一以太网数据包快速接收处理钩子函数,该钩子函数的实体为所述IP数据包快速过滤模块,用以分析所述以太网数据包是否为本网口的UDP/IP数据包并进行过滤处理;
b3)根据所述UDP数据包的目的端口号和RTP/RTCP应用层回调函数注册表,调用UDP目的端口号对应的RTP/RTCP应用层注册的回调函数RTP/RTCP快速接收处理函数,由该回调函数完成该UDP数据包的处理
b4)如果所述IP数据包快速过滤模块已经成功通过RTP/RTCP应用层注册的回调函数RTP/RTCP快速接收函数处理,则返回一个已经被处理的标记;
b5)网口接收函数根据以太网数据包快速接收处理钩子函数返回的是否已经处理标记,判断是否要继续传给所述TCP/IP协议栈模块处理。
所述的方法,其中,所述步骤b4)后如果没有被处理,则分析是否是免费ARP包;在网口接收函数上收到免费ARP包时,使ARP表项中的MAC地址失效,以便随后发RTP/RTCP数据包时主动从所述TCP/IP协议栈重新获取下一跳MAC并刷新ARP表。
所述的方法,其中,在所述步骤d)定义一刷新时间间隔,以定时刷新所述基于本地UDP端口的策略ARP表。
本发明的快速处理实时媒体流数据包的方法及其系统充分利用了RTP/RTCP协议数据实时媒体流的特性,从根本上改变了媒体流数据包的处理流程。
首先在接收方向上使用IP数据包快速过滤模块取代TCP/IP协议栈的数据接收处理函数集及SOCKET接收处理,并去除了TCP/IP协议栈分层拆包过程中的数据结构转换,大大减少了各种协议类型、地址信息、数据内容的有效、合法性判断。RTP/RTCP应用层不需要SOCKET编程中的定时查询操作,RTP/RTCP协议实时媒体流数据直接通过RTP/RTCP应用层注册的回调函数写入RTP/RTCP应用层的缓冲区中。
其次在发送方向上使用UDP快速发送模块代替TCP/IP协议栈的数据发送处理函数集及SOCKET发送处理,发送实时媒体流数据包时减少多层分发处理的函数调用,从而去除数据结构的多次转换和减少动态内存的申请和数据的拷贝。
更重要的是本发明采用基于本地UDP端口策略ARP表处理模块,根本上改变传统TCP/IP协议栈发送数据包时的下一跳地址查找机制。
本发明的系统和方法相对于传统的TCP/IP协议栈及SOCKET编程的侦听接收与发送,使用本发明可快速处理实时媒体流数据包,提高设备的处理能力,减少媒体流数据包的网络时延,从而提高网络服务质量。
在产品的对比测试中,使用本发明的方法和系统,实时媒体流数据包的处理效率明显提高,设备的处理能力大大增强,从而减少了实时媒体流数据包的网络时延,提高了实时媒体流的服务质量。实验结果显示:以主频为50M的通用CPU和通用10M/100M自适应网络控制器设备为例,使用传统的TCP/IP SOCKET API处理实时媒体流数据包,处理20路G.711 20ms的语音数据流会占用80%左右的CPU处理时间,而如果采用本发明的方法及系统处理实时媒体流数据包,处理20路G.711 20ms的语音数据流会只占用20%左右的CPU处理时间,因此数据包的处理效率显著提高。
附图说明
图1是现有技术中的传统实时媒体流数据包发送框图;
图2是现有技术的传统实时媒体流数据包接收框图;
图3是本发明的快速处理实时媒体流数据包模块框图;
图4是本发明的实时媒体流快速发送处理流程;
图5是本发明的实时媒体流快速接收处理流程。
具体实施方式
下面结合附图对技术方案的实施作进一步的详细描述:
请参见图3,本发明的改进实施例涉及三个主要发明创造部分:IP数据包快速过滤模块、UDP快速发送模块以及基于本地UDP端口策略ARP表处理模块;本发明的系统还包括传统的TCP/IP协议栈模块和基于UDP端口注册的RTP/RTCP快速接收处理函数,一网口接收函数和一网口发送函数位于数据链路层内;所述RTP/RTCP快速接收处理函数位于RTP/RTCP应用层内。
本发明的所述快速处理实时媒体流数据包的系统,充分利用了RTP/RTCP实时媒体流数据包的特征进行快速接收和发送处理。在发送方向上RTP/RTCP实时媒体流的特征是已知数据包的源IP地址、目的IP地址、源UDP端口、目的UDP端口;在接收方向上RTP/RTCP实时媒体流的特征是已知数据包的目的IP地址、目的UDP端口范围。
所述基于本地UDP端口策略ARP表处理模块包括以下特征:根据设备RTP/RTCP协议端口资源的分配情况以及RTP/RTCP协议端口的特征,构造一个以端口映射值为下标(索引)的ARP表;该ARP表中的信息主要有:数据包的目的IP地址,用于保存该本地UDP端口上次UDP数据包的目的IP地址;下一跳的MAC地址,用于保存数据包的目的IP地址所对应的MAC地址;该表项上次刷新时间。
在最开始,上层应用调用快速发送接口发送RTP/RTCP数据包,此时所需发送的数据包的目的地址IP不等于所述基于本地UDP端口的策略ARP表中的数据包的目的IP地址,需要根据RTP/RTCP数据包的目的IP地址,使用传统的TCP/IP协议栈的相关接口函数获取下一跳的MAC地址。
如果成功获取了下一跳的MAC地址则刷新所述ARP表项中的下一跳的MAC地址并直接发送该RTP/RTCP数据包,此后如果在该UDP端口上所发送的目的IP地址不变且端口ARP表未到老化时间,则均直接使用所述ARP表项中的下一跳MAC地址填充以太网数据包的目的MAC地址,以实现快速发送该RTP/RTCP数据包。
如果不能获取下一跳的MAC地址,则需要通过TCP/IP UDP SOCKETAPI发送这个RTP/RTCP数据包,以便所述TCP/IP协议栈模块启动传统的获得下一跳MAC地址的流程并刷新TCP/IP协议栈ARP表,在该端口的下一个数据包发送时,必须成功获取下一跳的MAC地址并刷新所述基于本地UDP端口的策略ARP表项中的下一跳的MAC地址。
在网口接收函数上收到免费ARP包时,需要使所述ARP表项中的MAC地址失效,这样在随后发RTP/RTCP数据包时能主动从所述TCP/IP协议栈重新获取下一跳MAC并刷新ARP表。并且可以定义一个刷新时间间隔,以便定时刷新基于本地UDP端口的策略ARP表。
所述IP数据包快速过滤模块的特征在于:在所述数据链路层的网口接收函数中安装快速接收钩子函数;该钩子函数的实体分析以太网数据包的内容;所述RTP/RTCP应用层在该钩子函数实体中注册UDP端口对应的RTP/RTCP快速接收处理函数。
进一步地,所述钩子函数实体分析以太网数据包的内容还包括:分析该以太网数据包是否是IP数据包,如果是进一步分析是否是UDP数据包,如果是进一步分析是否是已经注册了的UDP端口范围的数据包,如果是则调用对应的基于UDP端口注册的RTP/RTCP快速接收处理函数,将实时媒体流数据包直接传输到RTP/RTCP应用层任务的缓冲区中。
如果不是IP数据包,所述钩子函数实体进一步解析是否是免费ARP包,免费ARP包区别于其他ARP包的特征是其数据包中的目的IP地址与源IP地址一致,如果是则启动基于本地UDP端口策略的ARP表刷新机制,使策略ARP表无效。
所述UDP快速发送模块的特征包括:所述RTP/RTCP应用层任务发送实时媒体流数据包时直接调用该UDP快速发送模块提供的网口发送函数,经过该UDP快速发送模块的处理,最后调用对应的网口驱动程序发送函数把数据发送出去。
进一步地,该发送模块充分利用了RTP/RTCP传输实时媒体流的特征,维护所述基于本地UDP端口策略的ARP表完成下一跳MAC地址的获取,如此,以太网数据包的接收和发送都尽可能不经过现有技术的所述TCP/IP协议栈模块处理,并采用所述基于本地端口的策略ARP表大大降低了非常费时的路由、ARP查找等操作;并且发送过程中使用已经申请并初始化好的以太网数据包结构,数据包中的很多字段不需要重新填写,这样就从发送和接收方向上都提高了RTP/RTCP传输实时媒体流的传输效率,降低了对CPU的利用率。
另外,所述UDP快速发送模块的特征还包括:在所述UDP快速发送模块无法完成数据包发送的情况下,本发明系统仍然通过TCP/IP协议栈模块使用SOCKET API发送数据包。传统的TCP/IP协议栈支持SOCKET接口和一些标准IO控制接口,通过调用传统的协议栈提供的接口,可以根据数据包的目的IP得到下一跳的IP地址;通过调用传统协议栈提供的接口,可以根据下一跳的IP地址,得到该IP地址所对应的MAC地址。
所述IP数据包快速过滤模块的特征还包括:所述基于UDP端口注册的RTP/RTCP快速接收处理函数负责把实时媒体流数据包直接传输到RTP/RTCP应用层任务的缓冲区中。
以下具体描述本发明的一较佳实施例:
在本发明的系统和方法中,在RTP/RTCP数据包的接收方向上使用所述IP数据包快速过滤模块取代现有技术的TCP/IP协议栈模块,通过RTP/RTCP协议应用程序注册的基于本地UDP端口范围的RTP/RTCP快速接收处理函数直接把从所述网口接收函数收到的RTP/RTCP数据包写到对应的RTP/RTCP协议应用程序的数据接收缓冲区中。在RTP/RTCP数据包的发送方向上使用所述UDP快速发送处理模块取代现有技术的TCP/IP协议栈模块,直接把RTP/RTCP应用层的数据写到网口发送函数的发送缓冲区中。根据设备RTP/RTCP协议端口资源的分配情况,提供基于本地UDP端口的策略ARP表及其查找、刷新机制,取代所述TCP/IP协议栈的路由及其下一跳MAC地址的查找机制。
所述基于本地UDP端口的策略ARP表及其查找、刷新机制,包括以下内容:
A、根据设备RTP/RTCP协议端口资源的分配情况以及RTP/RTCP协议端口的特征,构造一个以端口映射值为下标(索引)的ARP表项,即一结构数组PORT_IP_MAC_TABLE[PORT_MAP_VALUE]。例如:如果设备中RTP/RTCP的端口资源范围为10000----20000,结构数组下标与UDP端口的映射关系可以是UDP端口号X对应下标PORT_MAP_VALUE=(X-10000)/2。
B、所述ARP表项结构内容包含四个字节的RtpRtcpDestIp、六个字节的NextHopMacAddr、四个字节的refurbishTick。所述RtpRtcpDestIp保存该本地UDP端口上次UDP数据包的目的IP地址,NextHopMacAddr保存RtpRtcpDestIp对应的下一跳MAC地址,refurbishTick保存该表项上次刷新时间。
C、如图3所示,所述IP数据包快速过滤处理模块收到免费ARP包时,通过清除PORT_IP_MAC_TABLE表中各表项的refurbishTick使表项中的MAC地址失效,这样在发RTP/RTCP数据包时能主动从TCP/IP协议栈重新获取下一跳MAC并刷新表项中的数据。
D、定义一个刷新时间间隔,所述RTP/RTCP应用层发送实时媒体流数据时,如图4所示,首先根据UDP源端口对应数据项的refurbishTick和系统时间值以及定义的刷新时间间隔,判断该表项内容是否需要刷新。如果没到刷新时间,则继续执行步骤E。如果需要刷新,则执行步骤F。
E、判断传输的RTP/RTCP数据包的目的IP地址与表项中的RtpRtcpDestIp是否一致,如果相同则继续执行步骤G。如果不相同,则执行步骤F。
F、根据传输的RTP/RTCP数据包的目的IP地址,使用TCP/IP协议栈的相关路由、ARP函数获取下一跳的MAC地址。如果成功获取则刷新ARP表项的refurbishTick、NextHopMacAddr、RtpH248DestIp,并继续执行所述步骤G。否则通过TCP/IP UDP SOCKET API发送这个RTP/RTCP数据包,以便TCP/IP协议栈刷新ARP表。
G、直接使用ARP表项中的下一跳MAC地址NextHopMacAddr填充以太网数据包的目的MAC地址,快速发送该RTP/RTCP数据包。
本发明方法的RTP/RTCP数据包的快速发送方法,如图3、图4所示,其包括以下处理步骤:
H、根据所述RTP/RTCP应用层的情况,初始化全局以太网数据帧结构,并填充相关字段。
I、所述RTP/RTCP应用层要发送实时媒体流数据包时,需要准备协议层数据指针、数据长度、源IP地址、目的IP地址、源UDP端口号、目的UDP端口号等参数,调用所述UDP快速发送模块提供的RTP/RTCP发送函数。
J、所述UDP快速发送模块根据源UDP端口号、目的IP地址从PORT_IP_MAC_TABLE中获取下一跳MAC地址。如果不成功,则通过TCP/IP UDP SOCKET API发送这个RTP/RTCP数据包。如果成功,则继续执行步骤K。
K、使用已初始化的以太网数据帧结构,并填充相应的字段,如源IP、目的IP、源PORT、目的PORT、源MAC、目的MAC等,以及根据需要计算并填充IP、UDP的校验字段。
L、调用网口驱动程序即数据链路层的网口发送函数发送数据。
本发明方法的RTP/RTCP数据包的快速接收方法,如图3、图5所示,其包括以下处理步骤:
M、根据本发明系统的本地UDP端口资源的分配情况维护一个协议层回调函数注册表,如UDP端口号10000----20000对应的是RTP/RTCP数据包,注册一个RTP/RTCP快速接收处理函数来接收处理目的端口号为10000---20000范围的UDP数据包。所述RTP/RTCP快速接收处理函数主要完成把RTP/RTCP数据包写到RTP/RTCP应用层的缓冲区中。
N、在网口驱动程序即所述数据链路层的网口接收函数中注册一个以太网数据包快速接收处理钩子函数,该钩子函数的实体IP数据包快速过滤模块分析以太网数据包并进行过滤处理。
O、所述IP数据包快速过滤模块分析该以太网数据包是否为本网口的UDP/IP包。
P、根据UDP数据包的目的端口号和RTP/RTCP应用层回调函数注册表,调用UDP目的端口号对应的RTP/RTCP应用层注册的回调函数RTP/RTCP快速接收处理函数,由该回调函数完成该UDP数据包的处理。
Q、如果IP数据包快速过滤模块已经成功通过RTP/RTCP应用层注册的回调函数RTP/RTCP快速接收函数处理,则返回一个已经被处理的标记。
R、如果没有被处理,则分析是否是免费ARP包,如果是,通过清除PORT_IP_MAC_TABLE表中各表项的refurbishTick使表项中的MAC地址失效。
S、网口驱动程序的所述网口接收函数,根据以太网数据包快速接收处理钩子函数返回的是否已经处理标记,判断是否要继续传给所述TCP/IP协议栈模块处理。
综上所述,本发明为媒体网关、IAD(Integrate Access Device综合接入设备)、多媒体终端等网络节点揭示了一种基于UDP(User DatagramProtocol用户数据报协议)的RTP/RTCP(Real-time Transport Protocol/Real-time Transport Control Protocol实时传输协议/实时传输控制协议)传输实时媒体流数据包的快速处理方法及其系统,这种方法包括:快速接收处理基于RTP/RTCP协议传输的实时媒体流数据包;快速发送基于RTP/RTCP协议传输的实时媒体流数据包;基于本地UDP端口的策略ARP表及其刷新机制。其中快速接收包括:实时媒体流数据包到达网口驱动程序接收函数(数据链路层)后,经过新增的IP(Internet Protocol网际协议)数据包快速过滤模块,跳过现有技术的TCP/IP协议栈模块,直接通过所述基于本地UDP端口注册的RTP/RTCP快速接收处理函数,将实时媒体流数据包直接传输到RTP/RTCP应用层任务的缓冲区中。而快速发送包括:所述RTP/RTCP应用层任务发送实时媒体流数据包时直接调用新增的UDP数据包快速发送处理函数经过UDP快速发送模块的处理,最后调用网口驱动程序的网口发送函数发送数据包,不经过所述TCP/IP协议栈模块,充分利用RTP/RTCP传输实时媒体流的特征,由所述UDP快速发送模块维护基于本地UDP端口策略ARP表完成下一跳MAC地址的获取。由此,本发明的系统和方法,相对于传统的TCP/IP协议栈及SOCKET编程的侦听接收与发送,使用本发明可快速处理实时媒体流数据包,提高设备的处理能力,减少媒体流数据包的网络时延,从而提高网络服务质量。
应当理解的是,对本发明的同领域普通技术人员来说,可以根据本发明的技术方案及其构思做出各种可能的改变或变形,而所有这些改变或变形都应属于本发明所附权利要求的保护范围。
Claims (10)
1、一种快速处理实时媒体流数据包的系统,其包括:一IP数据包快速过滤模块、一UDP快速发送模块以及一基于本地UDP端口策略ARP表处理模块;所述系统还包括:一基于UDP端口注册的RTP/RTCP快速接收处理函数,所述RTP/RTCP快速接收处理函数位于RTP/RTCP应用层内;
所述基于本地UDP端口策略ARP表处理模块与所述IP数据包快速过滤模块和所述UDP快速发送模块通讯连接,并且:所述基于本地UDP端口策略ARP表处理模块根据设备RTP/RTCP协议端口资源的分配情况以及RTP/RTCP协议端口的特征,构造一个以端口映射值为下标的ARP表;
所述IP数据包快速过滤模块在数据链路层接收函数中,安装快速接收钩子函数;所述钩子函数用于分析以太网数据包的内容;RTP/RTCP应用层在所述钩子函数中注册UDP端口对应的RTP/RTCP快速接收处理函数;
所述UDP快速发送模块用于在所述RTP/RTCP应用层任务发送实时媒体流数据包时直接调用所述UDP快速发送模块提供的发送函数,经过该UDP快速发送模块的处理,最后调用对应的网口发送函数把数据发送出去;
所述IP数据包快速过滤模块用于把实时媒体流数据包从一网口接收函数接收后,传输给所述RTP/RTCP快速接收处理函数,从而直接传输到所述RTP/RTCP应用层的任务的缓冲区中。
2、根据权利要求1所述的系统,其特征在于,该系统还包括一TCP/IP协议栈模块,所述UDP快速发送模块还在无法完成数据包发送的情况下,通过TCP/IP协议栈模块使用SOCKET API发送数据包。
3、根据权利要求2所述的系统,其特征在于,所述ARP表中的信息主要有:数据包的目的IP地址、下一跳的MAC地址、该表项上次刷新时间。
4、根据权利要求3所述的系统,其特征在于,所述钩子函数分析以太网数据包的内容包括:分析是否是IP数据包,如果是进一步分析是否是UDP数据包,如果是进一步分析是否是已经注册了的UDP端口范围的数据包,如果是则调用对应的基于UDP端口注册的RTP/RTCP快速接收处理函数,将实时媒体流数据包直接传输到RTP/RTCP应用层任务的缓冲区中。
5、根据权利要求3所述的系统,其特征在于,所述钩子函数分析以太网数据包的内容还包括:分析是否是IP数据包,如果不是钩子函数实体进一步解析是否是免费ARP包,如果是则启动基于本地UDP端口策略的ARP表刷新机制,使策略ARP表无效。
6、一种如权利要求1所述的快速处理实时媒体流数据包的方法,其包括以下步骤:
a)所述基于本地UDP端口策略ARP表处理模块根据设备RTP/RTCP协议端口资源的分配情况以及RTP/RTCP协议端口的特征,构造一个以端口映射值为下标的ARP表;
b)上层应用调用所述UDP快速发送模块发送RTP/RTCP数据包,根据所述RTP/RTCP数据包的目的IP地址,使用传统TCP/IP协议栈的相关接口函数获取下一跳的MAC地址;
c)如果成功获取下一跳的MAC地址则刷新ARP表项中的下一跳的MAC地址并直接发送该RTP/RTCP数据包,此后如果在该UDP端口上所发送的目的IP地址不变且端口ARP表未到老化时间,则均直接使用ARP表项中的下一跳MAC地址填充以太网数据包的目的MAC地址,快速发送该RTP/PTCP数据包;
d)如果不能获取下一跳的MAC地址,则需要通过TCP/IP UDPSOCKET API发送这个RTP/RTCP数据包,以便TCP/IP协议栈获得下一跳MAC地址并刷新协议栈ARP表,在该端口的下一个数据包发送时,就可成功获取下一跳的MAC地址并刷新基于本地UDP端口的策略ARP表项中的下一跳的MAC地址。
7、根据权利要求6所述的方法,其特征在于,所述方法包括RTP/RTCP数据包的快速发送方法,其包括以下处理步骤:
a1)根据所述RTP/RTCP应用层的情况,初始化全局以太网数据帧结构,并填充相关字段;
a2)所述RTP/RTCP应用层在发送实时媒体流数据包时,准备协议层数据指针、数据长度、源IP地址、目的IP地址、源UDP端口号、目的UDP端口号等参数,调用所述UDP快速发送模块提供的RTP/RTCP发送函数
a3)所述UDP快速发送模块根据源UDP端口号、目的IP地址从ARP表中获取下一跳MAC地址;如果获取不成功,则通过TCP/IP协议栈模块发送这个RTP/RTCP数据包;
a4)如果获取成功,使用已初始化的以太网数据帧结构,并填充相应的字段,以及根据需要计算并填充IP、UDP的校验字段;
a5)调用网口发送函数发送数据包。
8、根据权利要求6所述的方法,其特征在于,所述方法的RTP/RTCP数据包的快速接收方法,其包括以下处理步骤:
b1)根据所述系统的本地UDP端口资源的分配情况维护一个协议层回调函数注册表,注册一RTP/RTCP快速接收处理函数来接收处理目的端口号对应的UDP数据包,所述RTP/RTCP快速接收处理函数完成把RTP/RTCP数据包写到RTP/RTCP应用层的缓冲区中
b2)在网口接收函数中注册一以太网数据包快速接收处理钩子函数,该钩子函数的实体为所述IP数据包快速过滤模块,用以分析所述以太网数据包是否为本网口的UDP/IP数据包并进行过滤处理;
b3)根据所述UDP数据包的目的端口号和RTP/RTCP应用层回调函数注册表,调用UDP目的端口号对应的RTP/RTCP应用层注册的回调函数RTP/RTCP快速接收处理函数,由该回调函数完成该UDP数据包的处理
b4)如果所述IP数据包快速过滤模块已经成功通过RTP/RTCP应用层注册的回调函数RTP/RTCP快速接收函数处理,则返回一个已经被处理的标记;
b5)网口接收函数根据以太网数据包快速接收处理钩子函数返回的是否已经处理标记,判断是否要继续传给所述TCP/IP协议栈模块处理。
9、根据权利要求8所述的方法,其特征在于,所述步骤b4)后如果没有被处理,则分析是否是免费ARP包;在网口接收函数上收到免费ARP包时,使ARP表项中的MAC地址失效,以便随后发RTP/RTCP数据包时主动从所述TCP/IP协议栈重新获取下一跳MAC并刷新ARP表。
10、根据权利要求6~9任一权项所述的方法,其特征在于,在所述步骤d)定义一刷新时间间隔,以定时刷新所述基于本地UDP端口的策略ARP表。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100151455A CN1305276C (zh) | 2004-01-15 | 2004-01-15 | 一种快速处理实时媒体流数据包的方法及其系统 |
US10/585,698 US7742429B1 (en) | 2004-01-15 | 2004-06-04 | Method and system of promptly processing real-time media stream data packet |
PCT/CN2004/000605 WO2005071916A1 (fr) | 2004-01-15 | 2004-06-04 | Procede et systeme de traitement rapide de paquets de donnees en continu et en temps reel |
EP04736045.8A EP1713226B1 (en) | 2004-01-15 | 2004-06-04 | A method and system of promptly processing real-time media stream data packet |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100151455A CN1305276C (zh) | 2004-01-15 | 2004-01-15 | 一种快速处理实时媒体流数据包的方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1558623A true CN1558623A (zh) | 2004-12-29 |
CN1305276C CN1305276C (zh) | 2007-03-14 |
Family
ID=34351333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100151455A Expired - Fee Related CN1305276C (zh) | 2004-01-15 | 2004-01-15 | 一种快速处理实时媒体流数据包的方法及其系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7742429B1 (zh) |
EP (1) | EP1713226B1 (zh) |
CN (1) | CN1305276C (zh) |
WO (1) | WO2005071916A1 (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100341301C (zh) * | 2005-05-25 | 2007-10-03 | 复旦大学 | 基于nat的udp流媒体服务器的网关穿透方法 |
CN100379196C (zh) * | 2005-01-10 | 2008-04-02 | 中国科学技术大学 | 基于自动交换光网络的媒体数据实时传输的系统及方法 |
CN100428744C (zh) * | 2006-07-27 | 2008-10-22 | 华为技术有限公司 | 通信网络中分组数据的传输方法及其系统 |
CN101188601B (zh) * | 2006-11-15 | 2011-03-16 | 中兴通讯股份有限公司 | 一种多媒体数据快速发送和接收的方法 |
CN101513054B (zh) * | 2006-06-30 | 2011-04-20 | 韩国电子通信研究院 | 用于变换地面数字多媒体广播内容的方法和采用该方法的网关 |
CN101567837B (zh) * | 2008-04-24 | 2011-10-26 | 中兴通讯股份有限公司 | 一种媒体流链路分配方法和系统 |
CN101252598B (zh) * | 2008-03-28 | 2012-09-05 | 中兴通讯股份有限公司 | 一种网络通信协议栈的开发系统和开发方法 |
CN103179028A (zh) * | 2013-01-10 | 2013-06-26 | 上海斐讯数据通信技术有限公司 | 基于内核进行rtp数据收发的网关设备及其实现方法 |
CN104753928A (zh) * | 2015-03-16 | 2015-07-01 | 苏州科达科技股份有限公司 | 一种码流转发方法及系统 |
CN106533980A (zh) * | 2016-11-30 | 2017-03-22 | 浙江宇视科技有限公司 | 一种网络数据包处理方法及装置 |
WO2018064837A1 (zh) * | 2016-10-09 | 2018-04-12 | 武汉芯泰科技有限公司 | 芯片内ip包缓冲区与io间安全过滤方法及安全收发器芯片 |
CN115665044A (zh) * | 2022-10-19 | 2023-01-31 | 中国人民解放军63921部队 | 一种高均匀度万兆流量生成系统、方法、设备、介质 |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8689313B2 (en) * | 2004-06-21 | 2014-04-01 | Insors Integrated Communications | Real time streaming data communications through a security device |
GB2448708B (en) | 2007-04-24 | 2009-09-30 | Motorola Inc | A cellular communication system and a method of operation therefor |
US9178916B2 (en) | 2007-06-28 | 2015-11-03 | Voxer Ip Llc | Real-time messaging method and apparatus |
US8688789B2 (en) * | 2009-01-30 | 2014-04-01 | Voxer Ip Llc | Progressive messaging apparatus and method capable of supporting near real-time communication |
US11095583B2 (en) | 2007-06-28 | 2021-08-17 | Voxer Ip Llc | Real-time messaging method and apparatus |
US20110019662A1 (en) | 2007-06-28 | 2011-01-27 | Rebelvox Llc | Method for downloading and using a communication application through a web browser |
US20100198923A1 (en) | 2009-01-30 | 2010-08-05 | Rebelvox Llc | Methods for using the addressing, protocols and the infrastructure of email to support near real-time communication |
US8180029B2 (en) | 2007-06-28 | 2012-05-15 | Voxer Ip Llc | Telecommunication and multimedia management method and apparatus |
US8825772B2 (en) | 2007-06-28 | 2014-09-02 | Voxer Ip Llc | System and method for operating a server for real-time communication of time-based media |
US8645477B2 (en) * | 2009-01-30 | 2014-02-04 | Voxer Ip Llc | Progressive messaging apparatus and method capable of supporting near real-time communication |
CN101420317B (zh) * | 2008-11-21 | 2011-10-26 | 华为终端有限公司 | 媒体文件录制错误的修复方法、录制终端、服务器和系统 |
CN101447925A (zh) * | 2008-12-17 | 2009-06-03 | 中兴通讯股份有限公司 | 一种发送多路数据包的方法及系统 |
US8849927B2 (en) | 2009-01-30 | 2014-09-30 | Voxer Ip Llc | Method for implementing real-time voice messaging on a server node |
KR101413295B1 (ko) * | 2010-11-04 | 2014-06-30 | 한국전자통신연구원 | 확장성과 적응성을 가지는 dds 구조 및 dds를 구성하는 노드 |
US8763018B2 (en) | 2011-08-22 | 2014-06-24 | Solarflare Communications, Inc. | Modifying application behaviour |
US9246804B1 (en) * | 2012-11-30 | 2016-01-26 | Hewlett Packard Enterprise Development Lp | Network routing |
CN104885428B (zh) * | 2012-12-31 | 2018-04-20 | 阿尔卡特朗讯公司 | 基于ip地址的udp中继的方法、中继器和计算机可读介质 |
CN104244334B (zh) * | 2014-09-10 | 2017-12-22 | 中国联合网络通信集团有限公司 | 一种确定网络服务质量的方法和装置 |
US10110551B1 (en) * | 2017-08-14 | 2018-10-23 | Reza Toghraee | Computer-implemented system and methods for providing IPoE network access using software defined networking |
US11716784B2 (en) | 2019-12-23 | 2023-08-01 | Sony Group Corporation | RTA interface between MAC and app layer |
CN113037532B (zh) * | 2019-12-25 | 2024-08-02 | 中兴通讯股份有限公司 | 一种流媒体码流探测方法、装置、服务器和可读存储介质 |
CN111586040B (zh) * | 2020-05-06 | 2021-02-09 | 北京中科海讯数字科技股份有限公司 | 高性能网络数据接收方法及其系统 |
EP4201047A1 (en) * | 2020-11-09 | 2023-06-28 | Kratos Integral Holdings, LLC | Programmatically determining next-hop mac address |
CN112363900B (zh) * | 2020-11-16 | 2022-09-27 | 中国科学院计算技术研究所 | 一种基于插桩的主机内容器网络性能分析方法及系统 |
CN113360740B (zh) * | 2021-06-04 | 2022-10-11 | 上海天旦网络科技发展有限公司 | 一种数据包标签方法及系统 |
CN115988108B (zh) * | 2023-03-20 | 2023-06-02 | 浪潮电子信息产业股份有限公司 | 数据包处理方法、系统、存储介质和电子设备 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5533021A (en) * | 1995-02-03 | 1996-07-02 | International Business Machines Corporation | Apparatus and method for segmentation and time synchronization of the transmission of multimedia data |
FR2781952B1 (fr) * | 1998-07-28 | 2000-09-08 | Cegelec | Procede d'attribution d'adresses informatiques entre unites d'un systeme de conduite d'installation industrielle |
US6757256B1 (en) * | 1999-08-10 | 2004-06-29 | Texas Instruments Incorporated | Process of sending packets of real-time information |
KR100689540B1 (ko) * | 2000-03-20 | 2007-03-08 | 삼성전자주식회사 | 사설 아이피 네트워크를 통한 다중 통화 장치 및 방법 |
US6934756B2 (en) * | 2000-11-01 | 2005-08-23 | International Business Machines Corporation | Conversational networking via transport, coding and control conversational protocols |
KR20020055264A (ko) * | 2000-12-28 | 2002-07-08 | 구자홍 | 멀티미디어 데이터 전달 방법 |
JP3569241B2 (ja) * | 2001-05-29 | 2004-09-22 | 松下電器産業株式会社 | パケット受信装置及びパケット受信方法 |
US20030081607A1 (en) * | 2001-10-30 | 2003-05-01 | Alan Kavanagh | General packet radio service tunneling protocol (GTP) packet filter |
US20030095567A1 (en) * | 2001-11-20 | 2003-05-22 | Lo Man Kuk | Real time protocol packet handler |
KR20040020639A (ko) * | 2002-08-31 | 2004-03-09 | 삼성전자주식회사 | 실시간 멀티미디어 데이터 생성율의 동적 제어방법 및 그장치 |
FR2844938B1 (fr) * | 2002-09-23 | 2005-01-14 | Cit Alcatel | Procede d'interception de donnees de controle, notamment de qualite de service, et dispositif associe |
CN1148931C (zh) * | 2002-09-29 | 2004-05-05 | 清华大学 | 基于实时传输协议和传输控制协议的流媒体传输实现方法 |
-
2004
- 2004-01-15 CN CNB2004100151455A patent/CN1305276C/zh not_active Expired - Fee Related
- 2004-06-04 US US10/585,698 patent/US7742429B1/en not_active Expired - Fee Related
- 2004-06-04 EP EP04736045.8A patent/EP1713226B1/en not_active Expired - Lifetime
- 2004-06-04 WO PCT/CN2004/000605 patent/WO2005071916A1/zh active Application Filing
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100379196C (zh) * | 2005-01-10 | 2008-04-02 | 中国科学技术大学 | 基于自动交换光网络的媒体数据实时传输的系统及方法 |
CN100341301C (zh) * | 2005-05-25 | 2007-10-03 | 复旦大学 | 基于nat的udp流媒体服务器的网关穿透方法 |
CN101513054B (zh) * | 2006-06-30 | 2011-04-20 | 韩国电子通信研究院 | 用于变换地面数字多媒体广播内容的方法和采用该方法的网关 |
CN100428744C (zh) * | 2006-07-27 | 2008-10-22 | 华为技术有限公司 | 通信网络中分组数据的传输方法及其系统 |
CN101188601B (zh) * | 2006-11-15 | 2011-03-16 | 中兴通讯股份有限公司 | 一种多媒体数据快速发送和接收的方法 |
CN101252598B (zh) * | 2008-03-28 | 2012-09-05 | 中兴通讯股份有限公司 | 一种网络通信协议栈的开发系统和开发方法 |
CN101567837B (zh) * | 2008-04-24 | 2011-10-26 | 中兴通讯股份有限公司 | 一种媒体流链路分配方法和系统 |
CN103179028A (zh) * | 2013-01-10 | 2013-06-26 | 上海斐讯数据通信技术有限公司 | 基于内核进行rtp数据收发的网关设备及其实现方法 |
CN104753928A (zh) * | 2015-03-16 | 2015-07-01 | 苏州科达科技股份有限公司 | 一种码流转发方法及系统 |
WO2018064837A1 (zh) * | 2016-10-09 | 2018-04-12 | 武汉芯泰科技有限公司 | 芯片内ip包缓冲区与io间安全过滤方法及安全收发器芯片 |
CN106533980A (zh) * | 2016-11-30 | 2017-03-22 | 浙江宇视科技有限公司 | 一种网络数据包处理方法及装置 |
CN106533980B (zh) * | 2016-11-30 | 2019-07-12 | 浙江宇视科技有限公司 | 一种网络数据包处理方法及装置 |
CN115665044A (zh) * | 2022-10-19 | 2023-01-31 | 中国人民解放军63921部队 | 一种高均匀度万兆流量生成系统、方法、设备、介质 |
Also Published As
Publication number | Publication date |
---|---|
EP1713226A4 (en) | 2009-09-16 |
WO2005071916A1 (fr) | 2005-08-04 |
EP1713226A1 (en) | 2006-10-18 |
EP1713226B1 (en) | 2018-11-14 |
US7742429B1 (en) | 2010-06-22 |
CN1305276C (zh) | 2007-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1305276C (zh) | 一种快速处理实时媒体流数据包的方法及其系统 | |
TWI411279B (zh) | 封包聚合的方法與系統 | |
CN1208935C (zh) | 数据包的处理 | |
CN1679282A (zh) | Tcp卸载的系统和方法 | |
EP1732285B1 (en) | Apparatus and methods for a high performance hardware network protocol processing engine | |
CN1643878A (zh) | 利用分布规则配置和控制内容传递中的网格资源的方法和设备 | |
US11917038B2 (en) | Methods and apparatus to compress packets in a computing environment | |
CN1698337A (zh) | 利用卸载单元处理tcp连接数据 | |
JP5711237B2 (ja) | データパケットを分析するための装置、データパケット処理システム、及び処理方法 | |
CN1458590A (zh) | 用网络栈同步和上载已卸载网络栈连接的方法 | |
CN1242548A (zh) | 通过传输冗余语音/媒体帧进行因特网实时媒体传输的方法 | |
CN1777194A (zh) | Pat模式下支持多会话应用层协议的网络地址转换方法 | |
CN1602616A (zh) | 报头压缩/解压缩装置和报头压缩/解压缩方法 | |
CN1921438A (zh) | 一种应用代理实现网间应用加速的方法 | |
CN1846409A (zh) | 用于基于传输控制协议话务流特征进行超高速缓存查找的设备和方法 | |
CN1832483A (zh) | 通信系统中控制数据传输的方法和系统 | |
US20110142050A1 (en) | Hashing packet contents to determine a processor | |
CN1777148A (zh) | 一种路由表下一跳ip地址到mac地址解析方法 | |
CN1633796A (zh) | 针对广播或无线网络修改tcp/ip | |
CN1703022A (zh) | 协商链路集聚的链路协议的方法和设备 | |
CN101047625A (zh) | 一种策略路由装置和方法 | |
CN1172492C (zh) | 通用无线业务隧道协议数据包的快速转发处理方法 | |
CN1531281A (zh) | 无需ip重组分发分组的装置和方法 | |
CN1902884A (zh) | 用于流式定时文本的文本样本格式描述的优化传输 | |
CN101047620A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070314 Termination date: 20200115 |