More on TCP/IP Module A Panko’s Business Data Networks and Telecommunications, 6th edition...

Preview:

Citation preview

More on TCP/IPModule A

Panko’sBusiness Data Networks and Telecommunications, 6th edition Copyright 2007 Prentice-HallMay only be used by adopters of the book

Multiplexing

3

Multiplexing

IP packets can carry different things in their data fields TCP segments

UDP datagrams

ICMP supervisory messages (later)

RIP messages (later)

IP Data Field IP Header

4

Multiplexing

We say that IP can multiplex (mix) different types of traffic in a stream of IP packets

UDP IP-H TCP IP-H UDP IP-H ICMP IP-H

Stream of Arriving or Outgoing IP Packets

Single IP PacketCarrying UDP Datagram

5

Multiplexing

IP process must pass contents of arriving IP packets to the correct process for subsequent handling

IP

TCP UDP

ICMPUDP IP-H

IP ProcessArrivingPackets

6

Multiplexing

IP process must also accept messages from multiple processes and multiplex them on an outgoing stream

IP

TCP UDP

ICMPUDPIP-H

IP ProcessOutgoingPackets

7

Multiplexing

Need a Way for Receiving IP Process to Know What is in the Data Field So it can pass the contents to the appropriate

process

IP Data Field IP Header

8

Multiplexing

IP Header has an 8-bit Protocol field Identifies the contents of the data field

1=ICMP (later), 8=TCP, 17=UDP, etc.

Total Length in bytes (16)

Time to Live (8)

Version(4)

Hdr Len(4) TOS (8)

Indication (16 bits) Flags (3) Fragment Offset (13)

Source IP Address

Destination IP Address

Header Checksum (16)Protocol (8)

9

Multiplexing

Other Messages have Analogous Fields Identify contents of data field

TCP and UDP Have Port number fields

Identify the application process (80=HTTP)

Source Port # (16) Destination Port # (16)

Sequence Number (32 bits)

Acknowledgement Number (32 bits)

Hdr Len(4) Flags (6) Window Size (16)Reserved (6)

10

Multiplexing

Other Messages have Analogous Fields Identify contents of data field

PPP Protocol field identifies contents of information

field as IP, IPX, a supervisory message, etc.

Flag Addr Ctrl Prot Info CRC Flag

More on TCP Acknowledgements

Sequence Number Field

Initial Sequence Number

Acknowledgement Number Field

12

TCP

TCP is Reliable IP packets carrying TCP segments may arrive out of

order

TCP must put the TCP segments in order

3 4 2 15

13

TCP

TCP is Reliable Each correct TCP segment is acknowledged by the

receiver

SourceTransportProcess

SourceTransportProcess

DestinationTransportProcess

DestinationTransportProcess

TCP SegmentTCP Segment

ACKACK

14

TCP Segment

Each TCP segment sent by a side must have a sequence number Simplest: 1,2,3,4,5,6,7

To detect lost or out-of-sequence messages

TCP uses a more complex approach

11 44 22 55

3?

15

TCP Sequence Numbers

TCP header has a 32-bit sequence number field

Source Port # (16) Destination Port # (16)

Sequence Number (32 bits)

Acknowledgement Number (32 bits)

Hdr Len(4) Flags (6) Window Size (16)

Options (if any) PAD

Reserved (6)

TCP Checksum (16) Urgent Pointer (16)

Data Field

16

TCP Sequence Numbers

Initial Sequence Number is randomly selected by the sender; Say, 79

Sent in the sequence number field of the first TCP segment

79

TCP Data Field

TCP Header

Sequence Number Fieldwith Initial Sequence Number (79)

17

TCP Sequence Numbers

Data octets in data fields of all segments in a connection are viewed as a long string

TCP Segment 1 79

TCP Segment 2 808182

TCP Segment 3 8384

3 Octets in Data Field

2 Octets in Data Field

ISN

18

TCP Sequence Numbers

Supervisory segments, which contain a header but no data, are treated as carrying a single octet of data

TCP seg 1 898899

TCP seg 2 900

TCP seg 3 901902…

Supervisory segment

Carries data

Carries data

19

TCP Sequence Numbers

