CN103856435A - 一种地址解析协议缓存及其缓存方法 - Google Patents

一种地址解析协议缓存及其缓存方法 Download PDF

Info

Publication number
CN103856435A
CN103856435A CN201210494749.7A CN201210494749A CN103856435A CN 103856435 A CN103856435 A CN 103856435A CN 201210494749 A CN201210494749 A CN 201210494749A CN 103856435 A CN103856435 A CN 103856435A
Authority
CN
China
Prior art keywords
address
arp cache
module
arp
mac address
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.)
Pending
Application number
CN201210494749.7A
Other languages
English (en)
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201210494749.7A priority Critical patent/CN103856435A/zh
Priority to PCT/CN2013/086176 priority patent/WO2014082517A1/zh
Priority to US14/647,572 priority patent/US20150304271A1/en
Publication of CN103856435A publication Critical patent/CN103856435A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/58Caching of addresses or names
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing

Landscapes

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

Abstract

本发明提供了一种ARP缓存,包括网络接口模块,用于将IP数据包发送至查找模块进行IP地址查找;在IP地址查找失败后,将获取的MAC地址发送至查找模块;查找模块,用于根据网络接口模块发送的IP数据包在ARP缓存模块中查找IP地址,在IP地址查找失败后,将网络接口模块发送的MAC地址存储到ARP缓存模块;ARP缓存模块,用于提供IP地址给查找模块进行IP地址查找;在IP地址查找失败后,将所述IP地址即时存储到ARP缓存模块中;本发明还同时公开了一种ARP缓存方法,采用本发明,能够在ARP缓存被填满但没有任何ARP表项达到老化时间时,与非ARP高速缓存表中的其他主机通信。

Description

