一种实时传输协议RTP用户面数据转发的方法和装置与流程

文档序号:11930153阅读:400来源:国知局
一种实时传输协议RTP用户面数据转发的方法和装置与流程

本发明实施例涉及通信领域,尤其涉及一种实时传输协议RTP用户面数据转发的方法和装置。



背景技术:

家用基站(Home Evolved NodeB,简称HNB)是指在一个局部的区域、一个办公室、类似的小范围区域中,部署小的接入网的小区,为用户提供类似无线局域网的局部无线接入服务,与无线局域网不同的是家庭基站的接入服务在有线网中的接入点并不是IP运营商的网络,而是无线移动通信网络,由核心网为其提供服务,全球移动通信(Global System for Mobile Communications,简称GSM)系统中的核心网处理多个家用基站(Home NodeB,简称HNB)的用户面数据,为了减轻核心网的负担,在核心网和HNB之间引入了GSM网关,通过GSM网关管理多个HNB,主要负责核心网和HNB之间的信令和数据的汇聚和转发。当在HNB和核心网之间进行用户业务时,将用户面数据通过实时传输协议(Real-time Transport Protocol,简称RTP)数据包的形式进行传输;例如语音业务,为了保证语音质量,通过RTP数据包传输语音数据。

基于Linux操作系统的GSM网关包括内核态和用户态;现有技术中的GSM网关在用户态采用SOCKET方式收发包含用户面数据的RTP数据包;一般接收和发送RTP数据包都在内核态进行,用户态处理RTP数据包。以HNB(HNB)通过GSM网关向核心网发送RTP数据包为例:GSM网关的操作系统的内核态接收到HNB发送的RTP数据包,GSM网关的操作系统的内核态将该RTP数据包拷贝至用户态进行封装处理,并将用户态处理后的RTP数据包拷贝至内核态,由内核态将处理后的RTP数据包发送至核心网。这种收发RTP数据包的方式会给内核态和用户态带来大量的用户面数据拷贝开销,造成用户面数据汇聚和转发的时延。

现有技术中,采用用户态和内核态共享缓存方式减少数据拷贝开销,但实现过于复杂,开发维护难度大。因此,亟需一种RTP用户面数据转发的方法以减少用户面数据在用户态和内核态之间的拷贝开销,从而实现在基站和核心网之间快速汇聚和转发用户面数据。



技术实现要素:

本发明实施例提供一种实时传输协议RTP用户面数据转发的方法和装置,用于减少用户面数据在用户态和内核态之间的拷贝开销,实现在基站和核心网之间快速汇聚和转发用户面数据。

本发明实施例提供一种实时传输协议RTP用户面数据转发的方法,适用于包括基站、网关、核心网的全球移动通信GSM系统,基站和核心网通过网关建立链接,网关的内核态上设置转发装置,该方法包括:转发装置接收第一端发送的待转发数据包;待转发数据包中包括位于网关上的目的IP地址和目的用户数据报协议(User Datagram Protocol,简称UDP)端口标识;转发装置在确定待转发数据包为待转发RTP数据包的情况下:转发装置从RTP承载映射表中确定出:与目的IP地址和目的UDP端口标识对应的、位于第二端上的待更新目的IP地址和待更新目的UDP端口标识;其中,若第一端为基站,则第二端为核心网;若第一端为核心网,则第二端为基站;转发装置将待转发数据包中的目的IP地址更新为待更新目的IP地址,将待转发数据包中的目的UDP端口标识更新为待更新目的UDP端口标识,得到更新后待转发数据包;转发装置向第二端发送更新后待转发数据包。

本发明实施例提供一种用于实时传输协议RTP用户面数据转发装置,适用于包括基站、网关、核心网的全球移动通信GSM系统,基站和核心网通过网关建立链接,网关的内核态上设置转发装置,该转发装置包括:

接收单元,用于接收第一端发送的待转发数据包;待转发数据包中包括位于网关上的目的IP地址和目的UDP端口标识;处理单元,用于在确定待转发数据包为待转发RTP数据包的情况下:从RTP承载映射表中确定出:与目的IP地址和目的UDP端口标识对应的、位于第二端上的待更新目的IP地址和待更新目的UDP端口标识;其中,若第一端为基站,则第二端为核心网;若第一端为核心网,则第二端为基站;将待转发数据包中的目的IP地址更新为待更新目的IP地址,将待转发数据包中的目的UDP端口标识更新为待更新目的UDP端口标识,得到更新后待转发数据包;发送单元,用于转发装置向第二端发送更新后待转发数据包。

