ilab
play

ilab Lab 4 TCP/UDP Purpose of the Transport Layer Provides an end - PowerPoint PPT Presentation

Lehrstuhl fr Netzarchitekturen und Netzdienste Institut fr Informatik Technische Universitt Mnchen ilab Lab 4 TCP/UDP Purpose of the Transport Layer Provides an end to end connectivity to applications application application 4


  1. Lehrstuhl für Netzarchitekturen und Netzdienste Institut für Informatik Technische Universität München ilab Lab 4 TCP/UDP

  2. Purpose of the Transport Layer  Provides an end to end connectivity to applications application application 4 TCP TCP 3 IP IP IP IP 1 / 2 Network 1 Network 1Network 2 Network 2Network 3 Network 3  Tasks  Addressing of applications on end hosts  Reliable data transfer  Packets might • get lost on their way • arrive out of order • contain errors  Protection of the receiver and the network ilab: TCP/UDP 2

  3. Addressing of application Client Server Webserver Mailserver Browser Port 80 Port 25  The internet model uses port numbers to address services  „Well-known“ Ports:  e.g. a webserver is usually reachable at port 80  Sometimes port numbers are dynamically exchanged on connection establishment (e.g. Voice over IP)  Otherwise the user needs to specify the port in order to communicate with a service ilab: TCP/UDP 3

  4. Addressing of applications II Client Client Server Webserver Browser Browser Browser Browser Port 80  Port numbers are NOT globally unique  Several clients can connect to the same server using the same port  Thus, more information is needed in order to uniquely identify a connection  IP 5 tuple:  Source port, source IP address, destination port, dest. IP address, layer 4 protocoll (tcp or udp)  The endpoints of such a connection are called sockets ilab: TCP/UDP 4

  5. The transport layer in the internet  Mainly two protocols of the transport layer are used in the internet:  TCP (Transmission Control Protocol): reliable, connection oriented transport protocol on top of the unreliable IP  UDP (User Datagram Protocol): unreliable, connectionless transport protocol. Provides an application interface for IP Application Application protocol protocol TCP UDP TCP UDP Internet IP IP Layer 2 Layer 2 protocol protocol host A host B ilab: TCP/UDP 5

  6. UDP (User Datagram Protocol)  unreliable, connectionless, simpler and faster than TCP  Demultiplexing based on port numbers  Optional checksum (mandatory for UDP over IPv6) 0 16 31 Source Port Destination Port Packet- header Message Length Checksum Data ...  some „well-known“ ports:  13: daytime  53: domain name server  123: network time protocol  Many multimedia applications use UDP instead of TCP ilab: TCP/UDP 6

  7. TCP: properties and services  TCP provides reliable, ordered delivery of a stream of bytes from a program on one computer to another program on another computer.  TCP adapts dynamically to the environment (e.g. network topology, changing bandwidth)  Data transfer:  Connection oriented  Full duplex  Error correction through sequence numbers, checksum, acknowledgements and retransmissions  Flow control and congestion control (-> adaption to network load, stability of the network and fairness)  Multiplexing based on port numbers ilab: TCP/UDP 7

  8. TCP: well-known ports  Many applications are based on TCP and need to choose a port number  Well known ports reserved for the most important services  13: time > telnet walapai 13 Trying 129.13.3.121...  20: FTP data Connected to leonis. Escape character is '^]'. Mon Aug 4 16:57:19 2002  25: SMTP Connection closed by foreign host (Simple Mail Transfer Protocol) > telnet mailhost 25  53: DNS Trying 129.13.3.161... Connected to mailhost . (Domain Name Server) Escape character is '^]'. 220 mailhost ESMTP Sendmail 8.8.5/8.8.5; Mon, 4 Aug 2002 17:02:51 +0200  80: HTTP HELP 214-This is Sendmail version 8.8.5 (Hyper Text Transfer Protocol) 214-Topics: 214- HELO EHLO MAIL RCPT DATA  119: NNTP 214- RSET NOOP QUIT HELP VRFY 214- EXPN VERB ETRN DSN (Network News Transfer Protocol) 214-For more info use "HELP <topic>". ... 214 End of HELP info ilab: TCP/UDP 8

  9. TCP Header 31 0 16 Source Port Destination Port Sequence Number Piggyback Acknowledgement Packet 4 bit TCP U A E R S F Header 6 bit Window R C O S Y I header unused G K M T N N length Checksum Urgent Pointer Options (0 oder mehr 32-bit-Worte) Daten ... alternatively: PSH (Push-Bit) ilab: TCP/UDP 9

  10. Lifetime of a TCP connection Client Server  connection establishment [SYN, seq=17]  3 way handshake  Negotiation of window size and [SYN, seq=39, ACK=18] Connection sequence numbers establishment [seq=18, ACK=40]  data transfer  [seq=53, ACK=78, data=‚hi‘] Piggyback confirmation Data [seq=78, ACK=55, data=‚ho‘] transfer  connection termination  confirmed [FIN]  Ressources on client are deallocated after the time-wait [ACK] period (e.g. after 30s or 1min) Connection [FIN] termination [ACK] Time wait ilab: TCP/UDP 10

  11. TCP: Mechanisms (I)  Unit for the data transfer: Segment (TCP header + payload)  Max. size: 65536 byte (IP payload)  In practice: 1500 byte (ethernet MTU) to avoid IP fragmentation  TCP provides stream of bytes to application, fragmentation and segments are hidden from user  Checksum  Protection of TCP header, payload and some fields of the IP header (mainly source and destination address)  Algorithm used: one‘s complement sum ilab: TCP/UDP 11

  12. TCP: Mechanisms (II)  Detection of missing segments (at sender)  Retransmission timer: a timer is set when sending the segment  If the segment is not acknowledged before the timer has expired the segment is retransmitted  Timer is dynamically adapted to round trip time  Alternative detection of missing segments: Fast Retransmit -> later  Retransmission similar to Go-Back-N  Retransmission begins with the missing packet  Packets that arrive out of order are buffered at the receiver (different than Go-Back-N) ilab: TCP/UDP 12

  13. TCP: Mechanisms (III)  Acknowledgements (ACKs)  ACK number n acknowledges the reception of all bytes until seq. Number n-1 (cumulative acknowledgement)  On gaps (e.g. due to out of order transmission) the receiver always sends an acknowledgement containing the number of the next expected byte which leads to duplicate ACKs (see next slide)  Faulty packets are discarded and not acknowledged  Piggybacking  No separate ACK  ACKs are included in payload ilab: TCP/UDP 13

  14. Cumulative acknowledgements 1. Segment arrives and is acknowledged: 1 send ACK 2. Segment arrived out of order, 1st byte after the first segment is still missing 1 3 send „duplicate“ ACK 3. Segment arrives and fills the gap. Receiver acknowledges 3rd segment 1 2 3 send ACK ilab: TCP/UDP 14

  15. Sliding Window  The receive window specifies the amount of data that the receiver is willing to buffer for the connection  Performance advantage compared to stop and wait Sequence numbers ACK for received packet Px,i is ACK, (i+1) P1,0 0 1 2 3 4 5 … P2,1 Sending window ACK,1 P3,2 ACK,2 0 1 2 3 4 5 … P4,3 ACK,3 0 1 2 3 4 5 … CAREFUL: 0 1 2 3 4 5 … Unit for Sequence- Slide window on received numbers is bytes! acknowledges ilab: TCP/UDP 15

  16. Window size  The sending window is the minimum of  The receiver window for the flow control (protection agains too many packets)  The congestion window (CWND, control the rate of data entering the network)  Flowcontrol in TCP  Credit based  The receiver informs the sender using the „window field“ in the TCP header about the amount of data it is willing to buffer  Scalability of the window field  Default window size is 16 bit (max. 65536 bytes of unacknowledged data)  Not enough for high performance networks (window option with 32bit allows a max. of 4Gb of unack. data) • limit because of 32bit sequence numbers ilab: TCP/UDP 16

  17. Sliding Window / Flow Control Sender Receiver TCP TCP LastByteWritten LastByteRead LastByteAcked LastByteSent NextByteExpected LastByteRcvd Sender Receiver  LastByteAcked < =  LastByteRead < LastByteSent NextByteExpected  LastByteSent < =  NextByteExpected < = LastByteWritten LastByteRcvd +1  Buffers all data  Buffers all data LastByteRead and LastByteAcked and LastByteRcvd LastByteWritten ilab: TCP/UDP 17

  18. Congestion Control  Goals and problems hereby  Reasonable behavior in case of network (over)load  Without controlling the outgoing amount of data, the capacity may drop to zero because of deadlocks  Fair ressource sharing  Criteria: effective, simple, robust, end-host driven max. ideal Flow and congestion control capacity Without control deadlock Load of the system ilab: TCP/UDP 18

  19. Congestion control (Van Jacobson)  Problem: the end host does not know a lot about the network. It only knows if a packet has been delivered successfully or not  Self clocking: for every segment that leaves the network we can send a new one  Assumption: packet loss only because of congestion  Not true for wireless networks Figure: Van Jacobson. Congestion aviodance and control . In ACM SIGCOMM, pages 314 -- 329, August 1988 ilab: TCP/UDP 19

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend