Title of Invention

METHOD AND SYSTEM FOR PROVIDING SIMILAR SERVICE AT AN ADDRESS FROM MULTIPLE DEVICES

Abstract This invention describes a method and a device for providing similar service at the same address from multiple devices in an IPv6 network. This method can be used to provide services like database access, Vol P and video services by transparently load-sharing the requests among a cluster of devices. This method consists of creating a unique Service Address and assigning this address to a set of devices that can provide a particular service. A Router/Gateway maintains the status of all devices providing this service. On receiving a request for this service from some client, the Router/Gateway forwards the request to one of the free devices. The device will then respond with its unicast address using Home Address Option. Further communication between the client and the device can use the device's unicast address. The proposed method uses Neighbor Discovery messages with some enhancements to the existing protocol. In particular, the method uses Neighbor Discovery messages for Service Address configuration, device status updates and Service Address Requests for particular service types. Service Addresses are communicated to the devices using Router Advertisements. Devices use Neighbor Advertisements for deleting / invalidating / marking as busy their link-layer address entries in the Router/Gateway. A Router Solicitation message, with a newly defined Service Address Request Option, is sent by devices to request a Service Address for a particular service. However, the method does not violate the standards or the interoperability with other devices. Using this technique, a number of data/voice/video servers can be installed at one location with a single serving address. For example: one can receive more than one telephone call at the same address / number. Any call to this number will be handled by the next free device in the network serving for this address. This allows us to provide a single address / number to the outside world.
Full Text FIELD OF INVENTION
This invention relates to IPv6 technology, which is the next generation network layer protocol that surpasses the shortcomings of its predecessor IPv4. Specifically, this invention relates to a method using which a cluster of devices can provide similar service like database access, VoIP or video service at the same address which method would provide scalability and high availability through load balancing. More particularly, this invention proposes a method and system for providing similar service at an address from multiple devices.
DESCRIPTION OF THE RELATED ART
[ADDR-ARCH] introduces the concept of Anycast Addressing and its use in IPv6. An IPv6 Anycast Address is an address that is assigned to more than one interface with the property that a packet sent to an Anycast Address is routed to the "nearest" interface, according to the routing protocol"s measure of distance. One use of such Anycast Addresses is to identify a set of routers providing the same service like internet service. However, such a use of Anycast Address would always imply load balancing based on the notion of "nearest" interface only. Moreover, Anycast Addresses are generally defined for geographically distributed devices and the address assignment is from ISP or standard bodies. Nonetheless, the method described in this invention can be used with Anycast Addresses also.
Domain Name Service, described in [DNS], is another possible way of providing similar service at a single address from multiple devices. The document [DNS SRV] describes the SRV RR, which allows administrators to use several servers for a single domain and to designate some hosts as primary servers and others as backups. Clients ask for a specific service for a specific domain and get back the names of any available servers. If address records are provided for all the servers, clients can use the round-robin mechanism to share the load equally among all the

servers. But the drawback is that the clients have no idea whether the selected server is available i.e. free or not. Another drawbaciwith using DNS is that it worlds only with URIs, it does not vigor with numbers and other kinds of addresses.
Session Initiation Protocol (SIP), described in [SIP], is an application-layer signaling protocol for creating, modifying and terminating sessions with one or more participants. SIP can also be used to provide a service at a single SIP URI from multiple devices. However, SIP requires the use of proxy serves to help route requests to user"s current location, to authenticate and authorize users for sen/ices and to provide other features to users. It also requires a registration service that allows users to upload their current location and a corresponding location service used by the proxy server. SIP can be used to reach all registered devices at the same time. But SIP services work only with SIP URIs and not with other addresses. SIP services are generally used for internet telephone calls i.e. VoIP and multimedia services.
SUMMARY OF THE INVENTION
The primary object of this invention is to invent a method for providing similar service at a single address from multiple devices.
It is another object of this invention to invent a layer-3 technique for Load Sharing among a set of devices.
It is another object of this invention to provide a technique using enhancements to Neighbor Discovery Protocol over IPv6 [NDP] that do not affect inter-operability or violate existing standards.
It is also an object of this invention to provide techniques for configuring Service Addresses, sending device status updates and requesting Service Addresses for particular service types.

it is a further another object of this invention to provide a plug and play method with almost zero configuration for the devices.
This invention describes a method for providing similar service at the same address from multiple devices over an IPv6 network. This method consists of creating a unique Service Address and assigning this address to a set of devices that can provide a particular service. A Router/Gateway maintains the status of all devices providing this service. On receiving a request for this service from some client, the Router/Gateway fonwards the request to one of the free devices. The proposed method uses Neighbor Discovery messages for configuring Service Addresses, for updating the status of devices and requesting Service Addresses for particular service types.
The following are the criteria for the implementation of the proposed method,
1. The technique described in the invention is a layer-3 technique. Hence it works only for an environment where layer-3 is IPv6.
2. Clients accessing the service must be capable of processing the Home Address Option which is a destination options header option.
This invention describes a method for providing simitar service at the same address from multiple devices in an IPv6 network. This method can be used to provide services like database access, VoIP and video services by transparently load sharing the requests among a cluster of devices.
The proposed method uses Neighbor Discovery messages with some enhancements to the existing protocol, in particular, the method uses Neighbor Discovery messages for Service Address configuration, device status updates and Service Address Requests for particular service types. Service Addresses are communicated to the devices using Router Advertisements. Devices use Neighbor Advertisements for deleting/invalidating/marking as busy their link-layer address entries in the Router/Gateway. A Router Solicitation message, with a newly defined Service Address Request Option, is sent by devices to request a Service Address

