Transition of IPv4 Network Applications to IPv6 Applications [TIPv4 toTIPv6] Hanumanthappa, J.1 and Manjaiah, D. H.2 1 Dos in Computer Science, University of Mysore, Manasagangothri, Mysore, 2Reader, Mangalore University, Mangalagangothri, Mangalore, Phone No: +91821-2419552; Fax: +91821-2510789, Fax: (91)(0824)2287567/2287424. Email: firstname.lastname@example.org; email@example.com Abstract besides adding new functionality. In addition to the upgrade to 128- bit addresses, the IPv6 In this Paper we discuss our experience for transition the packet format was redesigned in order to IPv4 network applications to IPv6 network applications. This overcome the limitations of IPv4. paper also discusses how to port an IPv4 broadcast application to IPv6 in this IPv6 has no implemented concept One of the key features of IPv6 is Porting or of broadcast. These extensions are designed to provide Transition. The deployment of this new access to the basic IPv6 features required by TCP and UDP protocol brings set of new challenges to the applications, including multicasting, while introducing a application developers and application service minimum of change into the system and providing complete providers. Currently many vendors and compatibility for existing IPv4 applications. We have manufacturers and internet service providers discussed number of issues arising during the transition of a are working hard to provide IPv6 connectivity platform to IPv6 like which would be the easiest and simple and support for the users. The transition phase approach to the transition procedure, how compatibility with from IPv4 to IPv6 has raised many discussions earlier IPv4 only versions of the platform could be retained, among the internet community, as a lot of if there are any useful tools for assisting this task how and companies and network demonstrators are when one could be positive that the necessary modifications reluctant, facing what they perceive face as a had been made, and which testing procedures should be great challenge with large costs. Apart from the followed. network and hardware part of the issue , a very well known important aspect is the transition(modification) of existing1. Introduction. applications so that they become IPv6 enabled The rapid growth in the number of handheld devices and .The problem of transition existing applications protocols putting a strain on the current IP protocol to IPv6 has been so far addressed by several (IPv4),which is not being able to keep pace with the researchers including companies and academic increasing demands brought about by the evolving Internet. institutes. The majority of network applications The internet is growing rapidly and the number of available in existence today presume the use of the IPv4 Internet addresses seemed to be insufficient to meet the future protocol, so the transition to IPv6 has to be needs of the current Internet. As a response , the Internet accompanied by the development of new engineering task force(IETF) introduced the Internet protocol applications or the modification of existing version 6 (IPv6) as a substitute for the current Internet ones, so that they can be used in IPv6 protocol(IPv4)..We know that IPv6 has been designed to environments. It has often been demonstrated remove all the defects and deficiencies of IPv4 .The new that the difficulty of modifying existing version of IP, IPv6 constitutes an effort to overcome the applications varies significantly from one case inborn limitations of IPv4 so that the new protocol is able to to another. Depending upon the applications at respond to the new requirements of today s internet. However hand, it can be either a relatively quick and many network architects and engineers are still unsure of easy process or a more complicated and what all of potential business cases for building IPv6 resource consuming task. networks and services are.IPv6 as the successor to the two decades old IPv4 has been designed to be a evolutionary The remainder of the paper is organized as protocol which will solve the address shortage problem follows. Section 2 presents IPv4 to IPv6
Architecture. In Section 3 the benefits of IPv6 are presented. Let s discuss some of the benefits of IPv6 inPerformance aspects of transition IPv4 network applications more detail in order to see how this protocolto IPv6 are discussed in section 4. Section 5 presents the attempts to deal with the Internet and businesswork which has done on transition of IPv4 to IPv6. Section 6 network problems of today. Some of the maincovers necessary APIs for the transition of IPv4 to IPv6. reasons for the development of the new versionBackward compatibility with IPv4 by using Dual stack of the Internet Protocol were the exhaustion ofhas covered in section 7. Section 7.1 covers application the Class B address space, the growth of theimpact on Java. Section 8 covers problems with IPv6 backbone routing table, security issues, IPtransition. Section 9 and 10 covers the flow chart for options size limitation, and routingtransition from IPv4 to IPv6. Finally the paper is concluded performance . We ll look at the two mainin section 10. problems solved by IPv6 namely address depletion and routing scalability in more detail, and then look at some of the added2. Literature Review benefits that IPv6 gives to network designers and administrators.The goals of IPv6 were2.1 IPv4 to IPv6 Architecture to support scalability, security, and multimedia transmissions. First, the address space isInternet Protocol was first developed in the early 1980s. The increased from 32 bits to 128 bits. Unlike IPv4,issues that made version 4 of the Internet Protocol (IPv4) IP Sec  support has become a requirementinadequate required complex solutions. This has forced in the IPv6 header. Payload identification fordesigners of the new protocol to work diligently to ensure QoS handling by routers is now supported bythat the same issues would not be encountered with the new the Flow Label field in the IPv6 packet header.version of the protocol. Members of the Internet community Fragmentation support has been moved fromwho were responsible for developing the protocol carefully routers to the sending hosts. The IPv6 headerscrutinized each new Request for Comments (RFC) that was does not include a checksum and has nodeveloped. For those not familiar with the RFC process, options included in the header, but ratherRFCs are documents that detail the protocol specifications so introduces extension headers. Finally, IPv6that hardware and software manufacturers will know how to requires no manual configuration or DHCPimplement the protocol in a standard and agreed-upon (Dynamic Host Configuration Protocol), whichmanner. Standardization enables each manufacturer and will become important as the number of nodessoftware vendor to follow the same blueprint rather than increases. Overall, IPv6 was carefully thoughtdeveloping proprietary versions of the protocol.(This was a out and was designed with future applicationscommon problem with earlier networking protocols.). in mind.  The main difference in the packetInternet will continue to grow at the rate it was growing, the layout between IPv4 and IPv6 is that IPv4 hasIPv4 address space would be depleted by the turn of the a 20 byte header while IPv6 has a 40 bytemillennium. Some temporary solutions were offered, such as header. Although the address space in IPv6 isNAT (Network Address Translator) or CIDR . (Classless four times the size of its counterpart, IPv6 hasInter Domain Routing) , however work began on a new reduced the number of required fields andInternet Protocol, namely IPv6. The main reason for a new made them optional as extension headers.version of the Internet Protocol was to increase the address Since the Ethernet MTU size is 1514 bytes, thespace; IPv6 was designed with a 128 bit address scheme, additional 20 bytes of header information onlyenough to label every molecule on the surface of the earth incurs an additional 1.3% overhead; anwith a unique address. Furthermore, the only kind of traffic additional 20 bytes of header information whenthat existed on the internet twenty years ago was elastic an IPv6 packet is encapsulated in an IPv4traffic, such as emails or file transfers. These kinds of traffic packet raises the overall overhead to 2.6%. Inwere very flexible regardless of the network conditions; on theory, this performance overhead betweenthe other hand, inelastic traffic requires a certain level of these two protocols is minimal.guaranteed performance, which if not met, the applicationdoes not have the same usefulness.IPv6 was designed for 2.3.Performance aspects of transition IPv4efficiently suptransition both elastic and inelastic traffic. The network applications to IPv6.realization of a new, scalable protocol in which considerablethought has been given to future expansion is a very exciting In order to perform comparative testing, weconcept. Never before has the Internet community seen such first try to identify the criteria for evaluatinga magnitude of effort or planning put into the development of the IPv4 and IPv6 versions of the applicationa new protocol, and there has certainly never been a protocol under test. We know that the IPv6 header ismore specifically tailored to the growth of the Internet. larger than IPv4, so we will face lot of overheads in IPv6.When we will contrast the2.2 Understanding the Benefits of IPv6 overhead of IPv6 with IPv4 is really a crucial task because lot of issues are involved in IPv6.
applications of transition. While transition an3. IPv4 to IPv6 Transition Mechanisms application from IPv4 to IPv6 a network application will get an ability to work with IPv6While transition an IPv6 application some considerations are due to this obviously the application will have to seamlessly work with IPv6 protocol. During theneeded in both server and client side. The most notable transition of an application the IPv6 supports theconsideration when preparing to port an IPv4 broadcast three major types of communication systems likeapplication to IPv6 is this IPv6 has no implemented concept multi cast, Uni cast and Any cast, where the multicast communication is more useful for realof broadcast .Instead, IPv6 uses multicast, Multicast for time audio, video and multimedia applications. AnIPv6 can emulate traditional broadcast capabilities found in IPv6 client can communicate with IPv4 server only if it uses its IPv4 -mapped IPv6 address. ThisIPv4.Setting the IPV6_ADD_MEMBERSHIP socket option can be achieved by using domain name servicewith the IPv6 address set to the link-local scope all nodes mechanism and choosing the record which is returned to the client as the server s IPv4-mappedaddress (FF02::1) is equivalent to broadcasting on IPv4 IPv6 address. In an IPv6 the role of DNSbroadcast addresses using the SO_BROADCAST socket mechanism plays a very important role for theoption.This address is sometimes called the all-nodes communication between IPv4 and IPv6 even though IPv6 supports for Multiple DNS. It ismulticast group. For applications that simply want broadcast beneficiary if the application can make use of theemulation for IPv6, that approach is operationally equivalent. new enhanced features of IPv6, so that these features can be examined and evaluated. ForOne notable difference with IPv6, however, is that multicasts example IPv6 which contains the flow id label thaton the all-nodes multicast group address are not received by can be used in order to implement some qualitydefault (IPv4 broadcasts are received by default). Application of service scheme. The Dual stack mechanism is going to be widely used for the foreseeable future,programmers must use the IPV6_ADD_MEMBERSHIP so an IPv6 enabled application has to be able tosocket option to enable multicast reception from any source, operate in a system with dual stack node has bothincluding the all-nodes multicast group address.There are IPv6 and IPv4 stacks and addresses.two primary scenarios for application programmers using 5.Related Workmulticast: those transition from IPv4 broadcast (or multicast)applications to IPv6, and those creating new IPv6 multicast Although transition an application from IPv4 to IPv6 is not a difficult task. There are many hiddenapplications. For transition existing applications, there are problems that must be considered and carefullytwo options to move to IPv6 multicast: using socket options analyzed. The problem of transition existingand using IOCTLs .By using socket options is a change- applications to IPv6 has been so far addressed by several researchers including companies and anbased approach, which enables developer to change the academic institutes. One of the main objectivessocket properties as required for blocking or unblocking a when implementing IPv6 in UnixWare was to provide a migration path to IPv6 while stillsender, adding a new source, and so on. This approach is enabling IPv4 applications to work .This paper ismore intuitive and the recommended approach .By using aimed to discuss about various issues whenIOCTL is a final state based approach because it allows transition an IPv4 application to IPv6 with focus on issues that an application developer will facedevelopers to provide a fully-configured socket state, rather than a complete API reference. Theincluding inclusion and exclusion lists with one call. transition of labels can be categorized into some main categories based on complexity of the work .4. EVALUATING AN APPLICATION PORTED TO IPV6 Category-1:- The below table shows changes inThere are various parameters that we have to tested during thethe source code data structures that applicationtransition of IPv4 network application to IPv6 networkprogrammers need to be aware of whenapplication which determines the quality and varioustransition code support IPv6 IPv4 Data structures IPv6 Data structures Sockaddr_in ,in_addr4 Sockaddr_in6, in_addr6 sin_family , sin_port Sin6_family , sin6_len, sin6_port Inaddr_any,inaddr_loopback In6_addr, In6_addr_loopback In6_addr_any_init, In6addr_loopback_init
ifreq Struct if_laddrreq ifconf Struct if_laddrconf in_port_t sin_port u_shortsin6_port sin_addr struct in_addr uint32_tsin6_flowinfoThe first category of the work refers to most protocol independent labels where the labels can be easily ported byusing data structures.IPv4 applications use the sockaddr_in andmembers to their new sockaddr_in6 names, itin_addr structures to pass network address information betweenis not strictly necessary to fill in this membercertain networking related functions. IPv6 uses a larger addressbefore using the structure .space and therefore uses different data structures to replacesockaddr_in and in_addr . Category-2. While the 2nd category refers to labels that can be ported by introducing new API in6_addr:-is used to store the 128-bit network to replace old ones:- One of the main objectivesaddress.sockaddr_in6 :-is used to store the remaining details, when implementing IPv6 in UnixWare was topreviously stored by sockaddr_in, that is, length of the data provide a migration path to IPv6 while stillstructure, address family, flowinfo, port number and enabling IPv4 applications to work portability ,in6_addr data structure. Replace any occurrence of Scalability automatically increases. The Belowsockaddr_in with the sockaddr_in6 structure. Another table cover in depth how the source code symbolfeature that was implemented at the same time as IPv6 was changes some of the address and protocol familythe move to support variable length sockets. In this new constants for IPv6 that application programmersversion the sin6_family is only 8-bits long unlike the original need to be aware of when transition code supportsin_family which was 16-bits long. The remaining 8 bits have IPv6.been defined as sin6_len, and contains the length of the datastructure. When modifying the sockaddr_in structure Search the Source code for : Replace with AF_INET PF_INET6 PF_INET PF_INET6Replace all occurrences of AF_INET in your applicationwith AF_INET6 and all occurrences of PF_INET with Category-3.While the 3rd criteria refers to labelsPF_INET6. For example, if you application had the that can be ported by using new IPv4 functionsfollowing line of code: calls to IPv6 function calls. The below tablesserver.sin_family = AF_INET; cover the some changes in the source codealter the member name to its correct sockaddr_in6 name and function calls that application programmers needchange AF_INET to AF_INET6, as shown below: to be aware of when transition code supportserver.sin6_family = AF_INET6; IPv6. IPv4 function calls IPv6 function calls gethostbyname(3N) gethostbyname2(3N) or getaddrinfo( ) or getipnodebyname ,freeaddrinfo() inetaddr_in(3N) inetpton(3N) inet_ntoa inet_ntop gethostbyaddr() getipnodebyaddr, getnameinfo(),f reeaddrinfo(). inet_addr() or inet_aton() inet_ pton()6. NECESSARY API MODIFICATIONS In order to port the IPv4 network applications to IPv6 we have used some of the methods. Some of
the methods are straight forward modifications that we have toboth versions of the Internet Protocol, IPv4 andcarry out during the transition tenure. While transition an IPv4IPv6. A general property of a dual-stack nodeapplications to IPv6 using socket interface extensions to IPv6is that an IPv6 socket can communicate bothsome considerations are needed in both server and client sidewith an IPv4 and IPv6 peer at the transport. While using IPv4 to IPv6 transition the most importantlayer (TCP or UDP) . At the native level, themethods are we have to replace IPv4 API s likeIPv6 socket communicates with an IPv4 peerAF_INET,PF_INET with their IPv6 AF_INET6 and PF_INET6through an IPv4-mapped IPv6 address..The second important method used while during transition isHowever, unless a socket checks for the peerssubstituting IPv4 function calls toIPv6 functions calls. The thirdaddress type, it wont know whether it isimportant aspect while using a transition is adjust Keyboard andtalking to an IPv4 or an IPv6 peer. All thedisplay interface so they can handle larger IP addresses. Theinternal plumbing and conversion of addressfourth one more important API consideration is Name to addresstypes is done by the dual-protocol stack.translation. The Fifth necessary consideration for API is Newfunction will support to IPv6 and IPv4.Transition from IPv4 to 7.1.Application Impact on JavaIPv6 application also requires replacement of hard- coded IPv4loop back addresses and inaddr_any by using their IPv6 capable. While transition an application there should beAt the time of transition an application no change in Java application code iffrom IPv4 to IPv6 will separate port addresses from the IPeverything has been done appropriately. i.e.addresses. Some time we will adopt minimum number ofthere are no direct references to IPv4 literalchanges in API for transition process. addresses, instead hostnames are used. All the address or socket type information is7. BACKWARD COMPATIBILITY WITH IPV4 BY encapsulated in the Java networking API.USING DUAL STACK. Through setting system properties, address type and/or socket type preferences can be set.For many years, if not forever, there will be a mix of IPv6 For new applications IPv6-specific new classesand IPv4 nodes on the Internet. Thus compatibility with the and APIs can be used .large installed base of IPv4 nodes is crucial for the success ofthe transition from IPv4 to IPv6. Dual stack, defined in RFC1933, is one of the main mechanisms for guaranteeing asmooth transition. The other mechanism is IPv6 packettunneling, which is relevant to the JDK only through theIPv4-compatible address. The former is the most relevantpiece to the JDK. A dual stack includes implementations of Communication Scenarios (Nodes) V4 only V4/V6 V6 only V4 only X X V4/V6 X X X V6 only X X The X indicates the nodes which are communicate with each other. UDP Scenario 1: Either host1 or host 2 can be a native application. will wait for connections. Since host1 supportsCase 1: host1 is server, host2 is client : If host2 wants to talk v4 only, it creates a v4-type socket. Theyto host1, it will create a V6 socket. It then looks up the IP resolves the name for host2. It only gets v4address for host1. Since host1 only has a v4 protocol stack, it address for host2, since it doesnt understandwill only have IPv4 records in the name lookup service. So IPv6 address. So it connects to host2 using v4host2 will try to reach host1 using an IPv4-mapped address. address. A v4 packet will be sent on the wire.An IPv4 packet will be sent by host2, and host1 will think it On host2, the dual stack will convert the v4is communicating with a v4 client . packetCase 2 : Host1 is client, host2 is server : If host2 is theserver, it will first create a v6-type socket (by default), then it
One of the difficulty of transition applications willinto a v6 packet with a v4-mapped address in it and hand it vary greatly from one application to anotherover to the v6 socket. The server application will handle it as application depends on the choice of Codingif it is a connection from a v6 node[ 26] . metaphors , Memory management ,Possibility of8. Problems With IPv6 Transition library interface problems , Time and cost estimates are likely to be inaccurate.9.FLOW CHART FOR AN IPV4 CLIENT TO IPV6 CLIENT Get_list_of_IP_addresses List_of_IP_addr esses = = null Yes No Create_Socket(address_family) Protocol not suppport error? ? No Connect_Socket error? No No Socket Socket connected
10.FLOW CHART FOR AN IPV4 SERVER TO IPV6 SERVER. get_list_of_IP_addresses no list_of_IP_addresses==null||max Sock==2 Yes Create_Socket(address_family) protocol not support No No Error ??? IPv6 IPv6_ ONLY bind_socket No Socket Yes error? ? No Listen_socket12.Objectives new applications should be designed to work in all environments: single IPv4, single IPv6 orThe experience we earned from our effort shows that transitionmixed communication when groupapplications to IPv6 will say communications management iscollaborative applications are considered. Theisolated from the rest of the application ,while for many clientprincipal building block during transitioning isand server network applications network compilation options arethe availability of dual stack. Dual stacknot dispersed all over the code , Application is independent ofmechanisms do not, by themselves, solve thethe IP addresses management , Application use only names,IPv4 and IPv6 inter working problems; othernever IP addresses to select remote node ,Code updating of newimportant building block, addresses translation,protocol advanced features is much simpler. is required many times. Translation refers to the direct translation of protocols, including headers and sometimes protocol payload.13. Conclusions Protocol translation often results in features loss. For instance, translation of IPv6 headerThe experience we earned from our effort shows that into an IPv4 header will lead to the loss of thetransition applications to IPv6 will play a crucial role to IPv6 flow label. Translation can beadopt new internet protocol version. While for many client complemented with tunneling; which used toand server network applications the transition issues are bridge compatible networks acrossgoing to be straightforward. Today the Internet is incompatible ones. However, all previouspredominantly based on IPv4. However, a big effort has been solutions depend on client and serverdone to set up more and more IPv6 experiments. At the applications availability. The furtherpresent moment, there is no a single global IPv6 network on development of automatic tools is essential andthe same scale and it will take some time to get it. Therefore, will be selected in two ways : Sup transition
more languages other CC++JavaBasicPascalFortran etc in . Yukwen Hsu, Transition an applications toorder to support for more useful programmers and becoming IPv6 Microsoft corporation Windows division.more intelligent in helping the programmer with more issues. .Transition and performance aspects from IPv4 to IPv6: The case of open H323, International Journal of communicationAll these requirements can be implemented as a single Systems,6/04/2005.library. It is a middleware network interface to isolate .Sun Microsystems, Transition applications tocommunications from the rest of functional application the IPv6 APIsmodules. This solution simplifies future maintenance .Transition broadcast applications to IPv6operations and it can be used as a general network interface (Windows).for similar applications. This is interesting when a complete . Bahrouz Forouzan Tata McGraw-Hill., TCP/IP Protocol suite.environment should be ported. From the above conclusions .Eva.M.Castro, Transition applications andwe have concluded that Transition is very easy for a network DNS issues ,programmer because we will use the same socket calls and .Networking IPv6 user guide for JDK/JRE 5.0few new functions. Transition makes your application ready .R.A. Yaiz and O. Ozturk , Mobility in IPv6for t he currently deployed next generation internet protocol. Available from :httpTransition an application enables your application to use ://www/cuba.ipv6tf.org/pdf/mobileIPv6.pdf,Dateenhanced features of IPv6.IPv6 supports for very few accessed: 4th October 2007.changes like either a 0 or 1% of typical network application.Acknowledgement Mr.Hanumanthappa.J. has taken his birth in Harihar on 6-12-1975,which belongs to DavanagereThis research paper has been supported by Department of (D).He has received his Bachelor of Engineeringstudies in Computer Science , Manasagangothri, University Degree in computer science and engineering fromof Mysore and Department of Computer Science , University B.D.T College of Engineering , Davanagere,Mangalagangothri , Mangalore University. I would like to Karnataka( S),India( C),which is affiliated to Kuvempu University , Shimoga in the year 1998 and Master ofthanks our beloved supervisor Dr.Manjaiah. D.H for Technology in cs& engineering from NITK Surathkal ,providing his support and encouragement ,to conduct and Karnataka( S ), India (C) in the year 2003.He is currentlyprepare this research paper on Transition of IPv4 Network pursuing his doctoral program in Mangalore university ,applications to IPv6 Network applications[TIPv4 to TIPv6] . Mangalore under the supervision of Dr.Manjaiah.D.H. on entitled Security and Porting issues on IPv6 .14.References He is currently working as a LECTURER in Department of Studies in Computer Science ,Manasagangothri, University.RFC2553 - Basic Socket Interface Extensions for IPv6 of Mysore. I have presented 2 research papers in National and International Conferences in Network Engineering..Richard Stevens, Unix Network Programming Volume 1 Currently Iam writing two Text books on Introduction to.Richard Stevens, Gary Wright, TCP/IP Illustrated Volume C and one more on Cryptography and Network security2 for computer science and Engineering students..IETF IPv6 Transition Working Group ,http://www.6bone.net/ngtrans. Iam a Life member of CSI, ISTE,AMIE, IAENG,.I. Raicu. An Empirical Analysis of Internet Protocol version 6 Embedded networking group of TIFAC CORE in(IPv6) , Master Thesis, Wayne State University, 2002 Network Engineering ..S. Kent, R. Atkinson. Security Architecture for the Internet Dr. Manjaiah D.H. is currently Reader andProtocol , Request for Comments 2401, Internet Chairman of BoS in both UG/PG in the Engineering Task Force, November 1998 . Computer Science at Dept. of Computer.S. Tanenbaum, Computer Networks, Third Edition, Prentice Hall Science, Mangalore University, Mangalore. HeInc.,1996, pp. 686,413- 436,437-449. is also the BoE Member of all Universities of.Jun-ichiro itojun Hagino , IPv6 Network Programming Karnataka and other reputed universities in India. HeElsevier digital press -2006. received PhD degree from University of Mangalore,.W. Richard Stevens. Expires: October 19, 2002 Advanced M.Tech. from NITK, Surathkal and B.E., from MysoreSockets API for IPv6..Obsolètes RFC 2292.INTERNET-DRAFT University. Dr.Manjaiah D.H has an extensive academic, Industry and Research experience. He has worked atAdvanced Sockets API for IPv6. W. Stevens, M. Thomas. many technical bodies like CSI, ISTE, ACS, IAENG andFebruary 1998. RFC2292.(Format: TXT=152077 bytes) (Status: ISOC. He has authored more than - 25 research papers inINFORMATIONAL) international conferences and reputed journals. He is the.R.Gilligan, S.,Thomson, J.Bound,W. Stevens. March 1999. recipient of the several talks for his area of interest inRFC2553 Basic Socket Interface Extensions for IPv6 . many public occasions. He is an expert committee member. Eva M. Castro ,Transition applications to IPv6 How To . of an AICTE and various technical bodies. He had written.HP-UX IPv6 transition guide. Kannada text book, with an entitled, COMPUTER.Sun s transition guide. PARICHAYA , for the benefits of all teaching and Students Community of Karnataka. Dr .Manjaiah D.H s.IPv6 network administration guide areas interest are Computer Networking & Sensor.Network application transition guide Networks, Mobile Communication, Operations Research,.Network application transition tool E-commerce, Internet Technology and Web. Transition applications to IPv6 , Pervasive technology labs Programming.at Indiana University.. Transition an application to IPv6 : The quake 3 example.