510 likes | 869 Views
Computer Networks 1. Lectured by: Nguyễn Lê Duy Lai. Lecture 8: The Transport Layer. Reference : Chapter 6 - “Computer Networks”, Andrew S. Tanenbaum, 4th Edition, Prentice Hall, 2003. Outline. The Transport Services Elements of Transport Protocols A Simple Transport Protocol
E N D
Computer Networks 1 Lectured by: Nguyễn Lê Duy Lai HCM City University of Technology
Lecture 8: The Transport Layer HCM City University of Technology Reference: Chapter 6 - “Computer Networks”, Andrew S. Tanenbaum, 4th Edition, Prentice Hall, 2003.
Outline • The Transport Services • Elements of Transport Protocols • A Simple Transport Protocol • The Internet Transport Protocols: UDP • The Internet Transport Protocols: TCP • Performance issues HCM City University of Technology
The Transport Services • Transport Layer task is to provide reliable, cost-effective data transport from the source machine to the destination machine, independently of the physical network or networks currently in use • Services Provided to the Upper Layers • Transport Service Primitives • Berkeley Sockets • An Example of Socket Programming: • An Internet File Server HCM City University of Technology
Services Provided to the Upper Layers • The network, transport, and application layers HCM City University of Technology
Types of Transport Services • The connection-oriented transport service, connections have three phases: establishment, data transfer, and release • The connectionless transport service • Why are there two distinct layers? • The transport code runs entirely on the users' machines • The network layer mostly runs on the routers (which are operated by the carrier) HCM City University of Technology
Transport Service Primitives • The transport layer must provide some operations to application programs • Each transport service has its own interface • The primitives for a simple transport service HCM City University of Technology
Transport Protocol Data Unit • TPDU (Transport Protocol Data Unit): messages sent from transport entity to transport entity • The nesting of TPDUs, packets, and frames HCM City University of Technology
Transport Service State Diagram HCM City University of Technology A state diagram for a simple connection management scheme: Italics: packet arrivals Solid lines: client's state sequence Dashed lines: server's state sequence.
Berkeley Sockets • The socket primitives used in Berkeley UNIXfor TCP (Internet programming) HCM City University of Technology
Ex: An Internet File Server • Server code can be compiled and run on any UNIX system connected to the Internet • Client code can then be compiled and run on any other UNIX machine • SERVER_PORT • BUF_SIZE • Server: setsockopt, bind, listen, accept, send, receive, close • Client: socket, connect, send, receive, close HCM City University of Technology
Elements of Transport Protocols • Addressing • Connection Establishment • Connection Release • Flow Control and Buffering • Multiplexing • Crash Recovery HCM City University of Technology
A comparison needed... • Transport protocols resemble the data link protocols? • Yes: Dealing with error control, sequencing, and flow control, among other issues • No: dissimilarities between the environments in which the two protocols operate (physical channel and the entire subnet) • Potential existence of storage capacity in the subnet • Buffering and flow control HCM City University of Technology
Addressing HCM City University of Technology Application addresses on a host: Ports TSAPs, NSAPs and transport connections
Initial Connection Protocol HCM City University of Technology
Connection Establishment • Three-way handshake • (a) Normal operation. (b) Old CONNECTION REQUEST appearing out of nowhere. (c) Duplicate CONNECTION REQUEST and duplicate ACK HCM City University of Technology
Connection Establishment Issues • The problem occurs when the network can lose, store, and duplicate packets • The existence of delayed duplicates • A machine losing all memory • Guarantee not only that a packet is dead, but also that all acknowledgements to it are also dead HCM City University of Technology
Asymmetric Connection Release HCM City University of Technology Asymmetric release is the way the telephone system works Abrupt disconnection with loss of data
The Two-Army Problem • If either blue army attacks by itself, it will be defeated, but if the two blue armies attack simultaneously, they will be victorious • In fact, it can be proven that no protocol exists that works HCM City University of Technology
Symmetric Connection Release (a) Normal case of a three-way handshake (b) final ACK lost HCM City University of Technology
Continue... • (c) Response lost. (d) Response lost and subsequent DRs lost HCM City University of Technology
The Internet Transport Protocols • UDP – User Datagram Protocol • Connection-less service • Useful in client-server situations: Remote Procedure Call, real-time AV streaming • TCP – Transmission Control Protocol • Connection-oriented service • Reliable byte stream services over unreliable network • Most widely used in Internet HCM City University of Technology
UDP Header • UDP transmits segments consisting of an 8-byte header followed by the payload • Two ports serve to identify the end points within the source and destination machines HCM City University of Technology
UDP Segment • Source port is primarily needed when a reply must be sent back to the source • When a UDP segment arrives, its payload is handed to the process attached to the destination port • The UDP length field includes the 8-byte header and the data • The UDP checksum is optional and stored as 0 if not computed HCM City University of Technology
UDP Does and Does Not Do... • Does: • Providing an interface to the IP protocol • Demultiplexing multiple processes using the ports • Does Not: • Flow control • Error control • Retransmission upon receipt of a bad segment HCM City University of Technology
Introduction to TCP • An internetwork differs from a single network: different topologies, bandwidths, delays, packet sizes, and other parameters • TCP was specifically designed to provide a reliable end-to-end byte stream over an unreliable internetwork • TCP transport entity, either a library procedure, a user process, or part of the kernel • TCP breaks user data stream up into pieces not exceeding 64 KB (in practice, 1460 data bytes) HCM City University of Technology
TCP Service Model • Sender and receiver need to create connection end-points first, called sockets • Each socket is addressed by the host IP address (32 bits) and a port number (16 bits) • A TCP connection must be explicitly established between sockets • Port numbers < 1024 are reserved (well-known ports) • TCP connections are full-duplex and point-to-point • Push and urgent data HCM City University of Technology
TCP Daemons • A single daemon, called inetd (Internet daemon) in UNIX, attach itself to multiple ports • When first incoming connection, inetd forks off a new process and executes the appropriate daemon in it, letting that daemon handle the request • Inetd learns which ports it is to use from a configuration file • The system administrator can set up the system to have permanent daemons HCM City University of Technology
TCP Segment • The sending and receiving TCP entities exchange data in the form of segments • Two limits restrict the segment size: • 65,515-byte IP payload • Maximum transfer unit (MTU): 1500 bytes • Basic protocol used by TCP entities is the sliding window • Segments can arrive out of order, delayed, timed out • Each byte in the stream has its own unique offset HCM City University of Technology
The TCP Segment Header HCM City University of Technology
Explanation • Source port and Destination port: identify the local end points of the connection • Sequence number: every byte of data is numbered in a TCP stream • Acknowledgement number: specifies the next byte expected • TCP header length: tells how many 32-bit words are contained in the TCP header • URG bit: is set to 1 if the Urgent pointer is in use • ACK bit: is set to 1 to indicate that the Acknowledgement number is valid • PSH bit: indicates PUSHed data HCM City University of Technology
Explanation (cont') • RST bit: is used to reset a connection • SYN bit: is used to establish connections • FIN bit: is used to release a connection • Window size: field tells how many bytes may be sent starting at the byte acknowledged • Checksum field: checksums the header, the data, and the conceptual pseudoheader • Options: provides a way to add extra facilities HCM City University of Technology
TCP Connection Establishment (a) TCP connection establishment in the normal case. (b) Call collision. HCM City University of Technology
TCP Connection Release • Each simplex connection is released independently • Either party can send a TCP segment with the FIN bit set • To avoid the two-army problem, timers are used • If a response to a FIN is not forthcoming within two maximum packet lifetimes, the sender of the FIN releases the connection HCM City University of Technology
TCP Connection Management Modeling HCM City University of Technology
Window Management in TCP HCM City University of Technology
Client-Server Application with UDP (1) • Client operations • Identify server IP and port • Create UDP socket • Send/receive data to server • Close socket • Server operations • Create socket and register with the system • Read client messages and respond to client HCM City University of Technology
Client-Server Application with UDP (2) HCM City University of Technology
Client-Server Application with TCP (1) • Client operations • Identify server IP and port • Create UDP socket • Setup connection to server • Send/receive data • Close connection HCM City University of Technology
Client-Server Application with TCP (2) • Server operations • Create and register socket • Listen and wait for incoming connections • Accept connection • Send/receive data • Close connection HCM City University of Technology
Client-Server Application with TCP (3) • Concurrent server operations • Create and register socket • Listen and wait for incoming connections • Accept connection and spawn new thread to handle the connection • Listen and wait for new connection • Thread operations • Send/receive data through connection • Close connection HCM City University of Technology
Client-Server Application with TCP (4) HCM City University of Technology
Java API: java.net package • InetAddress • ServerSocket • Socket • URL • URLConnection • DatagramSocket HCM City University of Technology
InetAddress class • Class used for internet addresses (Internet Protocol) • Use methods: getLocalHost, getByName, or getAllByName to create an InetAddress instance: • public static InetAddess InetAddress.getByName(String hostname) • public static InetAddess [] InetAddress.getAllByName(String hostname) • public static InetAddess InetAddress.getLocalHost() • To get the host IP address or host name: • getHostAddress() • getHostName() HCM City University of Technology
Socket Class (1) • To describe a socket • To create a socket • Socket(InetAddress address, int port) • Socket(String host, int port) • Socket(InetAddress address, int port, InetAddress, localAddr, int localPort) • Socket(String host, int port, InetAddress, localAddr, int localPort) • Socket() HCM City University of Technology
Socket Class (2) • Get socket information • InetAddress getInetAddress() • int getPort() • InetAddress getLocalAddress() • int getLocalPort() • Using output and input Streams • public OutputStream getOutputStream() throws IOException • public InputStream getInputStream() throws IOException HCM City University of Technology
ServerSocket Class (1) • Used for a server side socket • Create a ServerSocket • ServerSocket(int port) throws IOException • ServerSocket(int port, int backlog) throws IOException • ServerSocket(int port, int backlog, InetAddress bindAddr) throws IOException HCM City University of Technology
ServerSocket Class (2) • Socket accept() throws IOException. • void close() throws IOException • InetAddress getInetAddress() • int getLocalPort() • void setSoTimeout(int timeout) throws SocketException HCM City University of Technology