1 Kyung Hee University Chapter 8 Internet Protocol (IP)
-
Upload
harvey-clarke -
Category
Documents
-
view
224 -
download
5
Transcript of 1 Kyung Hee University Chapter 8 Internet Protocol (IP)
22Kyung Hee University
Position of IP in TCP/IP protocol suitePosition of IP in TCP/IP protocol suite
33Kyung Hee University
IntroductionIntroduction
IP is the transmission mechanism used by the
TCP/IP protocol
It is unreliable and connectionless datagram protocol
Providing Best-effort delivery service (best-effort : no error checking and tracking)
44Kyung Hee University
8.1 Datagram8.1 Datagram
Packets in the IP layer : called datagrams
IP datagram format
Variable-length packet consisting of header and data
Header – 20 ~ 60 bytes– Containing information that is essential for routing and delivery
IP header
Version (VER) : Version 4 or 6 (IPng)
Header length (HLEN) : represented by in 4 byte words
Ex) if HLEN = 5, the real header length is 20 bytes
66Kyung Hee University
Datagram (cont’d)Datagram (cont’d)
Service Type Defining how the datagram should be handled by the
routers Precedence : 3 bits
– Defining the priority of the datagram in issues such as congestion
– Ex) a datagram for network management vs. optional information to a group of people
– At present, not used in version 4
service type : 4 bits (TOS bits)– With only one bit set at a time
Remaining bit : not used
88Kyung Hee University
Datagram (cont’d)Datagram (cont’d)
Types of serviceTypes of service
TOS bits Description
0000 Normal
0001 Minimize cost
0010 Maximize reliability
0100 Maximize throughput
1000 Minimize delay
99Kyung Hee University
Datagram (cont’d)Datagram (cont’d)
Default types for some applications in use of TOSDefault types for some applications in use of TOSProtocol TOS bits Description
ICMP 0000 Normal
BOOTP 0000 Normal
NNTP 0001 Minimize cost
IGP 0010 Maximize reliability
SNMP 0010 Maximize reliability
TELNET 1000 Minimize delay
FTP (data) 0100 Maximize throughput
FTP (control) 1000 Minimize delay
TFTP 1000 Minimize delay
SMTP (command) 1000 Minimize delay
SMTP (data) 0100 Maximize throughput
DNS (UDP query) 1000 Minimize delay
DNS (TCP query) 0000 Normal
DNS (zone) 0100 Maximize throughput
1010Kyung Hee University
Datagram (cont’d)Datagram (cont’d)
Differentiated Services
The first 6 bits : codepoint subfield
Values for codepoints
Category Codepoint Assigning Authority
1 XXXXX0 Internet
2 XXXX11 Local
3 XXXX01 Temporary or
experiment
1111Kyung Hee University
Datagram (cont’d)Datagram (cont’d)
Total Length : head + data Defining the total length of the datagram including the
header Length of data = total length – header length Limited to 65,535 (216 – 1) bytes Encapsulation of a small datagram in an Ethernet Frame
Ethernet Frame size : 46 ~ 1500 bytes
1212Kyung Hee University
Datagram (cont’d)Datagram (cont’d)
Flags : used in fragmentation
Fragmentation offset : used in fragmentation
Time to live Used to control the maximum number of hops (routers)
visited by the datagram If the value is Zero, the routers discarded If the source wants to confine the packet to the local
network, it can store 1 in this field
1313Kyung Hee University
Datagram (cont’d)Datagram (cont’d)Protocol
Defining the higher level protocol that uses the services of the IP layer
– TCP, UDP, ICMP, and IGMP– Multiplexing data from different higher level protocols
Value Protocol1 ICMP2 IGMP6 TCP8 EGP
17 UDP89 OSPF
1414Kyung Hee University
Datagram (cont’d)Datagram (cont’d)
Example 1
- An arriving IP packet : 01000010
The receiver discards the packet, Why ?
- 2 x 4 bytes = 8bytes : Minimum number of bytes
in the header must be 20
1515Kyung Hee University
Datagram (cont’d)Datagram (cont’d)
Example 2
The value of HLEN is 1000 in binary
How many bytes of options are being carried by this
packet ?
8 x 4 bytes = 32 bytes : 20 bytes + 12 bytes (option)
1616Kyung Hee University
Datagram (cont’d)Datagram (cont’d)
Exampe 3
- In an IP packet, the value of HLEN is 5 16 and the value of the total length field is 002816. How many bytes of data are being carried by this packet?
Answer
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).
1717Kyung Hee University
Datagram (cont’d)Datagram (cont’d)
Example 4
An IP packet has arrived with the first few
hexadecimal digits as shown below:
45000028000100000102...................
How many hops can this packet travel before being
dropped? The data belong to what upper layer
protocol?
1818Kyung Hee University
Datagram (cont’d)Datagram (cont’d)
Answer
To find the time-to-live field, we should skip 8 bytes
(16 hexadecimal digits). 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.
1919Kyung Hee University
Datagram (cont’d)Datagram (cont’d)
Checksum : header checksum- 16 bits
Source IP address : 32 bit-field
Destination IP address : 32 bit-field
2020Kyung Hee University
8.2 Fragmentation8.2 Fragmentation
The format and size of the received frame depend on
the protocol used by the physical network
Ex) A router connecting Ethernet to token ring
2121Kyung Hee University
Fragmentation (cont’d)Fragmentation (cont’d)
MTU (Maximum Transfer Unit)
When a datagram is encapsulated in a frame, the total size of the datagram must be less than this maximum size
2222Kyung Hee University
Fragmentation (cont’d)Fragmentation (cont’d)
MTUs for different networks
Protocol MTU
Hyperchannel 65,535
Token ring (16Mbps) 17,914
Token ring (4Mbps) 4,464
FDDI 4,352
Ethernet 1,500
X.25 576
PPP 296
Hyperchannel : Network Systems Corporation, 1988 (RFC 1044)
2323Kyung Hee University
Fragmentation (cont’d)Fragmentation (cont’d)The maximum length of the IP datagram equals to the largest MTU defined so far (65,535 bytes)
Therefore, for the other physical networks we must divide the datagram : fragmentationfragmentation
datagram that can be fragmented by the source host or any router in the path, but the reassembly of datagram is done by the destination
When a datagram is fragmented, required parts of the header must be copied by all fragments.
Changing the values of the three fields : flags, fragmentation offset, and total length
The rest of fields must be copied Checksum must be recalculated
2424Kyung Hee University
Fragmentation (cont’d)Fragmentation (cont’d)Fields related to fragmentation
Identification : 16 bit-field Datagram id that is originated by the source host
– Therefore, Source IP address + datagram id (identification) All fragments having same identification number Identification No. to be used for the destination in
reassembling the datagram
Flags : 3 bit-field D : Do not fragment (1)
– If it can not pass the datagram through any available physical network, it discards the datagram and send ICMP error message to the source host
M : More fragment (0) – 0 : last fragment or only fragment
2525Kyung Hee University
Fragmentation (cont’d)Fragmentation (cont’d) Fragmentation offset : 13-bit field
Showing relative position of this fragment with respect to the whole datagram
Measured in units of 8 bytes : forcing hosts or routers that fragment datagrams to choose the size of each fragment so that the first byte number is divisible by eight
2727Kyung Hee University
8.3 Options8.3 Options
Variable part of the IP datagram : the maximum of 40 bytes
Format : Code, Length, and Data
2828Kyung Hee University
Options (cont’d)Options (cont’d)
Code field
8 bits length and containing 3 subfields : copy, class, and number
Copy Controlling the presence of the option in fragmentation 0 : meaning that option must be copied only to the first
fragment 1 : meaning the option must be copied to all fragments
Class Defining the general purpose of the option 00 : datagram control, 01 : reserved, 10 : Debugging and
management, 11: reserved
2929Kyung Hee University
Options (cont’d)Options (cont’d)
Number Defining the type of the option : only 6 options that are
currently being used
Length
defining the total length of the option including the code field and length field itself
Data
containing the data that specific options require
3131Kyung Hee University
Options (cont’d)Options (cont’d)
No Operation one byte option used as a filler between options
3232Kyung Hee University
Options (cont’d)Options (cont’d)
End of Option
one-byte option used for padding at the end of the option field
used as the last option
3333Kyung Hee University
Options (cont’d)Options (cont’d)
Record Route
used to record the internet routers that handle the datagram
list up to 9 router IP addresses since the max. size of the header is 60 bytes (Base header : 20 bytes)
pointer field An offset integer field containing the byte number of the
first empty entry (available entry) When leaving the source, the pointer field has a value of
four, pointing to the first empty field
3636Kyung Hee University
Options (cont’d)Options (cont’d) Strict Source Route
used by the source to predetermine a route for the datagram as it travels through the Internet
can choose a route with specific type of service : minimum delay or maximum throughput
3838Kyung Hee University
Options (cont’d)Options (cont’d)
Loose Source Route similar to the strict source route, but it is more relaxed each router in the list must be visited, but the datagram can
visit other routers as well
3939Kyung Hee University
Options (cont’d)Options (cont’d) Time Stamp
used to record the time of datagram processing by a router expressed in millisecond from the midnight, Universal
Time
4040Kyung Hee University
Options (cont’d)Options (cont’d)
overflow field : recording the number of routers that could not add their timestamp because no more fields were available
Use of flag in timestamp
4242Kyung Hee University
8.4 Checksum8.4 Checksum
Error detection method used by most TCP/IP
protocols
Checksum calculation at the sender
The packet is divided into k sections, each of n bits ( n is usually 16)
All sections are added together using one’s complement arithmetic
The final result is complemented to make the checksum
4343Kyung Hee University
Checksum (cont’d)Checksum (cont’d)
Checksum calculation at the receiver
The packet is divided into k sections, each of n bits.
All sections are added together using one’s complement arithmetic
The result is complemented
If the final result is 0, the packet is accepted; otherwise it is rejected
4646Kyung Hee University
Checksum (cont’d)Checksum (cont’d)
Checksum in the IP Packet
covering only the header, not the data all higher level protocols that encapsulate data in the IP
datagram have a checksum field that covers the whole packet
the header changes with each visited router, but data does not. So the checksum includes only the part which has changed
if each router must recalculates the checksum, it is needed to have the more processing time for each router
4848Kyung Hee University
8.5 IP Package8.5 IP Package
IP package : 8 components
Header-adding module
Processing module
Routing module
fragmentation module
reassembly module
routing table
MTU table
reassembly table
5050Kyung Hee University
IP Package(cont’d)IP Package(cont’d)
The operation of IP package
receiving an IP packet, either from the data link layer or a higher level protocol
if the packet comes from a upper layer protocol, it should be delivered to the data link layer
if the packet comes from the data link layer, forwarding to data link or a upper layer ( the destination is same as the station address)
5151Kyung Hee University
IP Package (cont’d)IP Package (cont’d)
Header-adding Module
Receive : data, destination address
1. Encapsulate the data in an IP datagram
2. Calculate the checksum and insert it in the checksum
field
3. Send the data to the corresponding input queue
4. Return
5252Kyung Hee University
IP Package (cont’d)IP Package (cont’d)
Processing Module
1. Remove one datagram from one of the input queues
2. if (destination address is 127.X.Y.Z or matches one of the local addresses)
1. Send datagram to the reassembly module.
2. Return
3. if (machine is a router)
1. Decrement TTL
4. if (TTL less than or equal to zero)
1. Discard the datagram
2. Send an ICMP error message
3. Return
5. Send the datagram to the routing module
6. Return
5353Kyung Hee University
IP Package (cont’d)IP Package (cont’d)
Queues
Input queues and output queues
Routing table
used by the routing module to determine the next-hop address of the packet
Routing module
receiving an IP packet from the processing module
sending the packet with the information to the fragmentation module
5454Kyung Hee University
IP Package (cont’d)IP Package (cont’d)
MTU Table
to find the maximum transfer unit of a particular interface.
5555Kyung Hee University
IP Package (cont’d)IP Package (cont’d) Fragmentation Module
Receive : an IP packet from routing module
1. Extract the size of the datagram
2. if (size > MTU of the corresponding network)
1. If (D (do not fragment) bit is set
1. Discard the datagram2. Send an ICMP error message3. Return
2. Else
1. Calculate the maximum size2. Divide the datagram into fragments3. Add header to each fragment4. Add required options to each fragment5. Send the datagram6. Return
3. Else
1. Send the datagram
4. Return
5656Kyung Hee University
IP Package (cont’d)IP Package (cont’d)
Reassembly Table
State field : FREE or IN-USE
Source IP address of datagram
Datagram ID
Time-out : a predetermined amount of time in which all fragments must arrive
Fragment field : a pointer to a linked list of fragments
5858Kyung Hee University
IP Package (cont’d)IP Package (cont’d)
Reassembly Module
Receive : an IP packet from the processing module
1. If (offset value is zero and the M bit is 0)
1. Send the datagram to the appropriate queue
2. Return
2. Search the reassembly table for the corresponding entry
3. If (not found)
1. Create a new entry
5959Kyung Hee University
IP Package (cont’d)IP Package (cont’d)
4. Insert the fragment at the appropriate place in the linked list
1. if (all fragments have arrived)
1. Reassemble the fragments2. Deliver the datagram to the corresponding upper layer protocol 3. Return
2. Else
1. Check the time-out2. if (time-out expired)
1. Discard all fragment2. Send an ICMP error message
5. Return