INTERNET-DRAFT Ivan Lovric ICP Working Group France Telecom October 21, 1999 Expires: April 22, 2000 draft-lovric-icp-ext-02.txt Internet Cache Protocol Extension Status of this Memo This document is an Internet-Draft and is in full conformance with all the provisisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress". The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Drafts Shadow Directories can be accessed at http://www.ietf.org/shadow.html . Abstract ICP (see [RFC2186]) is a protocol allowing standardized communication management between caches. This document describes an extension to the ICP protocol whose aim is to reach the following three goals : - locating requested data more efficiently among a cache hierarchy, - reducing network traffic between caches by exchanging compressed data over different protocols, - offering a suitable protocol for the forthcoming techniques of push and intelligent prefetching. Table of contents 1. Introduction......................................................2 2. Terminology.......................................................3 Lovric [Page 1] INTERNET-DRAFT Internet Cache Protocol Extension October 1999 3. New OP codes......................................................4 3.1 ICP_OP_SET_INF...................................................4 3.2 ICP_OP_SET.......................................................5 3.3 ICP_OP_SET_OBJ...................................................6 3.4 ICP_OP_SET_TAB_INF...............................................7 3.5 ICP_OP_SET_TAB...................................................8 3.6 ICP_OP_SET_TAB_OBJ...............................................9 3.7 ICP_OP_GET_INF..................................................10 3.8 ICP_OP_INF......................................................10 4. New ICP Option Flags.............................................11 5. Security.........................................................13 6. Format of a list of URLs file ...................................13 6.1 Format description..............................................13 6.2 Example.........................................................14 7. Conclusion.......................................................14 8. References.......................................................15 9. Authors' Address.................................................15 1. Introduction The ICP protocol allows communication between a hierarchy of caches by transmitting messages between the different caches making up this hierarchy. First of all, the messages transmitted by a cache to locate a specific object are sent to sibling caches which are placed at the same level in the hierarchy. Then, the caches placed at the upper level are queried if the replies from sibling caches did not succeed. The disadvantage of this communication system between caches resides in the large number of messages sent to sibling and upper level caches in order to find a particular object, but without being sure to find it among the whole hierarchy. This large number of messages generates a supplemental network load which reduces network capabilities. In order to limit the amount of query messages, it should be more convenient for each cache to know all or part of the content of other caches, thus permitting a faster way to locate the requested information. Lovric [Page 2] INTERNET-DRAFT Internet Cache Protocol Extension October 1999 Furthermore, the broadcasting technologies are evolving very fast. Satellite and multicast techniques make possible the emission of a unique information which will reach a lot of different receivers. Also, the recent arrival of artificial intelligence technologies on the net enables new intelligent prefetching solutions to be developped, so that information will be placed near the end users even before their request. The actual version of ICP does not offer a convenient way to push information between caches, and to take advantage of the forthcoming technologies. To be able to push data between caches, it should be useful to remotely command a cache in order to modify its content, and to take advantage of compression techniques, so that the amount of network traffic necessary to push objects could be limited. All these elements work towards the necessity to extend the ICP protocol in order to permit better interactivity between the different caches that cooperate within the hierarchy . For each cache, this interactivity must result firstly in the knowledge of the content of other caches so that requested information could be efficiently located. Secondly, this interactivity must also result in the acceptance of commands from other caches which must be able to remotely update the content of a given cache. In order to optimize data transfer rates and to minimize network traffic, the hierarchical cache system built over ICP must be able to use the most efficient protocol for data transmission over a specific link, and must allow data compression. To reach these goals, new operation codes have been created that reuse the initial structure of ICP messages, thus preserving compatibility with protocol ICP-v2. 2. Terminology client cache: In this document, client cache represents the cache which is asked to process an insert or a delete command. Server cache: Server cache represents the cache which asks a client cache to process an insert or a delete command. URL : An Uniform Ressource Locator is used to locate resources, by providing an abstract identification of the resource location. (see [RFC1738]) alias : An alias is the duplication of a particular cached object. A new URL name is given to the alias, and the protocol used for accessing the alias can be different from the original protocol. The alias can be compressed to minimize storage space and network traffic. Lovric [Page 3] INTERNET-DRAFT Internet Cache Protocol Extension October 1999 object : Any kind of text or binary data which can be cached. Ressource : In this document, a ressource is equivalent to an object. MIME content-type : The MIME (Multipurpose Internet Mail Extensions, see [RFC1341]) content-type describes the format of a type of content for an object. In this document, the MIME content-type encoding is only used for compressed objects, so that the format can only fit in the form "application/subtype". 3. New Opcodes The following table shows the new ICP opcodes : Value Name ----- ------------------ 24 ICP_OP_SET_INF 25 ICP_OP_SET 26 ICP_OP_SET_OBJ 27 ICP_OP_SET_TAB_INF 28 ICP_OP_SET_TAB 29 ICP_OP_SET_TAB_OBJ 30 ICP_OP_GET_INF 31 ICP_OP_INF 3.1 ICP_OP_SET_INF This message informs the client cache that a cached URL is available on the server cache. The client cache can update its internal tables concerning the server cache content (similar to ICP_OP_ADVERTISE). The information supplied with the message also describes the possible existence of an alias and its compression method. ICP_OP_SET_INF payload format : 0 1 2 3 4 012345678901234567890123456789012 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / Null terminated URL / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / Null terminated URL for alias / / if flag ICP_FLAG_ALIAS / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | + / Null terminated MIME / / content-type if flag / / ICP_FLAG_COMPRESSED_ALIAS / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Lovric [Page 4] INTERNET-DRAFT Internet Cache Protocol Extension October 1999 If the flag ICP_FLAG_SET_DEL is set , then the server cache no longer holds the URL specfified within the message payload (similar to ICP_OP_UNADVERTISE). If the flag ICP_FLAG_ALIAS is set , then the URL is followed by the aliased URL within the payload. If the flag ICP_FLAG_COMPRESSED_ALIAS is set , then the object pointed to by the aliased URL is compressed. The compression method is described by the MIME content-type following the URL of the alias. 3.2 ICP_OP_SET This message is sent to ask the client cache for the delayed loading of a specific URL or for the delayed deletion of this URL on the client cache. ICP_OP_SET payload format : 0 1 2 3 4 012345678901234567890123456789012 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | delay + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | / Null terminated URL / / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | / Null terminated URL for alias / / if flag ICP_FLAG_ALIAS / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | + / Null terminated MIME / / content-type if flag / / ICP_FLAG_COMPRESSED_ALIAS / / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The maximum delay before the client cache loads the given URL, is indicated within the message as a 4-octet integer representing the time expressed in milliseconds. The delay counting starts when the client cache receives the message. If a null delay is given, the URL has to be immediately loaded by the client cache. If an alias is given, the client cache must load the alias located at the given URL for the alias. After loading, the alias is eventually decompressed, and must be renamed with the name of the original URL. If flag ICP_FLAG_SET_DEL is set, a delete command of the given URL must be processed within the indicated delay. Lovric [Page 5] INTERNET-DRAFT Internet Cache Protocol Extension October 1999 If the client cache does not allow insert or delete commands to be done, a message ICP_OP_DENIED must be sent with flags ICP_FLAG_DENY_INSERT or ICP_FLAG_DENY_DELETE set. If the client cache does not allow aliases to be processed, a message ICP_OP_DENIED must be sent with flag ICP_FLAG_DENY_ALIAS set. If the client cache does not allow compressed aliases to be processed, a message ICP_OP_DENIED must be sent with flag ICP_FLAG_DENY_COMPRESSION set. If the client cache does not support processing of the aliased URL protocol, or of the compression method, a message ICP_OP_ERR must be sent with flags ICP_FLAG_ERR_PROTOCOL or ICP_FLAG_ERR_COMPRESSED set. 3.3 ICP_OP_SET_OBJ This message is identical to ICP_OP_SET except that the object is directly included within the payload. In order to preserve compatibility with the previous version of ICP, the total size of the message must not exceed 16384 octets. ICP_OP_SET_OBJ payload format : 0 1 2 3 4 012345678901234567890123456789012 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | delay + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | / Null terminated URL / / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | + / Null terminated MIME / / content-type if flag / / ICP_FLAG_COMPRESSED_OBJ / / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | / Object / / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ If the flag ICP_FLAG_COMPRESSED_OBJ is set , then the object is compressed with the compression method included within the payload, located prior to the object. If the client cache does not allow objects to be included within Lovric [Page 6] INTERNET-DRAFT Internet Cache Protocol Extension October 1999 payload, a message ICP_OP_DENIED must be sent with flag ICP_FLAG_DENY_OBJ set. If the client cache does not allow included objects to be compressed, a message ICP_OP_DENIED must be sent with flag ICP_FLAG_DENY_COMPRESSION set. Remark : Before sending a compressed object, the server cache should verify that the client cache has enabled this functionnality to be processed, and is able to decompress the object, by sending a message ICP_OP_INF. 3.4 ICP_OP_SET_TAB_INF This message informs the client cache that a list of cached URLs is available on the server cache. By requesting this list at the given URL, the client cache can update its internal tables concerning the server cache content. An alias of the list, eventually compressed, may exist. The list of URLs is a text formatted object described in 5. Its URL is included within the message payload. ICP_OP_SET_TAB_INF payload format : 0 1 2 3 4 012345678901234567890123456789012 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | delay + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Required storage space (ko) + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Number of URLs| + +-+-+-+-+-+-+-+-+ + | | / Null terminated URL / / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | / Null terminated URL for alias / / if flag ICP_FLAG_ALIAS / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | + / Null terminated MIME / / content-type if flag / / ICP_FLAG_COMPRESSED_ALIAS / / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Lovric [Page 7] INTERNET-DRAFT Internet Cache Protocol Extension October 1999 If the flag ICP_FLAG_SET_DEL is set , then the list contains at least one URL that has been deleted on the server cache. If the list contains at least one URL pointing to an alias, then the flag ICP_FLAG_ALIAS_IN_LIST must be set. If the list itself is not aliased, but contains compressed aliases (flag ICP_FLAG_ALIAS unset, flag ICP_FLAG_ALIAS_IN_LIST set, flag ICP_FLAG_ALIAS_COMPRESSED set), then the compression method for aliases must be included within the payload. If the list is aliased and the alias is compressed (flag ICP_FLAG_ALIAS set and flag ICP_FLAG_COMPRESSED_ALIAS set), then the compression method for eventual compressed aliases within the list must be the same as the one used to compress the alias of the list. The required storage space (unit expressed in kilo-octets) give information to the client cache about the amount of space necessary to store all the objects pointed to by the URLs indicated in the list after decompression of compressed objects. The number of URLs in the list is indicated in a 2-octet field within the payload. 3.5 ICP_OP_SET_TAB This message is sent to ask the client cache for the delayed loading of a list of URLs and for the delayed loading of all the URLs within the list. ICP_OP_SET_TAB payload format : 0 1 2 3 4 012345678901234567890123456789012 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | delay + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Required storage space (ko) + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Number of URLs| + +-+-+-+-+-+-+-+-+ + / Null terminated URL / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | / Null terminated URL for alias / / if flag ICP_FLAG_ALIAS / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / Null terminated MIME / / content-type if flag / / ICP_FLAG_COMPRESSED_ALIAS / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Lovric [Page 8] INTERNET-DRAFT Internet Cache Protocol Extension October 1999 If the flag ICP_FLAG_SET_DEL is set , then the list contains at least one delete command to process on the client cache. If this flag is not set, and the list nevertheless contains delete commands, those commands must not be processed. If the client cache does not allow aliases whose URL is placed either in payload or in a list file to be processed, a message ICP_OP_DENIED must be sent with flag ICP_FLAG_DENY_ALIAS set. 3.6 ICP_OP_SET_TAB_OBJ This message is sent to ask the client cache for the delayed loading of a list of URLs. The list of URLs is included within the message and is formatted as decribed in 5. It may be compressed. ICP_OP_SET_TAB_OBJ payload format : 0 1 2 3 4 012345678901234567890123456789012 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | delay + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Required storage space (ko) + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Number of URLs| + +-+-+-+-+-+-+-+-+ + | + / Null terminated MIME / / content-type if flag / / ICP_FLAG_COMPRESSED_OBJ / / or flag / / ICP_FLAG_COMPRESSED_ALIAS / / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | / List of URLs / / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ If the flag ICP_FLAG_COMPRESSED_OBJ is set , then the list is compressed using the compression method included within the payload. If the flag ICP_FLAG_COMPRESSED_ALIAS is set , then the list contains compressed aliases. If the list contains compressed aliases and is itself compressed (flag ICP_FLAG_COMPRESSED_OBJ set and flag ICP_FLAG_COMPRESSED_ALIAS Lovric [Page 9] INTERNET-DRAFT Internet Cache Protocol Extension October 1999 set), then the compression method for aliases must be the same as the one used to compress the list. If the list contains compressed aliases and is itself not compressed (flag ICP_FLAG_COMPRESSED_OBJ unset and flag ICP_FLAG_COMPRESSED_ALIAS set), then the compression method for aliases is indicated within the payload format. 3.7 ICP_OP_GET_INF This message is sent to a client cache in order to obtain information about its capabilities and permitted commands. If the flag ICP_FLAG_SRC_RTT is set then the performance characteristics of the reply link need to be measured. This feature is particurlary useful to improve the peer selection algorithm even in the case of asymetrical links between two siblings which is actually a known problem of ICP. When receiving this message whith flag ICP_FLAG_SRC_RTT set, the client cache MUST immediately reply by sending two separate ICP_OP_INF messages with a transmit timestamp in the Option Data field. This timestamp is the time the client cache last touched the reply message on sending it. The message length of the second reply message MUST be twice the length of the first one by filling the payload with the appropriate number of spaces. When the server cache receives the two ICP_OP_INF replies from the client cache, it is then possible to calculate the latency and bandwidth of the return link from the client cache. The appropriate update of the peer selection algorithm SHOULD then be done. Requirements : To complete this feature, the ICP_OP_HIT message MUST be extended in order to return the size of the requested object in the Option Data field, so that the peer selection algorithm could choose the closest peer depending on the link characteristics and the size of the object. 3.8 ICP_OP_INF This OP code can be sent by a client cache in reply to an ICP_OP_GET_INF message, or directly, in order to inform other caches about operations which are supported. The different flags used for information are : - ICP_FLAG_ALLOW_INSERT - ICP_FLAG_ALLOW_DELETE - ICP_FLAG_ALLOW_COMPRESSION - ICP_FLAG_ALLOW_OBJ Lovric [Page 10] INTERNET-DRAFT Internet Cache Protocol Extension October 1999 - ICP_FLAG_ALLOW_ALIAS ICP_OP_INF payload format : 0 1 2 3 4 012345678901234567890123456789012 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Max available space for insert| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | / NULL terminated list of / / compression formats / / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / NULL terminated list of / / protocols / / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ If the flag ICP_FLAG_ALLOW_INSERT is set , then the maximum available space information (unit expressed in kilo-octets) indicates to the server cache the largest amount of uncompressed object storage space that can be currently inserted in the client cache. If the flag ICP_FLAG_ALLOW_COMPRESSION is set, then a list of the MIME content-types used for data compression that can be processed by the client cache will be included within the message. The different elements of this list are separated by a comma. An example of a list of supported data compression types (null terminated): application/x-gzip,application/x-tar,application/x-zip-compressed If the flag ICP_FLAG_ALLOW_ALIAS is set, then a list of the protocols that can be processed by the client cache will be included within the message. The different elements of this list are separated by a comma. An example of a list of protocols (null terminated): http,ftp,file 4. ICP Option Flags 0x00000010 ICP_FLAG_COMPRESSED_OBJ This flag indicates that the object joined to the message is compressed. 0x00000020 ICP_FLAG_SET_DEL This flag indicates that the message contains at least one delete command to process on the client cache. Lovric [Page 11] INTERNET-DRAFT Internet Cache Protocol Extension October 1999 0x00000040 ICP_FLAG_ALIAS This flag indicates that the message contains at least one alias. 0x00000080 ICP_FLAG_COMPRESSED_ALIAS This flag indicates that the message or list of URLs contains compressed aliases. 0x00000100 ICP_FLAG_ALIAS_IN_LIST This flag indicates that the list of URLs contains at least one URL pointing to an alias. 0x00000200 ICP_FLAG_ERR_PROTOCOL This flag indicates that the client cache does not process the protocol used for an URL or an aliased URL. 0x00000400 ICP_FLAG_ERR_COMPRESSED This flag indicates that the client cache does not process the compression method used for a compressed object. 0x00001000 ICP_FLAG_DENY_INSERT This flag indicates that the client cache does not allow insert commands from a server cache to be done. 0x00002000 ICP_FLAG_DENY_DELETE This flag indicates that the client cache does not allow delete commands from a server cache to be done. 0x00004000 ICP_FLAG_DENY_COMPRESSION This flag indicates that the client cache allows neither aliases nor payload included objects to be processed. 0x00008000 ICP_FLAG_DENY_OBJ This flag indicates that the client cache does not allow the server cache to include objects within messages ICP_SET_OBJ and ICP_SET_TAB_OBJ. 0x00010000 ICP_FLAG_DENY_ALIAS This flag indicates that the client cache does not allow aliases whose URL is placed either in payload or in a list file to be processed. 0x04000000 ICP_FLAG_ALLOW_INSERT This flag indicates that the client cache allows insert commands to be processed. 0x02000000 ICP_FLAG_ALLOW_DELETE This flag indicates that the client cache allows delete commands to be processed. 0x01000000 ICP_FLAG_ALLOW_COMPRESSION This flag indicates that the client cache allows compressed objects to be processed. 0x00800000 ICP_FLAG_ALLOW_OBJ This flag indicates that the client cache allows objects to be Lovric [Page 12] INTERNET-DRAFT Internet Cache Protocol Extension October 1999 included within messages ICP_OP_SET_OBJ and ICP_OP_SET_TAB_OBJ. 0x00400000 ICP_FLAG_ALLOW_ALIAS This flag indicates that the client cache allows aliases to be processed. When receiving an aliased URL, the client cache must, first of all decompress the alias it if it was compressed, and then rename it with the original name of the URL. 5. Security To provide strong integrity and authentication mechanisms during exchanges between server and client caches, the IP Security Architecture must be used with the IP Authentication Header (see [RFC1825] and [RFC1826]). 6. Format of a list of URLs file 6.1 Format description In the list file, URLs are stored hierarchically respecting the following tree: - protocol, - host, - port, - path, - file name To accelerate the location of a particular URL within the list, specfic weights have been applied to the different hierarchical levels : - 1 for protocol, - 2 for host - 3 for port, - 4 for path, - 5 for file name Each filename must be preceded by a command code : - N for No operation, is only used to inform the client cache about the content of the server cache - I to process an insert command on the client cache, - D to process a delete command on the client cache, or to inform it that a particular URL has been deleted on the server cache The file name may be followed by an URL which indicates the location of an alias. The alias may be compressed ; if so , the compression method is the same as the one indicated in the message payload. In the list file, the code to describe aliases is : - A for Alias - AC for Alias Compressed Lovric [Page 13] INTERNET-DRAFT Internet Cache Protocol Extension October 1999 Assuming that the http is the default protocol, and port 80 is the default port for http servers, the refering lines in the list file can be omitted. Remark : By this format specification, it is possible to use a protocol of type file:// for aliases. In this case, aliases can be directly accessed from the file system of the client cache. 6.2 Example To make the understanding of the format of a list of URLs file easier, the following example explains how the four URLs listed below should be formatted in the list file. A compressed alias of the object pointed to by the URL http://www.url1.org/index.html exists and is located at the URL ftp://ftp.url1.org/index.html.gz . - http://www.url1.org/index.html - http://www.url1.org/logo.gif - http://www.url2.com/dir2/file2.html - http://www.url2.com/dir2/file2.gif The list of URLs file should be : 1,http 2,www.url1.org 3,80 4,/ 5,I,index.html,AC,ftp://ftp.url1.org/index.html.gz 5,I,logo.gif 2,www.url2.com 3,80 4,/dir2/ 5,I,file2.html 5,I,file2.gif Refering to the fact that http is the default protocol and port 80 is the default port for http servers, an other form for the list file could be : 2,www.url1.org 4,/ 5,I,index.html,AC,ftp://ftp.url1.org/index.html.gz 5,I,logo.gif 2,www.url2.com 4,/dir2/ 5,I,file2.html 5,I,file2.gif 7. Conclusion This draft has described the ICP protocol extensions necessary to answer the current needs of network traffic management, and the next Lovric [Page 14] INTERNET-DRAFT Internet Cache Protocol Extension October 1999 needs of push technologies. It also demonstrates that ICP protocol can be extended because of its evolutional structure. So, new services will probably appear which will rely on the capabilities of this protocol. 8. References [RFC-1341] Borenstein, N., and N. Freed, "MIME (Multipurpose Internet Mail Extensions): Mechanisms for Specifying and Describing the Format of Internet Message Bodies", RFC 1341, Bellcore, June, 1992. [RFC1738] Berners-Lee, T., Masinter, L., and M. McCahill, "Uniform Resource Locators (URL)", RFC 1738, CERN, Xerox PARC, University of Minnesota, December 1994. [RFC1825] Atkinson, R., "Security Architecture for the Internet Protocol", RFC 1825, NRL, August 1995. [RFC1826] Atkinson, R., "IP Authentication Header", RFC 1826, NRL, August 1995. [RFC2186] D. Wessels, K. Claffy,``Internet Cache Protocol (ICP), version 2,'' RFC 2186, National Laboratory for Applied Network Research/UCSD, September 1997 9. Author's address Ivan Lovric France Telecom Centre National d'Etudes en Telecommunications 42, rue Coutures BP 6243 14066 Caen Cedex France Phone: +33 2 31 75 91 25 Fax: +33 2 31 73 56 26 E-mail: ivan.lovric@cnet.francetelecom.fr Lovric [Page 15]