本发明实施例中,基站和核心网通过网关建立链接,在网关的内核态上设置转发装置,由于在GSM系统中,基站和核心网之间的用户面数据通过RTP数据包进行发送,转发装置接收第一端发送的待转发数据包;待转发数据包中包括位于网关上的目的IP地址和目的UDP端口标识;转发装置在确定待转发数据包为待转发RTP数据包的情况下:转发装置从RTP承载映射表中确定出:与目的IP地址和目的UDP端口标识对应的、位于第二端上的待更新目的IP地址和待更新目的UDP端口标识;转发装置将待转发数据包中的目的IP地址更新为待更新目的IP地址,将待转发数据包中的目的UDP端口标识更新为待更新目的UDP端口标识,得到更新后待转发数据包;转发装置向第二端发送更新后待转发数据包;如此,一方面,网关的内核态上的转发装置接收到待转发数据包,直接在转发装置对待转发数据包进行更新,节省了将网关的内核态接收到的待转发数据拷贝至用户态进行更新的拷贝开销;另一方面,在网关的内核态的转发装置中得到更新后待转发数据包,直接在内核态进行发送,节省了从用户态将更新后待转发数据包拷贝至内核态进行发送的拷贝开销;从而实现了在基站和核心网之间的快速汇聚和转发用户面数据。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。

图1为本发明实施例提供的一种实时传输协议RTP用户面数据转发系统架构示意图;

图2为本发明实施例提供的一种实时传输协议RTP用户面数据转发的方法流程示意图;

图3为本发明实施例提供的网关的Linux内核Netfilter框架钩子函数管理点示意图;

图4为本发明实施例提供的基站和核心网通过网关建立RAB链接的示意图;

图5为本发明实施例提供的在另一种实时传输协议RTP用户面数据转发的方法流程示意图;

图6为本发明实施例提供的一种用于实时传输协议RTP用户面数据转发装置结构示意图。

具体实施方式

为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1示例性示出了本发明实施例适用的一种实时传输协议RTP用户面数据转发系统架构示意图,实时传输协议RTP用户面数据转发系统包括核心网、网关和基站,核心网通过网关管理多个基站,核心网和多个基站之间可进行用户面数据传输,如图1所示,该系统架构100包括核心网101、网关102、基站103、基站104、基站105,转发装置106,核心网101和基站103通过网关102建立链接,转发装置106设置在网关102的内核态上,可选地,网关102通过Iub接口功能与核心网101连接,网关102通过A接口功能与基站103连接。可选地,核心网101为GSM系统核心网,网关102为GSM网关,基站103为家庭基站HNB。

本发明实施例中,第一端向网关102内核态上的转发装置106发送待转发数据包,转发装置106将待转发数据包进行更新得到更新后待转发数据包,向第二端发送更新后待转发数据包,可选地,第一端为核心网101,第二端为基站103、基站104和基站105;或者,第一端为基站103、基站104和基站105,第二端为核心网101。

图2示例性示出了本发明实施例提供的一种实时传输协议RTP用户面数据转发的方法流程示意图。

基于图1所示的系统架构,如图2所示,本发明实施例提供的一种实时传输协议RTP用户面数据转发的方法,适用于包括基站、网关、核心网的全球移动通信GSM系统,基站和核心网通过网关建立链接,网关的内核态上设置转发装置,该方法包括以下步骤:

步骤S201:转发装置接收第一端发送的待转发数据包;待转发数据包中包括位于网关上的目的IP地址和目的用户数据报协议UDP端口标识;

步骤S202:转发装置在确定待转发数据包为待转发RTP数据包的情况下:转发装置从RTP承载映射表中确定出:与目的IP地址和目的UDP端口标识对应的、位于第二端上的待更新目的IP地址和待更新目的UDP端口标识;其中,若第一端为基站,则第二端为核心网;若第一端为核心网,则第二端为基站;

步骤S203:转发装置将待转发数据包中的目的IP地址更新为待更新目的IP地址,将待转发数据包中的目的UDP端口标识更新为待更新目的UDP端口标识,得到更新后待转发数据包;

