USPatent applicationPatented

Packet forwarding device and load balance method thereof

Granted 21 Aug 2012 · no office action yet

Assignee: Foxconn Technology Group

Law firm: Law firm · Log in to unlock

Attorney: Attorney · Log in to unlock

Inventors: Yao-Wen Chang, Kai-Yu Yang · Examiner: Kwang B Yao · AU 2473 · TC 2400

Life of the application

6 dated events
⤢ drag to zoom20102012201420162018202020222024202620282030ProsecutionOwnershipTerm & fees
ProsecutionOwnershipTerm & feeshover for detail · click to open

Abstract

A packet forwarding device stores a predetermined threshold and a predetermined condition value of a first wide area network (WAN) port, and forwards packets that comply with the predetermined condition value via the first WAN port and forwards packets that do not comply with the predetermined condition value via a second WAN port. The packet forwarding device forwards some of the packets that do not comply with the predetermined condition value via the first WAN port in order to balance loads of the first and second WAN ports if the traffic value of the packets forwarded via the first WAN port is equal to or less than the predetermined threshold.

Description

5 parts
›BACKGROUND

1. Technical Field

Embodiments of the present disclosure relate to network communication, and more particularly to a packet forwarding device and a load balance method thereof.

2. Description of Related Art

Currently, a packet forwarding device often sets a predetermined condition value, such as packet source addresses, packet sizes, and packet protocol types, then forwards packets that complies with the predetermined condition value via one WAN port of the packet forwarding device, and forwards packets that do not comply with the predetermined condition value via another WAN port of the packet forwarding device.

For example, referring to FIG. 5 , a traditional packet forwarding device 20 a receives a plurality of packets from a CPE 101 a, a CPE 103 a, and a CPE 105 a via a first LAN port 218 a, a second LAN port 220 a, and a third LAN port 222 a, respectively. For example, the packet protocol types of the received packets comprise A, B, and C. The packet protocol type of the predetermined condition value is set to A. In such a case, the first WAN port 214 a only forwards packet A, and the second WAN port 216 a forwards packets B and C. Thus, there is a load imbalance between the first WAN port 214 a and the second WAN port 216 a, which reduces forwarding efficiency of the packet forwarding device 20 a.

›BRIEF DESCRIPTION OF THE DRAWINGS

The details of the disclosure, both as to its structure and operation, can best be understood by referring to the accompanying drawings, in which like reference numbers and designations refer to like elements.

FIG. 1 is a schematic diagram of an application environment of one embodiment of a packet forwarding device of the present disclosure;

FIG. 2 is a schematic diagram of functional modules of one embodiment of the packet forwarding device of the present disclosure;

FIG. 3 is a schematic diagram showing the packet forwarding device forwarding packets of the present disclosure;

FIG. 4 is a flowchart of a load balance method of one embodiment of the packet forwarding device of the present disclosure; and

FIG. 5 is a schematic diagram showing a traditional packet forwarding device forwarding packets.

›DETAILED DESCRIPTION · 1 of 3

All of the processes described may be embodied in, and fully automated via, software code modules executed by one or more general purpose computers or processors. The code modules may be recorded in any type of computer-readable medium or other storage device. Some or all of the methods may alternatively be embodied in specialized computer hardware or communication apparatus.

FIG. 1 is a schematic diagram of an application environment of one embodiment of a packet forwarding device 20 of the present disclosure. In one embodiment, a plurality of customer premise equipment (CPE) 101 , 103 , . . . , 105 connect to the Internet 30 via the packet forwarding device 20 . In the embodiment, the CPEs 101 , 103 , . . . , 105 may be personal computers, or personal digital assistants, for example. The packet forwarding device 20 comprises at least two wide area network (WAN) ports 214 , 216 and a plurality of local area network (LAN) ports 218 , 220 , 222 . The WAN ports 214 , 216 connect to the Internet 30 and the LAN ports 218 , 220 , 222 connect to the plurality of the CPE 101 , 103 , . . . , 105 , respectively. In one embodiment, the packet forwarding device 20 may be a router, a gateway, or a cable modem, for example.

FIG. 2 is a schematic diagram of functional modules of one embodiment of the packet forwarding device 20 of the present disclosure. In one embodiment, the packet forwarding device 20 comprises a processor 202 , a storage system 204 , a forwarding module 206 , a detecting module 208 , a determining module 210 , a load balance module 212 , a first WAN port 214 , a second WAN port 216 , a first LAN port 218 , a second LAN port 220 , and a third LAN port 222 . In one embodiment, the first LAN port 218 , the second LAN port 220 , and the third LAN port 222 are operable to receive a plurality of packets from the CPE 101 , the CPE 103 , and the CPE 105 , respectively. In one embodiment, the first WAN port 214 and the second WAN port 216 are operable to forward the packets to the Internet 30 . The packets maybe transmission control protocol (TCP) packets or user datagram protocol (UDP) packets, for example.

The forwarding module 206 , the detecting module 208 , the determining module 210 , and the load balance module 212 comprise one or more computerize codes that are stored in the storage system 204 and are operable to be executed by the processor 202 .