一种地址解析协议缓存及其缓存方法
技术领域
本发明涉及互联网中的地址解析协议(ARP,Address Resolution Protocol)缓存领域,尤其涉及一种ARP缓存及其缓存方法。
背景技术
ARP是在仅知道主机的因特网协议(IP,Internet Protocol)地址时确定其物理地址的一种协议,从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP具体来说就是,将网络层地址解析为数据连接层的物理地址,即:将IP地址解析为介质访问控制(MAC,MediaAccess Control)地址。
一般情况下,在众多网络协议和应用中,发送端往往有一个以上的IP数据包要发送到同一个终点,如果对发送到同一个主机或路由器的每一个数据包都使用ARP,那么效率是很低的。使用ARP高速缓存表可以解决这一问题,通常情况下,当主机或路由器通过ARP获得某一远端IP地址和物理地址的对应关系后,会将这个关系保存在本地的ARP高速缓存表中,以便于后续需要发往同一终点的IP数据包继续使用。因此,在每台安装有传输控制协议/因特网互联协议(TCP/IP,Transmission Control Protocol/Internet Protocol)协议栈的主机或路由器里都会有ARP高速缓存表。当网络层有IP数据包需要发送时,会先查找这个ARP高速缓存表,找到要发送的目的主机或路由器的物理地址,若查找失败,则会触发ARP的执行,通过ARP来动态获取目的主机或路由器的物理地址,并保存在ARP高速缓存表中。ARP高速缓存表提高数据传输的效率,节省了网络流量。
一般情况下,ARP高速缓存表并不长期的保存表中的各个表项。因为,首先ARP高速缓存表的资源有限,其次为了防止ARP欺骗等非法攻击也需要对ARP高速缓存表进行超时处理。对ARP高速缓存表中的表项超时处理的过程称为ARP老化。从伯克利系统演变而来的系统一般对完整的表项设置超时时间为20分钟,而对不完整的表项设置超时时间为3分钟,当这些表项再次使用时,一般都会将超时时间重新设为20分钟。但是,在ARP高速缓存表被填满之后,且没有任何ARP表项达到老化时间之前,系统就无法和非ARP高速缓存表中的其他主机通信了。
发明内容
有鉴于此,本发明的主要目的在于提供一种ARP缓存及其缓存方法,能够在ARP缓存被填满之后、且没有任何ARP表项达到老化时间之前,与非ARP高速缓存表中的其他主机通信。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种ARP缓存,该缓存包括:网络接口模块、查找模块、ARP缓存模块;其中,
所述网络接口模块,用于将IP数据包发送至查找模块进行IP地址查找;在IP地址查找失败后,将获取的MAC地址发送至查找模块;
所述查找模块,用于根据网络接口模块发送的IP数据包在ARP缓存模块中查找IP地址,在IP地址查找失败后,将网络接口模块发送的MAC地址存储到ARP缓存模块;
所述ARP缓存模块,用于提供IP地址给查找模块进行IP地址查找;在IP地址查找失败后,将所述IP地址即时存储到ARP缓存模块中。
上述方案中,所述网络接口模块,还用于在IP地址查找失败后获取MAC地址。
上述方案中,所述网络接口模块,还用于在IP地址查找成功后,接收ARP缓存模块发来的含有MAC地址的IP数据包;
相应的,所述查找模块,还用于在IP地址查找成功后,将接收到的IP数据包存储到ARP缓存模块中;
所述ARP缓存模块,还用于在IP地址查找成功后,将所述IP地址对应的MAC地址复制于IP数据包的头部,并将含有MAC地址的IP数据包发送至网络接口模块。
上述方案中,所述ARP缓存模块,还用于在IP地址查找失败后,存储所述IP地址对应的MAC地址;在IP地址查找成功后,存储所述IP数据包。
上述方案中,所述ARP缓存进一步包括:时间同步模块,用于提供当前同步时间给ARP缓存模块。
上述方案中,所述ARP缓存模块包括:IP地址存储单元、MAC地址存储单元、状态存储单元、IP数据包存储单元、时间存储单元;其中,
所述IP地址存储单元,用于提供IP地址给查找模块进行IP地址查找,在IP地址查找失败后,存储被查找的IP地址;
所述MAC地址存储单元,用于存储IP地址对应的MAC地址,并将所述MAC地址复制到IP数据包的头部,将含有MAC地址的IP数据包发送至网络接口模块;
所述状态存储单元,用于存储表项所处的状态;
所述IP数据包存储单元,用于存储IP数据包;
所述时间存储单元,用于存储IP地址存入的时间,并在MAC地址被使用时,更新该时间为当前时间。
本发明提供了一种ARP缓存方法,该方法包括:
将当前IP数据包发送至ARP缓存中进行IP地址查找;
在所述IP地址查找失败后,将所述IP地址即时存入到ARP缓存中,并将获取的所述IP地址对应的MAC地址存入到ARP缓存中。
上述方案中,所述将所述IP地址即时存入ARP缓存中包括:
当ARP缓存具有空闲状态的表项时,直接将所述IP地址存储在表项中;
当ARP缓存没有空闲状态的表项时,清空时间字段最小的表项,将所述IP地址存储在表项中。
上述方案中,所述IP地址即时存入到ARP缓存之后,该方法还包括:获取所述IP地址对应的MAC地址。
上述方案中,所述获取所述IP地址对应的MAC地址包括:
广播一个ARP请求报文至网络层,所述ARP请求报文包含目的IP地址;
具有该目的IP地址的IP终端返回一个ARP响应报文到ARP缓存中,所述ARP响应报文包含目的IP地址对应的MAC地址;
ARP缓存接收所述ARP响应报文。
本发明提供的ARP缓存及其缓存方法,与现有技术相比,在ARP缓存被填满后,通过ARP缓存模块将时间字段最小的表项清空,并将该表项的状态字段设置为空闲状态,如此,新的目的IP地址可以即时被存入该表项中;并且,获取新存入的IP地址对应的MAC地址,将该MAC地址存入该表项中;如此,可以利用该ARP缓存中新存入的MAC地址,将IP数据包发送至目的IP终端。
附图说明
图1为本发明ARP缓存组成结构示意图;
图2为本发明ARP缓存实现其缓存方法的流程示意图;
图3为本发明实施例中利用ARP缓存进行缓存的实现流程示意图;
图4为本发明ARP缓存状态转换图。
具体实施方式
为了能够更加详尽地了解本发明的特点与技术内容,下面结合附图对本发明的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明。
图1为本发明ARP缓存组成结构示意图,如图1所示,该ARP缓存包括:网络接口模块11、查找模块12、ARP缓存模块13;其中,
所述网络接口模块11,用于将IP数据包发送至查找模块12进行IP地址查找;在IP地址查找失败后,将获取的MAC地址发送至查找模块12;
这里,所述IP数据包为本地终端发送到目的MAC地址的一组数据,该IP数据包包括:目的IP地址、源IP地址、源MAC地址等;
进一步的,所述网络接口模块11,还用于在IP地址查找成功后,接收ARP缓存模块13发来的含有MAC地址的IP数据包;
进一步的,所述网络接口模块11,还用于在IP地址查找失败后,接收查找模块12发送的IP地址查找失败信息;
进一步的,所述网络接口模块11,还用于在IP地址查找失败后,获取MAC地址;
具体的,IP地址查找失败后,网络接口模块11广播一个ARP请求报文至网络层,所述ARP请求报文包含目的IP地址;相应的,具有该目的IP地址的IP终端返回一个ARP响应报文到网络接口模块11,所述ARP响应报文包含目的IP地址对应的MAC地址;网络接口模块11接收该ARP响应报文,如此,网络接口模块11从ARP响应报文中获取MAC地址。
所述查找模块12,用于接收网络接口模块11发送的IP数据包,并根据该IP数据包在ARP缓存模块13中查找IP地址;在IP地址查找失败后,将网络接口模块11发送的MAC地址存储到ARP缓存模块;
这里,所述在ARP缓存模块13中查找的IP地址是:接收到的IP数据包的目的IP地址;相应的,所述IP地址查找失败是:ARP缓存模块13中没有查找到所接收IP数据包的目的IP地址;
进一步的,所述查找模块12,还用于在IP地址查找失败后,发送IP地址查找失败信息给网络接口模块11;
所述ARP缓存模块13,用于提供IP地址给查找模块12进行查找,在IP地址查找失败后,将该IP地址即时存储到ARP缓存模块13中;
这里,所述将IP地址即时存储到ARP缓存模块13中有两种情况,具体为:
当ARP缓存模块13具有空闲(FREE)状态的表项时,直接将该IP地址存储在该表项中,并将状态字段设置为待定(PENDING)状态;
当ARP缓存模块13没有FREE状态的表项时,清空时间字段最小的表项,并将该表项的状态字段设置为FREE,将该IP地址存储在该表项中,状态字段设置为PENDING状态;
进一步的,将时间字段与当前时间的差值大于超时时间(Timeout)的表项全部清空,并将这些表项的状态字段设置为FREE;
这里,所述表项为一组记录IP地址到MAC地址映射的数据,包括:IP地址、MAC地址、状态字段、时间字段、队列号字段等;其中,
所述IP地址,用于记录一个IP地址;
所述MAC地址,用于记录所述IP地址对应的一个MAC地址;
所述状态字段,用于记录所述IP地址、MAC地址的记录情况;
所述时间字段,用于记录所述IP地址被记录的时间,并更新该时间为所述MAC地址被使用的时间;
所述队列号字段,用于记录存储在所述IP地址之后的IP数据包;
进一步的,所述状态字段的内容包括:FREE状态、PENDING状态、已存(RESOLVED)状态;
其中,FREE状态对应IP地址无记录、MAC地址无记录的情况;PENDING状态记录IP地址有记录、MAC地址无记录的情况;RESOLVED状态记录IP地址有记录、MAC地址有记录的情况;
相应的,FREE状态表示该表项可以给其它新的IP地址使用;PENDING状态表示该表项处于等待记录MAC地址;RESOLVED状态表示该表项中的MAC地址可以被使用;
这里,所述时间字段具体为:当一个新IP地址被存储在FREE状态的表项时,将此刻的同步时间存储在该表项的时间字段;当该表项的IP地址对应的MAC地址被使用时,更新所存储的时间字段为当前同步时间;
相应的,所述时间字段最小的表项是时间字段存储最早的表项;
这里,所述Timeout是已经设定好的超时时间,一般为2-4分钟;
所述ARP缓存模块13,还用于在IP地址查找成功后,将该IP地址对应的MAC地址复制于IP数据包的头部,并将含有MAC地址的IP数据包发送至网络接口模块11。
这里,所述将MAC地址存储到ARP缓存模块13中具体为:将MAC地址存储在已存有与其对应IP地址的表项中;在MAC地址存储后,将原来的PENDING状态设置为RESOLVED状态;
进一步的,在IP地址查找成功后,所述查找模块12还用于将接收到的IP数据包存储到ARP缓存模块13中;
这里,所述将IP数据包存储到缓存模块13中具体为:将IP数据包存储在已存有与其对应IP地址的表项中;具体的,存储在该表项中的队列号之后;进一步的,对于同一IP地址的所有IP数据包依次存入该队列号之后;
进一步的,存储IP地址后,所述ARP缓存模块13还用于存储该IP地址对应的MAC地址;
进一步的,在IP地址查找成功后,所述ARP缓存模块13还用于存储IP数据包;
这里,用于存储IP数据包的表项包括两种状态:RESOLVED状态、PENDING状态;
进一步的,当该表项为RESOLVED状态时,即该表项已存有MAC地址,将该MAC地址复制到队列号之后的IP数据包头部,并发送至网络接口模块11;当该表项为PENDING状态时,即该表项未存有MAC地址,队列号之后的IP数据包处于时刻等待发送状态,直到该表项存入MAC地址、变为RESOLVED状态时,才将MAC地址复制到队列号之后的IP数据包头部,并发送至网络接口模块11;
相应的,网络接口模块11接收到含有MAC地址的IP数据包后,依据MAC地址,即:目的MAC地址,将其发送到目的IP终端。
进一步的,该ARP缓存还包括时间同步模块14,用于提供当前同步时间给ARP缓存模块13;
具体的,所述时间同步模块14提供当前同步时间为:当一个新IP地址被存储在FREE状态的表项时,将此刻的同步时间存储在该表项的时间字段;当该表项的IP地址对应的MAC地址被使用时,更新所存储的时间字段为当前同步时间。
进一步的,所述ARP缓存模块13包括:IP地址存储单元131、MAC地址存储单元132、状态存储单元133、IP数据包存储单元134、时间存储单元135;其中,
所述IP地址存储单元131对应表项中的IP地址部分,用于提供IP地址给查找模块12进行IP地址查找;在IP地址查找失败后,存储被查找的IP地址;
这里,IP地址存储单元131存储该IP地址有两种情况,具体为:
当ARP缓存模块13具有FREE状态的表项时,直接将IP地址存储到该表项中的IP地址存储单元131,并将状态字段设置为PENDING状态;
当ARP缓存模块13没有FREE状态的表项时,清空时间字段最小的表项,将该表项的状态字段设置为FREE,并将IP地址存储到该表项中的IP地址存储单元131,状态字段设置为PENDING状态;进一步的,将时间字段与当前时间的差值大于Timeout的表项全部清空,并将这些表项的状态字段设置为FREE;
所述MAC地址存储单元132对应表项中的MAC地址部分,用于存储IP地址对应的MAC地址,并将该MAC地址复制到IP数据包的头部,将含有MAC地址的IP数据包发送至网络接口模块11;
这里,所述存储IP地址对应的MAC地址具体为:将MAC地址存储到存有对应IP地址表项的MAC地址存储单元132;将原来的PENDING状态设置为RESOLVED状态;
所述状态存储单元133对应表项中的状态字段,用于存储表项所处的状态;
具体的,状态存储单元133所存储的状态包括:FREE、PENDING、RESOLVED;
所述FREE状态,表示该表项中的IP地址存储单元131和MAC地址存储单元132为空闲状态,可以给其他新的IP地址和MAC地址使用;
所述PENDING状态,表示该表项中的IP地址存储单元131存有IP地址,但MAC地址存储单元132没有存放MAC地址,处于时刻等待接收MAC地址状态;
所述RESOLVED状态,表示该表项中的IP地址存储单元131和MAC地址存储单元132分别存有IP地址和MAC地址,IP数据包可以利用该MAC地址进行数据的传输;
所述IP数据包存储单元134对应表项中的队列号字段,用于存储IP数据包;
这里,所述存储IP数据包具体为:将IP数据包存储在存有对应IP地址表项的IP数据包存储单元134;进一步的,对于同一IP地址的所有IP数据包依次存入该IP数据包存储单元134后;
相应的,所述MAC地址存储单元132将MAC地址复制在IP数据包头部具体为:当状态存储单元133存储RESOLVED状态时,即该表项已存有MAC地址,将该MAC地址复制到IP数据包存储单元134中的IP数据包头部,并发送至网络接口模块11;当状态存储单元133存储PENDING状态时,即该表项未存有MAC地址,IP数据包存储单元134中的IP数据包处于时刻等待发送状态,直到MAC地址存储单元132中存入MAC地址、进而状态存储单元133存储RESOLVED状态时,才将MAC地址复制到IP数据包存储单元134中的IP数据包头部,并发送至网络接口模块11;
所述时间存储单元135对应表项中的时间字段,用于存储IP地址存入的时间,并在MAC地址被使用时,更新该时间为当前时间;
所述MAC地址被使用是:MAC地址存储单元132将MAC地址复制在IP数据包头部。
图2为本发明ARP缓存实现其缓存方法的实现流程示意图,如图2所示,该方法包括步骤:
步骤201:将当前IP数据包发送至ARP缓存中进行IP地址查找;
这里,所述IP数据包为本地终端发送到目的MAC地址的一组数据,该IP数据包包括:目的IP地址、源IP地址、源MAC地址等;
所述进行IP地址查找是:查找IP数据包的目的IP地址。
步骤202:该IP地址查找失败后,将该IP地址即时存入到ARP缓存中,并将获取的该IP地址对应的MAC地址存入到ARP缓存中;
这里,该IP地址是IP数据包的目的IP地址;
所述将该IP地址即时存入到ARP缓存中具体包括两种情况,具体为:
当ARP缓存具有FREE状态的表项时,直接将该IP地址存储在该表项中,并将状态字段设置为待定ENDING状态;
当ARP缓存没有FREE状态的表项时,清空时间字段最小的表项,并将该表项的状态字段设置为FREE,将该IP地址存储在该表项中,状态字段设置为PENDING状态;
进一步的,将时间字段与当前时间的差值大于Timeout的表项全部清空,并将这些表项的状态字段设置为FREE;
这里,所述表项为一组记录IP地址到MAC地址映射的数据,包括:IP地址、MAC地址、状态字段、时间字段、队列号字段等;其中,
所述IP地址,用于记录一个IP地址;
所述MAC地址,用于记录所述IP地址对应的一个MAC地址;
所述状态字段,用于记录所述IP地址、MAC地址的记录情况;
所述时间字段,用于记录所述IP地址被记录的时间,并更新该时间为所述MAC地址被使用的时间;
所述队列号字段,用于记录存储在所述IP地址之后的IP数据包;
进一步的,所述状态字段的内容包括:FREE状态、PENDING状态、已存(RESOLVED)状态;
其中,FREE状态对应IP地址无记录、MAC地址无记录的情况;PENDING状态记录IP地址有记录、MAC地址无记录的情况;RESOLVED状态记录IP地址有记录、MAC地址有记录的情况;
相应的,FREE状态表示该表项可以给其它新的IP地址使用;PENDING状态表示该表项处于等待记录MAC地址;RESOLVED状态表示该表项中的MAC地址可以被使用;
这里,所述时间字段具体为:当一个新IP地址被存储在FREE状态的表项时,将此刻的同步时间存储在该表项的时间字段;当该表项的IP地址对应的MAC地址被使用时,更新所存储的时间字段为当前同步时间;
相应的,所述时间字段最小的表项是时间字段存储最早的表项;
这里,所述Timeout是已经设定好的超时时间,一般为2-4分钟。
进一步的,当所述IP地址即时存入到ARP缓存之后,该方法还包括:获取该IP地址对应的MAC地址;
具体的,ARP缓存广播一个ARP请求报文至网络层,所述ARP请求报文包含目的IP地址;相应的,具有该目的IP地址的IP终端返回一个ARP响应报文到ARP缓存,所述ARP响应报文包含目的IP地址对应的MAC地址;ARP缓存接收该ARP响应报文,如此,ARP缓存从ARP响应报文中获取MAC地址。
该方法还包括:ARP缓存根据该IP地址对应的MAC地址,将IP数据包发送至目的IP终端;
这里,所述该IP地址为目的IP地址;相应的,将该目的IP地址对应的MAC地址即目的MAC地址复制到队列号之后的IP数据包头部,依据该目的MAC地址,将IP数据包发送到目的IP终端。
图3为本发明实施例中利用ARP缓存进行缓存的实现流程示意图,如图3所示,该方法包括步骤:
步骤301:将当前IP数据包发送至ARP缓存中进行IP地址查找;
这里,所述IP数据包为本地终端发送到目的MAC地址的一组数据,该IP数据包包括:目的IP地址、源IP地址、源MAC地址等;
所述进行IP地址查找是:查找IP数据包的目的IP地址。
步骤302:判断是否查找到该IP地址,若查找到该IP地址,说明IP地址查找成功,则执行步骤303;若未查找到该IP地址,说明IP地址查找失败,则执行步骤305;
这里,该IP地址是IP数据包的目的IP地址。
步骤303:判断ARP缓存中是否存有与该IP地址对应的MAC地址,若存有该MAC地址,则执行步骤304;若没有存该MAC地址,则执行步骤308;
本步骤前还包括:将IP数据包存储到ARP缓存中;具体的,将IP数据包存储在已存有与其对应IP地址的表项中;
进一步的,存储在该表项中的队列号之后,对于同一IP地址的所有IP数据包依次存入该队列号之后。
步骤304:利用该MAC地址发送IP数据包,结束当前处理流程;
具体的,将该MAC地址即目的MAC地址复制到队列号之后的IP数据包头部,依据该目的MAC地址,将IP数据包发送到目的IP终端。
步骤305:判断ARP缓存中是否有FREE状态的表项,若无FREE状态的表项,则执行步骤306;若有FREE状态的表项,则直接执行步骤307;
这里,所述表项为一组记录IP地址到MAC地址映射的数据,包括:IP地址、MAC地址、状态字段、时间字段、队列号字段等;其中,
所述IP地址,用于记录一个IP地址;
所述MAC地址,用于记录所述IP地址对应的一个MAC地址;
所述状态字段,用于记录所述IP地址、MAC地址的记录情况;
所述时间字段,用于记录所述IP地址被记录的时间,及更新该时间为所述MAC地址被使用的时间;
所述队列号字段,用于记录存储在所述IP地址之后的IP数据包;
进一步的,所述状态字段的内容包括:FREE状态、PENDING状态、已存RESOLVED状态;
其中,FREE状态对应IP地址无记录、MAC地址无记录的情况;PENDING状态记录IP地址有记录、MAC地址无记录的情况;RESOLVED状态记录IP地址有记录、MAC地址有记录的情况;
相应的,FREE状态表示该表项可以给其它新的IP地址使用;PENDING状态表示该表项处于等待记录MAC地址;RESOLVED状态表示该表项中的MAC地址可以被使用;
这里,所述时间字段具体为:当一个新IP地址被存储在FREE状态的表项时,将此刻的同步时间存储在该表项的时间字段;当该表项的IP地址对应的MAC地址被使用时,更新所存储的时间字段为当前同步时间;
相应的,所述时间字段最小的表项是时间字段存储最早的表项;
这里,所述Timeout是已经设定好的超时时间,一般为2-4分钟。
步骤306:将时间字段最小的表项清空,并将该表项的状态字段设置为FREE;将时间字段与当前时间的差值大于Timeout的表项全部清空,并将相应表项的状态字段设置为FREE。
步骤307:存储被查找的IP地址,并更新时间字段为当前同步时间;
相应的,将该表项的状态字段设置为PENDING。
步骤308:获取该IP地址对应的MAC地址,执行步骤303;
所述获取IP地址对应的MAC地址具体包括:广播一个ARP请求报文至网络层,所述ARP请求报文包含目的IP地址;相应的,具有该目的IP地址的IP终端返回一个ARP响应报文到ARP缓存中,所述ARP响应报文包含目的IP地址对应的MAC地址;ARP缓存接收该ARP响应报文,如此,ARP缓存从ARP响应报文中获取MAC地址。
图4为本发明的ARP缓存状态转换图,如图4所示,ARP缓存状态包括:FREE状态41、PENDING状态42、RESOLVED状态43;其中,
FREE状态41,对应IP地址无记录、MAC地址无记录的情况;
PENDING状态42,对应IP地址有记录、MAC地址无记录的情况;
RESOLVED状态43,对应IP地址有记录、MAC地址有记录的情况;
当FREE状态41的表项中记录IP地址时,该状态转变为PENDING状态42;
当PENDING状态42的表项中记录MAC地址时,该状态转变为RESOLVED状态43;
当RESOLVED状态43的表项中的时间字段与当前时间的差值大于Timeout时,该状态转变为FREE状态41;
当PENDING状态42的表项中的时间字段与当前时间的差值大于Timeout时,该状态转变为FREE状态41。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (10)