Sequence number field gets the value of the first octet in the data field

TCP 1 79

TCP 2 808182

TCP 3 8384

80 is SeqNum Field Value

83 is SeqNum Field Value

79 is SeqNum Field Value

20

TCP Acknowledgements

Acknowledgement must indicate which TCP segment is being acknowledged

SourceTCP

Process

SourceTCP

Process

DestinationTCP

Process

DestinationTCP

Process

TCP SegmentTCP Segment

ACKACK

21

TCP Acknowledgements

TCP header contains a 32-bit Acknowledgement Number field to designate the TCP segment being acknowledged

Source Port # (16) Destination Port # (16)

Sequence Number (32 bits)

Acknowledgement Number (32 bits)

Hdr Len(4) Flags (6) Window Size (16)

Options (if any) PAD

Reserved (6)

TCP Checksum (16) Urgent Pointer (16)

Data Field

22

TCP Acknowledgment Numbers

Acknowledgement Number field contains the next byte expected--the last byte of the segment being acknowledged, plus one

TCP 1 79

TCP 2 808182

TCP 3 8384

83 is AckNum Field Value

85 is AckNum Field Value

80 is AckNum Field Value

23

TCP Acknowledgement Number

Quiz: A TCP segment contains the following data octets 567, 568, 569, 570, 571, 572, 573, 574

What will be in the sequence number field of the TCP segment delivering the data?

What will be in the acknowledgement number field of the TCP segment acknowledging the TCP segment that delivers these octets?

24

TCP Flow Control

Flow Control One TCP process transmits too fast

Other TCP process is overwhelmed

Receiver must control transmission rate

This is flow control

TCP Process TCP Process

Too MuchData

Flow Control Message

25

TCP Flow Control

A TCP segment has a Window Size field Used in acknowledgements

Source Port # (16) Destination Port # (16)

Sequence Number (32 bits)

Acknowledgement Number (32 bits)

Hdr Len(4) Flags (6) Window Size (16)

Options (if any) PAD

Reserved (6)

TCP Checksum (16) Urgent Pointer (16)

Data Field

26

TCP Flow Control

A TCP segment has a Window Size field Tell how many more octets the sender can send

beyond the segment being acknowledged

TCP Process TCP Process

Data

Acknowledgement with Window Size Field

27

TCP Flow Control

Example

TCP segment contained octets 45-89

Acknowledgement number for TCP segment acknowledging the segment is 90

If Window Size field value is 50, then

Sender may send through octet 140

Must then stop unless the window has been extended in another acknowledgement

28

TCP Flow Control

Each Acknowledgement extends the window of octets that may be sent Called a sliding window protocol

1-44 45-79 80-419 420-630

400May send through 480

1-44 45-79 80-419 420-630

500May send through 920

29

TCP Fragmentation

TCP Segments have maximum data field sizes (Size limit details are discussed later)

What if an application layer message is too large?

TCP HeaderTCP Data Field Max

Application Layer Message

30

TCP Fragmentation

Application layer message must be fragmented Broken into several pieces

Delivered in separate TCP segments

TCP HeaderTCP Data Field Max

App Frag 1 App Frag 2 App Frag 3

31

TCP Fragmentation

Note that, in TCP fragmentation, the TCP segment is NOT fragmented The application layer message is fragmented

TCP HeaderTCP Data Field Max

App Frag 1 App Frag 2 App Frag 3

32

TCP Fragmentation

Transport layer process on the source host does the fragmentation Application layer on the source host is not

involved Transparent to the application layer

Application

Transport

Internet

Application Message

TCP Segment TCP Segment

33

TCP Fragmentation

Transport layer process on the destination host does the reassembly Application layer on the destination host is not

involved; Gets original application layer message

Application

Transport

Internet

Application Message

TCP Segment TCP Segment

34

TCP Fragmentation

What is the maximum TCP data field size? Complex

Maximum Segment Size (MSS) Maximum size of a TCP segment’s data field

NOT maximum size of the segment as its name would suggest!!!

35

TCP Fragmentation

MSS Default is 536 octets Maximum IP packet size any network must

support is 576 octetsLarger IP packets MAY be fragmented

IP and TCP headers are 20 octets each if there are no options

