ilab x transport layer
play

iLab X Transport Layer Dominik Scholz scholz@net.in.tum.de Chair - PowerPoint PPT Presentation

Chair of Network Architectures and Services Department of Informatics Technical University of Munich iLab X Transport Layer Dominik Scholz scholz@net.in.tum.de Chair of Network Architectures and Services Department of Informatics Technical


  1. Chair of Network Architectures and Services Department of Informatics Technical University of Munich iLab X Transport Layer Dominik Scholz scholz@net.in.tum.de Chair of Network Architectures and Services Department of Informatics Technical University of Munich SoSe 2019

  2. Outline Transport Layer UDP TCP Other Transport Layer Protocols 1/39

  3. Outline Transport Layer UDP TCP Other Transport Layer Protocols 2/39

  4. Transport Layer application protocol app 2 app 2 application protocol app 1 app 1 app 1 app 1 transport protocol TCP/UDP TCP/UDP router IP protocol IP protocol IP IP IP Ethernet WLAN Ethernet Ethernet WLAN WLAN protocol protocol driver driver driver driver wireless LAN Ethernet 3/39

  5. Ports • purpose: transport layer multiplexing / demultiplexing • 16bit number (0..65535) • address applications on a host Client/Server communication • client-side: usually random choice from [1024..65535] • server-side: well known port numbers Well-known port numbers • HTTP/HTTPS: TCP port 80/443 • SSH: TCP port 22 • DNS: UDP and TCP port 53 see: http://www.iana.org/assignments/port-numbers 4/39

  6. Sockets application layer API to networking functionality usually offered by the OS network stack Message Orientation sender receiver send(“Hi Bob!”) recv() -> “Hi Bob!” send(“How are you?”) recv() -> “How are you?” Stream Orientation sender receiver (possible outcome) send(“Hi Bob!”) recv() -> “” send(“How are you?”) recv() -> “Hi Bob!How are you?” 5/39

  7. Transport Protocol Implementations User Datagram Protocol (UDP) • unreliable • lightweight Transmission Control Protocol (TCP) • reliable • connection oriented • sending-rate limitation Other • Stream Control Transmission Protocol (SCTP) • Multipath TCP (MTCP) • Quick UDP Internet Connections (QUIC) 6/39

  8. Outline Transport Layer UDP TCP Other Transport Layer Protocols 7/39

  9. User Datagram Protocol (UDP) 0 15 16 31 source port destination port length checksum Functions • port multiplexing / demultiplexing • error checking Example Applications • DNS (port 53) • RIP (port 520) • media streaming / realtime communication 8/39

  10. User Datagram Protocol (UDP) 0 15 16 31 source port destination port length checksum Functions • port multiplexing / demultiplexing • error checking Example Applications • DNS (port 53) • RIP (port 520) • media streaming / realtime communication Why is UDP used for these applications? 8/39

  11. UDP Summary Characteristics • simple and lightweight • unreliable • message-oriented • stateless • good choice for time-critical applications • supports unidirectional communication Problems • unlimited sending rate may overload the network/receiver 9/39

  12. Outline Transport Layer UDP TCP Other Transport Layer Protocols 10/39

  13. Transmission Control Protocol (TCP) Functions • port multiplexing / demultiplexing • error checking • reliable and ordered delivery • stream-orientation • control of sending-rate (avoid overloading the network or the receiver) Applications • most reliable protocols: HTTP(S), SMTP , etc. 11/39

  14. Background: Reliable Data Transfer How does the sender know whether a packet was successfully transferred? • requires feedback from the receiver • requires identification of packets Sender Receiver segment X segment Y ACK segment X ACK segment Y 12/39

  15. Reliable Data Transfer in TCP Sequence Number (SEQ) • indicates the first data byte of a segment • increased with every byte of payload sent • initial SEQ is exchanged during connection establishment Sender Receiver SEQ=5035 SEQ=6059 SEQ=12 ACK=6059 SEQ=12 ACK=7083 13/39

  16. Reliable Data Transfer in TCP Sequence Number (SEQ) • indicates the first data byte of a segment • increased with every byte of payload sent • initial SEQ is exchanged during connection establishment Sender Receiver SEQ=5035 SEQ=6059 SEQ=12 ACK=6059 SEQ=12 ACK=7083 What is the size of the segments? 13/39

  17. Reliable Data Transfer in TCP (contd.) Acknowledgement Number (ACK) • gives the next sequence number that the receiver is expecting • also acknowledges all smaller sequence numbers Receiver Sender SEQ=5035 SEQ=6059 SEQ=12 ACK=6059 SEQ=12 ACK=7083 14/39

  18. Retransmission after Timeout • timeout at the sender triggers retransmission Sender Receiver SEQ=1 SEQ=2 timeout ACK=2 SEQ=2 15/39

  19. Fast Retransmit • sender retansmits segment after receiving three duplicate ACKs Sender Receiver SEQ=1 SEQ=2 ACK=2 SEQ=3 SEQ=4 ACK=2 SEQ=5 ACK=2 ACK=2 3 duplicate SEQ=2 ACKs 16/39

  20. Connection Establishment 3-way-handshake • establish initial sequence numbers and window sizes out-of-band TCP injection: http://arxiv.org/abs/1602.07128 • negotiate options Client Server [ S Y N ] S E Q = 7 8 K = C A 1 3 Q = E S K ] A C N , Y S [ [ A C K ] S E Q = 8 A C K = 1 4 17/39

  21. Connection Establishment 3-way-handshake • establish initial sequence numbers and window sizes out-of-band TCP injection: http://arxiv.org/abs/1602.07128 • negotiate options • vulnerable to SYN-flood attacks → SYN cookies, TCPCT Client Server [ S Y N ] S E Q = 7 8 K = C A 1 3 Q = E S K ] A C N , Y S [ [ A C K ] S E Q = 8 A C K = 1 4 17/39

  22. Connection Teardown 4-way-handshake • each side needs to terminate the connection → half-open connections possible • initiator waits for a timeout before closing the connection Initiator Receiver [ F I N ] K ] C [ A ] I N [ F [ A C timeout K ] 18/39

  23. TCP header 0 3 4 6 7 15 16 31 source port destination port sequence number acknowledgement number hdr U A P R S F resvd window size R C S S Y I len G K H T N N urgent pointer checksum [options] • up to 40 Bytes of header options e.g. Window Scale, Selective Acknowledgment (SACK) • header length: 20 – 60 Bytes 19/39

  24. Limiting the Sending-rate Why? • avoid overloading the receiver → flow control • avoid overloading the network → congestion control Sending Window • specifies the amount of unacknowledged data that the sender is allowed to send • is equal to the max. number of bytes in transit sending _ window = min ( receive _ window , cwnd ) • 20/39

  25. Flow Control Flow Control • prohibits overloading the receiver • receiver announces the current size of the receive _ window to the sender in the TCP header window size field • limited by the buffer size at the receiver 21/39

  26. Background: Network Congestion Jacobson, Van. "Congestion avoidance and control." ACM SIGCOMM Computer Communication Review, 1988. 22/39

  27. Background: Network Congestion • segments get lost due to full buffers in routers • retransmissions may even amplify a congestion Jacobson, Van. "Congestion avoidance and control." ACM SIGCOMM Computer Communication Review, 1988. 22/39

  28. Background: Network Congestion • segments get lost due to full buffers in routers • retransmissions may even amplify a congestion • self-clocking creates an equilibrium at the max. sending-rate: Jacobson, Van. "Congestion avoidance and control." ACM SIGCOMM Computer Communication Review, 1988. 22/39

  29. Congestion Control Principles • basic assumption: packet loss is only caused by congestion • end-host driven: no support from the network necessary Two phases • Slow Start starts a connection: gradually increase the amount of data in-transit until reaching the equilibrium • Congestion Avoidance tries to keep the equilibrium state and react to changes on the link State • current size of the congestion window ( cwnd ) • slow start threshold ( ssthresh ) defines transition between phases 23/39

  30. Congestion Control: Slow Start Phase • initialization: cwnd = 10 ∗ MSS , ssthresh cwnd [ MSS ] 80 60 40 20 0 time [ RTT ] 0 1 2 3 4 5 24/39

  31. Congestion Control: Slow Start Phase • initialization: cwnd = 10 ∗ MSS , ssthresh • when receiving an ACK: cwnd = cwnd + 1 MSS cwnd [ MSS ] 80 60 40 20 0 time [ RTT ] 0 1 2 3 4 5 24/39

  32. Congestion Control: Slow Start Phase • initialization: cwnd = 10 ∗ MSS , ssthresh • when receiving an ACK: cwnd = cwnd + 1 MSS cwnd [ MSS ] 80 60 40 20 0 time [ RTT ] 0 1 2 3 4 5 24/39

  33. Congestion Control: Slow Start Phase • initialization: cwnd = 10 ∗ MSS , ssthresh • when receiving an ACK: cwnd = cwnd + 1 MSS cwnd [ MSS ] 80 60 40 20 0 time [ RTT ] 0 1 2 3 4 5 24/39

  34. Congestion Control: Slow Start Phase • initialization: cwnd = 10 ∗ MSS , ssthresh • when receiving an ACK: cwnd = cwnd + 1 MSS cwnd [ MSS ] 80 60 40 20 0 time [ RTT ] 0 1 2 3 4 5 24/39

  35. Congestion Control: Slow Start Phase • initialization: cwnd = 10 ∗ MSS , ssthresh • when receiving an ACK: cwnd = cwnd + 1 MSS cwnd [ MSS ] ssthresh 80 or packet loss 60 40 20 0 time [ RTT ] 0 1 2 3 4 5 24/39

  36. Congestion Control: Congestion Avoidance Phase • when receiving an ACK: increase cwnd using a cubic function cwnd [ MSS ] 160 140 120 100 ssthresh 80 time [ RTT ] 0 1 2 3 4 5 25/39

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