1.一种ARP缓存,其特征在于,该缓存包括:网络接口模块、查找模块、ARP缓存模块;其中,
所述网络接口模块,用于将IP数据包发送至查找模块进行IP地址查找;在IP地址查找失败后,将获取的MAC地址发送至查找模块;
所述查找模块,用于根据网络接口模块发送的IP数据包在ARP缓存模块中查找IP地址,在IP地址查找失败后,将网络接口模块发送的MAC地址存储到ARP缓存模块;
所述ARP缓存模块,用于提供IP地址给查找模块进行IP地址查找;在IP地址查找失败后,将所述IP地址即时存储到ARP缓存模块中。
2.根据权利要求1所述的ARP缓存,其特征在于,所述网络接口模块,还用于在IP地址查找失败后获取MAC地址。
3.根据权利要求1或2所述的ARP缓存,其特征在于,所述网络接口模块,还用于在IP地址查找成功后,接收ARP缓存模块发来的含有MAC地址的IP数据包;
相应的,所述查找模块,还用于在IP地址查找成功后,将接收到的IP数据包存储到ARP缓存模块中;
所述ARP缓存模块,还用于在IP地址查找成功后,将所述IP地址对应的MAC地址复制于IP数据包的头部,并将含有MAC地址的IP数据包发送至网络接口模块。
4.根据权利要求1所述的ARP缓存,其特征在于,所述ARP缓存模块,还用于在IP地址查找失败后,存储所述IP地址对应的MAC地址;在IP地址查找成功后,存储所述IP数据包。
5.根据权利要求1、2或4所述的ARP缓存,其特征在于,所述ARP缓存进一步包括:时间同步模块,用于提供当前同步时间给ARP缓存模块。
6.根据权利要求3所述的ARP缓存,其特征在于,所述ARP缓存模块包括:IP地址存储单元、MAC地址存储单元、状态存储单元、IP数据包存储单元、时间存储单元;其中,
所述IP地址存储单元,用于提供IP地址给查找模块进行IP地址查找,在IP地址查找失败后,存储被查找的IP地址;
所述MAC地址存储单元,用于存储IP地址对应的MAC地址,并将所述MAC地址复制到IP数据包的头部,将含有MAC地址的IP数据包发送至网络接口模块;
所述状态存储单元,用于存储表项所处的状态;
所述IP数据包存储单元,用于存储IP数据包;
所述时间存储单元,用于存储IP地址存入的时间,并在MAC地址被使用时,更新该时间为当前时间。
7.一种ARP缓存方法,其特征在于,该方法包括:
将当前IP数据包发送至ARP缓存中进行IP地址查找;
在所述IP地址查找失败后,将所述IP地址即时存入到ARP缓存中,并将获取的所述IP地址对应的MAC地址存入到ARP缓存中。
8.根据权利要求7所述的ARP缓存方法,其特征在于,所述将所述IP地址即时存入ARP缓存中包括:
当ARP缓存具有空闲状态的表项时,直接将所述IP地址存储在表项中;
当ARP缓存没有空闲状态的表项时,清空时间字段最小的表项,将所述IP地址存储在表项中。
9.根据权利要求7或8所述的ARP缓存方法,其特征在于,所述IP地址即时存入到ARP缓存之后,该方法还包括:获取所述IP地址对应的MAC地址。
10.根据权利要求9所述的ARP缓存方法,其特征在于,所述获取所述IP地址对应的MAC地址包括:
广播一个ARP请求报文至网络层,所述ARP请求报文包含目的IP地址;具有该目的IP地址的IP终端返回一个ARP响应报文到ARP缓存中,所述ARP响应报文包含目的IP地址对应的MAC地址;
ARP缓存接收所述ARP响应报文。
CN201210494749.7A 2012-11-28 2012-11-28 一种地址解析协议缓存及其缓存方法 Pending CN103856435A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201210494749.7A CN103856435A (zh) 2012-11-28 2012-11-28 一种地址解析协议缓存及其缓存方法
PCT/CN2013/086176 WO2014082517A1 (zh) 2012-11-28 2013-10-29 一种地址解析协议缓存及其缓存方法
US14/647,572 US20150304271A1 (en) 2012-11-28 2013-10-29 Address resolution protocol buffer and buffering method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210494749.7A CN103856435A (zh) 2012-11-28 2012-11-28 一种地址解析协议缓存及其缓存方法