This gives the default MSS of 536

Smaller if there are options in the IP or TCP header

36

TCP Fragmentation

MSS Default is 536 octets

Suppose the application layer process is 1,000 octets long

Two TCP segments will be needed to send the data

The first can send the first 536 octets

The second can carry the remaining 464 octets of the application layer message

37

TCP Fragmentation

Each side MAY announce a larger MSS An option usually used in the initial SYN message it

sends to the other

If announces MSS of 2,048, this many octets of data may be sent in each TCP segments

536 is only the default—the value to use if no other value is specified by the other side

More on Internet Layer Processes

39

Mask Operations

Masks were introduced in Chapter 3

IP addresses alone do not tell you the size of their network or subnet parts

Network Mask Has 1s in the network part Has 0s in the remaining bits

Subnet Mask Has 1s in the network plus subnet parts Has 0s in the remaining bits

40

Mask Operations

Based on Logical AND Both must be true for the result to be true

Example 1010101010 Data

1111100000 Mask

1010100000 Result

41

Mask Operations

Based on Logical AND If mask bit is 1, get back original data

If mask bit is 0, bet back zero

Example 1010101010 Data

1111100000 Mask

1010100000 Result

42

Mask Operations

IP packet arrives at a router Router sees destination IP address 11111111 01000000 10101010 00000000

Compares to each router forwarding table row Address Part in First Entry 11111111 01000000 00000000 00000000

Mask in First Entry 11111111 11100000 00000000 00000000

43

Mask Operations

Mask the IP destination Address 11111111 01000000 10101010 00000000 (IP address)

11111111 11100000 00000000 00000000 (mask)

11111111 01000000 00000000 00000000 (result)

Compare Result with First Entry Address part 11111111 01000000 00000000 00000000 (address part)

11111111 01000000 00000000 00000000 (result)

The Entry is a Match!

44

Mask Operations

Recap Read destination IP address of incoming IP packet

For each entry in the router forwarding tableRead the mask (prefix)Mask the incoming IP addressCompare the result with the entry’s IP address

partDo they match or not?

45

Mask Operations

Simple for Computers Computers have circuitry to AND to numbers

Computers have circuitry to COMPARE two numbers to see if they are equal or not

Very computer-friendly, so used on routers

Difficult for people, unfortunately

46

IPv6

Current version of the Internet Protocol is Version 4 (v4) Earlier versions were not implemented

The next version will be Version 6 (v6) No v5 was implemented Informally called IPng (Next Generation)

IPv6 is Already Defined Continuing improvements in v4 may delay its

adoption

47

IPv6

IPv6 will raise the size of the internet address from 32 bits to 128 bits Now running out of IP addresses

Will solve the problem

But current work-arounds are delaying the need for IPv6 addresses

48

IPv6

Improved Security But, through IPsec, v4 is being upgraded in security

as well

Improved Quality of Service (QoS) But under IETF Differentiated Services (diffserv)

initiative, IPv4 is being upgraded in this area as well

49

IPv6

Extension Headers IPv4 Headers are complex IPv6 basic header is simple Extension headers for options

Basic Header

Extension Header 1

Extension Header 2

50

IPv6

Extension Headers Basic header has 8-bit Next Header field

Identifies first extension header or says that payload follows

Basic Header

Extension Header 1

Extension Header 2

NH

51

IPv6

Extension Headers Each extension header also has 8-bit Next Header

field

Identifies next extension header or says that payload follows

Basic Header

Extension Header 1

Extension Header 2

NH

52

IPv6

Extension Headers Next header field is an elegant way to allow options

Easy to add new extension headers for new needs

Basic Header

Extension Header 1

Extension Header 2

NH

IP Fragmentation

54

MTU

Maximum Transmission Unit (MTU) Largest IP packet a network will accept

Arriving IP packet may be larger

IP Packet

MTU

55

IP Fragmentation

If IP packet is longer than the MTU, the router breaks packet into smaller packets Called IP fragments

Fragments are still IP packets

Earlier in Mod A, fragmentation in TCP

IP Packet 2 1

IP PacketsFragmentation

MTU

3

56

IP Fragmentation

What is Fragmented? Only the original data field

New headers are created

