The present invention relates to the field of communication field, and in particular, to a packet learning method, apparatus, and system.
In a TCP/IP network architecture, the address resolution protocol (Address Resolution Protocol, ARP) is a basic protocol under the Internet protocol version 4 (Internet Protocol version 4, IPV4). The ARP obtains a corresponding physical address by using an IP address. In the TCP/IP network architecture, each host is allocated a 32-bit IP address. The IP address is a logical address for identifying a host. However, before a packet can be transmitted on a physical network, a physical address of a destination host must be known. Therefore, there is a problem about how to translate an IP address into a physical address. Taking the Ethernet protocol as an example, as specified in the Ethernet protocol, if a host wants to communicate with another host in a same local area network, a media access control (Media Access Control, MAC) address of the destination host must be known. The 32-bit IP address of the destination host must be translated into a 48-bit Ethernet address so that a packet can be transmitted to the destination host correctly. This requires a suite of services at an interconnection layer to translate the IP address into a corresponding physical address, and the suite of protocols is the ARP protocol.
In an IPV6 environment, the ARP protocol is extended into a neighbor discovery protocol for IPV6. The IPV6 neighbor discovery protocol, based on the RFC2461, is carried over an Internet control message protocol version 6 (Internet Control Message Protocol Version 6, ICMPV6) message, is independent of a specific link layer and used to dynamically maintain state information of other neighboring nodes on a link, including an IP address, a link address, an address validity period, a default gateway on the link, and other neighbor information, implements functions of ARP of IPV4, ICMP router discovery, and ICMP redirection, and adds support for automatic configuration and mobility.
The IPV6 neighbor discovery protocol includes the following functions: router discovery, prefix discovery, parameter discovery, address automatic configuration, address resolution, next-hop selection, neighbor unreachability detection, duplicate address detection, and redirection. Similar to the ARP function in the IPV4, the IPV6 address resolution function is implemented by a neighbor solicitation and neighbor advertisement mechanism. When a host needs to obtain a link-local address of another host on the same link, the host sends a neighbor solicitation packet. The packet is similar to an ARP request packet in the IPv4, but uses a multicast address instead of a broadcast address. Only a node whose last 24 bits of the requested host are the same as the multicast address can receive the packet, thereby reducing the possibility of a broadcast storm.
A source host uses the last 24 bits of an IPv6 address of a destination host node to form a corresponding multicast address, and then sends an ICMPv6 packet of the type 135 on the link. After the destination host receives the neighbor solicitation packet, the destination host node responds to the packet by sending an ICMPv6 packet of the type 136 on the local link. After receiving a neighbor advertisement packet, the source host may communicate with the destination host. When a link layer address of a host on the local link changes, the host also actively sends a neighbor advertisement packet.
After the physical address of the destination host is obtained, the physical address of the destination host needs to be stored in a local cache table. In the IPV4, it is an ARP cache table, and in the IPV6, it is a neighbor cache table. However, in the actual process, it is possible that resources of the ARP cache table are insufficient or that resources of the neighbor cache table are insufficient, thereby causing a communication failure.
An embodiment of the present invention provides a packet learning method, including:
receiving a packet, where the packet carries an IP address and a media access control address of a destination host in a network;
identifying a priority of the packet according to identifier information in the packet; and
judging whether a cache table has storage space; and if so, recording the IP address of the destination host, the media access control address of the destination host, and the priority of the packet into the cache table; or if not, comparing the priority of the packet with a lowest priority in the cache table, and if the priority of the packet is higher than the lowest priority in the cache table, recording the IP address of the destination host, the media access control address of the destination host, and the priority of the packet into a position corresponding to the lowest priority in the cache table.
An embodiment of the present invention provides a network device, including:
a receiving port, configured to receive a packet, where the packet carries an IP address and a media access control address of a destination host in a network; and
a processing unit, configured to: identify a priority of the packet according to identifier information in the packet; judge whether a cache table has storage space; and if so, record the IP address of the destination host, the media access control address of the destination host, and the priority of the packet into the cache table; or if not, compare the priority of the packet with a lowest priority in the cache table, and if the priority of the packet is higher than the lowest priority in the cache table, record the IP address of the destination host, the media access control address of the destination host, and the priority of the packet into a position corresponding to the lowest priority in the cache table.
An embodiment of the present invention provides a packet learning system, including a first host and a second host, where
the first host is configured to: receive a packet from the second host, where the packet carries an IP address and a media access control address of the second host, and identify a priority of the packet according to identifier information in the packet; judge whether a cache table has storage space; and if so, record the IP address of the second host, the media access control address of the second host, and the priority of the packet into the cache table; or if not, compare the priority of the packet with a lowest priority in the cache table, and if the priority of the packet is higher than the lowest priority in the cache table, record the IP address of the second host, the media access control address of the second host, and the priority of the packet into a position corresponding to the lowest priority in the cache table.
The method, apparatus, and system provided by the embodiments of the present invention are capable of identifying the priority of the response packet of the destination host, thereby learning the packet according to the priority, ensuring that the high-priority packet is learned preferentially, and guaranteeing the high-priority service.
To illustrate the technical solutions in the embodiments of the present invention or in the prior art more clearly, the following briefly describes the accompanying drawings required for describing the embodiments or the prior art. Apparently, the accompanying drawings in the following description merely show some embodiments of the present invention, and persons of ordinary skill in the art can derive other drawings from these accompanying drawings without creative efforts.
The following clearly and completely describes the technical solutions according to the embodiments of the present invention with reference to the accompanying drawings in the embodiments of the present invention. Apparently, the embodiments in the following description are merely a part rather than all of the embodiments of the present invention. All other embodiments obtained by persons of ordinary skill in the art based on the embodiments of the present invention without creative efforts shall fall within the protection scope of the present invention.
An embodiment of the present invention provides a packet learning method, as shown in
Step 100: Receive a packet carrying a physical address of a destination host.
For the IPV4, the packet received by a source host may be an ARP response packet, while for the IPV6, the packet received by the source host may be a neighbor advertisement packet, and herein the physical address may be a MAC address of the destination host.
Before this step, the method further includes broadcasting or multicasting, by the source host, a discovery packet to a network. For the IPV4, the source host broadcasts an ARP request packet to the network; while for the IPV6, the source host multicasts a neighbor solicitation packet.
Step 110: The source node identifies a priority of the packet according to identifier information in the packet.
In the embodiment of the present invention, the packet sent by the destination host carries identifier information, and the source host may identify the priority of the packet according to the identifier information. The identifier information may be one or more of: information about a port of the source host receiving the packet (for example, one or more of a port identifier of the port, a subrack number, and a slot number), a virtual local area network (Virtual Local Area Network, VLAN) identifier carried in the packet, the MAC address carried in the packet, and identifier information of a local stream carrying the packet.
The source host calculates the priority of the packet according to the identifier information and a locally configured attribute weight value.
Step 120: Judge whether a cache table has storage space, and if so, perform step 130, or if not, perform step 140. The source host judges whether the local cache table still has storage space. For the IPV4, the local cache table is an ARP cache table; while for IPV6, the local cache table is a neighbor discovery (Neighbor Discovery, ND) neighbor cache table.
Step 130: learn the packet and the priority of the packet.
The source host records the IP address of the destination host, the MAC address of the destination host, and the priority of the packet into the cache table.
The source host may further learn and record a number of the port receiving the packet, the VLAN ID carried in the packet, and a type of the port into the cache table. The specific structure of the cache table may be shown in Table 1 or Table 2.
Step 140: Compare the priority of the packet with a lowest priority in the cache table, and if the priority of the packet is higher than the lowest priority in the cache table, learn the packet and the priority of the packet.
Specifically, if the priority of the packet is higher than the lowest priority in the cache table, an entry corresponding to the lowest priority is replaced.
The method may further include: if the priority of the packet is lower than or equal to the lowest priority in the cache table, not learning, or learning after the cache table is aged.
The method provided by this embodiment is capable of identifying the priority of the response packet of the destination host, thereby learning the packet according to the priority, ensuring that the high-priority packet is learned preferentially, and guaranteeing the high-priority service.
An embodiment of the present invention provides a network device, as shown in
a receiving port 20, configured to receive a packet, where the packet carries a physical address of a host in a network; and
a processing unit 22, configured to: identify a priority of the packet according to identifier information in the packet; judge whether a cache table has storage space; and if so, learn the packet and the priority of the packet; or if not, compare the priority of the packet with a lowest priority in a cache table, and if the priority of the packet is higher than the lowest priority in the cache table, learn and record the packet and the priority of the packet into a position corresponding to the lowest priority in the cache table.
The network device provided by this embodiment further includes a sending port 24, configured to broadcast or multicast a discovery packet to the network, where the discovery packet may be an ARP request packet or a neighbor solicitation packet. The discovery packet sent by the sending port 24 carries an IP address of a host in the network.
Specifically, the receiving port 20 may receive an ARP response packet or a neighbor advertisement packet sent by the host in the network, where the ARP response packet or neighbor advertisement packet carries the physical address of the host corresponding to the IP address, for example, a MAC address.
The processing unit 22 may be a central processing unit (Central Processing Unit, CPU) or a digital signal processing (Digital Signal Processing, DSP), and so on. As shown in
an identifying module 221, configured to identify the priority of the packet according to the identifier information in the packet, where the identifier information may be one or more of: information about a port receiving the packet (for example, one or more of a port identifier of the port, a subrack number, and a slot number), a VLAN ID carried in the packet, the MAC address carried in the packet, and identifier information of a local stream carrying the packet;
a judging module 223, configured to judge whether a cache table has storage space; and
a learning module 225, configured to learn the packet and the priority of the packet when the judging module 223 determines that the cache table has storage space; or compare the priority of the packet with the lowest priority in the cache table when the judging module 223 determines that the cache table has no storage space, and if the priority of the packet is higher than the lowest priority in the cache table, learn and record the packet and the priority of the packet into the position corresponding to the lowest priority in the cache table, which may specifically be replacing an entry corresponding to the lowest priority, and if the priority of the packet is lower than or equal to the lowest priority in the cache table, discard the packet, or learn the packet after the cache table is aged.
The network device in this embodiment may be a digital subscriber line access multiplexer (Digital Subscriber Line Access Multiplexer, DSLAM) or an optical line terminal (Optical Line Terminal, OLT) or other network devices.
The network device provided by this embodiment is capable of identifying the priority of the packet according to the identifier information in the packet after obtaining the packet of the host in the network, where the packet carries a physical address, and learning the packet according to the priority, which can ensure that the high-priority packet is learned preferentially, and guarantee the high-priority service.
An embodiment of the present invention provides a packet learning system, as shown in
The first host 40 is configured to: receive a packet from the second host 45, where the packet carries a physical address of the second host 45; identify a priority of the packet according to identifier information in the packet; and judge whether a cache table has storage space; and if so, learn the packet and the priority of the packet; or if not, compare the priority of the packet with a lowest priority in the cache table, and if the priority of the packet is higher than the lowest priority in the cache table, learn and record the packet and the priority of the packet into a position corresponding to the lowest priority in the cache table.
The first host 40 is further configured to broadcast or multicast a discovery packet to the network, where the packet carries the logical identifier of the second host, for example, the IP address or a multicast address, so as to obtain the physical address of the second host 45.
The second host 45 is configured to receive the discovery packet of the first host 40, and send the physical address of the second host 45 to the first host 40 through a response packet after finding through comparison that its own IP address is consistent with the IP address in the discovery packet or that the last 24 bits of the local address are the same as the multicast address in the discovery packet.
With the packet learning system provided by this embodiment, the first host can identify the priority of the response packet, and learn the packet according to the priority, thereby ensuring that the high-priority packet is learned preferentially, and guaranteeing the high-priority service.
Persons of ordinary skill in the art should understand that all or a part of the steps of the methods in the preceding embodiments may be implemented by a program instructing relevant hardware. The program may be stored in a computer readable storage medium, such as a ROM/RAM, a magnetic disk, or an optical disk.
In conclusion, the above are merely specific embodiments of the present invention. However, the protection scope of the present invention is not limited thereto. Changes or replacements readily apparent to persons skilled in the art within the technical scope of the present invention should fall within the protection scope of the present invention. Therefore, the protection scope of the present invention is subject to the protection scope of the claims.
Number | Date | Country | Kind |
---|---|---|---|
201110304851.1 | Oct 2011 | CN | national |
This application is a continuation of International Application No. PCT/CN2012/080125, filed on Aug. 15, 2012, which claims priority to Chinese Patent Application No. 201110304851.1, filed on Oct. 10, 2011, both of which are hereby incorporated by reference in their entireties.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN2012/080125 | Aug 2012 | US |
Child | 14243650 | US |