Networked & Distributed Systems TCP/IP Transport Layer Protocols UDP and TCP University of...

42
Networked & Distributed Systems TCP/IP Transport Layer Protocols UDP and TCP University of Glamorgan

Transcript of Networked & Distributed Systems TCP/IP Transport Layer Protocols UDP and TCP University of...

Networked & Distributed Systems

TCP/IP Transport Layer Protocols

UDP and TCP

University of Glamorgan

What do I cover?

what is left from TCP/IP Protocols: Transport Layer Protocols

UDP TCP in more details

Upper layer protocols (RARP), BOOTP, DHCP DNS

Application Layer Protocols Telnet, FTP (TFTP), SMTP (POP3)

Transport Layer Protocols

TCP and UDP

.....

Internet

Transport Layer

IP

UDP TCP RTP

Transport Layer Protocols 2 main protocols TCP & UDP TCP – transmission control protocol

Connection oriented Reliable –sequence of numbered segments &

acknowledgments with any required re-transmissions

Flow control – sliding windows UDP – user datagram protocol

Connectionless Unreliable delivery of single segments

(datagrams) Errors detected but not corrected (No acks)

TCP/UDP analogies TCP as a telephone call

Make a connection – ring number– Verifies connectivity

Use connection – communicate– Reliability “can you repeat that please?”– Flow control – normal human courtesy

Close connection – receiver down UDP as a letter

Write it, address it, post it, hope it gets there

TCP vs UDP Relative merits TCP

Reliable High network overheads Complex and large software

UDP Unreliable (may not be a problem) Low network overheads Simple and small software

When to use UDP

Use TCP unless there is a reason for UDP

Possible reasons to use UDP When the network efficiency is needed

(SNMP) When the sw simplicity is needed

(Bootstrap loading) When the reliability of TCP is counter-

productive (Stream audio/video)

User Datagram Protocol (UDP)

UDP and the TCP/IP layered model UDP message format UDP and encapsulation UDP checksum

UDP And The TCP/IP Layered Model

Network Interface

Internet

Transport

Application

Conceptual Layer

HardwareNetwork-Specific Frames

IP Datagrams

Transport Protocol Packets

Messages or Streams

Objects PassedBetween Layers

UDP belongshere

Multiplexing and Demultiplexing –1

IP Module

UDP TCP Other Protocols

Interface 1 Interface 2 Interface 3

Transport

Network Interface

Multiplexing and Demultiplexing –2

Demultiplexing based onPort Number

Port #1 Port #2 Port #65535

UDP DatagramArrives

......

How Do We Allocate Port Numbers?

Well known port numbers Dynamic binding

Port numbers

0 to 255 public port numbers 256 to 1023 assigned to

companies for their own marketable

apps 1024+ unregulated

Examples of public ports

UDP Message Format

UDPHeader

UDPData Area

UDP Source Port UDP Destination Port

UDP Message Length UDP Checksum

UDP and Encapsulation

IPHeader

IPData Area

FrameHeader

FrameData Area

UDPHeader

UDPData Area

UDP Checksum Optional checksum calculated on

UDP datagram UDP pseudo-header

Does this violate layering?

Source IP Address

Destination IP Address

Zero UDP Length Protocol

UDP Checksum

Sent as IP Data

Compute Checksum on all this

Pseudo Header UDP DataUDP Header

Not Sent

Differences between TCP & UDP

Feature UDP TCP

Analogy Letter Post Phone Call

Connection Phase None Yes

Messages Individual, unrelated

Sequence

Lost Message User has to deal with loss

Protocol tries to recover

Message Order Maintained?

No Yes

Disconnection Phase

No Yes

Duplicate Messages Maybe No

Complexity Low High

Properties of a Reliable Delivery Service

Stream Orientation – Application just transfers a stream of bytes

Virtual Circuit Connection – Is TCP VC? Buffered Transfer – TCP decides what size

TCP messages are, not user Unstructured Stream – There is no

structure in the stream of bytes as far as TCP is concerned

Full Duplex Connection – Can transfer data in both directions simultaneously and independently

Positive Acknowledgement A Simple Example

A BPacket (1)

ACK(1) Process Packet (1)

Packet (2)

ACK(2) Process Packet (2)

Positive Acknowledgement Packet Doesn’t Arrive

