CN110768930B - 服务器的数据转发方法和装置 - Google Patents

服务器的数据转发方法和装置 Download PDF

Info

Publication number
CN110768930B
CN110768930B CN201810830506.3A CN201810830506A CN110768930B CN 110768930 B CN110768930 B CN 110768930B CN 201810830506 A CN201810830506 A CN 201810830506A CN 110768930 B CN110768930 B CN 110768930B
Authority
CN
China
Prior art keywords
packet
port
data
data packet
server
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.)
Active
Application number
CN201810830506.3A
Other languages
English (en)
Other versions
CN110768930A (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.)
Chengdu TD Tech Ltd
Original Assignee
Chengdu TD Tech 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 Chengdu TD Tech Ltd filed Critical Chengdu TD Tech Ltd
Priority to CN201810830506.3A priority Critical patent/CN110768930B/zh
Publication of CN110768930A publication Critical patent/CN110768930A/zh
Application granted granted Critical
Publication of CN110768930B publication Critical patent/CN110768930B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • 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/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种服务器的数据转发方法和装置,其中,方法包括:当服务器接从防火墙接收到数据包时,获取所述数据包携带的防火墙的IP地址和发送端口,并确定相应的数据包类型,所述数据包类型包括实时传输协议RTP包和RTP控制协议RTCP包;所述服务器根据所述IP地址、所述发送端口号和所述数据包类型,确定所述数据包对应的数据索引值Key;根据预设的索引关系,确定所述Key对应的内部端口,并将所述数据包发送到所确定的内部端口;所述索引关系用于指示各数据索引值对应的服务器内部端口。采用本发明,可以提高服务器进行数据转发的可靠性。

Description