步骤S204:转发装置向第二端发送更新后待转发数据包。

本发明实施例中,网关的内核态上设置转发装置,网关的操作系统可采用Linux系统,可选地,转发装置可设置在网关的Linux内核中Netfilter框架的关键点LOCAL_IN(B)处上,转发装置的功能可由注册在该关键点的钩子(Hook)函数实现。

图3示例性示出了本发明实施例提供的网关的Linux内核Netfilter框架钩子函数管理点示意图。

如图3所示,网关的Linux内核Netfilter框架中包括关键点PRE_ROUTING(A)304,关键点LOCAL_IN(B)302、Linux内核上层协议栈301、关键点LOCAL_OUT(D)303、关键点FORWARD(C)305、关键点POST_ROUTING(E)306,网关的Linux内核接收到待转发数据包;该待转发数据包从关键点PRE_ROUTING(A)304进入,经过路由判决,若待转发数据包中的目的IP地址是本机的IP地址,则该待转发数据包就经过关键点LOCAL_IN(B)302,往上层协议栈301继续传递,经过上层协议栈301处理,经过路由判决,确定该待转发数据包是从哪个物理接口发送出去,然后通过关键点LOCAL_OUT(D)303,从关键点POST_ROUTING(E)306将该包发送出去;若该待转发数据包目的IP地址不是本机的IP地址,则将该待转发数据包通过关键点FORWARD(C)305,从关键点POST_ROUTING(E)306将该待转发数据包转发出去。

本发明实施例中,可选地,设置在网关内核中的转发装置可通过在关键点LOCAL_IN(B)302处注册一个Hook函数,实现在核心网和基站之间的用户面数据转发功能。在待转发数据包的目的IP地址是本机的IP地址的情况下,转发装置接收到第一端发送的待转发数据包,通过转发装置对待转发数据包进行更新,再通过上层协议栈301、关键点LOCAL_OUT(D)303、关键点POST_ROUTING(E)306发送出去。

基于上述实施例,步骤S201中,第一端向转发装置发送用户面数据时,通过将用户面数据封装在待转发数据包中发送。例如,第一端以基站为例,网关的IP地址为IPgw-1,连接基站的网关的UDP端口标识为PORTgw-1,基站向网关上的转发装置发送待转发数据包,该待转发数据包中的目的IP地址和目的UDP端口标识分别为:IPgw-1和PORTgw-1

可选地,转发装置在确定待转发数据包不为待转发RTP数据包的情况下,将该待转发数据包返回Linux内核协议栈。

本发明实施例中,基站和核心网通过网关建立链接,在网关的内核态上设置转发装置,由于用户面数据通过RTP数据包进行发送,转发装置接收第一端发送的待转发数据包;待转发数据包中包括位于网关上的目的IP地址和目的UDP端口标识;转发装置在确定待转发数据包为待转发RTP数据包的情况下:转发装置从RTP承载映射表中确定出:与目的IP地址和目的UDP端口标识对应的、位于第二端上的待更新目的IP地址和待更新目的UDP端口标识;转发装置将待转发数据包中的目的IP地址更新为待更新目的IP地址,将待转发数据包中的目的UDP端口标识更新为待更新目的UDP端口标识,得到更新后待转发数据包;转发装置向第二端发送更新后待转发数据包;如此,一方面,网关的内核态上的转发装置接收到待转发数据包,直接在转发装置对待转发数据包进行更新,节省了将网关的内核态接收到的待转发数据拷贝至用户态进行更新的拷贝开销;另一方面,在网关的内核态的转发装置中得到更新后待转发数据包,直接在内核态进行发送,节省了从用户态将更新后待转发数据包拷贝至内核态进行发送的拷贝开销;从而实现了在基站和核心网之间的快速汇聚和转发用户面数据。

本发明实施例中,可选地,网关可利用X86平台实现在Linux内核设置的转发装置的功能,相对于现有技术中采用改造内核的方式,在用户态和内核态共享缓存的方式,本发明实施例采用的X86平台节省了成本,而且易于开发维护,部署简单便捷,市场适应性强。