T3r a particular service. However, the method does not violate the standards or the interoperability with other devices.
Using this technique, a number of data/voice/video servers can be installed at one location with a single serving address. For example: one can receive more than one telephone call at the same address/number. Any call to this number will be handled by the next free device in the network serving for this address. This allows us to provide a single address/number to the outside world.
Accordingly, the present invention provides a method for providing service at a single address from multiple devices comprising a Router/Gateway and two or more devices and the said method comprising the steps of:
(a) At the Gateway/Router:
(i) creating an unique Service Address;
(ii) registering the Service Address with the Domain Name System with
the corresponding name; (iti) assigning the said Service Address to the connected devices; (iv) get the corresponding Service Address from DNS , When the
Router/Gateway receives a packet destined to the service URL; (v) identifying the devices that are configured with this Service Address
and their status; (vi) sending the packet to a device that is not busy
(b) At the device
(i) constituting the Service Address apart from its global and other
addresses; (ii) notifying the Gateway/Router about its availability to provide the
service; (iii) receiving a packet that is destined for Service Address and giving
response with its unicast address using Home Address Option.
Accordingly, the present invention further comprises a system for providing

service at a single address from multiple devices comprising a Router/Gateway and two or more devices and the said Router/Gateway comprising:
i. a Service Address management means for constructing, advertising this address to the devices, discovering the devices that have configured the said Service Address; ii. a packet receiving element means for receiving the packets destined for a Service Address, determining a free and preferable device and fonwarding the packet to that device; iii. a service Address Neighbor Cache Management means for maintaining the list of devices, their preferences and the corresponding status; iv. a service Address management function in DHCPv6,
and said device comprising,
{i) a service Address management means for requesting a Service Address
using Router Solicitation, receiving a Service Address using the Router
Advertisements and assigning the Service Address to the device interface,
refreshing its willingness to provide the service further; (ii) an Application Service element in IPv6 layer for applications to inform their
service capability, to initiate to get a Service Address and to invalidate the
MAC entry in the router when the application is busy; a Service Address management function in DHCPv6 for requesting the Service Address.
BRIEF DESCRIPTION OF THE ACCOMPANYING DRAWINGS
Figure 1 shows DataA/ideo Service
Figure 2 shows Home Networking.
Figure 3 is a sequence diagram depicting how the proposed method works. Figure 4 shows the format for the Service Address Option.
Figure 5 shows the process of address assignment.

l^igure 6 shows the Service Address Neighbor Cache at the Router/Gateway.
Figure 7 details the Service Address Refresh process.
Figure 8 shows a Neighbor Advertisement message with the delete flag set.
Figure 9 shows how the Router/Gateway is updated about a device"s availability.
Figure 10 is a sequence diagram that details the steps involved when a new device
comes up in the network.
Figure 11 depicts how a device can request for a Service Address.
Figure 12 depicts the format of Xhe Service Address Request Option.
DETAILED DESCRIPTION OF THE INVENTION
The preferred embodiments of the present invention will now be explained with reference to the accompanying drawings. It should be understood however that the disclosed embodiments are merely exemplary of the invention, which may be embodied in various forms. The fol!ov/ing description and drawings are not to be construed as limiting the invention and numerous specific details are described to provide a thorough understanding of the present invention, as the basis for the claims and as a basis for teaching one skilled in the art on how to make and/or use the invention. However in certain instances, welf-known or conventional details are not described in order not to unnecessarily obscure the present invention in detail.
This invention describes a method for providing similar service at the same address from multiple devices in an IPv6 network. This method can be used to provide services like database access, VoIP and video services by transparently load-sharing the requests among a cluster of devices.
The proposed method uses Neighbor Discovery messages with some enhancements to the existing protocol. In particular, the method uses Neighbor Discovery messages for Service Address configuration, device status updates and Service Address Requests for particular service types. Service Addresses are

communicated to the devices using Router Advertisements. Devices use Neighbor Advertisements for deleting/ invalidating/marldng as busy their link-layer address entries in the Router/Gateway. A Router Solicitation message, with a newly defined Service Address Request Option, is sent by devices to request a Service Address for a particular service. However, the method does not violate the standards or the interoperability with other devices.
Using this technique, a number of data/voice/video servers can be installed at one location with a single serving address. Fig 1 and Fig 2 show two applications of the invention.
Figure 1 shows how data/video service is provided by multiple devices behind an access router connected to the internet. Figure shows the setup for providing a video service at a site. The setup consists of an access router and multiple devices within the site providing the video service. The access router is connected to the internet and also acts as a router for the devices within the network. The devices are all vi/ithin the site and provide video service at a single Service Address. Figure 2. depicts a home networking environment. Multiple devices in a home like cell phone, video phone, PDA, personal computer etc are connected to the internet through a home gateway .Figure shows a home netwoil^ing environment where many devices in a home are connected to the internet through a home gateway. All the devices within the home could be providing voice service at a single service number known to the outside world. By doing this, one can receive more than one telephone call at the service number at the same time. Any call to this number will be handled by the next free voice device in the network. If the video phone and IP phone are busy when a call arrives, the cell phone could service the call.
This technique is NOT a replacement for existing methods that provide similar service at an address from multiple devices. This is a layer-3 technique and therefore it can work in conjunction with other existing methods and applications at upper layers. For example, using this technique and SIP, one can reach an available device at home and the other free device in the office. Figure 3. is a sequence diagram depicting how the proposed method works. The

p^cuter/Gateway constructs a unique Service Address. It then assigns the address to devices interested in providing the con-esponding service and also updates the Service Address in DNS. When the Router/Gateway receives a packet destined to the sen/ice URL, it looks up the DNS to get the corresponding Service Address. The router then does a device discovery and chooses a free device to which it fonvards the request packet. The response from the device must use the device"s unicast address as source address and the Service Address in Home Address Option. Further communication between the client and device uses the device"s unicast address.
Figure gives an overview of how the invention works in practice. For every service, the Router/Gateway creates a unique Service Address and assigns this address to a set of devices that can provide this service. At periodic intervals, devices configured with this address, update the Router/Gateway with their current status. The Router/Gateway maintains the status of all devices providing this service. It registers this Service Address and the corresponding service URL with the DNS. On receiving a request for this service from some client, the Router/Gateway looks up the URL in the DNS. The Router/Gateway then initiates the address resolution process for the Service Address returned by DNS. After resolving the Service Address, It fonwards the request to one of the free devices. This device will then respond with its unicast address as the source address and Service Address in the Home Address Option. Further communication between the client and the device can proceed with the device"s unicast address. Each of the above mentioned steps are explained in detail in figure 1.
ADDRESS ASSIGNMENT
IPv6 defines both a stateful and stateless address autoconfiguration mechanism. The stateless mechanism allows devices to generate their addresses using information advertised by routers. In the stateful mechanism, devices obtain interface addresses and/or configuration information from a server like a DHCPv6 server.

"+he Router/Gateway obtains/generates a unique Service Address for every service provided by the site. If it uses a stateful mechanism, the Service Address would be obtained from a server like DHCPv6 server. A detailed description of DHCPv6 protocol is provided in [DHCPV6].
In the stateless case, after obtaining prefixes from a service provider/organization, the Router/Gateway constructs a unique Service Address using stateless address autoconfiguration described in [ADDRCONF]. Although the autoconfiguration process specified in [ADDRCONF] applies only for hosts, the Router/Gateway could use a similar process for configuring Service Addresses. After obtaining/generating a unique Service Address for a service, the Router/Gateway registers this service and Service Address with the DNS.
According to the Neighbor Discovery Protocol, the Router/Gateway will send out Router Advertisement messages periodically, or in response to a Router Solicitation message. These Router Advertisements will now carry Service Addresses in addition to prefixes, link parameters etc. For this purpose, a new option called Service Address Option is defined by this method. The format of the Service Address Option is as shown in Figure 4, Figure 4 shows the format for the Service Address Option, which is defined for the Router Advertisement message by this invention. Router Advertisements from the Router/Gateway contain the Service Address Option for every Service Address configured at the Router/Gateway,
Fields:

Type 8-bit identifier of the type of option
Option Name Type
Service Address Option 10 (Only for example)
Length 8-bit unsigned integer. The length of the option (including the type and length fields) In units of 8 octets. The value of 0 is invalid. Nodes must silently discard an ND packet that contains an option with length 0.

"Reserved 8-bit unused field. It must be initialized to 0 by the sender and MUST be ignored by the receiver.
Life Time 32-bit unsigned integer. The length of time in seconds (relative to the time the packet is sent) that the Service Address contained in this option is valid. A value of all one

bits (Oxffffrfff) represents infinity.
Refresh Interval 16-bit unsigned integer. The length of time in milliseconds between two successive Service Address Refresh Requests. It is also the time between configuring Service Address and sending the first Neighbor Advertisement for this Service Address, A Service Address Refresh Request is sent from the devices to the Router/Gateway to inform the Router/Gateway that the device still provides the service.
Service Type 16-bit unsigned integer which gives the type of service like video service, voice service, http service etc being provided by this Service Address.
Reserved 32-bit unused field. It must be initialized to 0 by the sender and MUST be ignored by the receiver.
Service Address 128-bit IPv6 address. It is the address being advertised by the Router/Gateway which must be configured by all devices interested in providing this service. Duplicate Address Detection must NOT be performed for this address. This is also the address registered with DNS for the corresponding service type.
When the IPv6 layer in a device, which is capable of and interested in providing the advertised service, receives a Router Advertisement with the Service Address Option, it configures itself with the Sen/ice Address. The entire process of address assignment is depicted in Figure 5.
Figure 5 shows the process of address assignment. The Router/Gateway

constructs a unique Service Address and advertises it to the devices in the network using Router Advertisement. Devices interested in providing the service w/lll configure the advertised Service Address
To insure all configured addresses are likely to be unique on a given link, nodes njn a "Duplicate Address Detection" algorithm on addresses before assigning them to an interface. Duplicate Address Detection must NOT be performed for Service Addresses. A timer, for sending Service Address Refresh Request, must be started with the timeout value set to the refresh interval, IPv6 layer requires capability updates from applications indicating their ability to provide some service. A special API must be provided to applications for doing this. For special purpose devices, capabilities can be hard-coded.
DEVICE DISCOVERY - ADDRESS RESOLUTION
When a request for a service arrives at the Router/Gateway, the Router/Gateway recognizes the destination address as a Service Address and initiates the process of address resolution. The Router/Gateway would have a list of all the configured addresses. For the Router/Gateway to determine the destination address as a Service Address, each configured Service Address must be marked with some flag denoting that it is a Service Address,
The Router/Gateway maintains a Service Address Neighbor Caclie for alt services provided by the network. Fig 6 shows a possible data structure organization for a Sen/ice Address Neighbor Cache, The Router/Gateway maintains a Service Address Neighbor Cache for all services provided by the network It consists of a list of Service Address entries. Each Service Address entry pertains to a single sen/ice and consists of the corresponding Service Address, a list of link-layer addresses for devices that provide this service but are currently busy and another list of link-layer addresses for devices that provide this service and are currently free. Each device entry also has an associated priority for the device. Details regarding how this cache is populated are given in the sections on "Service Address Refresh Request

