420 likes | 621 Views
University of Glamorgan. Networked & Distributed Systems. TCP/IP Transport Layer Protocols UDP and TCP. 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
E N D
University of Glamorgan Networked & Distributed Systems TCP/IP Transport Layer Protocols UDP and TCP
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
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
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
UDP Checksum • Optional checksum calculated on • UDP datagram • UDP pseudo-header • Does this violate layering?
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
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
Sliding Windows ACK Received • A receives ACK 5 and the window slides to the right
Sliding Windows Packet 8 sent • A sends Packet 8 and the window remain unchanged
Sliding Windows Packet 9 sent • A sends Packet 9 and the window remain unchanged
Sliding Windows Packet 6 ACK-ed • A receives ACK for Packet 6 and the window slides to the right
Sliding Windows Packet 6 ACK-ed • A sends packets 10, 11, and 12. No ACK received no more packets can 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 Header Fields • Source Port : Port number of sender of segment • Destination Port : Port number of intended recipient • Sequence Number : TCP uses byte numbersnot 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
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