本发明实施例中,核心网和基站之间在传输用户面数据之前,先建立无线接入承载(Radio Access Bearer,简称RAB),用于基站和核心网之间传送语音、数据、多媒体等业务信息,建立RAB由核心网发起,当用户发起一个业务请求的时候,核心网根据被请求业务的特性要求发起建立承载的RAB消息。

图4示例性示出了本发明实施例提供的基站和核心网通过网关建立RAB链接的示意图。

例如,网关的核心网侧的IP地址和UDP端口标识为:第一IP地址和第一UDP端口标识;核心网的IP地址和UDP端口标识为:第二IP地址和第二UDP端口标识;网关的基站侧的IP地址和UDP端口标识为:第三IP地址和第三UDP端口标识;基站的IP地址和UDP端口标识为:第四IP地址和第四UDP端口。

如图4所示,核心网向网关发送第一RAB消息401,用于向网关发起RAB建立核心网和网关之间的链接,第一RAB消息中包括的内容为:第二IP地址和第二UDP端口标识;网关接收到核心网发送的第一RAB消息之后,向基站发送第二RAB消息402,用于向基站发起RAB建立网关和基站之间的链接,第二RAB消息中包括的内容为:第三IP地址和第三UDP端口标识;基站向网关发送第三RAB消息403,用于向网关回复RAB建立网关和基站之间的链接的响应,第三RAB消息中包括的内容为:第四IP地址和第四UDP端口标识;网关接收到第三RAB消息,并向核心网发送第四RAB消息404,用于向核心网回复RAB建立网关和核心网之间的链接的响应,第四RAB消息中包括的内容为:第一IP地址和第一UDP端口标识。本发明实施例中,转发装置根据第一RAB消息401和第四RAB消息404,确定出网关的第一IP地址和第一UDP端口连接核心网的第二IP地址和第二UDP端口;根据第三RAB消息403和第二RAB消息402,确定出网关的第三IP地址和第三UDP端口连接基站的第四IP地址和第四UDP端口。

可选地,转发装置接收待转发数据包之前,还包括:转发装置获取用于使基站和核心网通过网关建立链接的无线接入承载RAB消息;转发装置根据RAB消息确定出:与网关的第一IP地址和第一UDP端口标识连接的核心网的第二IP地址和第二UDP端口标识;与网关的第三IP地址和第三UDP端口标识连接的基站的第四IP地址和第四UDP端口标识;转发装置将第一IP地址和第一UDP端口标识、第二IP地址和第二UDP端口标识、第三IP地址和第三UDP端口标识、第四IP地址和第四UDP端口标识设置为RTP承载映射表中的对应关系。

可选地,RTP承载映射表有多种表示方式,一种可选的表示方式是RTP承载映射表中包括如下内容:第一IP地址和第一UDP端口标识、第二IP地址和第二UDP端口标识、第三IP地址和第三UDP端口标识、第四IP地址和第四UDP端口标识。例如,第一IP地址和第一UDP端口标识分别为IPgw-2、PORTgw-2;第二IP地址和第二UDP端口标识分别为IPcn、PORTcn-1;第三IP地址和第三UDP端口标识分别为IPgw-1、PORTgw-1;第四IP地址和第四UDP端口标识分别为IPhnb、PORThnb-1;RTP承载映射表可表示为:【IPgw-2,PORTgw-2,IPcn,PORTcn-1,IPgw-1,PORTgw-1,IPhnb、PORThnb-1】。如此,一方面,网关代替核心网直接和基站建立RTP承载映射,减轻核心网对RTP承载的管理负担;另一方面,转发装置可根据RTP承载映射表,确定出待转发数据包中的目的IP地址和目的UDP端口标识对应的、位于第二端上的待更新目的IP地址和待更新目的UDP端口标识,进而在网关的内核态进行待转发数据包的更新,避免了用户面数据在内核态和用户态之间的拷贝开销。