from Devices" and "Neighbor Advertisement Processing at Router/Gateway" below.
Address resolution is the process through which a node determines the link-layer address of a neighbor given only its IP address. The process of address resolution of onlink IPv6 addresses is explained in section 7.2 of [NDP]. To resolve an IPv6 address, a node sends a Neighbor Solicitation for the address. It receives a Neighbor Advertisement from the neighbor which is configured with this address. The Neighbor Advertisement contains the link layer address for the target address.
However, a Service Address is NOT resolved like other IPv6 addresses. To resolve a Service Address, the Router/Gateway searches for this address in the Service Address Neighbor Cache. If the Service Address is found in the cache, the highest priority device in the free devices list is selected as the target. The Service Address resolves to the link layer address of this device. Also, the device entry for the device is moved from the free devices list to the busy devices list.
If the Service Address is found in the cache but there are currently no free devices to service the request, the request is forwarded to one of the preferred devices. The preferred device will then decide the response based on the service type. However, if the Service Address is NOT found in the cache, the address resolution fails. In this case, the Router/Gateway must respond with an appropriate ICMP message,
SERVICE ADDRESS REFRESH REQUEST FROM DEVICE
When a device, which is capable of and interested in providing a service, receives a Router Advertisement with the Service Address Option, it configures itself with this address. A device that configures itself with a Service Address must send its availabiiity status fronn time to time. Such an update is called a Service Address Refresh Request.
Figure 7 details the Service Address Refresh process. Devices that are configured with a Service Address send periodic Neighbor Advertisements to refresh their Service Address. A new flag, called Delete flag, defined in Neighbor

Advertisements, is set or cleared according as the device is busy or free. The Router/Gateway updates the device list based on the received Neighbor Advertisements, Figure 7 shows how and when Service Address Refresh Requests are sent. For supporting the sending of device status updates, a new flag is defined for Neighbor Advertisement messages by this invention. This flag, called the Delete flag, is set or cleared to indicate the busy/free status of a device.
Figure 8 shows a Neighbor Advertisement message with the delete flag set. Such a Neighbor Advertisement is sent by a device periodically to indicate that the device is currently busy. The delete flag is defined by this invention and is not present in Neighbor Advertisement message defined by [NDP], Figure shows the format of a Neighbor Advertisement with the newly defined Delete flag. Service Address Refresh Requests are Neighbor Advertisement messages with or without the Delete flag set. They are sent from the devices every Service Address Refresh Inten/al milliseconds.
The Service Address Option contains a Refresh Interval field. This field specifies the interval between successive Service Address Refresh Requests. When the device receives the Router Advertisement with the Service Address Option, it starts a timer for sending Service Address Refresh Requests. The timeout for this timer must be set to the Refresh Interval field in the Sen/Ice Address Option. To avoid sending a Service Address Refresh Request at the same time as other devices (configured with the same Service Address), the device waits for a small random interval after the timeout before sending out the Neighbor Advertisement.
NEIGHBOR ADVERTISEMENT PROCESSING AT ROUTER/GATEWAY
When a valid Neighbor Advertisement is received at the Router/Gateway with a Service Address in the Target Address field, the processing is done as given below.
• The Service Address Neighbor Cache is searched for the target"s entry i.e. the entry for the Service Address in the target address.
• If no entry exists, the advertisement must be silently discarded.

