1 Kyung Hee University Chapter 8 Internet Protocol (IP)

59
1 Kyung Hee University Chapter 8 Chapter 8 Internet Internet Protocol Protocol (IP) (IP)

Transcript of 1 Kyung Hee University Chapter 8 Internet Protocol (IP)

11Kyung Hee University

Chapter 8Chapter 8Internet ProtocolInternet Protocol

(IP)(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

55Kyung Hee University

Datagram (cont’d)Datagram (cont’d)

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

77Kyung Hee University

Datagram (cont’d)Datagram (cont’d)

Service type or Differentiated Services

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

2626Kyung Hee University

Fragmentation (cont’d)Fragmentation (cont’d)

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

3030Kyung Hee University

Options (cont’d)Options (cont’d)

Option Types

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

3434Kyung Hee University

Options (cont’d)Options (cont’d)

Record route option

3535Kyung Hee University

Options (cont’d)Options (cont’d)

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

3737Kyung Hee University

Options (cont’d)Options (cont’d)

Strict source route concept

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

4141Kyung Hee University

Options (cont’d)Options (cont’d)

Timestamp concept (when flag =1)

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

4444Kyung Hee University

Checksum (cont’d)Checksum (cont’d) Checksum concept

4545Kyung Hee University

Checksum (cont’d)Checksum (cont’d)

Checksum in one’s complement arithmetic

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

4747Kyung Hee University

Checksum (cont’d)Checksum (cont’d) Example

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

4949Kyung Hee University

IP Package (cont’d)IP Package (cont’d) IP components

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

5757Kyung Hee University

IP Package (cont’d)IP Package (cont’d)

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