本发明实施例提供另一种可选的RTP承载映射表表示方式,RTP承载映射表表示为哈希关键字和哈希值的对应关系。可选地,转发装置将第一IP地址和第一UDP端口标识、第二IP地址和第二UDP端口标识、第三IP地址和第三UDP端口标识、第四IP地址和第四UDP端口标识设置为RTP承载映射表中的对应关系,包括:转发装置将第一IP地址和第一UDP端口标识作为第一哈希关键字,将第三IP地址和第三UDP端口标识,以及第四IP地址和第四UDP端口标识设置为:RTP承载映射表中的第一哈希关键字对应的哈希值;转发装置将第三IP地址和第三UDP端口标识作为第二哈希关键字,将第一IP地址和第一UDP端口标识,以及第二IP地址和第二UDP端口标识设置为:RTP承载映射表中的第二哈希关键字对应的哈希值。如此,建立的RTP承载映射表,利用Linux内核哈希相关API构建哈希关键字和哈希值的对应关系表,提高待转发RTP数据包封装时确定目的IP地址和目的UDP端口标识的查找速度,从而提高转发处理用户面数据的速度。

例如,网关的第一IP地址和第一UDP端口连接核心网的第二IP地址和第二UDP端口,网关的第三IP地址和第三UDP端口连接基站的第四IP地址和第四UDP端口标识;其中,第一IP地址和第一UDP端口标识分别为IPgw-2、PORTgw-2;第二IP地址和第二UDP端口标识分别为IPcn、PORTcn-1;第三IP地址和第三UDP端口标识分别为IPgw-1、PORTgw-1;第四IP地址和第四UDP端口标识分别为IPhnb、PORThnb-1。表1示出了根据哈希关键字和哈希值对应关系表示的RTP承载映射表的示例。如表1所示,将IPgw-2和PORTgw-2作为第一哈希关键字,将IPgw-1、PORTgw-1、IPhnb以及PORThnb-1作为第一哈希关键字对应的哈希值;将IPgw-1、PORTgw-1作为第二哈希关键字,将IPgw-2、PORTgw-2、IPcn以及PORTcn-1作为第二哈希关键字对应的哈希值。

表1根据哈希关键字和哈希值对应关系表示的RTP承载映射表的示例

可选地,转发装置接收第一端发送的待转发数据包,待转发数据包中还包括位于第一端上的源IP地址和源UDP端口标识;转发装置从RTP承载映射表中确定出:与目的IP地址和目的UDP端口标识对应的、位于第二端上的待更新目的IP地址、待更新目的UDP端口标识、待更新源IP地址、待更新源UDP端口标识;其中,若第一端为基站,则第二端为核心网;若第一端为核心网,则第二端为基站;转发装置将待转发数据包中的目的IP地址更新为待更新目的IP地址,将待转发数据包中的目的UDP端口标识更新为待更新目的UDP端口标识,将待转发数据包中的源IP地址更新为待更新源IP地址,将待转发数据包中的源UDP端口标识更新为待更新源UDP端口标识,得到更新后待转发数据包;转发装置发送更新后待转发数据包。

为了更清楚的介绍转发装置如何根据RTP承载映射表中更新待转发数据包,得到更新后待转发数据包,本发明实施例中转发装置以根据表1中所示的RTP承载映射表更新待转发数据包为例进行介绍。

表2示出了转发装置转发基站发送的待转发数据包的封装格式示例。如表2所示,待转发数据包包括IP头部、UDP头部、RTP头部、载荷;其中,IP头部包括源IP地址和目的IP地址,UDP头部包括源UDP端口标识和目的UDP端口标识。以基站向网关发送待转发数据包为例,源IP地址是发送待转发数据包的基站的IP地址,源UDP端口标识是发送待转发数据包的基站的UDP端口标识,目的IP地址是接收待转发数据包的连接基站侧网关的IP地址,目的UDP端口标识是接收待转发数据包的连接基站侧网关的UDP端口标识,载荷为用户面数据。

表2转发装置转发基站发送的待转发数据包的封装格式示例

本发明实施例中,转发装置接收基站发送的如表2所示的待转发数据包;转发装置对待转发数据包进行解码,得到IP头部的源IP地址IPhnb和目的IP地址IPgw-1、UDP头部的源UDP端口标识PORThnb-1和目的UDP端口标识PORTgw-1;将目的IP地址IPgw-1和目的UDP端口标识PORTgw-1作为哈希关键字,在表1中所示的RTP承载映射表查找,确定出表1所示的第二哈希关键字IPgw-1、PORTgw-1对应的哈希值IPgw-2、PORTgw-2、IPcn、PORTcn-1;将哈希值中的网关对应的IP地址IPgw-2和UDP端口标识PORTgw-2作为更新后待转发数据包的待更新源IP地址和待更新源UDP端口标识,将与网关相连接的核心网的IP地址IPcn和UDP端口标识PORTcn-1作为更新后待转发数据包的待更新目的IP地址和待更新目的UDP端口标识;将待更新源IP地址和待更新目的IP地址作为IP头部,待更新源UDP端口标识和待更新目的UDP端口标识作为UDP头部,RTP载荷不变,进行封装得到如表2所示的更新后待转发数据包;转发装置向核心网发送更新后待转发数据包。

