LECTURE 5
Internet Protocol
Chapter 18 Internetwork Protocols
(William Stallings, Data and Computer Communications, 7th
Edition)
Chapter 20 Network Layer: Internet Protocol
(Forouzan, Data Communications and Networking, 4th Edition)
                                                            1
Contents
• I. Internetworking
• II. IPv4
• III. IPv6
• IV. Transition form IPv4 to IPv6
                                     2
20-1 INTERNETWORKING
 In this section, we discuss internetworking, connecting
 networks together to make an internetwork or an
 internet..
 internet
Topics discussed in this section:
Need for Network Layer
Internet as a Datagram Network
Internet as a Connectionless Network
                                                           3
 Figure 20.1 Links between two hosts
•LAN/WAN only delivers frame within its own network
•Not capable of routing packet to another network on its own   4
Figure 20.2 Network layer in an internetwork
 • Network layer provides a glue for sending packets from
   one LAN/WAN to another LAN/WAN                           5
Figure 20.3 Network layer at the source, router, and destination
• Create a packet with header         • Verify destination address
  (source and destination address)    • Reassemble fragments
• Locate outgoing interface
                                                                     6
Figure 20.3 Network layer at the source, router, and destination (2)
                                      • Look up routing table and identify
                                        outgoing interface
                                      • Universal network layer address
                                        is used to route packet from
                                        source to destination
                                      • Each packet is treated
                                        independently and may be routed
                                        differently
                                      • Connectionless is much simpler in
                                        a heterogeneous network
   • Switching at the network layer in the Internet uses
       the datagram approach to packet switching.
 • Communication at the network layer in the Internet is
                      connectionless.                    7
 20-2 IPv4
 The Internet Protocol version 4 (IPv4
                                  IPv4) is the delivery
 mechanism used by the TCP/IP protocols.
                               protocols.
  • Provide unreliable and connectionless datagram service
     • Best effort delivery (like post office)
     • Assume unreliable underlying network
     • Additional service (TCP) can be used for reliable data transfer
Topics discussed in this section:
Datagram
Fragmentation
Checksum
Options
                                                                         8
Figure 20.4 Position of IPv4 in TCP/IP protocol suite
                                                        9
Figure 20.5 IPv4 datagram format
 • HLEN = Header length in 4-byte unit
 • Total length includes both header and data in byte   10
Figure 20.6 Service type or differentiated services
 • Legacy                               • Codepoint = 000xxx
 • Precedence = datagram                   • Same interpretation
   priority under congested                  as service type
   situation                            • Used for service called
                                          DiffServ to provide
                                          quality of service
                                                                    11
 Table 20.1 Types of service
• The precedence subfield was part of version 4, but
  never used
• Only 1 bit can have value of 1
                                                       12
Table 20.2 Default types of service
                                      13
Table 20.3 Values for codepoints
           Codepoint               Assigning Authority
         XXXXX0               Internet
         XXXX11               Local
         XXXX01               Temporary
                                                         14
Figure 20.7 Encapsulation of a small datagram in an Ethernet frame
 • The total length field defines the total length of
   the datagram including the header
 • Ethernet has a restriction on minimum frame
   size (46 bytes)
     • Padding is needed
                                                                     15
Figure 20.8 Protocol field and encapsulated data
 • Identification, flags, and fragmentation offset are used
   for fragmentation
 • Time-to-live restricts maximum number of hops that a
   packet can travel
 • Protocol indicates which higher layer protocol (TCP, UDP,
   ICMP, etc.) should receive this packet
                                                          16
Table 20.4 Protocol values
                             17
 Example 20.1
An IPv4 packet has arrived with the first 8 bits as shown:
                         01000010
The receiver discards the packet. Why?
Solution
There is an error in this packet. The 4 leftmost bits (0100)
show the version, which is correct. The next 4 bits (0010)
show an invalid header length (2 × 4 = 8). The minimum
number of bytes in the header must be 20. The packet has
been corrupted in transmission.
                                                          18
Example 20.2
In an IPv4 packet, the value of HLEN is 1000 in binary.
How many bytes of options are being carried by this
packet?
Solution
The HLEN value is 8, which means the total number of
bytes in the header is 8 × 4, or 32 bytes. The first 20 bytes
are the base header, the next 12 bytes are the options.
                                                         19
 Example 20.3