IP Packet 2 1

IP PacketsFragmentation

MTU

3

57

IP Fragmentation

What Does the Fragmentation? The router

Not the subnet

IP Packet 2 1

IP PacketsFragmentation

MTU

3

58

Multiple Fragmentations

Original packet may be fragmented multiple times along its route

DestinationHost

InternetProcess

SourceHost

InternetProcess

Fragmentation

59

Defragmentation

Internet layer process on destination host defragments, restoring the original packet

IP Defragmentation only occurs once

DestinationHost

InternetProcess

Defragmentation

SourceHost

InternetProcess

60

Fragmentation and IP Fields

More Fragments field (1 bit) 1 if more fragments 0 if not Source host internet process sets to 0 If router fragments, sets More Fragments field in

last fragment to 0 In all other fragments, sets to 1

0 0 1 1

Original IP Packet Fragments

61

Identification Field

IP packet has a 16-bit Identification field

Total Length in bytes (16)

Time to Live (8)

Options (if any)

Version(4)

Hdr Len(4) TOS (8)

Indication (16 bits) Flags (3) Fragment Offset (13)

Source IP Address

Destination IP Address

Header Checksum (16)Protocol (8)

PAD

Data Field

62

Identification Field

IP packet has a 16-bit Identification field Source host internet process places a number in the

Identification field

Different for each IP packet

Total Length in bytes (16)

Time to Live (8)

Version(4)

Hdr Len(4) TOS (8)

Indication (16 bits) Flags (3) Fragment Offset (13)

Header Checksum (16)Protocol (8)

63

Identification Field

IP packet has a 16-bit Identification field If router fragments, places the original Identification

field value in the Identification field of each fragment

47 47 47 47

Original IP Packet Fragments

64

Identification Field

Purpose Allows receiving host’s internet layer process know

what fragments belong to each original packet

Works even if an IP packet is fragmented several times

47 47 47 47

Original IP Packet Fragments

65

Fragment Offset Field

Fragment offset field (13 bits) is used to reorder fragments with the same Identification field

Contains the data field’s starting point (in octets) from the start of the data field in the original IP packet

Total Length in bytes (16)Version

(4)Hdr Len

(4) TOS (8)

Indication (16 bits) Flags (3) Fragment Offset (13)

66

Fragment Offset Field

Receiving host’s internet layer process assembles fragments in order of increasing fragment offset field value

This works even if fragments arrive out of order!

Works even if fragmentation occurs multiple times

0212730

Fragment Offset Field

67

Fragmentation: Recap

IP Fragmentation

Data field of a large IP packet is fragmented

The fragments are sent into a series of smaller IP packets fitting a network’s MTU

Fragmentation is done by routers

Fragmentation may be done multiple times along the route

68

Defragmentation: Recap

IP Defragmentation

Defragmentation (reassembly) is done once, by destination host’s internet layer process

69

Defragmentation: Recap

All IP packets resulting from the fragmentation of the same original IP packet have the same Identification field value

Destination host internet process orders all IP packets from the same original on the basis of their Fragment Offset field values

More Fragments field tells whether there are no more fragments coming

70

Dynamic Routing Protocols

Why Dynamic Routing Protocols? Each router acts independently, based on

information in its router forwarding table

Dynamic routing protocols allow routers to share information in their router forwarding tables

RouterForwardingTable Data

71

Routing Information Protocol (RIP)

Routing Information protocol (RIP) is the simplest dynamic routing protocol Each router broadcasts its entire routing table

frequently

Broadcasting makes RIP unsuitable for large networks

RoutingTable

72

Routing Information Protocol (RIP)

RIP is the simplest dynamic routing protocol Broadcasts go to hosts as well as to routers

RIP interrupts hosts frequently, slowing them down; Unsuitable for large networks

RoutingTable

73

Routing Information Protocol (RIP)

RIP is Limited RIP routing table has a field to indicate the number

of router hops to a distant host

The RIP maximum is 15 hops

Farther networks are ignored

Unsuitable for very large networks

Hop Hop

74

Routing Information Protocol

Is a Distance Vector Protocol “New York” starts, announces itself with a RIP

broadcast

“Chicago” learns that New York is one hop away