The storage system 204 is operable to store a predetermined threshold and a predetermined condition value of the first WAN port 214 . In one embodiment, the predetermined threshold of the first WAN port 214 is a maximum traffic value of the first WAN port 214 .

The forwarding module 206 is operable to forward packets that comply with the predetermined condition value via the first WAN port 214 , and forward packets that do not comply with the predetermined condition value via the second WAN port 216 . In one embodiment, the predetermined condition value comprises packet source addresses, packet sizes and packet protocol types. For example, the packet protocol type of the predetermined condition value can be set to a TCP, which indicates that the forwarding module 206 forwards packets that comply with the packet protocol type of TCP via the first WAN port 214 and forwards packets that do not comply with the packet protocol type of TCP via the second WAN port 216 .

The detecting module 208 is operable to detect a load state of the second WAN port 216 . In one embodiment, if none of the packets forwarded via the second WAN port 216 have been lost, the load state of the second WAN port 216 is normal, and if some of the packets forwarded via the second WAN port 216 have been lost, the load state of the second WAN port 216 is overloaded, for example.

The determining module 210 is operable to determine whether some of the packets forwarded via the second WAN port 216 have been lost. In one embodiment, the forwarding module 206 forwards packets to the Internet 30 , and receives response packets from the Internet 30 within a predetermined time period. If the forwarding module 206 fails to receive response packets from the Internet 30 within the predetermined time period, the determining module 210 determines some of the packets forwarded via the second WAN port 216 have been lost. In contrast, if the forwarding module 206 receives response packets from the Internet 30 within the predetermined time period, the determining module 210 determines none of the packets forwarded via the second WAN port 216 have been lost.

In one embodiment, none of the packets forwarded via the second WAN port 216 have been lost indicates that the load state of the second WAN port 216 is normal. In such a case, the forwarding module 206 is further operable to continue forwarding packets that do not comply with the predetermined condition value via the second WAN port 216 .

In another embodiment, some of the packets forwarded via the second WAN port 216 have been lost indicates that the load state of the second WAN port 216 is overloaded. In such a case, the determining module 210 further determines whether a traffic value of the packets forwarded via the first WAN port 214 is greater than the predetermined threshold.

The load balance module 212 is operable to forward some of the packets that do not comply with the predetermined condition value via the first WAN port 214 in order to balance loads of the first WAN port 214 and the second WAN port 216 if the traffic value of the packets forwarded via the first WAN port 214 is equal to or less than the predetermined threshold.

In one embodiment, the traffic value of the packets forwarded via the first WAN port 214 is equal to or less than the predetermined threshold indicates that a load of the first WAN port 214 is normal and the second WAN port 216 is overloaded. In one embodiment, the load balance module 212 forwards some of packets that do not comply with the predetermined condition value via the first WAN port 214 in order to balance loads of the first WAN port 214 and the second WAN port 216 to improve an efficiency of processing packets in the packet forwarding device 20 .

›DETAILED DESCRIPTION · 2 of 3

In one embodiment, the traffic value of the packets forwarded via the first WAN port 214 is great than the predetermined threshold, then both the first WAN port 214 and the second WAN port 216 are overloaded. In such a case, the forwarding module 206 continues forwarding packets that do not comply with the predetermined condition value via the second WAN port 216 .

FIG. 5 is a schematic diagram showing a commonly used packet forwarding device forwarding packets. In this embodiment, the first WAN port 214 a and the second WAN port 216 a may forward packets at a speed of five per second, and accordingly the predetermined threshold of the first WAN port 214 a and the second WAN port 216 a is five packets per second. The speed is also referred to as the traffic value. In this embodiment, the second WAN port 216 a may lose packets because the current traffic value of the second WAN port 216 a achieves six packets per second, exceeding the predetermined threshold. At the same time, the current traffic value of the first WAN port 214 a is three packets per second, less than the predetermined threshold. In such a case, the load state of the first WAN port 214 a is normal and the second WAN port 216 a is overloaded.

FIG. 3 is a schematic diagram showing the packet forwarding device 20 forwarding packets of the present disclosure. In this embodiment, if the load state of the first WAN port 214 is normal and the second WAN port 216 is overloaded, the packet forwarding device 20 forwards the packets not complied the predetermined condition value to the Internet 30 via the first WAN port 214 in order to balance the loads of the first WAN port 214 and the second WAN port 216 .

For example, the packet protocol types of the received packets can comprise a TCP, a UDP, and a hypertext transfer protocol (HTTP). The packet protocol type of the predetermined condition value is set to the TCP. The packet forwarding device 20 only forwards packets of TCP via the first WAN port 214 , and forwards packets of UDP and HTTP via the second WAN port 216 , before balancing the loads of the first WAN port 214 and the second WAN port 216 . If the load state of the first WAN port 214 is normal and the second WAN port 216 is overloaded, the packet forwarding device 20 forwards packets of TCP and UDP via the first WAN port 214 , and forwards packets of UDP and HTTP via the second WAN port 214 . In such a case, the loads of the first WAN port 214 and the second WAN port 216 are balanced. Thus, the forwarding efficiency in the packet forwarding device 20 is improved.

