You are on page 1of 16

US006243379B1

(12) United States Patent (10) Patent N0.: US 6,243,379 B1


Veerina et al. (45) Date of Patent: *Jun. 5, 2001

(54) CONNECTION AND PACKET LEVEL 5,793,763 * 8/1998 Mayes et a1. ...................... .. 370/389
MULTIPLEXING BETWEEN NETWORK 5,806,044 * 9/1998 Powell ................................. .. 705/14
LINKS
* cited by examiner
(75) Inventors: Mahesh Veerina; Suresh Gurajapu,
both of Sunnyvale; Raghu Bathina, _ _ _ _
Newark, an of CA (Us) Prznmry Examlner—Valenc1a Martin-Wallace
Assistant Exammer—K1m T.~ Nguyen .
(73) Assignee: Ramp Networks, Inc., Santa Clara, CA Attorney) Agent) 0" F1"m—FemandeZ & A5S0C1ate5>
(Us)
(*) Notice: This patent issued on a continued pros- (57) ABSTRACT
ecution appllcatiorl ?led under 37 CFR Router circuit, provides Internet protocol (IP) address trans
1~53(d)> and 1S sublefzt to the twenty year lation to enable connection or packet-level multiplexing
Pawnt term Provlslons of 35 USC over multiple single-user IP address account links.
154(21)(2)- Connection-level multiplexing (CLM) provide between
_ _ _ _ LAN and WAN addresses outbound packet transfer by
Sub]eCt_tO any dlsclalmeri the term of thls replacing private packet source IP address and port number
Patent 15 extended or adlusted under 35 With said external IP address port number, and inbound
U'S'C' 154(k)) by 0 days‘ packet transfer by replacing external packet destination IP
address and port number With private IP address and port
(21) APPL NO-I 08/835,072 number. Look-up table provides bi-directional translation or
(22) Filed A r 4 1997 effective multiplexing of IP addresses and port assignments
' p ' ’ for incoming or outgoing packets. Packet-level multiplexing
(51) Int. Cl.7 ................................................... .. H04L 12/28 (PLM) provides betWeen LANl and LAN2 addresses out
(52) U_S_ C]_ ________________ __ 370/389; 370/401 bound packet processing, Wherein destination IP address and
(58) Field of Search _________ __ 370/400, 389, port number are replaced With external IP address and port
370/401, 402, 404, 406, 408, 410; 395/2003, number, and inbound packet processing, Wherein source IP
200, 20079 address and port number are replaced With internal IP
address and port number. Link or port allocation are opti
( 56 ) References Cited miZable according to round-robin or bandWidth loading
al orithm.
U.S. PATENT DOCUMENTS g
5,790,548 * 8/1998 SistaniZadeh et a1. ............. .. 370/401 14 Claims, 9 Drawing Sheets

|
T _ _ _ _ _ _ _ _ _ _ __1E____—VTT—M__M___________——___—________________l

1o \I \
4> IP Router 1
|
|

