CN110768930A - 服务器的数据转发方法和装置 - Google Patents
服务器的数据转发方法和装置 Download PDFInfo
- Publication number
- CN110768930A CN110768930A CN201810830506.3A CN201810830506A CN110768930A CN 110768930 A CN110768930 A CN 110768930A CN 201810830506 A CN201810830506 A CN 201810830506A CN 110768930 A CN110768930 A CN 110768930A
- 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.)
- 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/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- 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/22—Parsing 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。
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 true CN110768930A (zh) | 2020-02-07 |
CN110768930B 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114466046A (zh) * | 2022-02-23 | 2022-05-10 | 石家庄通合电子科技股份有限公司 | 一种数据转发方法及电源模块 |
Citations (8)
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 | 华为技术有限公司 | 穿越防火墙的方法、客户端和媒体穿越服务器 |
US20150350156A1 (en) * | 2012-12-26 | 2015-12-03 | Zte Corporation | NAT implementation system, method, and Openflow switch |
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的协议端口保护方法、装置和*** |
-
2018
- 2018-07-25 CN CN201810830506.3A patent/CN110768930B/zh active Active
Patent Citations (8)
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 | 杭州华三通信技术有限公司 | 一种报文转发方法和一种运营商边缘汇聚设备 |
US20150350156A1 (en) * | 2012-12-26 | 2015-12-03 | Zte Corporation | NAT implementation system, method, and Openflow switch |
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)
Title |
---|
CSDN用户: "RTP/RTCP详解", 《URL:HTTPS://BLOG.CSDN.NET/WEIXIN_34217711/ARTICLE/DETAILS/92013026》 * |
张少伟: "分离机制下入侵检测与防火墙应用研究", 《中国优秀硕士学位论文全文数据库(电子期刊)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114466046A (zh) * | 2022-02-23 | 2022-05-10 | 石家庄通合电子科技股份有限公司 | 一种数据转发方法及电源模块 |
CN114466046B (zh) * | 2022-02-23 | 2024-03-22 | 石家庄通合电子科技股份有限公司 | 一种数据转发方法及电源模块 |
Also Published As
Publication number | Publication date |
---|---|
CN110768930B (zh) | 2022-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2393255B1 (en) | Method and device for identifying an SCTP packet | |
CN103609070B (zh) | 网络流量检测方法、***、设备及控制器 | |
EP2744151B1 (en) | Method, system, and computer-readable medium for monitoring traffic across diameter core agents | |
US20130294449A1 (en) | Efficient application recognition in network traffic | |
EP2666263B1 (en) | Methods, systems, and computer readable media for screening diameter messages within a diameter signaling router (dsr) having a distributed message processor architecture | |
CN106685827B (zh) | 一种下行报文的转发方法及ap设备 | |
US9338657B2 (en) | System and method for correlating security events with subscriber information in a mobile network environment | |
CN101534248B (zh) | 深度报文识别方法和***及业务板 | |
JP4692776B2 (ja) | Sipベースのアプリケーションを保護する方法 | |
EP3832960B1 (en) | Establishment of fast forwarding table | |
WO2016103006A1 (en) | Media performance monitoring and analysis | |
US20230300051A1 (en) | In-band Edge-to-Edge Round-Trip Time Measurement | |
JP2005295457A (ja) | P2pトラフィック対応ルータ及びそれを用いたp2pトラフィック情報共有システム | |
CN110768930B (zh) | 服务器的数据转发方法和装置 | |
US9942766B1 (en) | Caller validation for end service providers | |
JP2009053969A (ja) | サービス提供システム、フィルタリング装置、フィルタリング方法及びメッセージ確認方法 | |
CN111262782B (zh) | 一种报文处理方法、装置及设备 | |
CN109510821B (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 | |
CN104753774A (zh) | 一种分布式企业综合接入网关 | |
US7400579B2 (en) | Method and apparatus for per-call filtering of H.323 packets | |
CN112788116A (zh) | 一种报文转发的方法及装置 |
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 |