• If the delete flag in the Neighbor Advertisement is set, it indicates that the device is currently busy. If no entry exists for this device in the Service Address Neighbor Cache, one is added in the busy devices list. If the entry for the device is already present in the busy list, it must be retained and if the entry is already present in the free list, it must be moved to the busy list.
• If the delete flag in the Neighbor Advertisement is NOT set, it indicates that the device is currently free. If no entry exists for this device in the Service Address Neighbor Cache, one is added in the free devices list. If the entry for the device is already present in the free list, it must be retained and if the entry is already present in the busy list, it must be moved to the free list.
The Router/Gateway could receive multiple unsolicited Neighbor Advertisements for the same Service Address. All these Neighbor Advertisements are processed as mentioned above. These changes require enhancements at the Router/Gateway for Neighbor Advertisement processing.
DEVICE AVAILABILITY UPDATE
Applications need to be provided with an API to the IPv6 layer for informing about their availability status. Through such an API, service applications must be able to indicate whether they are busy or free. When a service application indicates its status to the IPv6 layer, the IPv6 layer must send a Neighbor Advertisement to the Router/Gateway to update the device status there. The Neighbor Advertisement must contain the Service Address in the Target Address field and the (ink layer address of the device in the Target Link Layer Address option. If the Neighbor Advertisement must indicate the device status as busy, the Delete flag must be set. Figure 9 shows how the Router/Gateway is updated about a device"s availability. Application informs layer-3 about its status using an API. A Neighbor Advertisement Is sent to the Router/Gateway with the status indicated by the application. The Router/Gateway updates its device list to reflect the device"s availability status.
Suppose there are devices in an IPv6 network providing a video service. Assume that the next request for a video service at the Router/Gateway selects a certain

device K. After the request arrives at device K, the video service application would want to indicate to the Router/Gateway that it is now busy. The video application would inform the IPv6 layer at the device using this API. The device would then send a Neighbor Advertisement for the Service Address to the Router/Gateway with the delete flag set. The Router/Gateway would then move the device"s entry from the free devices list to the busy devices list. After the request is completely processed, the application would indicate its free status to the IPv6 layer. The device would send a Neighbor Advertisement for the Service Address to the Router/Gateway without the Delete flag set. Finally, the Router/Gateway would move the device"s entry from the busy devices list to the free devices list.
NEW DEVICE IN THE HOME
When a new device comes up in the network or when the IPv6 layer receives a capability update from a service application, the IPv6 layer sends a Router Solicitation to the Router/Gateway. If the Router/Gateway supports one or more services, it sends a Neighbor Advertisement with a Service Address Option for every Service Address configured at the Router/Gateway. The device will then configure the Service Address in addition to processing the Neighbor Advertisement normally. Again, the device must NOT perform Duplicate Address Detection on the configured Service Address (es). Finally, the device sends a Neighbor Advertisement to the Router/Gateway to update the device status. The Neighbor Advertisement must contain the Service Address in the Target Address field and the link layer address of the device in the Target Link Layer Address option.
Figure 10 is a sequence diagram that details the steps involved when a new device comes up in the network. The device sends a Router Solicitation and receives a Router Advertisement. If the RA contains the Sen/ice Address for a service which the device is interested in, it configures itself with that Service Address. The device then sends a Neighbor Advertisement with this Service Address and its link-layer address. The Router/Gateway then updates its device list with the new device"s link-layer address.

An API must be provided for Service Applications to give capability updates to iayer-3 for configuring Service Addresses. For special purpose devices, the capability updates could be hard-coded.
REQUESTING A PARTICULAR SERVICE
An application could request a device to obtain the Service Address for a particular service. This case could arise if a device which did not support a particular service, wanted to start supporting it. It could also arise when a device, which did not support any service earlier, wanted to support a particular service. For example: Suppose there is a device K in the network that supports voice service only. Assume there are other devices in the network that support a video service. If a video application on device K wishes to enable the video service on it, it would indicate its capability to the IPv6 layer through an API. In this case, an RS would be sent out to the Router/Gateway with the Service Address Request Option.
Figure 11 depicts how a device can request for a Service Address. A device that is interested in providing a particular service sends a Router Solicitation with the Service Address Option. The Router/Gateway replies with the Service Address in its Router Advertisement. The device then configures itself with this Service Address and sends a Neighbor Advertisement with the Service Address and its link-layer address. Finally, the Router/Gateway updates its device list with this device"s link-layer address.
An application on a device indicates its capability to support a particular service through an API. The IPv6 layer of the device then sends a Router Solicitation with the Service Address Request Option, This option tells the Router/Gateway that the device wishes to support the service given in Service Type and requests the Router/Gateway for a Service Address to configure on the device.
Figure 12 depicts the format of the Service Address Request Option, which is

defined for the Router Solicitation message by this invention. For every service supported by a device, a Router Solicitation is sent with this option.
The Service Type field indicates the type of service that the device wishes to support. The Router/Gateway responds to the Service Address Request with a Router Advertisement. This Router Advertisement would contain one or more Service Addresses for the requested Service Type in Service Address Options. The format of the Service Address Option is shown in Fig 4.
After receiving the Router Advertisement with Service Address Option(s), the device configures itself with the Sen/ice Address(es) provided in the option(s). Again, Duplicate Address Detection is NOT performed while configuring Service Addresses. After configuring a Service Address, the device sends a Neighbor Advertisement to the Router/Gateway to update the device status for this Service Address at the Router/Gateway. The Neighbor Advertisement must contain the Service Address in the Target Address field and the linlt layer address of the device in the Target Link Layer Address option. The IPv6 layer at the Router/Gateway updates the status of the device in its Service Address Neighbor Cache.
In the description herein, numerous specific details are provided, such as examples of components and/or methods, to provide a thorough understanding of embodiments of the present invention. One skilled in the relevant art will recognize, however, that an embodiment of the invention can be practiced without one or more of the specific details. In other instances, well-known operations are not specifically shown or described in detail to avoid obscuring aspects of embodiments of the present invention.
It will also be appreciated that one or more of the elements depicted in the drawings / figures can also be implemented in a more separated or integrated manner, or even removed or rendered as inoperable in certain cases, as is useful in accordance with a particular application.

The foregoing description of illustrated embodiments of the present invention, including what is described in the Abstract, is not intended to be exhaustive or to limit the invention to the precise forms disclosed herein. While specific embodiments of, and examples for, the invention are described herein for illustrative purposes only, various equivalent modifications are possible within the spirit and scope of the present invention, as those skilled in the relevant art will recognize and appreciate. As indicated, these modifications may be made to the present invention in light of the foregoing description of illustrated embodiments of the present invention and are to be included within the spiht and scope of the present invention.
Thus, while the present invention has been described herein with reference to particular embodiments thereof, a latitude of modification, various changes and substitutions are intended in the foregoing disclosures, and it will be appreciated that in some instances some features of embodiments of the invention will be employed without a corresponding use of other features without departing from the scope and spirit of the invention as set forth. Therefore, many modifications may be made to adapt a particular situation to the essential scope and spirit of the present invention. It is intended that the invention not be limited to the particular terms used in following claims, but that the invention will include any and all embodiments and equivalents faWing within the scope of the appended claims.

REFERENCES
[IPV6]
Deering S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", RFC 2460, December 1998.
[ADDR-ARCH]
Hinden, R., and S. Deering, "Internet Protocol, Version 6 {IPv6) Addressing Architecture", RFC 3513, April 2003.
[DNS]
P. Mockapeths, "Domain Names - Implementation and Specification", RFC 1035, November 1987.
[DNS SRV]
Gulbrandsen A., Vixie P., L. Esibov, "A DNS RR for specifying the location of services (DNS SRV)", RFC 2782, February 2000.
[SIP]
Rosenberg, J., Schulzhnne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks. R., Handley, M., E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002.
[DHCPV6]
Droms, R., Editor, Bounds, J., Volz, B., Lemon, T., Perkins, C, M. Carney, "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)", RFC 3315, July 2003.
[NDP]
Narten, T., Nordmark, E. and W.Simpson, "Neighbor Discovery for IPV6",
RFC 2461, December 1998. [ADDRCONF]
Thomson, S., T. Narten, "IPV6 Stateless Address Autoconfiguration", RFC
2462, December 1998. [ANYCAST]
Partridge, C, Mendez, T. and W. Milliken, "Host Anycasting Service", RFC
1546, November 1993.

GLOSSARY OF TERMS AND THEIR DEFINITIONS
Anycasting
Sending out an IPv6 packet to Anycast Address (i.e. with the destination address as Anycast Address). Anycast Address
An identifier for a set of interfaces (typically belonging to different nodes). A packet sent to an Anycast Address is delivered to one of the interfaces identified by that address (the "nearest" one, according to the routing protocol"s measure of distance). Device Availability Update
This term is defined by the invention. It refers to an update from a device to the Router/Gateway indicating its current status. The update is in the form of a Neighbor Advertisement with or without the Delete flag set to indicate the busy or free status of the device. DHCPv6
Dynamic Host Configuration Protocol for !Pv6 - [DHCPVe]. DNS
Domain Name System - [DNS], DNS SRV
It is a DNS Resource Record (RR) for specifying the location of services. The SRV RR allows administrators to use several servers for a single domain, to move services from host to host with little fuss, and to designate some hosts as primary servers for a service and others as backups. Clients ask for a specific service/protocol for a specific domain and get back the names of any available servers - [DNS SRV] Duplicate Address Detection
It is the process of determining the uniqueness of an IPv6 unicast address on alink-[ADDRCONF] Home Address Option
The Home Address Option is carried by the Destination option extension header. In Mobile IPv6 context, it is used in a packet sent by a mobile node

IPv4
IPv6

while away from home, to inform the recipient of the mobile node"s home address. However, in the context of this invention, it is used in a packet sent by a device while replying to a request on a Service Address, to inform the recipient of the Service Address.
Internet Protocol Version 4
Internet Protocol Version 6

ISP
Internet Service Provider. Neighbor Advertisenfient
It is sent in response to a Neighbor Solicitation message. A node may also send unsolicited Neighbor Advertisements to announce a link-layer address change. In the context of this invention, a Neighbor Advertisement is also used to send device availability updates.
Neighbor Discovery
Nodes use Neighbor Discovery to determine link-layer addresses for neighbors known to reside on attached links and purge invalid cache values. Hosts use Neighbor Discovery to find neighboring routers that are willing to forward packets on their behalf. Nodes use the Neighbor Discovery to keep track of which neighbors are reachable and which are not, and to detect changed link-layer addresses - [NDP],
Neighbor Solicitation
Neighbor Solicitation is sent by a node to determine the link-layer address of a neighbor or to verify that a neighbor is still reachable via a cached link-layer address. Neighbor Solicitations are also used for Duplicate Address Detection.
Router Advertisement
Routers advertise their presence together with various link and Internet parameters either periodically, or in response to a Router Solicitation message. Router Advertisements contain prefixes that are used for on-link

determination and/or address configuration, a suggested hop limit value, etc. in the context of this invention, a Router Advertisement could also carry Service Address in Service Address Option.
Router Solicitation
When an interface becomes enabled, hosts may send out Router Solicitations that request routers to generate Router Advertisements immediately rather than at their next scheduled time. In the context of this invention, a Router Solicitation could also carry a Service Address Request option.
Router/Gateway
In the context of this invention, Router/Gateway for a Service refers to an IPv6 Router on the link that
• Is configured with one or more Service Addresses for the Service.
• Advertises these Service Addresses to the devices on the link
• Maintains the status of all devices providing this service
• Receives a packet destined to a Service Address and forwards it to one of the free devices.
• Incorporates all the enhancements in the IPv6 layer required by this invention.
Service Address
It is an IPv6 unicast address that can be assigned to more than one node on the same link. It is the address being advertised by the Router/Gateway which must be configured by all devices interested in providing the corresponding service. Duplicate Address Detection must NOT be performed for this address. This is also the address registered with DNS for the corresponding service type.
Service Address Neiglibor Cache
The Router/Gateway maintains a Service Address Neighbor Cache for all services provided by the network. It consists of a list of Service Address entries. Each Service Address entry pertains to a single service and consists of the corresponding Service Address, a list of link-layer addresses for devices that provide this sen/ice but are currently busy and another list of

link-layer addresses for devices that provide this service and are currently free. Each device entry also has an associated priority for the device.
Service Address Option
It is a new option defined by this invention. The Service Address Option is used to carry Service Address in Router Advertisements. In addition to Service Address, it also contains the lifetime for the address, the refresh interval for the address and the corresponding Service Type.
Service Address Refresh Request
A device that configures itself with a Service Address must send its availability status to the Router/Gateway from time to time. Such an update is called a Service Address Refresh Request.
Service Address Request
It is a request sent by a device to the Router/Gateway in order to obtain the Service Address for a particular service. This request is carried in a Router Solicitation message with the Service Address Request Option,
Service Address Request Option
It is a new option defined by the invention. The Service Address Request Option is defined for Router Solicitation messages. This option tells the Router/Gateway that the device wishes to support the service given in Service Type and requests the Router/Gateway for a Service Address to configure on the device.

SIP
URI
VoIP

Session Initiation Protocol (SIP), described in [SIP], is an application-layer signaling protocol for creating, modifying and terminating sessions with one or more participants.
URIs are defined as sequences of characters chosen from a limited subset of the repertoire of ASCII characters both for transmission in network protocols and representation in spoken and written human communication.
Voice over Internet Protocol - the practice of packet based networks instead of the standard public switched telephone network to send voice data.


WE CLAIM
1. A method for providing service at a single address in a network which comprises a Router/Gateway and two or more devices, the said method comprising the steps of:
(a) At the Gateway/Router:
(i) Creating an unique Service Address
(ii) registering the Service Address with the Domain Name System with
the corresponding name;
(iii) assigning the said Service Address to the connected devices;
(iv) get the corresponding Service Address from DNS , When the
Router/Gateway receives a packet destined to the service URL;
(v) identifying the devices that are configured with this Service Address
and their status;
(vi) sending the packet to a device that is not busy
(b) At the device
(j) constituting the Service Address apart from its global and other
addresses; (ii) notifying the Gateway/Router about its availability to provide the
service; (iii) receiving a packet that is destined for Service Address and giving
response with its Anycast address using Home Address Option,
2 A method as claimed in claim 1, further comprising, communicating the Service Address using Router Advertisement, the corresponding Service and refresh interval.
3. A method as claimed in claim 1 wherein Router Advertisements from the Router/Gateway contain the Service Address Option for every Service Address configured at the Router/Gateway,

4. A method as claimed in claim 1 wherein when one of the devices, which is capable of and interested in providing the advertised service, receives a Router Advertisement with the Service Address Option, it configures itself with the Service Address
5. A method as claimed in claim 1 wherein Duplicate Address Detection is performed for all configured addresses except for Service Addresses.
6. A method as claimed in claim 1, wherein the step of identifying the devices that constitute the Service Address comprises:
(a) resolving Service Address to MAC addresses of the devices;
(b) receiving multiple responses from the devices through Neighbor
Advertisements (NAs); and
(c) maintaining a list of MAC addresses corresponding to the Service
Address in the order of preference.
7. A method as claimed in claim 1, further comprising the steps of, Gateway/Router maintaining a timer for each device and deleting the entry if there is no refresh request from the device.
8. A method as claimed in claim 1 wherein the Router/Gateway maintains a Service Address Neighbor Cache for all services provided by the network
9. A method as claimed in claim 1 wherein Service Address Neighbor Cache consists of a list of Service Address entries where each Service Address entry pertains to a single service and consists of the corresponding Service Address, a list of link-layer addresses for devices that provide this service which are currently busy and another list of link-layer addresses for devices that provide this service and are currently free.
10. A method as claimed in claim 9 wherein each device entry has an

associated priority for the device.
11. A method as claimed in claim 1 wherein to resolve a Service Address, the Router/Gateway searches for this address in the Service Address Neighbor Cache and when the Service Address is found in the cache, the highest priority device in the free devices list is selected as the target and the Service Address resolves to the link layer address of this device then the device entry for the device is moved from the free devices list to the busy devices list.
12. A method as claimed in claim 1 wherein when the Service Address Is found in the cache but there are currently no free devices to service the request, the request Is forwarded to one of the preferred devices.
13. A method as claimed in claim 12 wherein when the request is forwarded to the preferred device the preferred device will then decide the response based on the service type and if the Service Address is NOT found in the cache, the address resolution fails and the Router/Gateway respond with an appropriate ICMP message.
U.Amethod as claimed in claim 1 wherein when a device, which is capable of and interested in providing a service, receives a Router Advertisement with the Service Address Option, it configures itself with this address and send its availability status from time to time using a Service Address Refresh Request.
15. A method as claimed in claim 1 wherein for supporting the sending of device status updates, a new flag is defined for Neighbor Advertisement messages and this flag, is set or cleared to indicate the busy/free status of a device.
16. A method as claimed in claim 1 wherein Service Address Refresh

Requests are sent from the devices every Service Address Refresh
Interval milliseconds.
17. A method as claimed in claim 1 wherein to avoid sending a Service Address Refresh Request at the same time as other devices the device waits for a small random interval after the timeout before sending out the Neighbor Advertisement.
18.A method as claimed in claim 1 wherein when a valid Neighbor Advertisement is received at the Router/Gateway with a Service Address in the Target Address field,
(a) the Service Address Neighbor Cache is searched for the target"s entry;
(b) the advertisement silently discarded if no entry exists;
(c) if the delete flag in the Neighbor Advertisement is set, it indicates that
the device is currently busy and any of the following step is performed:
(i) if no entry exists for this device in the Service Address Neighbor
Cache, one is added in the busy devices list.
(ii) if the entry for the device is already present in the busy list, it is
retained and
(iii) if the entry is already present in the free list, it must be moved
to the busy list.
(iv) if the delete flag in the Neighbor Advertisement is NOT set, it
indicates that the device is currently free and any of the following
step is performed:
(v)lf no entry exists for this device in the Service Address Neighbor
Cache, one is added In the free devices list.
(vi)lf the entry for the device is already present in the free list, it
must be retained and
(vii) if the entry is already present in the busy list, it must be moved
to the free list.

F9.A method as claimed in claim 1 wherein Router/Gateway is updated about a device"s availability comprising the steps of:
a. application informing layer-3 about its status using an API;
b. a Neighbor Advertisement is sent to the Router/Gateway with the status
indicated by the application; and
c. the Router/Gateway updates its device list to reflect the device"s
availability status.
20, A method as claimed in claim 1 wherein when a new device comes up in the network:
i) the device sends a Router Solicitation and receives a Router Advertisement and this advertisement contains the Service Address for a service which the device is interested in, and it configures itself with that Service Address;
ii) the device then sends a Neighbor Advertisement with this Service Address and its link-layer address; and
tii) the Router/Gateway then updates its device list with the new device"s link-layer address.
21. A method as claimed in claim 1 wherein a device can request for a Service Address comprising the steps of;
a. The device that is interested in providing a particular service sends a
Router Solicitation with the Service Address Option;
b. the Router/Gateway replies with the Service Address in its Router
Advertisement;
c. the device configures itself with this Service Address and sends a
Neighbor Advertisement with the Service Address and its llnk-tayer
address; and