服务器的数据转发方法和装置
技术领域
本发明涉及网络通信技术,特别是涉及在网络设备接入服务器场景下服务器的数据转发方法和装置。
背景技术
网络设备通过公共网络(以下简称公网)与服务器进行数据通讯的时候,经常使用的网络场景如图1所示:网络设备A通过公网把数据传输到服务器D所添加的防火墙C上,防火墙C把数据发送到服务器D上,服务器D把数据发送到网络设备E上。
假设图1中网络设备A与网络设备B进行语音通话。终端A的真实地址是192.168.1.3,发送音频RTP包的的端口是2000,发送音频RTCP包的端口是2001。数据经过公网网络后,到达防火墙C,防火墙C会使用端口19800以及19801把数据发送到服务器D上面,在一般情况下,服务器为了安全并且为了节省对外通信的端口,会使用固定的端口与外部网络进行数据传输,如图1中所示,服务器D使用固定的50000以及50001进行是音频RTP包以及RTCP包的收发,服务器D在从50000以及50001收到音频RTP包以及RTCP包后,通过内部转发规则把音频数据的RTP包以及RTCP包发送到4800以及4801内部通讯端口上,4800以及4801端口收到数据后,把数据发送到网络设备E上。
在上面的通讯方式中,服务器D从50000以及50001收到RTP包以及RTCP包的转发规则很关键,如果转发不当,将会导致通讯业务无法正常进行。常用的转发规则如下:
服务器D从50000端口收到从防火墙19800端口过来的RTP包,从数据包里面获取到IP地址以及端口,分别是150.150.150.150和19800,建立索引值rtpkey为0x96969696<<32|19800,对应内部端口是4800,50001端口收到从防火墙19801端口过来的RTCP包,从数据包里面获取到IP地址以及端口,分别是150.150.150.150和19801,建立索引值rtcpkey为:0x96969696<<32|1980,对应内部端口是4801。Relation[rtpkey]=4800;Relation[rtcpkey]=4801。
其中,“<<”为左移符号,“0x96969696<<32”表示对0x96969696执行左移32位操作,“|”表示或运算符号。
上述对应关系分别建立好以后,当服务器从防火墙收到数据,获取到数据包里的IP地址和端口后,首先根据IP地址和端口建立索引key,然后根据索引表查询内部的端口,然后转发到内部的端口上去。
例如,服务器D从50001端口收到了某一个数据包,并从数据包中获取到IP地址是150.150.150.150端口是19801,建立好索引key是0x96969696<<32|19801,根据key查询到索引关系表,在表里面查询到内部的端口是4801,然后就把数据发送到4801端口上。
上述机制在很多场景下是适用的。但是,在实际应用中发明人发现:在某些场景下,应用上述机制会存在无法正常进行语音通话的问题。通过研究分析发现,该问题的存在是由于上述机制中索引key的确定是根据Key=IP<<32|port得到的,其中IP为从防火墙的发送过来的数据包中解析到的防火墙的IP地址,port为从防火墙的发送过来的数据包中解析到的防火墙的发送端口。这样,由于防火墙使用不同的端口分别发送RTP包和RTCP包,使得这两种包对应的Key值会由于发送端口的不同而不同,因此,可以使得RTP包和RTCP包被服务器发送到不同的内部端口上,从而可以确保网络设备能够对接收到的语音数据包进行正常重组,进而实现网络设备之间的正常通话。而当在某些场景下防火墙减少了端口的使用,对于某一个业务,接收到的RTP包以及RTCP包使用同一个端口发送出去时,服务器会从接收到的RTP包和RTCP包中解析出相同的防火墙IP地址和端口号,这样,根据上述规则计算出的RTP包和RTCP包对应的索引key也会相同,此情况下,一个索引key值将对应服务器的两个内部端口号,从而导致服务器不知将从防火墙接收到的RTP包和RTCP包发送到哪个内部端口,进而会由于服务器内部的数据转发异常而导致用户设备间的业务无法正常进行。
例如,如图2所示,服务器D从50000收到了RTP包,IP地址是150.150.150.150,端口是21000,建立的索引key如下:
Key1:0x96969696<<32|21000
索引关系为:Releation[Key1]=4900
服务器D从50001收到了RTCP包,IP地址是150.150.150.150,端口是21000,建立的索引key如下:
Key2:0x96969696<<32|21000
索引关系为Releation[Key2]=4901
由上面的计算可知Key1=Key2,所以在Re1ation关系表中,一个Key值对应两个内部端口(4900、4901),这样,服务器D有可能把所有从防火墙21000端口收到的RTP包以及RTCP包发送到了一个内部端口上去,导致服务器的内部发送发生错误,进而影响用户业务的正常进行。
针对上述问题,目前尚未提出相应的解决方案。
发明内容
有鉴于此,本发明的主要目的在于提供一种服务器的数据转发方法和装置,可以提高服务器进行数据转发的可靠性。
为了达到上述目的,本发明提出的技术方案为:
一种服务器的数据转发方法,包括:
当服务器接从防火墙接收到数据包时,获取所述数据包携带的防火墙的IP地址和发送端口,并确定相应的数据包类型,所述数据包类型包括实时传输协议RTP包和RTP控制协议RTCP包;
所述服务器根据所述IP地址、所述发送端口号和所述数据包类型,确定所述数据包对应的数据索引值Key;根据预设的索引关系,确定所述Key对应的内部端口,并将所述数据包发送到所确定的内部端口;所述索引关系用于指示各数据索引值对应的服务器内部端口。
较佳地,按照Key=IP<<n|port<<m|flag,确定所述数据包对应的数据索引值Key,其中,IP为所述IP地址,port为所述发送端口,flag为所述数据包类型的标识信息;n为预设的地址移位参数;m为预设的端口移位参数;<<为向左移位操作符号,IP<<n表示对IP执行左移n位操作,port<<m表示对port执行左移m位操作,|表示或运算符号。
较佳地,当所述数据包为RTP包时flag=0,当所述数据包为RTCP包时,flag=1。
较佳地,n=32,m=16。
一种服务器的数据转发装置,设于服务器中,包括:
解析模块,当服务器接从防火墙接收到数据包时,获取所述数据包携带的防火墙的IP地址和发送端口,并确定相应的数据包类型,所述数据包类型包括实时传输协议RTP包和RTP控制协议RTCP包;
转发控制模块,根据所述IP地址、所述发送端口和所述数据包类型,确定所述数据包对应的数据索引值Key;根据预设的索引关系,确定所述Key对应的内部端口,并将所述数据包发送到所确定的内部端口;所述索引关系用于指示各数据索引值对应的服务器内部端口。
较佳地,按照Key=IP<<n|port<<m|flag,确定所述数据包对应的数据索引值Key,其中,IP为所述IP地址,port为所述发送端口,flag为所述数据包类型的标识信息;n为预设的地址移位参数;m为预设的端口移位参数;<<为向左移位操作符号,IP<<n表示对IP执行左移n位操作,port<<m表示对port执行左移m位操作,|表示或运算符号。
较佳地,当所述数据包为RTP包时flag=0,当所述数据包为RTCP包时,flag=1。
较佳地,n=32,m=16。
综上所述,本发明提出的服务器的数据转发方法和装置,在索引值Key时,引入了数据包类型信息,这样,可以使得来自于同一防火墙同一发送端口的RTP包和RTCP包分别对应不同的索引值,从而使得这些RTP包和RTCP包与服务器的不同内部端口相对应,进而可以提高服务器进行数据转发的可靠性,保障通信业务的正常进行。
附图说明
图1为典型的网络设备接入服务器的应用场景示意图;
图2为现有的服务器数据转发异常的应用场景示意图;
图3为本发明实施例的方法流程示意图;
图4为本发明实施例的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
本发明的核心思想是:服务器在确定数据包对应的索引值时,引入新的参数:数据包类型,使得来自于防火墙同一发送端口的RTP包和RTCP包对应于不同的内部端口,从而可以提高服务器进行数据转发的可靠性,保障通信业务的顺利进行。
图3为本发明实施例的方法流程示意图,如图3所示,该实施例实现的服务器数据转发方法主要包括:
步骤301、当服务器接从防火墙接收到数据包时,获取所述数据包携带的防火墙的IP地址和发送端口,并确定相应的数据包类型,所述数据包类型包括RTP包和RTCP包。
本步骤中,服务器接收到来自防火墙的数据包后,需要确定数据包类型,即是RTP包还是RTCP包,以便在步骤302中,可以基于该数据包类型信息,确定数据包对应的数据索引值,以使RTP包和RTCP包分别对应不同的数据索引值。
步骤302、所述服务器根据所述IP地址、所述发送端口号和所述数据包类型,确定所述数据包对应的数据索引值Key;根据预设的索引关系,确定所述Key对应的内部端口,并将所述数据包发送到所确定的内部端口;所述索引关系用于指示各数据索引值对应的服务器内部端口。
本步骤中,由于引入所述数据包类型来确定所述数据包对应的数据索引值,使得RTP包和RTCP包分别对应不同的数据索引值,这样,就可以有效避免来自于防火墙的同一端口的RTP包和RTCP包对应相同的数据索引值所造成的服务器数据转发异常的问题。
在实际应用中,在确定所述Key对应的内部端口时,为了提高效率,可以和现有方案一样,通过查询由预设的索引关系生成的索引表,获取当前计算出的Key对应的内部端口。
较佳地,本步骤中可以按照Key=IP<<n|port<<m|flag,来确定数据包对应的数据索引值Key。
其中,
IP为从数据包中解析到的防火墙的IP地址。
port为从数据包中解析到的防火墙的发送端口。
flag为所述数据包类型的标识信息;例如,flag可以设置为:当所述数据包为RTP包时flag=0,当所述数据包为RTCP包时,flag=1。
n为预设的地址移位参数。m为预设的端口移位参数。具体地,n和m可由本领域技术人员根据实际需要设置合适的取值。例如,较佳地,n=32,m=16。
<<为向左移位操作符号。IP<<n表示对IP执行左移n位操作,port<<m表示对port执行左移m位操作。
|表示或运算符号。
采用上述方法可以有效解决由于防火墙减少所使用端口而导致的服务器数据转发异常的问题。例如,对于图2所示的场景。当采用采用上述实施例时,如果按照Key=IP<<32|port<<16|flag,确定数据索引值,当所述数据包为RTP包时flag=0,当所述数据包为RTCP包时,flag=1,则:
服务器D从50000收到了RTP包,IP地址是150.150.150.150,端口是21000,建立的索引key如下:
Key1:0x96969696<<32|21000<<16|0
索引关系:Releation[Key1]=4900
从50001收到了RTCP包,IP地址是150.150.150.150,端口是21000,建立的索引key如下:
Key2:0x96969696<<32|21000<<16|1
索引关系:Releation[Key2]=4901
当新的索引表建立好以后,当服务器在50000端口收到端口号为21000的数据后,建立的索引key是:
Key1:0x96969696<<32|21000<<16|0
从索引表中查询到的内部端口是4900,数据转发到4900。
当服务器在50001端口收到端口号为21000的数据后,建立的索引key是
Key2:0x96969696<<32|21000<<16|1
从索引表中查询到的内部端口是4901,数据转发到4901。
图4为与上述方法相对应的一种服务器的数据转发装置结构示意图,该装置设于服务器中,如图4所示,该装置包括:
解析模块,当服务器接从防火墙接收到数据包时,获取所述数据包携带的防火墙的IP地址和发送端口,并确定相应的数据包类型,所述数据包类型包括RTP包和RTCP包;
转发控制模块,根据所述IP地址、所述发送端口和所述数据包类型,确定所述数据包对应的数据索引值Key;根据预设的索引关系,确定所述Key对应的内部端口,并将所述数据包发送到所确定的内部端口;所述索引关系用于指示各数据索引值对应的服务器内部端口。
较佳地,按照Key=IP<<n|port<<m|flag,确定所述数据包对应的数据索引值Key,其中,IP为所述IP地址,port为所述发送端口,flag为所述数据包类型的标识信息;n为预设的地址移位参数;m为预设的端口移位参数;<<为向左移位操作符号,IP<<n表示对IP执行左移n位操作,port<<m表示对port执行左移m位操作,|表示或运算符号。
较佳地,当所述数据包为RTP包时flag=0,当所述数据包为RTCP包时,flag=1。
较佳地,n=32,m=16。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种服务器的数据转发方法,其特征在于,包括:
当服务器接从防火墙接收到数据包时,获取所述数据包携带的防火墙的IP地址和发送端口,并确定相应的数据包类型,所述数据包类型包括实时传输协议RTP包和RTP控制协议RTCP包;
所述服务器根据所述IP地址、所述发送端口号和所述数据包类型,确定所述数据包对应的数据索引值Key,使得不同数据包类型对应于不同的数据索引值;根据预设的索引关系,确定所述Key对应的内部端口,并将所述数据包发送到所确定的内部端口;所述索引关系用于指示各数据索引值对应的服务器内部端口。
2.根据权利要求1所述的方法,其特征在于,按照Key=IP<<n|port<<m|flag,确定所述数据包对应的数据索引值Key,其中,IP为所述IP地址,port为所述发送端口,flag为所述数据包类型的标识信息;n为预设的地址移位参数;m为预设的端口移位参数;<<为向左移位操作符号,IP<<n表示对IP执行左移n位操作,port<<m表示对port执行左移m位操作,|表示或运算符号。
3.根据权利要求2所述的方法,其特征在于,当所述数据包为RTP包时flag=0,当所述数据包为RTCP包时,flag=1。
4.根据权利要求2所述的方法,其特征在于,n=32,m=16。
5.一种服务器的数据转发装置,设于服务器中,其特征在于,包括:
解析模块,当服务器接从防火墙接收到数据包时,获取所述数据包携带的防火墙的IP地址和发送端口,并确定相应的数据包类型,所述数据包类型包括实时传输协议RTP包和RTP控制协议RTCP包;
转发控制模块,根据所述IP地址、所述发送端口和所述数据包类型,确定所述数据包对应的数据索引值Key,使得不同数据包类型对应于不同的数据索引值;根据预设的索引关系,确定所述Key对应的内部端口,并将所述数据包发送到所确定的内部端口;所述索引关系用于指示各数据索引值对应的服务器内部端口。
6.根据权利要求5所述的装置,其特征在于,按照Key=IP<<n|port<<m|flag,确定所述数据包对应的数据索引值Key,其中,IP为所述IP地址,port为所述发送端口,flag为所述数据包类型的标识信息;n为预设的地址移位参数;m为预设的端口移位参数;<<为向左移位操作符号,IP<<n表示对IP执行左移n位操作,port<<m表示对port执行左移m位操作,|表示或运算符号。
7.根据权利要求6所述的装置,其特征在于,当所述数据包为RTP包时flag=0,当所述数据包为RTCP包时,flag=1。
8.根据权利要求6所述的装置,其特征在于,n=32,m=16。
CN201810830506.3A 2018-07-25 2018-07-25 服务器的数据转发方法和装置 Active CN110768930B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810830506.3A CN110768930B (zh) 2018-07-25 2018-07-25 服务器的数据转发方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810830506.3A CN110768930B (zh) 2018-07-25 2018-07-25 服务器的数据转发方法和装置