A BPacket (1)

Packet (1)

ACK(1) Process Packet (1)

Timer Expires

Stop Timer

Start Timer

Start Timer

Positive Acknowledgement ACK Doesn’t Arrive

A BPacket (1)

Packet (1)

ACK(1)

Process Packet (1)

Timer Expires

Stop Timer

Start Timer

Start Timer

Discard Packet (1)

ACK(1)

Round Trip Time (RTT)

A B

Packet(1)

Process Packet(1) Round Trip Time ACK(1)

Round Trip Time (RTT)Estimate too low

A B Packet(1)

Process Packet(1)

Estimated Round Trip Time

ACK(1) Packet(1)

Round Trip Time (RTT)Estimate too high

A B Packet(1)

Estimated Round Trip Time

Packet(1)

Sending Multiple Packets Receiver may not be able to process

packets as fast as they arrive In fact ACK’s serve at least 3 different

purposes Recovery from lost packets Limit the rate at which sender can send packets Control congestion in the network

Compromise solution is required: The Sliding Window

Sliding Windows – Example

Given a window size = 6 packets A has sent packets 1 to 7 A has received ACK’s 1 to 4

1

Window Size = 6

2 3 4 5

6 7 8 9 10 11 12 13 ...

Sent & Acked

Sent not Acked

Could be sent

Can not be sent yet

Sliding Windows ACK Received

A receives ACK 5 and the window slides to the right

1

Window Size = 6

2 3 4 5 6 7 8 9 10 11 12 13 ...

Sent & Acked

Sent not

Acked

Could be sent

Can not be sent

Sliding Windows Packet 8 sent

A sends Packet 8 and the window remain unchanged

1

Window Size = 6

2 3 4 5 6 7 8 9 10 11 12 13 ...

Sent & Acked

Sent not

Acked Could be

sent Can not be sent

Sliding Windows Packet 9 sent

A sends Packet 9 and the window remain unchanged

1

Window Size = 6

2 3 4 5 6 7 8 9 10 11 12 13 ...

Sent & Acked

Sent not

Acked

Could be sent

Can not be sent

Sliding Windows Packet 6 ACK-ed

A receives ACK for Packet 6 and the window slides to the right

Window Size = 6

3

4 5 6 7 8 9 10 11 12 13 14 ...

Sent & Acked

Sent not

Acked Could be

sent Can not be sent

Sliding Windows Packet 6 ACK-ed

A sends packets 10, 11, and 12. No ACK received no more packets can be sent.

Window Size = 6

3

4 5 6 7 8 9 10 11 12 13 14 ...

Sent & Acked

Sent not Acked Can not be sent

Sliding WindowsWindow size?

Different protocols fix the window size in different ways Fixed by protocol specification Agreed when connection established Adjusted whilst connection in

progress(Demo is given later)

Sliding Windows Missing ACK’s ?

With just one outstanding ACK it was easy. If A doesn’t get an ACK it sends the packet again

With several ACK’s outstanding it gets much more complicated

What does A do when it detects a missing ACK?

What does B do when it detects a missing packet?

Different protocols use different solutions

Sliding Windows Missing ACK’s ?

There are two “extreme” positions When something goes missing A resends

every packet starting with the first unacknowledged packet.

This is called Go-Back-N.

When something goes missing A & B co-operate to just resend those packets B hasn’t received.

This is called Selective Retransmission.

TCP Encapsulation

IP Header

IP Data Area

TCP Header

TCP Data Area

TCP Header

TCP Header Fields Source Port : Port number of sender of

segment Destination Port : Port number of intended

recipient Sequence Number : TCP uses byte numbers not

packet numbers Acknowledgement Number : Number of the byte the

sender of this segment expects next Window : The size of the sliding window in bytes Checksum : Just like the UDP checksum Control bits : Special purpose bits Data : User data

Usage of SEQ-ACK-WIN Fields Example

TCP is Complicated

RFC 793 is over 90 pages long – but doesn’t cover everything

There are a number of additional RFC’s covering various aspects of TCP

There are a number of “reference implementations” which have performance enhancing features

There is no single TCP specification

Next : TCP continues

Establishing A TCP Connection Timeouts and Retransmission Congestion Push Silly Window Syndrome Closing A TCP Connection