FIG. 4 is a flowchart of a load balance method of one embodiment of the packet forwarding device 20 of the present disclosure. The load balance method can be, for example, executed by the functional modules of the packet forwarding device 20 of FIG. 2 . Depending on the embodiment, additional blocks may be added, others deleted, and the ordering of the blocks may be changed while remaining well within the scope of the disclosure.

In block S 400 , a plurality of LAN ports receive a plurality of packets from the CPE. In one embodiment, the first LAN port 218 , the second LAN port 220 , and the third LAN port 222 receive a plurality of packets form the CPE 101 , the CPE 103 , and the CPE 105 , respectively.

In block S 402 , the forwarding module 206 forwards packets that comply with the predetermined condition value via the first WAN port 214 and forwards packets that do not comply with the predetermined condition value via the second WAN port 216 . In one embodiment, the predetermined condition value comprises packet source address, packet size and packet protocol type. For example, the packet protocol type of the predetermined condition value is set to the TCP indicates that the forwarding module 206 forwards packets that comply with the packet protocol type of TCP via the first WAN port 214 and forwards packets that do not comply with the packet protocol type of TCP via the second WAN port 216 .

In block S 404 , the detecting module 208 detects a load state of the second WAN port 216 .

In block S 406 , the determining module 210 determines whether some of the packets forwarded via the second WAN port 216 have been lost. Normally, the forwarding module 206 forwards packets to the Internet 30 , and receives response packets from the Internet 30 within the predetermined time period. If the forwarding module 206 fails to receive response packets from the Internet 30 within the predetermined time period, the determining module 210 determines that some of the packets forwarded via the second WAN port 216 have been lost. In contrast, if the forwarding module 206 receives response packet from the Internet 30 within the predetermined time period, the determining module 210 determines that none of the packets forwarded via the second WAN port 216 have been lost.

In one embodiment, if some of the packets forwarded via the second WAN port 216 have been lost, then in block S 408 , the determining module 210 continues determining whether a traffic value of the packets forwarded via the first WAN port 214 is greater than the predetermined threshold.

In one embodiment, none of the packets forwarded via the second WAN port 216 have been lost, indicating that the load state of the second WAN port 216 is normal, then in block S 412 , the forwarding module 206 continues forwarding packets that do not comply with the predetermined condition value via the second WAN port 216 .

In one embodiment, the traffic value of the packets forwarded via the first WAN port 214 is equal to or less than the predetermined threshold, then in block S 410 , the load balance module 212 forwards packets that do not comply with the predetermined condition value via the first WAN port 214 in order to balance the load of the second WAN port 216 .

In one embodiment, the traffic value of the packets forwarded via the first WAN port 214 is greater than the predetermined threshold, and then in block S 412 , the forwarding module 206 continues forwarding packets that do not comply with the predetermined condition value via the second WAN port 216 .

›DETAILED DESCRIPTION · 3 of 3

In one embodiment, the packet forwarding device 20 detects the state of the second WAN port 216 , and forwards packets that do not comply with the predetermined condition value via the first WAN port 214 in order to balance load if some of the packets forwarded via the second WAN port 216 have been lost and the traffic value of the packets forwarded via the first WAN port 214 is equal to or less than the predetermined threshold. Thus, the packet forwarding device 20 reduces packet lost when forwarding packets and improves processing efficiency greatly.

While various embodiments and methods of the present disclosure have been described, it should be understood that they have been presented by example only and not by limitation. Thus the breadth and scope of the present disclosure should not be limited by the above-described embodiments, but should be defined only in accordance with the following claims and their equivalents.

Claims as granted

8 claims

Log in to read the claims of this application.

Log in to unlock

Classifications

2 codes
IPC · International Patent Classification
Section G — Physics
  • G01R31/08
USPC · US Patent Classification
370/232

Claim changes

Soon
Coming soonHow the claims changed between publication and grant

See which claims were amended, added or cancelled during examination, with every added and removed word marked.

AmendedAddedCancelledUnchanged

The published claims of this application are not paired with the granted ones in what we hold.

File wrapper

⤢ drag to zoomApr 2010Jul 2010Oct 2010Jan 2011Apr 2011Jul 2011Oct 2011Jan 2012Apr 2012Jul 2012Oct 2012USPTOApplicantNotice of allowance
USPTOApplicanthover for detail · click to open
Pendency
2.3 y
855 days filing → grant
Office actions
0
none on record
Examiner
Kwang B Yao
art unit 2473 · TC 2400
Citations: 5 back · 1 forward

See the full prosecution history — every USPTO and applicant action on this file, in order.

Log in to unlock

Documents

Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.

Log in to unlock

Chain of title

⤢ drag to zoom20102012201420162018202020222024202620282030Owner 1
Titlehover for detail · click to open

See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.

Log in to unlock