Publications (2)

Publication Number Publication Date
CN110768930A CN110768930A (zh) 2020-02-07
CN110768930B true CN110768930B (zh) 2022-03-29

Family

ID=69327348

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810830506.3A Active CN110768930B (zh) 2018-07-25 2018-07-25 服务器的数据转发方法和装置

Country Status (1)

Country Link
CN (1) CN110768930B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114466046B (zh) * 2022-02-23 2024-03-22 石家庄通合电子科技股份有限公司 一种数据转发方法及电源模块

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1925452A (zh) * 2006-10-11 2007-03-07 杭州华为三康技术有限公司 数据转发系统、方法以及网络转发设备
CN1988543A (zh) * 2006-12-07 2007-06-27 华为技术有限公司 报文类型识别方法及装置、报文首部压缩方法及系统
CN101335708A (zh) * 2008-08-06 2008-12-31 杭州华三通信技术有限公司 一种报文转发方法和一种运营商边缘汇聚设备
CN103392316A (zh) * 2013-01-11 2013-11-13 华为技术有限公司 穿越防火墙的方法、客户端和媒体穿越服务器
CN105207873A (zh) * 2015-08-31 2015-12-30 华为技术有限公司 一种报文处理方法和装置
CN106330715A (zh) * 2015-06-30 2017-01-11 杭州华三通信技术有限公司 报文处理方法及装置
CN106559342A (zh) * 2016-11-10 2017-04-05 上海斐讯数据通信技术有限公司 一种基于sdn的协议端口保护方法、装置和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103067534B (zh) * 2012-12-26 2016-09-28 中兴通讯股份有限公司 一种NAT实现系统、方法及Openflow交换机

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1925452A (zh) * 2006-10-11 2007-03-07 杭州华为三康技术有限公司 数据转发系统、方法以及网络转发设备
CN1988543A (zh) * 2006-12-07 2007-06-27 华为技术有限公司 报文类型识别方法及装置、报文首部压缩方法及系统
CN101335708A (zh) * 2008-08-06 2008-12-31 杭州华三通信技术有限公司 一种报文转发方法和一种运营商边缘汇聚设备
CN103392316A (zh) * 2013-01-11 2013-11-13 华为技术有限公司 穿越防火墙的方法、客户端和媒体穿越服务器
CN106330715A (zh) * 2015-06-30 2017-01-11 杭州华三通信技术有限公司 报文处理方法及装置
CN105207873A (zh) * 2015-08-31 2015-12-30 华为技术有限公司 一种报文处理方法和装置
CN106559342A (zh) * 2016-11-10 2017-04-05 上海斐讯数据通信技术有限公司 一种基于sdn的协议端口保护方法、装置和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RTP/RTCP详解;CSDN用户;《URL:https://blog.csdn.net/weixin_34217711/article/details/92013026》;20150202;全文 *
分离机制下入侵检测与防火墙应用研究;张少伟;《中国优秀硕士学位论文全文数据库(电子期刊)》;20091215;全文 *

