CN103856435A - 一种地址解析协议缓存及其缓存方法 - Google Patents
一种地址解析协议缓存及其缓存方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
-
- 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/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- 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/58—Caching of addresses or names
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address 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响应报文。
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)
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)
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)
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)
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 |
-
2012
- 2012-11-28 CN CN201210494749.7A patent/CN103856435A/zh active Pending
-
2013
- 2013-10-29 US US14/647,572 patent/US20150304271A1/en not_active Abandoned
- 2013-10-29 WO PCT/CN2013/086176 patent/WO2014082517A1/zh active Application Filing
Patent Citations (6)
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)
Title |
---|
MICROSOFT著,曹康等译: "《使用TCP/IP协议的网络互连 Microsoft Windows NT TCP/IP互连网培训教程》", 30 September 1994, 学苑出版社 * |
Cited By (3)
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 |