表3转发装置转发核心网发送的待转发数据包的封装格式示例

表3示出了转发装置转发核心网发送的待转发数据包的封装格式示例。本发明实施例中,转发装置接收核心网发送的如表3所示的待转发数据包;转发装置对待转发数据包进行解码,得到IP头部的源IP地址IPcn和目的IP地址IPgw-2、UDP头部的源UDP端口标识PORTcn-1和目的UDP端口标识PORTgw-2;将目的IP地址IPgw-2和目的UDP端口标识PORTgw-2作为哈希关键字,在表1中所示的RTP承载映射表查找,确定出表1所示的第一哈希关键字IPgw-2、PORTgw-2对应的哈希值IPgw-1、PORTgw-1、IPhnb、PORThnb-1;将哈希值中的网关对应的IP地址IPgw-1和UDP端口标识PORTgw-1作为更新后待转发数据包的待更新源IP地址和待更新源UDP端口标识,将与网关相连接的基站的IP地址IPhnb和UDP端口标识PORThnb-1作为更新后待转发数据包的待更新目的IP地址和待更新目的UDP端口标识;将更新源IP地址和待更新目的IP地址作为IP头部,待更新源UDP端口标识和待更新目的UDP端口标识作为UDP头部,RTP载荷不变,进行封装得到如表3所示的更新后待转发数据包;转发装置向基站发送更新后待转发数据包。

可选地,转发装置发送更新后待转发数据包,包括:转发装置从RTP承载映射表中确定出:与目的IP地址和目的UDP端口标识对应的、且位于网关上的待更新源IP地址和待更新源UDP端口标识;转发装置通过网关上的待更新源IP地址和待更新源UDP端口标识所标识的IP地址和UDP端口发送更新后待转发数据包。以基站向网关的转发装置发送待转发数据包为例,待转发数据包中的目的IP地址和目的UDP端口标识分别为IPgw-1和PORTgw-1,从表1所示的RTP承载映射表中确定出:与IPgw-1和PORTgw-1对应的、且位于网关上的待更新源IP地址和待更新源UDP端口标识分别为IPgw-2和PORTgw-2,转发装置通过网关的IPgw-2和PORTgw-2所标识的UDP端口发送更新后待转发数据包。如此,转发装置可以根据RTP承载映射表快速的确定出位于网关上的待更新源IP地址和待更新源UDP端口标识,并通过待更新源IP地址和待更新源UDP端口标识所标识的IP地址和UDP端口快速的将更新后待转发数据包发送出去,减少了对待转发数据包的处理时延,进而达到保证语音质量、快速汇聚和转发用户面数据的目的。

可选地,转发装置在确定待转发数据包为待转发RTP数据包,包括:转发装置确定数据包中包括的目的IP地址和目的UDP端口标识为RTP承载映射表中的一个哈希关键字。可选地,转发装置确定数据包中包括的目的IP地址和目的UDP端口标识不为RTP承载映射表中的任一个哈希关键字,则待转发数据包不为待转发RTP数据包,转发装置不处理该待转发数据包。如此,转发装置可根据是否在RTP承载映射表中确定出匹配的哈希关键字,进而快速确定待转发数据包是否为需要转发装置转发的待转发RTP数据包;一方面,若确定待转发数据包不是待转发RTP数据包,说明该待转发数据包不是转发装置需要处理的数据包,转发装置将该待转发数据包返回Linux内核协议栈进行其他处理;另一方面,若确定待转发数据包为待转发RTP数据包,则直接在转发装置进行更新,封装得到更新后待转发数据包,减少待转发RTP数据包处理时延。

为了更清楚的介绍上述方法流程,本发明实施例提供以下示例。