l| 14\ y 16 l8 50
| LAN
|
CLM
@T IP TTable
rans t a t'lOn <1: '"wming
Handler
[vi/2:1“
Interface
|
|
|
I Outgoing
| Handler
|
|
| L
|
l
|
|
1 WAN 26B WAN WAN
1 Ethernet Interface 1 Interface 2 Interface 3
1
|

F5 Networks Ex. 1002


Page 1 of 16
d

~-----------------------------------------------------------:
\JJ.
12 •
10~ 1 ~ IP Router I. • 1 i ~
~
......
18 20 ~
FIG. 1 14
Default ......
=
LAN Incoming
IP Translation WAN
CLM Handler
Table Interface
~
Outgoing
Handler =
?
WANCLM 22 ~Ul
N
c
c
'"""'
24 26A WAN 268 WAN 26C WAN
Ethernet Interface 1 Interface 2 Interface 3 'Jl
Private IP 1
~
=-
30A ~
.....
WAN 1 IP WAN 2 IP WAN 3 IP '"""'
0 32A 0.....,
\C
I= ~aa11--~'
28A Modem 1 288 Modem 2 2tr Modem 3
LAN PC 1 11 _J c
; ~1---11111 -
Private IP 2
308
328 '
ISP 1
erJ'J.
0 34
O'I
~aa 11 'N
I .i;;..
~
LAN PC 2
I. ~
ISP2 ""-l
\0
191· ~
lo-"

Page 2 of 16
F5 Networks Ex. 1002
d

\JJ.

~
~
......
36 38 40 ~

~ ~ ~ ......
=
Source IP Address Valid IP address and port Destination IP address
and port No. No. and port No.
~
r '-/ '-/
39 ' =
?
PC Port WAN 1 Port ~Ul
LAN PC 1 IP WAN 1 IP Dest IP 1 HTTP Server
1025 4000 N
39 c
PC Port WAN 1 Port
c
LAN PC 2 IP WAN 2 IP Dest IP 2 HTTP Server '"""'
1025 4000
39
PC Port WAN 1 Port
LAN PC 1 IP WAN 1 IP Dest IP 3 FTP Server 'Jl
1026 4001
~
=-
39 ~
PC Port WAN 1 Port .....
LAN PC 2 IP WAN 3 IP Dest IP 2 HTTP Server N
1026 4003 0.....,
\C

16

erJ"J.
O'I
FIG. 2 'N
~
~
-....l
\0
~
lo-"

Page 3 of 16
F5 Networks Ex. 1002
U.S. Patent Jun. 5, 2001 Sheet 3 0f 9 US 6,243,379 B1

42
Provide IP Routing
Facility f
i
Provide 1 or more
computers for LAN
coupling to the Internet
f4
l 46
Provide multiple WAN
Links for ISP single
user account couplings
f
l 48
Provide lP Translation
Table for Address and
Port Translation
f
1
Provide evaluation and
Internal to External
mapping per new
connection based on
CLM WAN link
I
assignment algorithm

l
Provide modification for
inbound and outbound
flows based on the
Translation Table
f
entries

FIG. 3

F5 Networks Ex. 1002


Page 4 of 16
U.S. Patent Jun. 5, 2001 Sheet 4 0f 9 US 6,243,379 B1

Receive Outbound
packet from Ethernet
interface

58
(J
Create new entry
Does the packet belong to an existing based on CLM WAN
connection in the Translation Table? link assignment
algorithm

Yes
i 60
Perform table look-up
to modify packet‘s 4
source IP Address to
the external IP Address

l
Also, modify the
packet‘s source Port to
the external Port I62
Number

l
Route the Packet to the
default WAN link I64
i
Send modified
outbound packet via
the CLM Mux out
through the appropriate
WAN Link based on
I66
the packets new
source IP Address

FIG. 4

F5 Networks Ex. 1002


Page 5 of 16
U.S. Patent Jun. 5, 2001 Sheet 5 0f 9 US 6,243,379 B1

Receive Inbound 68
packet from any WAN f
Interface

70 K52
Does the packet belong to an existing
No——>
Drop the
.
packet
.
connection in the Translation Table? as Invalid

Yes
i
Perform table look-up 74
to modify packet's f
destination IP Address
to the internal IP Address

l
Also, modify the
packet's destination I76
Port to the internal Port
Number

l
Route the Packet to the f 78
Ethernet link

i
Send modified inbound 8O
packet via the Ethernet f
interface to the LAN
computers

FIG. 5

F5 Networks Ex. 1002


Page 6 of 16
U.S. Patent Jun. 5, 2001 Sheet 6 0f 9 US 6,243,379 B1

Receive Outbound I82


packet from Ethernet
Interface

86
K)
oes the packet belong to an existing
connection in the Translation Table?
N0—> Drop the packet

Yes
i
Perform table look-up
to modify packet's 88
destination IP Address I
to the remote
IP Address

l
Also, modify the
packet's destination I90
Port to the remote Port
Number

l
Route the Packet to the f 92
default WAN link

i
Send outbound packet [94
via the PLM stripping
algorithm out through
the appropriate WAN
Link

FIG. 6

F5 Networks Ex. 1002


Page 7 of 16
U.S. Patent Jun. 5, 2001 Sheet 7 0f 9 US 6,243,379 B1

Receive inbound f 96
packet from any WAN
Interface

100
98 /_/
Does the packet belong to an existing Create new entry with
connection in the Translation Table? No_’ New source IP as
Master's LAN lP

Yes
i
Perform table look-up 102
to modify packet's f
source IP Address
to the Master's LAN IP
Address

l
Also, modify the f104
packet's source Port to
the new Port Number

l
106
Route the Packet to the f
Ethernet link

l
Send modified inbound /108
packet via the Ethernet
Interface to the LAN
computers

FIG. 7

F5 Networks Ex. 1002


Page 8 of 16
U.S. Patent Jun. 5, 2001 Sheet 8 0f 9 US 6,243,379 B1

Receive Inbound
Packet from any WAN \ 110
Interface

Route Packet to its


finaldestination

FIG. 8

Receive Outbound
Packet from LAN
Interface
\114

Route Packet to its


final destination

FIG. 9

F5 Networks Ex. 1002


Page 9 of 16
F5 Networks Ex. 1002
Page 10 of 16
US 6,243,379 B1
1 2
CONNECTION AND PACKET LEVEL betWeen multiple users in a Local-Area NetWork (LAN) and
MULTIPLEXING BETWEEN NETWORK multiple destinations or host processors in a Wide-Area
LINKS NetWork In particular, during outbound LAN-WAN
packet processing, source IP address and port number of
BACKGROUND OF THE INVENTION outgoing packet are replaced With valid IP address and port
1. Field of the Invention number. Moreover, during inbound WAN -LAN packet
processing, destination IP address and port number of
The invention relates to electronic communication, par incoming packet are replaced With internal IP address and
ticularly to multiplex techniques for connecting multiple port number.
links betWeen networked computers for digital packet trans Packet-level multiplexing (PLM), Which is similar to
fer. 10
CLM in an analogous but functionally reverse manner,
2. Description of Background Art provides packet transfer through multiple single-user IP
With the explosive groWth of electronic netWorks and data address accounts betWeen individual users in different public
communications, there has been increased need for or private LAN clusters, Which may also be connected to
improved Ways for interconnecting computers, particularly other WAN users. In particular, during outbound LANl
15
as con?gured in local-area netWorks (LAN), Wide-area net LAN2 packet processing, destination IP address and port
Works (WAN), and other netWork con?gurations. Conven number of outgoing packet are replaced With external IP
tional netWorking equipment, such as routers and modems, address and port number. Moreover, during inbound LAN2
provide connections for exchanging data betWeen comput LAN 1 packet processing, source IP address and port number
ers; hoWever, current connection capacity and performance of incoming packet are replaced With internal IP address and
are limited.
port number.
Preferably, during packet processing according to CLM or
Moreover, various Internet Service Providers (ISP) offer PLM as described herein, route link establishment and
users individual or corporate accounts through Which users packet address replacement are performed by maintaining,
may communicate With others across the Internet, for checking, and updating entries in look-up table in memory.
example, by sending and receiving electronic mail messages 25 Furthermore, netWork resource assignment, such as WAN -
as Well as setting-up and accessing World-Wide Web sites. LAN or LANA-LANB link selections, may be optimiZed
Typically, a user installs modem equipment to connect his or according to round-robin, bandWidth loading, or other
her personal computer through a telephone line by dialing a resource-sharing criteria.
local phone number to access an Internet account maintained
BRIEF DESCRIPTION OF THE DRAWINGS
by an ISP on its server. The ISP server is then connected
directly to the Wide-area netWorks Which are collectively FIG. 1 is a top-level block diagram of a representative
interconnected and knoWn generally as the Internet. system having WAN-LAN interconnection for implement
ing the present invention.
Although ISP servers are con?gured currently to provide
single-user accounts, each having a single Internet Protocol FIG. 2 is a sample look-up chart shoWing representative
(IP) address Wherein such accounts are extendible via table entries for IP address and port translation according to
35
knoWn techniques such as address translation to support the present invention.
multiple users, conventional use of such single-user account FIG. 3 is a generaliZed ?oW chart illustrating the main
is insufficient for satisfying the increased bandWidth require operational steps associated With computer netWork con
ments of multiple users. There is a need, therefore, to ?guration and CLM packet processing according to the
provide an improved methodology and system for connect present invention.
ing users seamlessly to the Internet through multiple single FIG. 4 is a How chart illustrating the operational steps
user ISP accounts. associated With outgoing packet routing and CLM process
ing according to the present invention.
SUMMARY OF THE INVENTION FIG. 5 is a How chart illustrating the operational steps
The invention resides in digital communications equip 45 associated With incoming packet routing and CLM process
ment con?gured With an Internet Protocol (IP) routing ing according to the present invention.
facility Which couples one or more processors in a netWork FIG. 6 is a How chart shoWing outgoing packet (from
to one or more processors in another netWork for electronic master/server to slave/client) routing and PLM processing
packet transfer over multiple links therebetWeen selectively performed by master/server processor according to the
according to multiple single-user IP account addressing present invention.
schemes. In particular, limited resource allocation is accom FIG. 7 is a How chart shoWing incoming packet (to
plished by multiplexing netWork links through a program master/server from slave/client) routing and PLM process
mable reference scheme, such as a softWare or ?rmWare ing performed by master/server per the present invention.
look-up table or another associative data structure imple FIG. 8 is a How chart shoWing incoming packet (from
mented in computer storage, Which provides bi-directional, 55 master/server to slave/client) routing and PLM processing
inbound-outbound translation and assignment of IP per the present invention.
addresses and port assignments for packet transfer selec FIG. 9 is a How chart shoWing outgoing packet (to
tively over available links. master/server from slave/client) routing and PLM process
Connection or packet-level multiplexing for sending ing according to the present invention.
packets through certain netWork links, for example, corre FIG. 10 is a diagram of a representative PLM system
sponding to multiple single-user ISP accounts, is enabled con?gured With private slave/server LAN according to the
effectively by modifying or replacing packet address and present invention.
port assignment While routing data betWeen internal and
external computer netWorks preferably according to multi DETAILED DESCRIPTION OF THE
plexed connections programmed in look-up table. 65 PREFERRED EMBODIMENT
Connection-level multiplexing (CLM) provides packet FIG. 1 is a schematic diagram shoWing multiplexed
transfer through multiple single-user IP address accounts netWork connection facility or functional circuit module 10

F5 Networks Ex. 1002


Page 11 of 16
US 6,243,379 B1
3 4
for selectably routing digital packets transferred between data rate channels may be reserved to priority users, recently
local area network (LAN) including one or more processors unreliable or drop-prone links are avoided, similar perfor
or computers 30A, 30B coupled via Ethernet interface 24 or mance characteristic (e.g., data rate, bandWidth, distance
equivalent circuit functionality Which is capable of sending delay, etc.) links are grouped together for related application
and receiving Ethernet or similar packets, and generally or user, predicted or user-indicated future demand on certain
Wide area netWork to conventional Internet 34 links is reserved during upcoming time slots, etc.
through host servers or processors 32A, 32B for Internet Once the selection decision has been made (i.e., to map
Service Providers (ISP) coupled over multiple WAN links or outgoing packet through particular external WAN link), an
equivalent netWork connections through modems 28A, 28B, entry is created or activated in the IP translation table, and
28C or similar remote access devices via WAN interfaces 10 outgoing handler translates and forWards such packet and
26A, 26B, 26C. LAN PCs 30 may be any computer or connection information to IP router 12. Router 12 sends data
processor Which is connectable conventionally to a local to outgoing handler When router 12 has packet that is
network, e.g., equipped With TCP/IP softWare and Ethernet destined for a non-local netWork.
interface card. WAN interfaces 26A, 26B, 26C provide standard netWork
Connection facility 10 includes Internet Protocol (IP) 15
remote access porting circuitry for coupling multiple WAN
router 12 or other equivalent packet transfer mechanism, links or equivalent physical connections over conventional
Which receives incoming and outgoing packets for bidirec modems 28A, 28B, 28C or similar remote access devices
tional routing betWeen LAN and WAN addresses accessible provided externally, internally or otherWise integrated physi
conventionally across the Internet. IP router 12 supports cally to WAN connection-level multiplexing (CLM) module
standard TCP/IP routing, and has a LAN interface as Well as 22. Preferably, LAN CLM 14 and WAN CLM 22 exchange
a single WAN interface, although multiple WAN links may information about existing link loads and current connect
be provided, and one (e.g., the ?rst provided) WAN link is speeds in order to provide appropriate resource allocation
recogniZed as a single available WAN link. Preferably, such and particular incoming or outgoing link selection according
WAN interface serves as default route apparently for packet to multiplex algorithm speci?ed herein. WAN CLM module
routing. 25
22 couples to incoming handler 18 and default WAN inter
As shoWn, Ethernet interface 24 couples PCs 30A, 30B to face 20 Which then couples to IP router 12. Incoming packets
LAN Connection-Level Multiplexing (CLM) and outgoing are preferably not processed by WAN CLM 22, but passed
handler functional module 14. When operating, CLM out unaltered to incoming handler 18 for address translation.
going handler 14 receives outgoing packets from Ethernet Incoming handler 18 checks IP translation table 16 to
interface 24 and transfers such packets for further process look-up or determine Whether incoming packets are already
ing. Ethernet frame information is removed by interface 24. indicated to be included therein. If so determined that
Outgoing handler 14 checks IP translation table 16 to current incoming packet is not found in table 16, then such
look-up and determine Whether outgoing packets are packet is dropped. But if it is determined that incoming
included therein. If outgoing packets are not found in IP packet exists in table 16, then address and port designations
35
translation table 16 (i.e., outgoing packet connection is for such incoming packet are translated and sent to IP router
neW), then a neW entry is created and added to table 16 or 12. Incoming translation process similarly to outgoing pro
other similar associative data structure by LAN CLM func cess provides effective channel multiplexing or resource
tional module. sharing by selecting available single-user links and, in
Once such entry representing outbound packet connection particular, involves changing the destination IP address and
exists in table 16, the outgoing packet address and port destination port number of the incoming packet to match an
designations are translated or equivalently modi?ed as internal IP address and port number. HoWever, unlike out
described herein and sent to IP router 12. Outbound trans going packet processing, incoming packet processing essen
lation process provides effective channel multiplexing or tially does not depend on identifying Which particular WAN
resource sharing by allocating available single-user links link the incoming packet came in on.
and, in particular, involves changing source IP address and Default WAN interface 20 provides determination of
source port number to match an external IP address and port initial, default WAN link to the router. This interface also
number. serves preferably as apparently sole default route for router;
For packets belonging to neW connections (i.e., Without and outgoing packets are sent through this interface. IP
table entry), LAN CLM functional module 14 maps such router 12 sends to default WAN interface 20 outgoing packet
packets to external WAN links, preferably through default or When IP router 12 detects a destination IP address for Which
certain allocation criteria link assignments. Sharing or des IP router 12 does not have an existing routing, e.g., such
ignation algorithm may be used to decide on Which link the Would be the case for all outgoing packets destined for
outgoing packet shall go out. The link-selection algorithm conventional external Internet addresses. All outgoing pack
may be simple “round robin” scheme, Wherein next avail 55 ets are forWarded from default WAN interface 20 to WAN
able resource is allocated in sequence, or more complex CLM 22, Without substantial processing. Hence, based on
load-balancing or dynamically-adaptive resource or perfor speci?ed source IP address of outgoing packet, WAN CLM
mance optimiZation scheme that takes into account infor 22 forWards such packet to certain WAN interface 26.
mation such as the speed of available links, number of When outbound packets are sent through single default
connections already existing on the links, historical WAN link, external address interfacing may be substantially
performance, behavior pattern or anticipated capacity of simpli?ed, and possibly made more economical, as multiple
particular channels or users, or type of actual connections users share or multiplex a common ISP IP user account. This
being serviced currently by various links in order to priori advantage may arise, for example, When multiple users share
tiZe or map allocation of available netWork channel a typically single-user, ?at-fee, relatively unlimited-use ISP
resources to computer users. 65 account.
For example, loWer-billing rate WAN links may be In accordance With an important aspect of the present
assigned earlier to reduce usage cost, higher bandWidth or invention, IP translation table 16 or functionally equivalent

F5 Networks Ex. 1002


Page 12 of 16
US 6,243,379 B1
5 6
reference scheme is provided between outgoing handler 14 It is contemplated that the inventive apparatus and meth
and incoming handler 18. Table 16 may be one or more ods as claimed herein and described in best-mode detail
modi?able look-up table or associative data structure imple Would advantageously provide LAN users and ISP operators
mented preferably in softWare, as shoWn With representative With higher performance and potentially more economical
connection entries in FIG. 2. Table 16 includes referenceable means for Internet access and communication. For ISP
indications of source IP address and port number 36, valid servers, such access is manifested through the use of mul
or external IP address and port number 38 and destination IP tiple single-user ISP accounts. NetWorking ?exibility and
address and port number 40. capacity are signi?cantly improved, especially for users
Each table entry 39A, 39B, 39C, and 39D represents a desiring to access multiple locations on the Internet via
possible netWork connection betWeen addressable netWork 10 multiple TCP/IP connections.
processors for enabling data packet transfers therebetWeen.
In particular, such connection entries each represent selected Simultaneous connections are sometimes preferred during
multiple single-user IP address links Which are accessible use of broWser application softWare, like Netscape Naviga
tor or Microsoft Internet Explorer, Which access various
simultaneously for high-performance data traf?c through
actual physical modem lines available betWeen WAN-LAN URL sites across the World-Wide Web, typically alloWing for
15 multiple simultaneous Internet connections to doWnload text
or LAN-LAN computers. For example, in a con?guration
employing three simultaneous 33 kbps modem connections and graphics information separately. With CLM technique,
such transfers can occur in parallel across multiple WAN
betWeen tWo netWork clusters, overall netWork throughput
could be as high 99 kbps, When all links are multiplexed links.
according to the present invention. FIG. 3 is a How chart of netWork con?guration and CLM
Generally, a loosely-coupled multi-processor netWork packet processing. Initially, IP routing and netWorking facil
architecture is described herein and con?gured With an ity 10, 12 as described above is provided 42. One or more
improved IP packet router, Which may be embodied or LAN computers 30 con?gured for coupling to the Internet
operated in a manner functionally equivalent to one or more 34 are provided 44. Multiple WAN links 26, 28 for ISP
“WebRamp” router products developed by Ramp Networks, single-user account couplings are provided 46. IP translation
25
Inc. located in Santa Clara, Calif., (rampnet.com). It is table 16 is provided 48 for address and port translation.
contemplated, furthermore, that equivalent netWork routing Provided 50 next are packet evaluation and internal-to
facility Which function in accordance With the present inven external mapping per neW connection based on CLM WAN
tion may be implemented in alternative server processor or link assignment algorithm. Then, modi?cation for inbound
other secondary proxy architectures Wherein multiple link and outbound packet ?oWs is provided 52 based on trans
mapping or effective multiplexing is achieved, for example, lation table entries.
Wherein desired source or destination IP addresses, ports, FIG. 4 is a How chart shoWing outgoing packet routing
and/or sockets are de?nable and coupleable selectably at and CLM processing. Initially, outbound packet is received
application, packet, or connection level to one or more 54 from LAN PC 30 through Ethernet interface 24. As
speci?c netWork resources or IP addresses. 35
described above, LAN CLM outgoing handier functional
Essentially, a routing facility is provided Wherein LAN module 14 determines Whether the received outbound packet
processors selectively couple to multiple single-user Internet belongs 56 to an existing connection in look-up translation
access accounts provided by various ISPs. The look-up table table 16. If not, a neW entry is created and added 58 to table
16 implemented in softWare or ?rmWare essentially provides 16 based on CLM WAN link assignment algorithm.
programmable capability for multiplexing or de?ning OtherWise, perform 60 table 16 look-up to modify outgoing
bi-directional netWork connection assignments betWeen packet source IP address to external IP address. Additionally,
individual LAN users and multiple single-user WAN ISP outgoing packet source port is modi?ed 62 to be replaced
accounts. More particularly, table 16 provides internal With external port number. Outgoing packet, as modi?ed, is
external translation of IP addresses and port assignments for routed 64 by IP router 12 to default WAN link 20. Modi?ed
possibly modifying incoming and outgoing Internet mes 45
outbound packet is then sent 66 via CLM multiplex out
sages during packet routing. through appropriate WAN link based on packet neW source
Connection-level multiplexing is achieved essentially by IP address.
setting desired IP address and port number assignments FIG. 5 is a How chart shoWing incoming packet routing
during incoming or outgoing packet processing betWeen and CLM processing. Initially, inbound packet is received
individual LAN users and multiple single-user Internet 68 from any WAN interface 26. During inbound packet
accounts via available WAN modem linkages. Outbound processing, WAN CLM functional module 22 effectively
packets are processed by replacing source IP address and functions as mere packet pass-through. Incoming handler 18
port number With valid IP address and port number. Multi determines 70 Whether inbound packet belongs to an exist
plexing is achieved as multiple valid IP addresses replace ing connection in translation table 16. If inbound packet
source IP address and port assignments. Depending on the 55 does not belong, the packet is dropped 72 as invalid.
neW source IP address, a different WAN link is designated. OtherWise, as described above, WAN CLM 22 and incoming
Inbound packets are processed by replacing destination IP handler 18 cause table 16 look-up to be performed 74 to
address and port number With internal IP address and port modify incoming packet destination IP address to the inter
number. nal IP address. Also, incoming packet destination port is
Preferably, packet connection and modi?cation are per modi?ed 76 to internal port number. Modi?ed incoming
formed by maintaining and checking entries in program packet is routed 78 by IP router 12 to Ethernet link 24. Then,
mable data structure in storage memory, such as the look-up send modi?ed inbound packet via Ethernet interface to
IP translation table 16. As described herein, netWork appropriate LAN computer 30.
resource allocations are optimiZable, for example, such that In accordance With an alternate embodiment of the
WAN links are assigned according to predictable criteria, 65 present invention, packet-level multiplexing (PLM), Which
including loading or access fairness, available capacity or is similar to CLM in an analogous but functionally reverse
bandWith, or other congestion-avoidance scheme. manner, provides packet transfer through multiple single

F5 Networks Ex. 1002


Page 13 of 16
US 6,243,379 B1
7 8
user IP address accounts between individual users in differ each WAN link Was provided its oWn external IP address.
ent public or private LAN computer clusters. Hence, PLM Since each slave LAN processor is provided private IP
enables simple, inexpensive IP-to-IP networking. File trans addresses, still need master-slave address translation for
fer (e.g., FTP) performance is signi?cantly improved by communication therebetWeen. The present con?guration
aggregating multiple modem pair links Which share single IP provides simpler and less expensive approach since need
address betWeen of?ce netWorks. less IP address assignment and corresponding netWork sys
In particular, during outbound LAN1-LAN2 packet tem management.
processing, destination IP address and port number are Additionally, incoming packet source port is modi?ed 104
replaced With external IP address and port number. to be replaced With desired port number. The modi?ed
Moreover, during inbound LAN2-LAN1 packet processing, 10 inbound packet is then routed 106 to Ethernet link interface
source IP address and port number are replaced With internal 24. Finally, inbound packet is sent 108 via Ethernet interface
IP address and port number. As in the case of CLM packet to speci?ed LAN computer 30. The default route for the
processing, essentially equivalent netWork facility 10 like master Would be to a host router on the master LAN.
shoWn in FIG. 1 and described above is applicable for Optionally, host router function could be handled by a
achieving PLM netWork connection functionality. During 15 WebRamp router facility, for example, coupled directly via
PLM packet transmission, it is possible for either LAN to conventional T1 link to the Internet.
send packets on any link at any time because each of FIG. 8 is a How chart shoWing incoming packet (from
multiple single-user links are designated effectively a com master/server to slave/client) routing and PLM processing
mon IP address. performed performed equivalently by improved routing
FIG. 6 is a How chart shoWing outgoing packet (from facility as described above for CLM processing. As shoWn,
master/server to slave/client) routing and PLM processing “slave” netWork routing facility receives 110 inbound packet
performed equivalently by improved routing facility as from WAN interface 26, then received incoming packet is
described above for CLM processing. Initially, outbound merely routed 112 to ?nal destination.
packet is received 82 from Ethernet interface 24 from a FIG. 9 similarly shoWs a How chart shoWing outgoing
25
processor in a (“master”) LANA for transmission to a packet (to master/server from slave/client) routing and PLM
processor in a (“slave”) LANB coupled thereto. Then, it is processing performed equivalently by improved routing
determined 84 Whether the received packet belongs to an facility as described above for CLM processing. As shoWn,
existing connection entry in translation table 16. If such “slave” netWork routing facility receives 114 outbound
outgoing packet is not found as existing connection entry, packet from LAN interface 24, then received outbound
then the packet is dropped 86. OtherWise, When such packet packet is merely routed 116 to ?nal destination.
is determined to belong to an existing connection, then For additional illustration, FIG. 10 shoWs a diagram of a
look-up table processing is performed 88 to modify outgoing representative PLM system con?gured With private slave/
packet destination IP address to be replaced With desired, server LAN. In this con?guration, private slave Ethernet
remote IP address. LAN 132, Which includes personal computers (IP address
35
Additionally, outgoing packet destination port is modi?ed 192.168.1.2) 128, (IP address 19216813) 130, is coupled
90 to be placed With desired, remote port number. The through routing facility (WebRamp B With IP address
modi?ed outbound packet is then routed 92 to default WAN 192.168.1.1) 134 over multiple single IP address links
link interface 20 based on routing table entry for slave through three parallel modem pairs 138A, B, C, 140A, B, C
LANB. Finally, outbound packet is sent 94 preferably via to routing facility (WebRamp A With IP address
PLM stripping algorithm (e.g., round-robin or other load 205.158.932) 136 associated With master Ethernet LAN 120
balancing scheme as described above for CLM for channel Which includes mail server (IP address 205.158.933) 118
selection) through appropriate WAN link. Note that in the and couples through host router (IP address 205158931)
PLM case, con?guration is required such that the remote 122 to WAN Internet 124 and then Web server (IP address
(slave) netWork has route entries in the master route table. 45 1992.801) 126.
Hence, the master WebRamp router device, for example,in On the slave LAN side (IP address 19216810) 132,
its route table Would have routes to the remote LAN net WebRamp B is provided With route table 148 having default
Work. gateWay WAN1, Which preferably goes initially through
FIG. 7 is a How chart shoWing incoming packet (to modem pair 138A, 140A. Moreover, When a packet is
master/server from slave/client) routing and PLM process received on the slave side from LAN 120 or WAN 124, no
ing performed equivalently by improved routing facility as address translation is performed, and the incoming packet is
described above for CLM processing. Initially, inbound merely routed to destination computer 128, 130. Outbound
packet is received 96 from WAN interface 26 from a packet is not translated, just routed as is to default gateWay.
processor in a (“slave”) LAN for transmission to a processor At WAN CLM 22, packet stripping algorithm, as described
in a (“master”) LAN coupled thereto. Then, it is determined 55 above, may be applied to place outgoing packets onto
98 Whether the received packet belongs to an existing different WAN interfaces (e.g., round robin, etc.)
connection entry in translation table 16. If such incoming On the master LAN side (IP address 205.158.930) 120,
packet is not found as existing connection entry, then a neW WebRamp Ais provided With route table 146 having default
entry is created 100 or added in look-up table 16 having neW gateWay of 205158.931 (LAN interface). Note that the
source IP address Which is the same as that of master LAN slave’s WAN link address is 19216811; and the master has
IP address. OtherWise, When such packet is determined to a different WAN link address. Effectively, the master routes
belong to an existing connection, then look-up table pro to slave netWork through the netWork WAN link. When a
cessing is performed 102 to modify incoming packet source packet is received on the master side from WAN 124 side,
IP address to be replaced With master LAN IP address. such WAN packets are evaluated by incoming handler 18
Here, the master LAN IP address serves effectively as the 65 Which looks up packet in translation table, such that if entry
single external IP address for the entire master-slave-slave exists, packet address translation is performed Wherein
LAN con?guration, Whereas previously in the CLM case, source IP address is modi?ed to be LAN IP address of

F5 Networks Ex. 1002


Page 14 of 16
US 6,243,379 B1
9 10
master, and port translation is also performed. When no table a connection circuit for coupling the local area netWork
entry is indicated, a neW connection entry is added using and the Wide area netWork, the connection circuit
LAN IP address of master as valid external IP address. comprising an outbound handler, an incoming handler,
Additionally, When packet 142 is received on the master an IP translation table, an IP router, a plurality of Wide
side from LAN 132 side, packet address translation is area netWork interfaces connecting to a plurality of
performed such that destination IP address and port are corresponding modems to form a plurality of links,
modi?ed according to look-up table, Which is essentially Wherein the outbound handler checking the IP transla
reverse process of CLM process. Outgoing LAN packets are tion table to select a link for an outbound packet by
evaluated for existence of an entry in translation table 16. If modifying destination IP address and destination port
no entry exists, packet is dropped. OtherWise, if entry exists, 10 number of the outbound packet Wherein the incoming
destination IP address and port number are changed as handler checking the IP translation table for an incom
speci?ed in table entry. ing packet and either dropping the incoming packet if
For the present netWork con?guration, the folloWing the incoming packet is not found in the IP translation
representative route table is provided for further illustration: table or modifying destination IP address and destina
15 tion port number of the incoming packet if the incom
ing packet is found in the IP translation table.
3. A method for outbound packet transfer from processors
Destination: Gateway: Local Interface: in a local area netWork to Internet Service Providers in a
2061201.0 192.169.11 WANl
Wide area netWork, the method comprising the steps of:
192.169.11 192.170.11 WANl 20 receiving from a plurality of processors in a local area
netWork a plurality of outbound packets;
checking an IP translation table to determine a link from
Moreover, during initial netWork system con?guration, it a plurality of links to route an outbound packet;
is contemplated that the folloWing representative IP modifying the destination IP address and port number of
addresses may be assigned automatically to corresponding 25 the outbound packet; and
modems 140A, B, C (master side) and modems (slave side) sending the modi?ed outbound packet via the selected
138 A, B, C: link to a single-user IP account of an Internet Service
Provider in a Wide area netWork.
4. A method for inbound packet transfer from Internet
Modern: Address: Service Providers in a Wide area netWork processors in a
local area netWork, the method comprising the steps of:
138A 192.16911
138B 1921691.2
receiving from a plurality of Internet Service Providers
138C 19216913 (ISPs) in a Wide area netWork a plurality of inbound
140A 192.17011 packets;
140B 1921701.2
140C 19217013
checking the IP translation table to determine a link from
a plurality of links to route an inbound packet;
modifying each inbound packet by replacing its destina
What is claimed is: tion Internet protocol (IP) address and port number
1. A computer netWork for digital packet communication respectively With an internal IP address and port num
comprising: ber; and
a ?rst netWork having at least one ?rst processor, each ?rst sending modi?ed inbound packets to at least one proces
processor having a ?rst address; sor in a local area netWork via the selected link to a
a second netWork having at least one second processor, single-user ISP accounts.
each second processor having a second address; and 5. Apparatus for connecting local-area netWorks compris
a netWork module for coupling the ?rst netWork and the mg:
second netWork, the netWork module comprising an a router for sending packets over a plurality of single-user
outbound handler, an incoming handler, an IP transla links connectable betWeen at least one processor in a
tion table, an IP router, a plurality of Wide area netWork ?rst local area netWork (LAN) and at least one proces
interfaces connecting to a plurality of corresponding 50 sor in a second LAN; and
modems to form a plurality of links, Wherein the a multiplexing module couples to the router a netWork
outbound handler checking the IP translation table to module for coupling the ?rst netWork and the second
select a link for an outbound packet by modifying netWork, the multiplexing module comprising an out
destination IP address and destination port number of bound handler, an incoming handler, an IP translation
the outbound packet Wherein the incoming handler 55 table, a plurality of Wide area netWork interfaces con
checking the IP translation table for an incoming packet necting to a plurality of corresponding modems to form
and either dropping the incoming packet if the incom a plurality of links, Wherein the outbound handler
ing packet is not found in the IP translation table or checking the IP translation table to select a link for an
modifying destination IP address and destination port outbound packet by modifying destination IP address
number of the incoming packet if the incoming packet 60 and destination port number of the outbound packet
is found in the IP translation table. Wherein the incoming handler checking the IP transla
2. A computer netWork comprising: tion table for an incoming packet and either dropping
a local area netWork having a plurality of processors, each the incoming packet if the incoming packet is not found
processor having an internal Internet Protocol (IP) in the IP translation table or modifying destination IP
address; 65 address and destination port number of the incoming
a Wide area netWork having a plurality of Internet Service packet if the incoming packet is found in the IP
Providers (ISP); and translation table.

F5 Networks Ex. 1002


Page 15 of 16
US 6,243,379 B1
11 12
6. A method for packet processing comprising the steps receiving at least one inbound packet for transfer from at
of: least one ?rst processor in a ?rst local area netWork
providing a look-up table in a memory having at least one (LAN) to at least one second processor in a second
entry representing a netWork connection betWeen a ?rst LAN through a plurality of single-user links provided
processor in a ?rst netWork and a second processor in selectably for separately multiplexed access over dif
a second network, each entry comprising a source ferent single-user links coupled simultaneously ther
Internet protocol (IP) address and port, a valid IP ebetWeen;
address and port, and a destination address IP address checking an IP translation table to determine a link from
and port; a plurality of links to route an outbound packet;
10
receiving a plurality of packets for routing betWeen the modifying the received inbound packet by replacing its
?rst netWork and the second netWork; source Internet protocol (IP) address and port number
checking an IP translation table to determine a link from respectively With an internal IP address and port num
a plurality of links to route an outbound packet; and ber corresponding to a second processor in the second
updating the look-up table to include updated entries LAN; and
15
corresponding to the received packets, the updated sending the modi?ed inbound packet to the corresponding
entries representing connections betWeen the ?rst and second processor in the second LAN, Whereby a plu
second netWorks through a plurality of single-user links rality of users in the ?rst LAN may access the second
provided therebetWeen, LAN simultaneously, the ?rst LAN having a limited
Wherein the connections programmably provide multi number of IP addresses, and the number of users
plexed access simultaneously betWeen one or more accessing the limited number of IP addresses is larger
processors in the ?rst netWork and one or more pro
than the number of available IP addresses.
cessors in the second netWork using a plurality of 9. The computer netWork of claim 2 Wherein:
single-user Internet accounts, each single-user Internet said translating means modi?es a source IP address to be
account corresponding separately With a different 25 a provided external IP address.
single-user link, Whereby a plurality of users in the ?rst 10. The method of claim 3 Wherein:
netWork may access the second netWork a source IP address and port number are replaced by a
simultaneously, the ?rst netWork having a limited num valid IP address and port number Which are obtained
ber of IP addresses, and the number of users accessing from a look-up table.
the limited number of IP addresses is larger than the 11. The method of claim 3 Wherein:
number of available IP addresses. one or more of the outbound packets correspond With a
7. A method for outbound packet transfer betWeen local netWork access instruction for broWsing an Internet
area netWorks, the method comprising the steps of: Website over a plurality of Internet user accounts.
receiving at least one outbound packet for transfer from at 12. The method of claim 4 Wherein:
least one ?rst processor in a ?rst local area netWork 35 one or more of the received inbound packets comprise a
(LAN) to at least one second processor in a second response from a broWser request to access a netWork
LAN through a plurality of single-user links provided source for doWnloading data, the response being
selectably for separately multiplexed access over dif received over the same link over Which the broWser
ferent single-user links coupled simultaneously ther request Was sent.
ebetWeen; 13. The method of claim 4 Wherein:
checking an IP translation table to determine a link from the internal IP address and port number are obtained from
a plurality of links to route an outbound packet; a digital memory Which stores a plurality of IP
modifying the received outbound packet by replacing its addresses and port numbers, thereby effectively
destination Internet protocol (IP) address and port 45
enabling multiplexed access simultaneously betWeen
number respectively With a remote IP address and port one or more processors in the local area netWork over
number corresponding to a second processor in the multiple separate single-user links and one or more
second LAN; and ISPs in the Wide area netWork.
sending the modi?ed outbound packet to the correspond 14. The apparatus of claim 5 Wherein:
ing second processor in the second LAN, Whereby a the multiplexing module comprises a look-up table for
plurality of users in the ?rst LAN may access the storing one or more Internet Protocol (IP) addresses for
second LAN simultaneously, the ?rst LAN having a programmably modifying one or more routing
limited number of IP addresses, and the number of addresses associated With sending packets from the
users accessing the limited number of IP addresses is router separately through a ?rst and second single-user
larger than the number of available IP addresses. 55 links.
8. A method for inbound packet transfer betWeen local
area netWorks, the method comprising the step of:

F5 Networks Ex. 1002


Page 16 of 16

You might also like