Passes this on in its broadcasts

New York Chicago Dallas

1 hop

NY is 1

75

Routing Information Protocol

Learning Routing Information “Dallas” receives broadcast from Chicago

Already knows “Chicago” is one hop from Dallas

So New York must be two hops from Dallas

Places this information in its routing table

New York Chicago Dallas

1 hop 1 hop

NY is 1

NY is 2

76

Routing Information Protocol

Slow Convergence Convergence is getting correct routing tables after a

failure in a router or link

RIP converges very slowly

May take minutes

During that time, many packets may be lost

77

Routing Information Protocol

Encapsulation Carried in data field of UDP datagram

Port number is 520

UDP is unreliable, so RIP messages do not always get through

A single lost RIP message does little or no harm

UDPHeader

UDP Data FieldRIP Message

78

OSPF Routing Protocol

Link State Protocol Link is connection between two routers

OSPF routing table stores more information about each link than just its hop count: cost, reliability, etc.

Allows OSPF routers to optimize routing based on these variables

Link

79

OSPF Routers

Network is Divided into Areas Each area has a designated router

AreaDesignated

Router

80

OSPF Routers

When a router senses a link state change Sends this information to the designated router

AreaDesignated

Router

Notice ofLink State Change

81

OSPF Routers

Designed Router Notifies all Routers Within its area

AreaDesignated

Router

Notice ofLink State Change

82

OSPF Routers

Efficient Only routers are informed (not hosts)

Usually only updates are transmitted, not whole tables

AreaDesignated

Router

Notice ofLink State Change

83

OSPF

Fast Convergence When a failure occurs, a router transmits the notice

to the designated router

Designated router send the information back out to other routers immediately

84

OSPF

Encapsulation Carried in data field of IP packet

Protocol value is 89

IP is unreliable, so OSPF messages do not always get through

A single lost OSPF message does little or no harm

IPHeader

IP Data FieldOSPF Message

85

Selecting RIP or OSPF

Within a network you control, it is your choice Your network is an autonomous system

Select RIP or OSPF based on your needs

Interior routing protocol

86

Selecting RIP or OSPF

RIP is fine for small networks Easy to implementing

15 hops is not a problem

Broadcasting, interrupting hosts are not too important

87

Selecting RIP or OSPF

OSPF is Scalable

Works with networks of any size

Management complexities are worth the cost in large networks

88

Border Gateway Protocol (BGP)

To connect different autonomous systems Must standardized cross-system routing information

exchanges

BGP is most popular today

Gateway is the old name for router

Exterior routing protocol

AutonomousSystem

AutonomousSystemBGP

89

Border Gateway Protocol (BGP)

Distance vector approach Number of hops to a distant system is stored in the

router forwarding table

Normally only sends updates

AutonomousSystem

AutonomousSystemBGP

90

Border Gateway Protocol (BGP)

Encapsulation BGP uses TCP for delivery

Reliable

TCP is only for one-to-one connections

If have several external routers, must establish a TCP and BGP connection to each

AutonomousSystem

AutonomousSystemBGP

Address Resolution Protocol (ARP)

92

Internet and Data Link Layer Addresses

Each host and router on a subnet needs a data link layer address to specify its address on the subnet This address appears in the data link layer frame

sent on a subnet

For instance, 48-bit 802.3 MAC layer frame addresses for LANs

Subnet DADL Frame for Subnet

93

Addresses

Each host and router also needs an IP address at the internet layer to designate its position in the overall Internet

Subnet

Subnet

Subnet128.171.17.13

94

Internet and Data Link Addresses Serve Different Purposes

IP address To guide delivery to destination host across the

Internet (across multiple networks)

Subnet Address To guide delivery between two hosts, two routers,

and a host and router within a single subnet

Same LAN, Frame Relay network, etc.

95

Analogy

In company, each person has a company-wide ID number (like IP address)

In company, person also has a local office number in a building

Paychecks are made out to ID numbers

For delivery, also need to know office number

96

Address Resolution

Problem

Router knows that destination host is on its subnet based on the IP address of an arriving packet

Does not know the destination host’s subnet address, so cannot deliver the packet across the subnet

Subnet128.171.17.13

subnet address?