图5示例性示出了本发明实施例提供的另一种实时传输协议RTP用户面数据转发的方法流程示意图,基于图1所示的系统架构,如图5所示,本发明实施例提供的另一种实时传输协议RTP用户面数据转发的方法,适用于包括基站、网关、核心网的全球移动通信GSM系统,基站和核心网通过网关建立链接,网关的内核态上设置转发装置,该方法包括以下步骤:

步骤S501:转发装置获取用于使基站和核心网通过网关建立链接的无线接入承载RAB消息;

步骤S502:转发装置根据RAB消息确定出:与网关第一IP地址和第一UDP端口标识连接的核心网的第二IP地址和第二UDP端口标识;与网关的第三IP地址和第三UDP端口标识连接的基站的第四IP地址和第四UDP端口标识;

步骤S503:转发装置将第一IP地址和第一UDP端口标识作为第一哈希关键字,将第三IP地址和第三UDP端口标识,以及第四IP地址和第四UDP端口标识设置为:RTP承载映射表中的第一哈希关键字对应的哈希值;

步骤S504:转发装置将第三IP地址和第三UDP端口标识作为第二哈希关键字,将第一IP地址和第一UDP端口标识,以及第二IP地址和第二UDP端口标识设置为:RTP承载映射表中的第二哈希关键字对应的哈希值;

步骤S505:转发装置接收第一端发送的待转发数据包;

步骤S506:转发装置确定待转发数据包是否为待转发RTP数据包;若是,则执行步骤S507;若否,则执行步骤S510;其中,确定待转发数据包是否为待转发RTP数据包满足的条件为:转发装置确定待转发数据包中包括的目的IP地址和目的UDP端口标识为RTP承载映射表中的一个哈希关键字;

步骤S507:转发装置从RTP承载映射表中确定出:与目的IP地址和目的UDP端口标识对应的、位于第二端上的待更新目的IP地址、待更新目的UDP端口标识、待更新源IP地址、待更新源UDP端口标识;其中,若第一端为基站,则第二端为核心网;若第一端为核心网,则第二端为基站;

步骤S508:转发装置将待转发数据包中的目的IP地址更新为待更新目的IP地址、目的UDP端口标识更新为待更新目的UDP端口标识、源IP地址更新为待更新源IP地址、源UDP端口标识更新为待更新源UDP端口标识,得到更新后待转发数据包;

步骤S509:转发装置调用Linux内核API将更新后待转发数据包转发出去;

步骤S510:放弃处理该待转发数据包;

步骤S511:返回Linux内核协议栈。

从上述内容可以看出:本发明实施例中,在网关的内核态上设置转发装置,由于用户面数据通过RTP数据包进行发送,转发装置接收第一端发送的待转发数据包;待转发数据包中包括位于网关上的目的IP地址和目的UDP端口标识;转发装置在确定待转发数据包为待转发RTP数据包的情况下:转发装置从RTP承载映射表中确定出:与目的IP地址和目的UDP端口标识对应的、位于第二端上的待更新目的IP地址、待更新目的UDP端口标识、位于网关上的待更新源IP地址、待更新源UDP端口标识;转发装置将待转发数据包中的目的IP地址更新为待更新目的IP地址,将待转发数据包中的目的UDP端口标识更新为待更新目的UDP端口标识,将待转发数据包中的源IP地址更新为待更新源IP地址,将待转发数据包中的源UDP端口标识更新为待更新源UDP端口标识,得到更新后待转发数据包;转发装置向第二端发送更新后待转发数据包;如此,一方面,网关的内核态上的转发装置接收到待转发数据包,直接在转发装置对待转发数据包进行更新,节省了将网关的内核态接收到的待转发数据拷贝至用户态进行更新的拷贝开销;另一方面,在网关的内核态的转发装置中得到更新后待转发数据包,直接在内核态进行发送,节省了从用户态将更新后待转发数据包拷贝至内核态进行发送的拷贝开销;从而实现了在基站和核心网之间的快速转发用户面数据。而且,转发装置建立RTP承载映射表,提高了对待转发数据包进行封装的速度,减少了对待转发数据包的处理时延,进而保证了语音质量并快速汇聚和转发用户面数据。

图6示例性示出了本发明实施例提供的一种用于实时传输协议RTP用户面数据转发装置的结构示意图。

