U.S. patent application number 08/965017 was filed with the patent office on 2001-11-22 for mehtod and apparatus for routing a packet in a network.
Invention is credited to BRABENAC, CHARLES L..
Application Number | 20010043598 08/965017 |
Document ID | / |
Family ID | 25509336 |
Filed Date | 2001-11-22 |
United States Patent
Application |
20010043598 |
Kind Code |
A1 |
BRABENAC, CHARLES L. |
November 22, 2001 |
MEHTOD AND APPARATUS FOR ROUTING A PACKET IN A NETWORK
Abstract
A method for routing a packet in a network is disclosed. The
method includes transmitting a first data packet to a destination;
provoking resolution of the destination address of the first data
packet; and transmitting a second data packet to the destination
after the destination address is resolved.
Inventors: |
BRABENAC, CHARLES L.;
(PORTLAND, OR) |
Correspondence
Address: |
WILLIAM W. KIDD
BLAKELY SOKOLOFF, TAYLOR & ZAFMAN
12400 WILSHIRE BOULEVARD
7TH FL.
LOS ANGELES
CA
90025
|
Family ID: |
25509336 |
Appl. No.: |
08/965017 |
Filed: |
November 5, 1997 |
Current U.S.
Class: |
370/389 ;
370/401 |
Current CPC
Class: |
H04L 45/02 20130101;
H04L 61/00 20130101; H04L 61/10 20130101; H04L 69/16 20130101; H04L
9/40 20220501 |
Class at
Publication: |
370/389 ;
370/401 |
International
Class: |
H04L 012/28; H04L
012/56 |
Claims
1. A method for routing a packet in a computer network, the method
comprising: transmitting a first data packet to a destination;
provoking resolution of the destination address of the first data
packet; and transmitting a second data packet to the destination
after the destination address is resolved.
2. The method of claim 1, wherein the first data packet and the
second data packet are transmitted from the same source.
3. The method of claim 1, wherein the resolved address is
stored.
4. The method of claim 1, wherein the resolution is provoked by
transmitting from the destination to the router at least one of an
ICMP echo request and an ARP request for the IP address of the
router.
5. The method of claim 1, wherein at least one of the first data
packet and the second data packet is transmitted using a TCP/IP
protocol.
6. The method of claim 1, wherein the first data packet and the
second data packet are identical.
7. The method of claim 1, wherein the first data packet is at least
one of retained and dropped during address resolution.
8. The method of claim 1, wherein the destination at least one of
drops and retains an ARP request.
9. The method of claim 1, wherein the second data packet is
transmitted after waiting a predetermined period of time sufficient
for the resolution to finish.
10. The method of claim 1, further comprising awakening the
destination before provoking resolution of the destination
address.
11. An apparatus for routing a packet in a computer network, the
apparatus comprising: a source for sequentially transmitting a
first data packet and a second data packet, a router for resolving
a destination address of the first data packet and for routing the
transmitted second data packet; and a destination for provoking
resolution of the destination address and for receiving the second
data packet.
12. The apparatus of claim 11, wherein the source is a single LAN
device.
13. The apparatus of claim 11, wherein the router stores the
resolved address.
14. The apparatus of claim 11, wherein the destination provokes the
resolution by transmitting at least one of an ICMP echo request to
a plurality of routers on a subnet and an ARP request for the IP
address of the router.
15. The apparatus of claim 11, wherein at least one of the first
data packet and the second data packet are transmitted using a
TCP/IP protocol.
16. The apparatus of claim 11, wherein at least one of the source
and the destination is a power-managed device.
17. The apparatus of claim 11, wherein the source is at least one
of a server and a workstation.
18. The apparatus of claim 11, wherein the destination at least one
of retains and drops an ARP request.
19. The apparatus of claim 11, wherein the router at least one of
drops and retains the first data packet during address
resolution.
20. The apparatus of claim 11, wherein the destination is a
power-managed device.
21. The apparatus of claim 11, wherein the destination is awakened
by an ARP request responsive to transmission of the first data
packet.
22. An apparatus for routing a packet in a computer network, the
apparatus comprising: a source capable of sequentially transmitting
a first data packet and a second data packet to a destination
having a destination address; a router capable of resolving a
destination address of the transmitted first data packet and
routing the transmitted second data packet; and a destination
capable of provoking resolution of the destination address and of
receiving the second data packet.
23. The apparatus of claim 22, wherein the source is a single LAN
device.
24. The apparatus of claim 22, wherein the router stores the
resolved address.
25. The apparatus of claim 22, wherein the destination is capable
of provoking resolution by transmitting at least one of an ICMP
echo request to a plurality of routers on a subnet and an ARP
request for the IP address of the router.
26. The apparatus of claim 22, wherein at least one of the first
data packet and the second data packet can be transmitted using a
TCP/IP protocol.
27. The apparatus of claim 22, wherein at least one of the source
and the destination is a power-managed device.
28. The apparatus of claim 22, wherein the source is at least one
of a server and a workstation.
29. The apparatus of claim 22, wherein the destination at least one
of drops and retains an ARP request.
30. The apparatus of claim 22, wherein the router at least one of
drops and retains the first data packet during address
resolution.
31. A method for routing a packet in a computer network, the method
comprising: transmitting a data packet to a destination; provoking
resolution of the physical address of the destination; and
re-transmitting the data packet to the destination after the
physical address is resolved.
32. The method of claim 31, wherein the data packet is transmitted
and re-transmitted from the same source.
33. The method of claim 31, wherein the resolved physical address
is stored.
34. The method of claim 31, wherein resolution is provoked by
broadcasting from the destination at least one of an ICMP echo
request and an ARP request for the IP address of the router.
35. The method of claim 31, wherein the data packet is at least one
of transmitted and re-transmitted using a TCP/IP protocol.
36. The method of claim 31, wherein the transmitted data packet is
discarded during address resolution.
37. The method of claim 31, wherein the data packet is
re-transmitted after waiting a predetermined period of time.
Description
BACKGROUND OF THE INVENTION
[0001] 1. Field of the Invention
[0002] This invention relates generally to computer networks and,
more particularly, to a method and apparatus for routing a packet
in a computer network.
[0003] 2. Description of the Related Art
[0004] Local area networks ("LANs") are now commonplace. A LAN is a
computer network that spans a relatively small area. Most LANs
connect workstations and/or personal computers in a way that
enables a user to access data and devices at any of the locations
on the LAN so that many users can share expensive types of devices
such as laser printers and can share information.
[0005] There are many types of LANs. Common examples include token
ring networks and Ethernets. A token ring network is a type of
computer network in which the computers are schematically arranged
in a circle. A packet of digital information, called a "token,"
travels around the circle. To send a message, a computer attaches
its message to the token and lets the token continue traveling
around the network. Each computer checks the message when it
receives a token to see if it is the intended destination and, if
so, removes the message from the token. An Ethernet is a bus
network in which packets of digital information travel up and down
the bus. Although these are the most common type of LANs, there are
still others, such as ARCnet, in use.
[0006] FIG. 1 depicts a prior art computer network 10 that will be
used to illustrate several concepts associated with the invention.
The computer network 10 generally comprises a first LAN 12, a
second LAN 14, and a router 15. A "router" is a device that
connects two or more LANs as shown in FIG. 1 and in a manner
described more fully below. The first LAN 12 includes a server 16
and two workstations 18. The second LAN 14 similarly includes a
second server 20 and two workstations 22. Each of the router 15,
the server 16, the workstations 18, the server 20, and the
workstations 22 may be generally referred to as a "LAN device." The
various components of the computer network 10 are interconnected by
communication links 23, 24, and 25, which may be any type of media
such as twisted pair wires, coaxial cables, fiber optic cables, or
some combination thereof. Some LANs even use wireless
communications links, such as radio or infrared waves.
[0007] The workstations 18 and workstations 22 can send messages to
one another through the network 10 in "packets" of digital
information. Each device on the network 10 is assigned a physical
address. Each packet contains a destination address for one of the
other workstations and message data. Thus, for one workstation 18
to communicate with the other workstation 18, the first workstation
18 composes a packet which is then electronically transmitted to
the other workstation 18 over the LAN 12 through the communications
links 24. The workstations 22 use this same process. However, for a
workstation 18 to transmit a message to a workstation 22, the
workstation 18 must compose a data packet that is transmitted via
the router 15.
[0008] The manner in which the LAN devices communicate is
determined by a "protocol." A protocol is an agreed upon format for
transmitting data between and among devices. Thus, the network's
protocol determines the composition, transmission, receipt, and
decomposition of the packets. Most networks use some form of the
transport control protocol/Internet protocol ("TCP/IP"). The TCP/IP
protocol is actually a group of protocols. Note that, although the
term "Internet" appears in the name of the protocol, its
application is not limited to the Internet, other wide area
networks ("WANs"), or any other type of network.
[0009] The TCP/IP protocols are typically used to implement
computer networks, such as the computer network 10, dictate that
the destination address for any individual packet have at least two
parts. One part of the address is very general and one part of the
address is very specific. The general part of the address is known
as the Internet protocol ("IP") address and determines whether the
packet is sent to its destination through the router 15. The router
15 then determines, or "resolves," the specific physical address of
the packet's destination from the IP address carried by the packet.
Thus, the IP address is not an actual physical address, but instead
merely represents a physical address.
[0010] When the router 15 receives a packet, it determines whether
it knows the physical address represented by the IP address. The
router 15 temporarily stores physical addresses to which it has
recently transmitted, and checks this store whenever it receives a
packet. If the physical address of the received packet can be
determined from the stored information, the router 15 transmits the
packet right away. If not, then the router 15 must "resolve" the
physical address. The router 15 typically does this using what is
known as an "address resolution protocol" ("ARP").
[0011] The ARP is part of the TCP/IP protocol suite and is used to
convert an IP address into the physical address that is the
destination of the packet. The ARP requires the router 15 to
broadcast to all LAN devices on the network 10 what is known as an
ARP request. The ARP request instructs the LAN device corresponding
to the IP address to respond by transmitting its physical address
back to the router 15. The intended destination then replies to the
request with its physical hardware address. The router 15 receives
the physical address and stores it temporarily.
[0012] During the ARP, the router 15 either retains or discards the
packet for which the ARP is issued. If the packet is retained, the
router 15 simply transmits it to whichever LAN device responded to
the ARP request. However, some routers do not retain the packet
during ARP and the packet is lost. The LAN devices are typically
programmed for this eventuality such that they will send the packet
to the router 15 several times. Thus, the router 15 might receive
the packet two or three times while transmitting the packet to the
destination only on the second or third try.
[0013] For example, assume that a workstation 18 transmits a data
packet to a workstation 22 over the network 10 and that the router
15 does not retain the data packet. The workstation 18 transmits
the data packet over the LAN 12 to the router 15. The router 15
then broadcasts an ARP request and the workstation 22 replies to
the request by sending its physical address to the router 15. In
the meantime, the router 15 has dropped the data packet. The router
15 then receives the physical address of the workstation 22 over
the LAN 14 and temporarily stores it. The workstation 18 once again
sends the data packet to the router 15. The router 15 then checks
its memory, finds the previously resolved physical address of the
workstation 22, and forwards the data packet to the workstation 22.
Although such a network obviously lacks something in efficiency,
this protocol simplifies the design and reduces the cost of
implementing the network 10 overall.
[0014] This procedure works reasonably well unless one or more of
the LAN devices on the network 10 includes a power management
feature that inactivates the LAN device when not in use. If, for
instance, a workstation 22 incorporates a power management system,
the operating system of the workstation 22 will switch to a "sleep"
state to reduce power consumption after a predetermined period of
inactivity. When the router 15 broadcasts an ARP request to which a
sleeping workstation 22 should respond, the workstation 22 has to
"wake up" before responding.
[0015] The presence of power-managed devices is important because
of the way they typically implement their retention capabilities.
LAN devices such as the servers 16 and 20 and the workstations 18
and 22 typically have a retention capability. However, the
retention capability for some devices deactivates when the device
goes to sleep. Thus, in the context of ARP, the LAN device when it
is asleep may retain the ARP request or discard it depending on its
retention capabilities. The sleep-state retention capability for
LAN devices is expensive to implement and was previously thought to
be non-critical. Many computer networks such as the network 10 are
therefore implemented with LAN devices omitting a sleep-state
retention capability for cost reasons. However, recent information
indicates that sleep-state retention capability is extremely
critical in some implementations to prevent LAN connection failures
and lost information
[0016] Assume again the previous scenario, except that (1) the
destination workstation 22 is a power-managed device, (2) the
workstation 22 lacks a sleep-state retention capability, and (3)
the workstation 22 is asleep at the time the data packet is first
transmitted. The first ARP request awakens the workstation 22.
While the workstation 22 is awakening, the source workstation 18
may re-send one or more data packets with the router 15
broadcasting another ARP request for each data packet, again
dropping the data packets. The destination workstation 22 in this
scenario cannot respond to the first ARP request upon awakening
because it has not been retained. Once the destination workstation
22 is awakened, it can respond to one of the subsequent ARP
requests so that the router 15 can resolve its physical address.
However, in some circumstances, by the time the physical address of
the workstation 22 is finally resolved, the source workstation 18
has quit re-sending the packet. Thus, although the router 15 has
now resolved and stored the address and the destination workstation
22 is awake, the connection has failed and the information is
lost.
[0017] The present invention is directed to overcoming, or at least
reducing the effects of, one or more of the problems set forth
above.
SUMMARY OF THE INVENTION
[0018] The invention in one embodiment is a method for routing a
packet in a network. The method includes transmitting a first data
packet to a destination; provoking resolution of the destination
address of the first data packet; and transmitting a second data
packet to the destination after the destination address is
resolved.
BRIEF DESCRIPTION OF THE DRAWINGS
[0019] Other objects and advantages of the invention will become
apparent upon reading the following detailed description and upon
reference to the drawings in which:
[0020] FIG. 1 conceptually illustrates a computer network;
[0021] FIG. 2 conceptually illustrates a network operating in
accord with the present invention in one embodiment;
[0022] FIG. 3 conceptually illustrates one embodiment of a method
in accordance with the present invention;
[0023] FIGS. 4A and 4B illustrate alternative computer networks
with which the invention may be implemented in alternative
embodiments; and
[0024] FIG. 5 conceptually illustrates an alternative embodiment of
a method for implementing the present invention on the computer
networks of FIGS. 4A and 4B.
[0025] While the invention is susceptible to various modifications
and alternative forms, specific embodiments thereof have been shown
by way of example in the drawings and are herein described in
detail. It should be understood, however, that the description
herein of specific embodiments is not intended to limit the
invention to the particular forms disclosed, but on the contrary,
the intention is to cover all modifications, equivalents, and
alternatives falling within the spirit and scope of the invention
as defined by the appended claims.
DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS
[0026] Illustrative embodiments of the invention are described
below. In the interest of clarity, not all features of an actual
implementation are described in this specification. It will of
course be appreciated that in the development of any such actual
embodiment, numerous implementation-specific decisions must be made
to achieve the developers' specific goals, such as compliance with
system-related and business-related constraints, which will vary
from one implementation to another. Moreover, it will be
appreciated that such a development effort, even if complex and
time-consuming, would be a routine undertaking for those of
ordinary skill in the art having the benefit of this
disclosure.
[0027] FIG. 2 illustrates a computer network 30 constructed and
operating in accordance with one embodiment of the invention. The
network 30 generally comprises a source 32, a router 34, and a
destination 36, all joined by communication links 37 and 39. In the
embodiment illustrated, the source 32 is a workstation and the
destination 36 is a server. However, the invention is not so
limited as both the source 32 and the destination 36 may be any
kind of LAN device known to the art. Also, it is possible that, in
some embodiments, source 32 might comprise two separate devices
operating in tandem. The router 34 in the embodiment illustrated
omits the capability to retain a packet during address resolution,
but the invention is not so limited. The router 34 may, in some
embodiments, include such a retention capability. The destination
36 in the embodiment illustrated is a power managed device.
However, again the invention is not so limited as the destination
36 may be any type of LAN device known to the art.
[0028] In accordance with the method conceptually illustrated in
FIG. 3, the source 32 transmits a first data packet to the
destination 36 via the router 34. The router 34, upon receiving the
first data packet, broadcasts the ARP request over the subnet, or
LAN, including the destination 36. Because the router 34 in the
embodiment illustrated does not have the capability for retaining
the packet, the packet is dropped.
[0029] The destination 36 receives the ARP request. Because, in the
embodiment illustrated, the destination 36 is a power managed
device that may be in a sleep state, the destination 36 may need to
first awaken before being able to reply to the ARP request.
Furthermore, because the destination 36 in the embodiment
illustrated lacks the capability of retaining the ARP request while
awakening, the destination 36 will drop the ARP request and fail to
reply if it is in a sleep state. The destination 36 then, in
accordance with the present invention, provokes resolution the
destination address upon awakening. Note that this provocation is
distinguishable from replying to the ARP request in the typical
address resolution protocol.
[0030] The address resolution may be provoked by transmitting a
"provoking" packet from the destination 36 to the router 34 once
the destination 36 has awakened. The provoking packet can be any
type of packet that may be transmitted over the subnet or LAN
including the destination 36 and the router 34 to which the router
34 will respond. Examples include an Internet Control Message
Protocol ("ICMP") echo request sent out to the IP multi-cast
address 224.0.0.2 (i.e., all routers on the subnet), and an ARP
request for the IP address known to belong to the router 34 in use.
However, other types of packets may be used to provoke the address
resolution and the type of packet may depend on the particular
embodiment of the invention being implemented.
[0031] The source 32 then transmits a second data packet to the
destination 36. The first and second data packets may preferably be
identical but may, in some alternative embodiments, be different.
Also, in some embodiments, the source 32 may have unsuccessfully
attempted to transmit other data packets to the destination 36
between the first and second data packets as a result of programmed
retries as described above. The address included in the second data
packet has previously been resolved as a result of the destination
36's provocation and is stored in the memory of the router 34 such
that the router 34 need not reissue the ARP request. The router 34
consequently directly routes the second data packet to the
destination 36.
[0032] Thus, the source 32 sequentially transmits a first data
packet and a second data packet to the destination 36 via the
router 34. The router 34 resolves the address of the first data
packet upon the provocation of the destination 36. The destination
36 provokes the resolution upon awakening from a sleep state
responsive to the ARP request broadcast by the router 34 for the
first data packet. The router 34 then routes the second data packet
to the destination 36 upon its receipt. The period of time between
the transmission of the first and second data packets by the source
32 will vary depending upon the particular embodiment implemented,
as will be recognized by those in the art having the benefit of
this disclosure. The factors in this determination are well known
in the art, and will include, for instance, the estimated round
trip time.
[0033] FIGS. 4A and 4B illustrate two alternative embodiments of
the invention. The embodiment of FIG. 4A is a network 40 comprising
a first LAN 42, a router 44, and a second LAN 46, all joined by
communication links 47, 48, and 49. Both the first LAN 42 and the
second LAN 46 are token ring networks as are known in the art and
are discussed above, as modified to implement the present
invention. The embodiment of FIG. 4B is a computer network 50
comprising a first LAN 52, a router 54, and a second LAN 56, all
joined by communications links 57, 58, and 59. In this embodiment,
both the first LAN 52 and the second LAN 56 are Ethernet networks
as are known in the art and are discussed above, as modified to
implement the present invention. Both the network 40 of FIG. 4A and
the network 50 of FIG. 4B may be implemented using the alternative
method of FIG. 5.
[0034] Turning now to FIGS. 4A and 5, each of the first LAN 42 and
the second LAN 46 comprise a plurality of LAN devices. Each of the
first LAN 42 and the second LAN 46 includes a server 60a, a printer
60b, and a workstation 60c. Again, these are exemplary LAN devices
and may in other embodiments be other types of LAN devices. The
pieces of the network 40 are connected by communications links 47,
48, and 49, which may be any suitable type of communications links
known to the art.
[0035] The source 60c of the first LAN 42 transmits a data packet
to the destination 60a, which is asleep, of the second LAN 46 via
the router 44 using a TCP/IP protocol. The router 44 receives the
data packet, broadcasts an ARP request throughout the network 40,
drops the data packet, and waits for the reply to the ARP request.
The destination 60a receives the ARP request and awakens. The
destination 60a then provokes the resolution of its physical
address by broadcasting an ICMP echo request to the IP address
224.0.0.2. The router 44 then resolves the physical address of the
destination 60a in memory. After waiting a predetermined period of
time sufficient for the address resolution to finish, the source
60c then re-transmits the data packet. Because the address of the
destination 60a has been resolved, the router 44 transmits the data
packet to the destination 60a without issuing another ARP
request.
[0036] Thus, it can be seen that the present invention is
well-suited for its intended purpose. In particular, the present
invention minimizes LAN connection problems and latencies in
computer networking environments where power-managed LAN devices
are accessed through a router without having to replace or
re-program the router. However, the present invention may also be
employed advantageously in other computer networking environments
to achieve higher performance in making LAN connections.
Furthermore, the invention may be implemented solely in the
software of power-managed LAN devices, thereby eliminating
expensive equipment changes in established computer networks.
[0037] The particular embodiments disclosed above are illustrative
only as the invention may be modified and practiced in different
but equivalent manners apparent to those skilled in the art having
the benefit of the teachings herein. For instance, although the
embodiments of FIGS. 4A and 4B employ a router joining LANs
employing the same topology and protocol, the router may join LANs
employing alternative topologies and protocols. The network 50 of
FIG. 4B may, like the network 40 of FIG. 4A, be implemented using
the method of FIG. 5. Furthermore, no limitations are intended to
the details of construction or design herein shown, other than as
described in the claims below. It is therefore evident that the
particular embodiments disclosed above may be altered or modified
and all such variations are considered within the scope and spirit
of the invention. Accordingly, the protection sought herein is as
set forth in the claims below.
* * * * *