d. the Router/Gateway updates its device list with this device"s link-layer address.
22. A method as claimed in claim 1 wherein the said method is a layer-3 technique which works in conjunction with any application / signaling protocol like SIP and is a plug and play method which requires almost zero-configuration after installation.
23- A system for providing service at a single address from multiple devices comphsing a Router/Gateway and two or more devices and the said Router/Gateway comprising.
i. a Service Address management means for constructing,
advertising this address to the devices, discovering the devices that
have configured the said Service Address;
ii. a packet receiving element means for receiving the packets
destined for a Service Address, determining a free and preferable
device and forwarding the packet to that device;
iii. a service Address Neighbor Cache Management means for
maintaining the list of devices, their preferences and the corresponding
status;
iv. a service Address management function in DHCPv6,
and said device comprising:
(j) a service Address management means for requesting a Service Address
using Router Solicitation, receiving a Service Address using the Router
Advertisements and assigning the Service Address to the device interface,
refreshing its willingness to provide the service further; (ii) an Application Service element in IPv6 layer for applications to inform their
service capability, to initiate to get a Service Address and to invalidate the
MAC entry in the router when the application is busy; (iii) a Service Address management function in DHCPvB for requesting the
Service Address.

24. A method for providing service at a single address from multiple devices
comprising a Router/Gateway and two or more devices such as substantially
herein described particularly with reference to the accompanying drawings.
25. A system for providing service at a single address from multiple devices
comprising a Router/Gateway and two or more devices such as substantially
herein described particularly with reference to the accompanying drawings.

