This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
In the following, a deep discussion of IP networks and concentrating on IPv6 as it is the latest version and most likely the more robust existing protocol.
The Internet Protocol (IP) is considered by some as the backbone of the global network among an endless combination of systems and transporting media . Basically, the main function of IP is to transmit the data from the source to destination. As the figure** highlights, the data is sent in the form of packets, then all the packets are routed through a series of routers and multiple networks to reach the destination.
In the Internet, each router takes autonomous decision on each received packet. When a packet reaches a router, depending on the destination address in the packet header the router forwards the packet to the next hop by checking its forwarding table. The process of forwarding the packets by the routers is done until the packet reaches the destination.
As it's known, IP is the protocol used to transmit data packets from one computer to another on the Internet. During the process of computer networking, every computer (host) on the Internet will gain its unique IP address that identifies it from all other computers on the Internet. When data has been sent or received (for example, an e-mail note or a Web page), the message is divided into little portion called packets. Each of these packets contains both the sender's Internet address and the receiver's address.
Furthermore, each packet is sent first to a gateway computer that controls the path to a small domain of the Internet. The gateway computer extract the destination address and forwards the packet to an adjacent gateway that in turn reads the destination address and so forth across the Internet until one gateway distinguishes the packet as belong to a computer within its immediate neighborhood or domain. That gateway then forwards the packet directly to the computer whose address is specified.
Because a message is divided into a number of packets, each packet can be transmitted along different routes across the Internet. Packets can arrive in a different order than the order they were sent, that is out of sequence. IP just delivers them. It's up to the Transmission Control Protocol (TCP) to put them back in the right order.
IP is a connectionless protocol, which means that there is no permanent connection between the end points that are communicating. Each packet that travels through the Internet is treated as an autonomous unit of data without any relation to any other unit of data. (The reason the packets are put in the right order is because of the use of TCP, as the connection-oriented protocol that keeps track of the packet sequence in a message.) Hence in the OSI communication model, IP is in layer 3 (Network Layer), while TCP is in layer 4(Transport Layer),as shown in Fig 2.1. Thought here is other common protocol acting in layer 4.This protocol is called User Datagram Protocol (UDP) and is a connectionless protocol. UDP is a communication protocol that proposes a limited amount of service when messages are transmitted between computers in a network that uses IP. UDP is an alternative to the TCP. Unlike TCP, however, UDP does not provide the service of dividing a message into packets (data grams) and reassembling it at the other end.
UDP doesn't provide ordering of the packets that the data arrives in. This leads to the fact that the application that uses UDP should be capable to assure that the messages have arrived and is in the right order. Network applications that want to save processing time because they have very small data units to exchange or because they are real time applications, i.e. applications for voice and video, may prefer UDP to TCP [1 ].
IPv6 is the most recent version of the Internet Protocol (IP). It has also been referred to as IPng (IP Next Generation). Officially, IPv6 is a set of specifications was set by the Internet Engineering Task Force (IETF). IPv6 was designed as set of improvements to the existing IPv4 (Internet Protocol Version 4). Network hosts and intermediate nodes which based on either of the IP's versions can handle packets formatted for either level of the Internet Protocol. Users and service providers can be upgraded to IPv6 autonomously without having to synchronize with each other .
IPv6 has many advantages which can be summarized as follows :
Security: one of the important features the IPv6 includes is security although it offers loads of options, such as payload encryption and authentication of the source of the communication, in its specifications.
Addressing and routing: IPv6 address are 128 bit long and it has different types, such as uni-cast, multi- cast, Any- cast, All nodes multi-cast.
Real-time applications: To provide better support for real-time traffic (e.g., VoIP), IPv6 includes "labeled flows" in its specifications; routers can identify the end-to-end flow to which sent packets belong. This is similar to the service offered by Multi-Protocol Label Switching (MPLS), but it is intrinsic with the IP mechanism rather than an add-on.
Scalability: IPv6 has 128-bit addresses in the other hand IPv4 addresses 32-bit. With IPv4, the maximum number accessible is 232 ~ 1010. With IPv6 offers a 2128 space. Hence, the number of available unique node addressees is 2128 ~ 1039.
Optimized protocol: IPv6 represents IPv4 best performs but removes all the obsolete IPv4 characteristics. This results in a better-optimized Internet Protocol. Hence all the IPv4 routing protocols have IPv6 counterpart, the basic protocol mechanism is unchanged 
Mobility: IPv6 includes more efficient and improved mobility mechanisms; particularly it is very important for mobile networks.
Plug-and-play: IPv6 includes a plug-and-play mechanism that enables the connection of equipment to the network. The necessary configuration is automatic.
Extensibility: IPv6 has been designed to be extensible and offers support for new options and extensions (When adding a new feature, existing IPv6 protocol headers can remain unchanged. A new next header type can be defined as well as a new header format).
Any IPv6 packet encloses a fixed-size header, known as the IPv6 header, as shown in Fig2.2. The IPv6 header is 40 bytes in size and consists of a minimum number of fields that are necessary for delivering the packet.
Fig2.2: IPv4vs. IPv6header
The IPv6 base header fields length and their functions are summarized as follows:
Destination Address: to Identified the IPv6 address of the destination of the IPv6data packet, a 128-bit used.
Version: It is only 4-bits, Classifies the version of the protocol. E.g. for IPv6, the version is 6.
Traffic Class:-it is only 8 bit, proposed for generating nodes and forwarding routers to classify and distinguish between different classes or priorities of IPv6 packets.
Flow Label: - it is 20 bit, (identified as flow ID.) Describes how traffic is handled and identified. A flow is a sequence of packets sent either to a Uni-cast or a multi-cast destination. This field identifies packets that require special handling by the IPv6 node. The following two points shows the ways the field is handled if a host or router does not support flow label field functions:
â€¢ If the packet is being sent, the field is set to zero.
â€¢ If the packet is being received, the field is ignored.
Hop Limit: it is only 8-bit, recognizes how many network segments are there, also known as links or subnets, on which the packet is allowed to travel before being discarded by a router. The hop limit and is used to prevent packets from infinitely circulating on an IPv6 internetwork also is set by the sending host. When forwarding an IPv6 packet, IPv6 routers must fall the hop limit by 1 and must reject the IPv6 packet when the hop limit is 0.
Next Header: it is only 8-bits Detects the header immediately following the IPv6 header.
Payload Length: it is only 16-bit, bit unsigned integer, identifies the length, in octets, of the payload. Hence the payload includes the optional extension headers as well as the upper-layer protocols, for example TCP.
Source Address: it is only 128-bits, Identifies the IPv6 address of the original source of the IPv6 packet
IPv6 Extension Headers
In IPv6, optional Internet layer information is encoded in separate headers that may be placed between the IPv6 header and the upper-layer header in a packet. There are a small number of such extension headers, each identified by a distinct next header value. As illustrated in the examples of Fig2.3, an IPv6 packet may carry the value of (1, 0) or more extension headers, each acknowledged by the following header field of the previous header. With one exception, theoretically, until the packet reaches the node; extension headers are not examined by any node along a packet's delivery path (or every set of nodes, in the case of multicast) identified in the destination address field of the IPv6 header. There, normal demultiplexing on the next header field of the IPv6 header appeals the module to process the first extension header if no extension header is present.
The contents and semantics of each extension header decide whether to carry on to the next header. As a result, extension headers must be processed in the order they specified in the packet.
The exception referred to in the preceding paragraph is the Hop-by-Hop Options header, which transmitting information that must be tested and processed by every node all along a packet's delivery path, as well as the source and destination nodes.
If, as a result of processing a header, a node is requiring to proceed to the next header but the next header value is unknown by the node in the current header, it should abandon the packet and send a parameter problem message an Internet Control Message Protocol (ICMP) to the source of the packet, with an ICMP code value of one (unknown next header type encountered) and the ICMP pointer field containing the offset of the unrecognized value within the original packet.
Figure 2.3: Examples of IPv6 extension header
The same act should be taken if a node comes across, according to 3
"The Next header value of zero in any header other than an IPv6 header, each extension header is an integer multiple of eight octets long to retain eight-octet alignment for subsequent headers". 
Multi-octet fields within each extension header are aligned on their natural boundaries; that is, fields of width n octets are placed at an integer multiple of n octets from the start of the header, for n = 1, 2, 4, or 8.
A full implementation of IPv6 includes implementation of the following extension headers:
Hop-by-Hop Options: this header process multi sub options by all the routers along the route.
Routing: there is no difference between it and the Source Route option in IPv4.
Fragment: it's includes the fragmented datagrams to provide the correct order to reassemble.
Authentication and Encapsulating Security Payload: because security in IPv6 is integrated, authentication and the ESP used to Authenticates the user data and most header fields.
The first four are specified in [RFC2460]; the last two are specified in [RFC2402] and [RFC2406], respectively.
The following figure highlights the header diagrams of the IPv4 and IPv6 although the differences and the similarities will be shown
Figure: - IPv6/ IPv4 header structure
IPv6 addresses consist of 128-bit identifiers for interfaces three types of addressing are exists:-
Multi-cast: An identifier for a set of interfaces (normally existed in different nodes). When data packets sent to a multicast address it will be sent to all interfaces acknowledged by that address
Any-cast: An identifier for a set of interfaces (normally existed in different nodes). When data packets sent to any-cast address it will be sent to one of the interfaces acknowledged by that particular address (the nearest one, according to the routing protocols' shortest path).
Uni-cast: An identifier for a single interface. A packet has transmitted to a uni-cast address it will be delivered to the interface identified by that address.
Note that IPv6 does not classify broadcast addresses, not like IPv4. One of the causes for this design choice is because broadcast addresses in the network layer frequently causes link-level broadcasting, which can trouble all devices in the attached link, including the ones that do not even support the particular network protocol.