Publications (1)

Publication Number Publication Date
CN103856435A true CN103856435A (zh) 2014-06-11

Family

ID=50827162

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210494749.7A Pending CN103856435A (zh) 2012-11-28 2012-11-28 一种地址解析协议缓存及其缓存方法

Country Status (3)

Country Link
US (1) US20150304271A1 (zh)
CN (1) CN103856435A (zh)
WO (1) WO2014082517A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106899612A (zh) * 2017-04-01 2017-06-27 汕头大学 一种自动检测假冒主机arp欺骗的方法
CN108600406A (zh) * 2018-03-27 2018-09-28 上海兆芯集成电路有限公司 处理不同类型请求的网络装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016158011A (ja) * 2015-02-23 2016-09-01 ルネサスエレクトロニクス株式会社 配信制御装置、データ配信システム、配信制御方法及びプログラム
CN109600273B (zh) * 2018-11-26 2020-04-21 武汉思普崚技术有限公司 一种udp报文传输性能的优化方法及系统
CN113381937B (zh) * 2021-06-09 2022-09-13 烽火通信科技股份有限公司 一种信息状态上报方法和网络设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1457178A (zh) * 2002-05-10 2003-11-19 华为技术有限公司 多个虚拟局域网共用一个网际协议子网网段时的通信方法
US20050007962A1 (en) * 2003-07-10 2005-01-13 Samsung Electronics Co., Ltd. Method and system for dynamically updating ARP cache tables in an ad hoc network
CN1921450A (zh) * 2006-08-25 2007-02-28 华为技术有限公司 数据流量控制装置与流量控制方法
CN101110771A (zh) * 2007-08-09 2008-01-23 福建星网锐捷网络有限公司 在fdb表中添加下一跳mac地址的方法及fdb设备
CN101909065A (zh) * 2010-08-13 2010-12-08 北京中创信测科技股份有限公司 网络设备中的地址解析协议表的老化更新方法和网络设备
CN102571559A (zh) * 2011-12-12 2012-07-11 北京交控科技有限公司 基于时间触发的网络报文发送方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6202169B1 (en) * 1997-12-31 2001-03-13 Nortel Networks Corporation Transitioning between redundant computer systems on a network
US6442144B1 (en) * 1998-06-15 2002-08-27 Compaq Computer Corporation Method and apparatus for discovering network devices using internet protocol and producing a corresponding graphical network map
US6292838B1 (en) * 1999-08-23 2001-09-18 3Com Corporation Technique for automatic remote media access control (MAC) layer address resolution
US20020013858A1 (en) * 2000-02-09 2002-01-31 Anderson Keith R. ARP caching apparatus and method
JP2002057682A (ja) * 2000-08-09 2002-02-22 Hitachi Ltd ネットワークインタフェース切替え方法及びネットワークに接続可能なコンピュータ
US20060077897A1 (en) * 2004-10-12 2006-04-13 Motorola, Inc. Method and apparatus for download prioritization

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1457178A (zh) * 2002-05-10 2003-11-19 华为技术有限公司 多个虚拟局域网共用一个网际协议子网网段时的通信方法
US20050007962A1 (en) * 2003-07-10 2005-01-13 Samsung Electronics Co., Ltd. Method and system for dynamically updating ARP cache tables in an ad hoc network
CN1921450A (zh) * 2006-08-25 2007-02-28 华为技术有限公司 数据流量控制装置与流量控制方法
CN101110771A (zh) * 2007-08-09 2008-01-23 福建星网锐捷网络有限公司 在fdb表中添加下一跳mac地址的方法及fdb设备
CN101909065A (zh) * 2010-08-13 2010-12-08 北京中创信测科技股份有限公司 网络设备中的地址解析协议表的老化更新方法和网络设备
CN102571559A (zh) * 2011-12-12 2012-07-11 北京交控科技有限公司 基于时间触发的网络报文发送方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MICROSOFT著,曹康等译: "《使用TCP/IP协议的网络互连 Microsoft Windows NT TCP/IP互连网培训教程》", 30 September 1994, 学苑出版社 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106899612A (zh) * 2017-04-01 2017-06-27 汕头大学 一种自动检测假冒主机arp欺骗的方法
CN108600406A (zh) * 2018-03-27 2018-09-28 上海兆芯集成电路有限公司 处理不同类型请求的网络装置
CN108600406B (zh) * 2018-03-27 2021-06-01 上海兆芯集成电路有限公司 处理不同类型请求的网络装置