基于相同构思,本发明实施例提供的一种用于实时传输协议RTP用户面数据转发装置,适用于包括基站、网关、核心网的全球移动通信GSM系统,基站和核心网通过网关建立链接,网关的内核态上设置转发装置,用于执行上述方法流程,如图6所示,该转发装置600包括接收单元601、处理单元602和发送单元603,还包括获取单元604;其中:

接收单元601,用于接收第一端发送的待转发数据包;待转发数据包中包括位于网关上的目的IP地址和目的UDP端口标识;

处理单元602,用于在确定待转发数据包为待转发RTP数据包的情况下:从RTP承载映射表中确定出:与目的IP地址和目的UDP端口标识对应的、位于第二端上的待更新目的IP地址和待更新目的UDP端口标识;其中,若第一端为基站,则第二端为核心网;若第一端为核心网,则第二端为基站;将待转发数据包中的目的IP地址更新为待更新目的IP地址,将待转发数据包中的目的UDP端口标识更新为待更新目的UDP端口标识,得到更新后待转发数据包;

发送单元603,用于转发装置向第二端发送更新后待转发数据包。

可选地,处理单元602,还用于:从RTP承载映射表中确定出:与目的IP地址和目的UDP端口标识对应的、且位于网关上的待更新源IP地址和待更新源UDP端口标识;发送单元603,用于:通过网关上的待更新源IP地址和待更新源UDP端口标识所标识的IP地址和UDP端口向第二端发送更新后待转发数据包。

可选地,转发装置还包括获取单元604,用于:获取用于使基站和核心网通过网关建立链接的无线接入承载RAB消息;处理单元602,还用于:根据RAB消息确定出:与网关第一IP地址和第一UDP端口标识连接的核心网的第二IP地址和第二UDP端口标识;与网关的第三IP地址和第三UDP端口标识连接的基站的第四IP地址和第四UDP端口标识;将第一IP地址和第一UDP端口标识、第二IP地址和第二UDP端口标识、第三IP地址和第三UDP端口标识、第四IP地址和第四UDP端口标识设置为RTP承载映射表中的对应关系。

可选地,处理单元602,用于:将第一IP地址和第一UDP端口标识作为第一哈希关键字,将第三IP地址和第三UDP端口标识,以及第四IP地址和第四UDP端口标识设置为:RTP承载映射表中的第一哈希关键字对应的哈希值;将第三IP地址和第三UDP端口标识作为第二哈希关键字,将第一IP地址和第一UDP端口标识,以及第二IP地址和第二UDP端口标识设置为:RTP承载映射表中的第二哈希关键字对应的哈希值。

可选地,处理单元602,用于:确定待转发数据包中包括的目的IP地址和目的UDP端口标识为RTP承载映射表中的一个哈希关键字。

从上述内容可以看出:本发明实施例中,在网关的内核态上设置转发装置,由于用户面数据通过RTP数据包进行发送,转发装置接收第一端发送的待转发数据包;待转发数据包中包括位于网关上的目的IP地址和目的UDP端口标识;转发装置在确定待转发数据包为待转发RTP数据包的情况下:转发装置从RTP承载映射表中确定出:与目的IP地址和目的UDP端口标识对应的、位于第二端上的待更新目的IP地址、待更新目的UDP端口标识、位于网关上的待更新源IP地址、待更新源UDP端口标识;转发装置将待转发数据包中的目的IP地址更新为待更新目的IP地址,将待转发数据包中的目的UDP端口标识更新为待更新目的UDP端口标识,将待转发数据包中的源IP地址更新为待更新源IP地址,将待转发数据包中的源UDP端口标识更新为待更新源UDP端口标识,得到更新后待转发数据包;转发装置向第二端发送更新后待转发数据包;如此,一方面,网关的内核态上的转发装置接收到待转发数据包,直接在转发装置对待转发数据包进行更新,节省了将网关的内核态接收到的待转发数据拷贝至用户态进行更新的拷贝开销;另一方面,在网关的内核态的转发装置中得到更新后待转发数据包,直接在内核态进行发送,节省了从用户态将更新后待转发数据包拷贝至内核态进行发送的拷贝开销;从而实现了在基站和核心网之间的快速转发用户面数据。而且,转发装置建立RTP承载映射表,提高了对待转发数据包进行封装的速度,减少了对待转发数据包的处理时延,进而保证了语音质量并快速汇聚和转发用户面数据。

本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1