Destination Host

97

Address Resolution Protocol (ARP)

Router creates an ARP Request message to be sent to all hosts on the subnet. Address resolution protocol message asks “Who has

IP address 128.171.17.13?”

Passes ARP request to data link layer process for delivery

Subnet

ARP Request

98

Address Resolution Protocol (ARP)

Data link process of router broadcasts the ARP Request message to all hosts on the subnet. On a LAN, MAC address of 48 ones tells all stations

to pay attention to the frame

Subnet

ARP Request

99

Address Resolution Protocol (ARP)

Host with IP address 128.171.17.13 responds Internet process creates an ARP response message

Contains the destination host’s subnet address (48-bit MAC address on a LAN)

Subnet

ARP Response

100

Address Resolution Protocol (ARP)

Router delivers the IP packet to the destination host Places the IP packet in the subnet frame

Puts the destination host’s subnet address in the destination address field of the frame

Subnet

Deliver IP Packetwithin a subnet frame

101

Address Resolution Protocol

ARP Requests and Responses are sent between the internet layer processes on the router and the destination host

InternetProcess

Router

InternetProcess

Destination HostARP

Request

ARPResponse

102

Address Resolution Protocol

However, the data link processes deliver these ARP packets Router broadcasts the ARP Request

Destination host sends ARP response to the subnet source address found in the broadcast frame

InternetProcess

Router

InternetProcess

Destination Host

Broadcast ARP Request

Direct ARP Response

Data LinkProcess

Data LinkProcess

103

IP Address Classes

How large is the network part in an IP address?

Today we use network masks to tell

Originally, IP had address classes with fixed numbers of bits in the network part Class A: 8 bits (24 bits in local part)

Class B: 16 bits (16 bits in local part)

Class C: 24 bits (8 bits in local part)

104

Class A IP Address

IP address begins with 0

7 remaining bits in network part Only 128 possible Class A networks

24 bits in local part Over 16 million hosts per Class A network!

All Class A network parts are assigned or reserved

105

Class B IP Address

IP address begins with 10 (1st zero in 2nd position)

14 remaining bits in network part Over 16,000 possible Class B networks

16 bits in local part Over 65,000 possible hosts

A good trade-off between number of networks and hosts per network

Most have been assigned

106

Class C IP Address

IP address begins with 110 (1st zero in 3d position)

21 more bits in network part Over 2 million possible Class C networks!

8 bits in local part Only 256 possible hosts per Class C network!

Unpopular, because large firms must have several

107

Class D IP Address

IP address begins with 1110

Used for multicasting, not defining networks Sending message to group of hosts

Not just to one (unicasting)

Not ALL hosts (broadcasting)

Say to send a videoconference stream to a group of receivers

108

Class D IP Address

All hosts in a multicast group listen for this multicast address as well as for their specific own host IP address

Packets toMulticast Address

Not in GroupReject

In GroupAccept

In GroupAccept

109

Multicasting

Traditionally, unicasting and broadcasting Unicasting: send to one host Broadcasting: send to ALL hosts

Multicasting Send to SOME hosts 500 stations viewing a video course 50 computers getting software upgrades Standards exist and are improving Not widely implemented yet

110

Why Multicasting

Do not need to send an IP packet to each host Routers split when needed

Reduces traffic

SinglePacket

MultiplePackets

111

Mobile IP

IP addresses are associated with fixed physical locations

Mobile IP is needed for notebooks, other portable equipment

Computer still gets a permanent IP address

When travels, also gets a temporary IP address at its location

This is linked dynamically to its permanent IP address

112

MultiProtocol Label Switching (MPLS)

When a packet arrives, routers must consider all possible routes, then select the best one

This is extremely expensive

MPLS adds a tag to each packet

An MPLS router examines the tag and passes the packet back out

This is fast and inexpensive

113

MultiProtocol Label Switching (MPLS)

This is similar to virtual circuits in ATM

In addition, packets with similar priority or other characteristics can be given the same label and so be handled in the same way.

114

MultiProtocol Label Switching (MPLS)

110

TaggedPacket

MPLS Table for Q

Label110…

Port1…

NHRR…

Q

R

S

RoutingDecision

Recommended