Also Published As

Publication number Publication date
CN110768930A (zh) 2020-02-07

Similar Documents

Publication Publication Date Title
EP2393255B1 (en) Method and device for identifying an SCTP packet
CN103609070B (zh) 网络流量检测方法、系统、设备及控制器
EP2666263B1 (en) Methods, systems, and computer readable media for screening diameter messages within a diameter signaling router (dsr) having a distributed message processor architecture
EP2744151B1 (en) Method, system, and computer-readable medium for monitoring traffic across diameter core agents
US20130294449A1 (en) Efficient application recognition in network traffic
CN106685827B (zh) 一种下行报文的转发方法及ap设备
CN101534248B (zh) 深度报文识别方法和系统及业务板
EP3832960B1 (en) Establishment of fast forwarding table
US20140105119A1 (en) System and method for correlating security events with subscriber information in a mobile network environment
US20140164543A1 (en) Communication System, Application Server and Communication Method for Server Cooperation
US20230300051A1 (en) In-band Edge-to-Edge Round-Trip Time Measurement
JP2007004361A (ja) 負荷分散装置
JP2005295457A (ja) P2pトラフィック対応ルータ及びそれを用いたp2pトラフィック情報共有システム
CN110768930B (zh) 服务器的数据转发方法和装置
US9942766B1 (en) Caller validation for end service providers
CN110784375B (zh) 网络数据监控方法、装置、电子设备及存储介质
CN109510821B (zh) 一种报文处理方法及装置
CN111262782B (zh) 一种报文处理方法、装置及设备
CN104753774A (zh) 一种分布式企业综合接入网关
CN103581020A (zh) 一种报文转发的方法、装置及系统
WO2021018406A1 (en) Traffic monitoring in a network node
KR20040100920A (ko) 단일 서비스 변경 메세지에서 다중 순간 종결들을송신하는 방법
CN111083060B (zh) 一种网络流量控制方法
US7764600B1 (en) Providing an alternative service application to obtain a communication service when the current service application is inhibited
US7400579B2 (en) Method and apparatus for per-call filtering of H.323 packets

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