In an IPv4 packet, the value of HLEN is 5, and the value of
the total length field is 0x0028. How many bytes of data
are being carried by this packet?
Solution
The HLEN value is 5, which means the total number of
bytes in the header is 5 × 4, or 20 bytes (no options). The
total length is 40 bytes, which means the packet is carrying
20 bytes of data (40 − 20).
                                                        20
 Example 20.4
An IPv4 packet has arrived with the first few hexadecimal
digits as shown.
              0x45000028000100000102 . . .
How many hops can this packet travel before being
dropped? The data belong to what upper-layer protocol?
Solution
To find the time-to-live field, we skip 8 bytes. The time-to-
live field is the ninth byte, which is 01. This means the
packet can travel only one hop. The protocol field is the
next byte (02), which means that the upper-layer protocol is
IGMP.                                                    21
Figure 20.9 Maximum transfer unit (MTU)
 • Maximum datagram size is restricted by
   hardware and software used in the network
                                               22
Table 20.5 MTUs for some networks
• Transmission is more efficient with large packet
• But if necessary, datagram can be fragmented
  several times before reaching the destination 23
Figure 20.10 Flags used in fragmentation
 • Fragment is necessary because format and size
   of frame depend on physical layer protocol
 • M = 1 means more fragment
 • Fragmentation offset indicates offset of the data
   in original datagram measured in units of 8-byte
                                                   24
Figure 20.11 Fragmentation example
 • Required part of header must be copied to all fragments
 • Identification/Source address must be unique
    — All fragments share the same identification number
 • Flag, fragmentation offset, and total length are changed
    — And checksum recalculated
                                                           25
Figure 20.12 Detailed fragmentation example
                                              Fragment can also
                                              be fragmented
                                                                  26
 Example 20.5
A packet has arrived with an M bit value of 0. Is this the
first fragment, the last fragment, or a middle fragment? Do
we know if the packet was fragmented?
Solution
If the M bit is 0, it means that there are no more fragments;
the fragment is the last one. However, we cannot say if the
original packet was fragmented or not. A non-fragmented
packet is considered the last fragment.
                                                         27
 Example 20.6
A packet has arrived with an M bit value of 1. Is this the
first fragment, the last fragment, or a middle fragment? Do
we know if the packet was fragmented?
Solution
If the M bit is 1, it means that there is at least one more
fragment. This fragment can be the first one or a middle
one, but not the last one. We don’t know if it is the first one
or a middle one; we need more information (the value of
the fragmentation offset).
                                                           28
 Example 20.7
A packet has arrived with an M bit value of 1 and a
fragmentation offset value of 0. Is this the first fragment,
the last fragment, or a middle fragment?
Solution
Because the M bit is 1, it is either the first fragment or a
middle one. Because the offset value is 0, it is the first
fragment.
                                                        29
Example 20.8
A packet has arrived in which the offset value is 100. What
is the number of the first byte? Do we know the number of
the last byte?
Solution
To find the number of the first byte, we multiply the offset
value by 8. This means that the first byte number is 800. We
cannot determine the number of the last byte unless we
know the length.
                                                        30
 Example 20.9
A packet has arrived in which the offset value is 100, the
value of HLEN is 5, and the value of the total length field
is 100. What are the numbers of the first byte and the last
byte?
Solution
The first byte number is 100 × 8 = 800. The total length is
100 bytes, and the header length is 20 bytes (5 × 4), which
means that there are 80 bytes in this datagram. If the first
byte number is 800, the last byte number must be 879.
                                                         31
 Example 20.10
Figure 20.13 shows an example of a checksum calculation
for an IPv4 header without options. The header is divided
into 16-bit sections. All the sections are added and the sum
is complemented. The result is inserted in the checksum
field.
                                                        32
Figure 20.5 IPv4 datagram format
 • HLEN = Header length in 4-byte unit
 • Total length includes both header and data in byte   33
Figure 20.13 Example of checksum calculation in IPv4
                                          • Checksum is
                                            used to detect
                                            error in header
                                             • Save on
                                               processing
                                               time
                                                              34
Figure 20.14 Taxonomy of options in IPv4
                                                      Filler
                                                      Padding
 • Strict source route: All routers must be visited
 • Loose source route: Can also visit other routers
 • Timestamp records time of processing by router              35
 20-3 IPv6
The network layer protocol in the TCP/IP protocol
suite is currently IPv
                   IPv4
                      4. Although IPv
                                    IPv44 is well designed,
data communication has evolved since the inception of
IPv44 in the 1970s
IPv           1970s. IPv4
                       IPv4 has some deficiencies that
make it unsuitable for the fast
                            fast--growing Internet
                                           Internet..
Topics discussed in this section:
Advantages
Packet Format
Extension Headers
                                                              36
IPv6 Advantages
•   Larger address space
•   Better header format allows routers to ignore options
•   New options
•   Allowance for protocol extensions
•   Support for resource allocation and reservation
    — Enabling source to request special handling
    — Good for real-time audio and video
• Support for more security
    — Encryption and Authentication options
• Integrate other protocols (ARP, RARP, IGMP) into
  ICMPv6
                                                            37
Figure 20.15 IPv6 datagram header and payload
                                                38
Figure 20.16 Format of an IPv6 datagram
                                          39
IPv6 Flow Label
• Flow label provides special handling for a
  particular data flow
• Flow shares the same path, uses the same
  resource, and has the same kind of security
  —Separate protocol is needed to setup how router treat
   each flow, such as Real-Time Protocol (RTP) or
   Resource Reservation Protocol (RSVP)
  —Special treatment for each flow such as high
   bandwidth, large buffer, long processing time, and
   resource reservation
• Flow can also be used to speed up processing
• Use a random 24-bit number or zero if not
  supported
                                                      40
IPv6 Fields
• Payload length excludes base header
• Next header indicates optional extension
  headers of header of encapsulated packet (UDP)
  —Also exist in each extension header
• Hop limit is the same as Time-to-live field
• Source and destination addresses are 128 bits
  —Destination address = next router for source routing
                                                          41
Table 20.6 Next header codes for IPv6
                                        42
IPv6 Priority
• Indicate packet priority with respect to other
  packets from the same source
• Two sets of values
  —Congestion-controlled traffic if source can adapt itself
   to traffic slowdown when there is congestion
  —Noncongestion-controlled traffic if retransmission is
   mostly impossible
                                                          43
Table 20.7 Priorities for congestion-controlled traffic
                                                          44
Table 20.8 Priorities for noncongestion-controlled traffic
• Data with least redundancy indicates that
  discarding a packet can lead to large drop in
  quality
   • Used for low-fidelity audio or low bit-rate video
                                                             45
Table 20.9 Comparison between IPv4 and IPv6 packet headers
                                                         lower
                                                                 46
Figure 20.17 Extension header types
                                              Need to pass information
                                              to all routers visited
                                                        > 65535 Bytes
                                      Strict & loose source routes
                                      Validate sender &
                                      Ensure data integrity
 • Only original source can fragment packet
     • Prevented by using path MTU discovery technique
 • Intermediate router is not permitted to look at
   Destination option                                            47
Table 20.10 Comparison between IPv4 options and IPv6 extension headers
                                                                   48
20-4 Transition from IPv4 to IPv6
Because of the huge number of systems on the
Internet, the transition from IPv4 IPv4 to IPv
                                            IPv66 cannot
happen suddenly.
          suddenly. It takes a considerable amount of
time before every system in the Internet can move from
IPv44 to IPv
IPv      IPv66. The transition must be smooth to prevent
any problems between IPvIPv4 4 and IPv6
                                   IPv6 systems.
                                        systems.
Topics discussed in this section:
Dual Stack
Tunneling
Header Translation
                                                           49
Figure 20.18 Three transition strategies
                                           50
Figure 20.19 Dual stack
 • Use IPv4 stack if DNS return IPv4 address
                                               51
Figure 20.20 Tunneling strategy
 • Protocol value of IPv4 header is set to 41 (IPv6)
                                                   52
Figure 20.21 Header translation strategy
 • Majority of users has moved to IPv6
 • Use mapped IPv6 address
                                           53
Figure 19.18   Reserved addresses in IPv6
• Compatible is used when two IPv6 nodes communicate via
  IPv4 network
• Mapped is used when IPv6 node communicates with IPv4
  node                                                54
Table 20.11 Header translation
                                 55