Documents:

1479-che-2004 abstract-duplicate.pdf

1479-che-2004 abstract.pdf

1479-che-2004 claims-duplicate.pdf

1479-che-2004 claims.pdf

1479-che-2004 correspondences-others.pdf

1479-che-2004 correspondences-po.pdf

1479-che-2004 description (complete)-duplicate.pdf

1479-che-2004 description (complete).pdf

1479-che-2004 drawings duplicate.pdf

1479-che-2004 drawings.pdf

1479-che-2004 form-1.pdf

1479-che-2004 form-13.pdf

1479-che-2004 form-19.pdf

1479-che-2004 form-26.pdf

1479-che-2004 form-5.pdf


Patent Number 216481
Indian Patent Application Number 1479/CHE/2004
PG Journal Number 13/2008
Publication Date 31-Mar-2008
Grant Date 13-Mar-2008
Date of Filing 31-Dec-2004
Name of Patentee SAMSUNG INDIA SOFTWARE OPERATIONS PRIVATE LIMITED
Applicant Address BAGMANE LAKEVIEW, BLOCK B, NO. 66/1, BAGMANE TECH PARK, C V RAMAN NAGAR, BYRASANDRA, BANGALORE - 560093,
Inventors:
# Inventor's Name Inventor's Address
1 SYAM MADANAPALLI BAGMANE LAKEVIEW, BLOCK B, NO. 66/1, BAGMANE TECH PARK, C V RAMAN NAGAR, BYRASANDRA, BANGALORE - 560093,
PCT International Classification Number H04L 12/56
PCT International Application Number N/A
PCT International Filing date
PCT Conventions:
# PCT Application Number Date of Convention Priority Country
1 NA