Computer networks 1 - Lecture 8: The transport layer

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

pdf55 trang | Chia sẻ: nguyenlam99 | Lượt xem: 838 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Computer networks 1 - Lecture 8: The transport layer, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Computer Networks 1 Lectured by: Nguyễn Lê Duy Lai 2/14/2011 HCM City University of Technology 1 Lecture 8: The Transport Layer Reference: Chapter 6 - “Computer Networks”, Andrew S. Tanenbaum, 4th Edition, Prentice Hall, 2003. 2/14/2011 HCM City University of Technology 2 The Transport Services Elements of Transport Protocols A Simple Transport Protocol The Internet Transport Protocols: UDP The Internet Transport Protocols: TCP Performance issues Outline 2/14/2011 HCM City University of Technology 3 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 The Transport Services 2/14/2011 HCM City University of Technology 4 The network, transport, and application layers Services Provided to the Upper Layers 2/14/2011 5 HCM City University of Technology 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) Types of Transport Services 2/14/2011 HCM City University of Technology 6 The transport layer must provide some operations to application programs Each transport service has its own interface The primitives for a simple transport service Transport Service Primitives 2/14/2011 7 HCM City University of Technology TPDU (Transport Protocol Data Unit): messages sent from transport entity to transport entity The nesting of TPDUs, packets, and frames Transport Protocol Data Unit 2/14/2011 8 HCM City University of Technology Transport Service State Diagram A state diagram for a simple connection management scheme: Italics: packet arrivals Solid lines: client's state sequence Dashed lines: server's state sequence. 2/14/2011 9 HCM City University of Technology The socket primitives used in Berkeley UNIXfor TCP (Internet programming) Berkeley Sockets 2/14/2011 10 HCM City University of Technology 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 Ex: An Internet File Server 2/14/2011 HCM City University of Technology 11 Addressing Connection Establishment Connection Release Flow Control and Buffering Multiplexing Crash Recovery Elements of Transport Protocols 2/14/2011 HCM City University of Technology 12 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 A comparison needed... 2/14/2011 HCM City University of Technology 13 Addressing Application addresses on a host: Ports TSAPs, NSAPs and transport connections 2/14/2011 14 HCM City University of Technology Initial Connection Protocol 2/14/2011 HCM City University of Technology 15 Three-way handshake  (a) Normal operation. (b) Old CONNECTION REQUEST appearing out of nowhere. (c) Duplicate CONNECTION REQUEST and duplicate ACK Connection Establishment 2/14/2011 16 HCM City University of Technology 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 Connection Establishment Issues 2/14/2011 HCM City University of Technology 17 Asymmetric Connection Release Asymmetric release is the way the telephone system works Abrupt disconnection with loss of data 2/14/2011 18 HCM City University of Technology Symmetric release treats the connection as two separate unidirectional connections and requires each one to be released separately A host can continue to receive data even after it has sent a DISCONNECT TPDU Avoiding data loss Determining that all the work has been done and the connection should be terminated is not so obvious Sophisticated Release Protocol 2/14/2011 HCM City University of Technology 19 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 The Two-Army Problem 2/14/2011 20 HCM City University of Technology (a) Normal case of a three-way handshake (b) final ACK lost Symmetric Connection Release 2/14/2011 HCM City University of Technology 21 (c) Response lost. (d) Response lost and subsequent DRs lost Continue... 2/14/2011 22 HCM City University of Technology If the network service is unreliable, the sender must buffer all TPDUs sent, just as in the data link layer The receiver may maintain a single buffer pool shared by all connections When a TPDU comes in, an attempt is made to dynamically acquire a new buffer Flow control mechanism must be applied at the sender to prevent it from having too many unacknowledged TPDUs outstanding at once Sliding window flow control scheme in which the sender dynamically adjusts the window size to match the network's carrying capacity Flow Control and Buffering 2/14/2011 HCM City University of Technology 23 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 The Internet Transport Protocols 2/14/2011 HCM City University of Technology 24 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 UDP Header 2/14/2011 25 HCM City University of Technology 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 UDP Segment 2/14/2011 HCM City University of Technology 26 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 UDP Does and Does Not Do... 2/14/2011 HCM City University of Technology 27 Trying to arrange request-reply interactions on networks to be cast in the form of procedure calls Allowing programs to call procedures located on remote hosts Information can be transported from the caller to the callee in the parameters and can come back in the procedure result Remote Procedure Call 2/14/2011 28 HCM City University of Technology Step 1: Client calling the client stub with the parameters pushed onto the stack Step 2: Client stub packing the parameters into a message and making a system call to send the message (marshaling) Step 3: Kernel sending the message from the client machine to the server machine Step 4: Kernel passing the incoming packet to the server stub Step 5: Server stub calling the server procedure with the unmarshaled parameters RPC Steps 2/14/2011 HCM City University of Technology 29 Internet radio, Internet telephony, music-on-demand, videoconferencing, video-on-demand, and other multimedia applications The Real-Time Transport Protocol 2/14/2011 30 HCM City University of Technology 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) Introduction to TCP 2/14/2011 HCM City University of Technology 31 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 TCP Service Model 2/14/2011 HCM City University of Technology 32 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 TCP Daemons 2/14/2011 HCM City University of Technology 33 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 TCP Segment 2/14/2011 HCM City University of Technology 34 The TCP Segment Header 2/14/2011 HCM City University of Technology 35 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 Explanation 2/14/2011 HCM City University of Technology 36 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 Explanation (cont') 2/14/2011 HCM City University of Technology 37 (a) TCP connection establishment in the normal case. (b) Call collision. TCP Connection Establishment 2/14/2011 38 HCM City University of Technology 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 TCP Connection Release 2/14/2011 HCM City University of Technology 39 TCP Connection Management Modeling 2/14/2011 HCM City University of Technology 40 Window Management in TCP 2/14/2011 HCM City University of Technology 41 TCP attempts to achieve this goal by dynamically manipulating the window size Detecting congestion was difficult Two potential problems exist: network capacity and receiver capacity  Each sender maintains two windows: negotiated window, and congestion window Slow start: test the size of congestion window TCP Congestion Control 2/14/2011 HCM City University of Technology 42 Internet Congestion Algorithm 2/14/2011 HCM City University of Technology 43 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 Client-Server Application with UDP (1) 2/14/2011 HCM City University of Technology 44 Client-Server Application with UDP (2) 2/14/2011 HCM City University of Technology 45 Client operations  Identify server IP and port  Create UDP socket  Setup connection to server  Send/receive data  Close connection Client-Server Application with TCP (1) 2/14/2011 HCM City University of Technology 46 Server operations  Create and register socket  Listen and wait for incoming connections  Accept connection  Send/receive data  Close connection Client-Server Application with TCP (2) 2/14/2011 HCM City University of Technology 47 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 Client-Server Application with TCP (3) 2/14/2011 HCM City University of Technology 48 Client-Server Application with TCP (4) 2/14/2011 HCM City University of Technology 49 InetAddress ServerSocket Socket URL URLConnection DatagramSocket Java API: java.net package 2/14/2011 HCM City University of Technology 50 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() InetAddress class 2/14/2011 HCM City University of Technology 51 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() Socket Class (1) 2/14/2011 HCM City University of Technology 52 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 Socket Class (2) 2/14/2011 HCM City University of Technology 53 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 ServerSocket Class (1) 2/14/2011 HCM City University of Technology 54 Socket accept() throws IOException. void close() throws IOException InetAddress getInetAddress() int getLocalPort() void setSoTimeout(int timeout) throws SocketException ServerSocket Class (2) 2/14/2011 HCM City University of Technology 55

Các file đính kèm theo tài liệu này:

  • pdfcn1_lecture08_0594.pdf
Tài liệu liên quan