Also Published As

Publication number Publication date
WO2014082517A1 (zh) 2014-06-05
US20150304271A1 (en) 2015-10-22

Similar Documents

Publication Publication Date Title
US20190235909A1 (en) Forwarding policy configuration
CN101964799B (zh) 点到网隧道方式下地址冲突的解决方法
EP2874116A1 (en) Communication method between content requester and content provider for providing content and real-time streaming content in content name-based content centric network
US20170289033A1 (en) Address cache for tunnel endpoint associated with an overlay network
RU2008106250A (ru) Хранение и разрешение в dns филиала
CN103609089B (zh) 一种防止附连到子网的主机上拒绝服务攻击的方法及装置
CN110932890B (zh) 一种数据传输方法、服务器及计算机可读存储介质
CN101094236A (zh) 地址解析协议报文处理方法及通讯系统及转发平面处理器
CN101577722A (zh) 实现强制mac转发功能的方法和装置
CN103856435A (zh) 一种地址解析协议缓存及其缓存方法
US20120311185A1 (en) Data transmission based on address translation
CN101800690B (zh) 一种使用地址池实现源地址转换的方法和装置
RU2540820C2 (ru) Способ и коммутатор для отправки пакета
CN101753458B (zh) 一种nd邻居表项的处理方法及装置
CN103595638B (zh) 一种mac地址学习方法及装置
CN101325553B (zh) Iscsi数据穿越nat的方法和内网存储系统
WO2007143833A1 (en) System and method for handling address resolution protocol requests
CN101808107B (zh) 一种存储设备与用户二层互通的方法、装置及系统
CN102035738A (zh) 一种获取路由信息的方法及装置
CN101179515B (zh) 一种抑制黑洞路由的方法和装置
CN104202420A (zh) 一种支持物联网中间件集群扩展的方法和装置
US9992159B2 (en) Communication information detecting device and communication information detecting method
CN102868775A (zh) 地址解析协议表容量的扩展方法、报文转发方法和装置
CN110809033B (zh) 报文转发方法、装置及交换服务器
CN104394081B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20140611