transport layer transport services and protocols
play

Transport layer Transport services and protocols applicatio - PowerPoint PPT Presentation

Transport layer Transport services and protocols applicatio Provide communication n transport between application processes network data link running on different hosts physical Protocols run in end system OS Sender transport


  1. Transport layer

  2. Transport services and protocols applicatio  Provide communication n transport between application processes network data link running on different hosts physical  Protocols run in end system OS  Sender transport  Breaks application messages into segments, passes to network layer  Receiver transport applicatio  Reassembles segments into n transport messages, passes to destination network data link application physical  Two main transport protocols  TCP and UDP

  3. Transport Layer Functions  Demux to upper layer  Delivering data to correct application process  Connection setup  Providing a connection abstraction over a connectionless substrate  Delivery semantics  Reliable or unreliable  Ordered or unordered  Unicast, multicast, anycast  Flow control  Prevent overflow of receiver buffers  Congestion control  Prevent overflow of network buffers  Avoid packet loss and packet delay  Security

  4. 1. Demux to upper layer (both TCP & UDP)  Which process gets this request?  Done via 16-bit source port and 16-bit destination port in both UDP and TCP FTP HTTP NTP DNS TCP UDP Network IP TCP/UDP IP Type Protocol Port … NET 1 NET 2 NET n Field Field Number

  5. Internet services layered on top of TCP/UDP  What uses TCP?  HTTP (Web pre-2016)  SMTP (E-mail transmission)  IMAP, POP (E-mail access) ‏  What uses (mainly) UDP?  DNS  NTP (network time protocol)  Highly interactive on-line games (First-Person Shooters) ‏  Many protocols can use both

  6. Internet services layered on top of TCP/UDP  Protocols and their ports listed in /etc/services on *nix or C:\WIN*\system32\services echo 7/tcp echo 7/udp ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp telnet 23/tcp smtp 25/tcp domain 53/tcp # Domain Name Server domain 53/udp http 80/tcp # WorldWideWeb HTTP http 80/udp # HyperText Transfer Protocol netbios-ssn 139/tcp # NETBIOS session service netbios-ssn 139/udp bgp 179/tcp # Border Gateway Protocol bgp 179/udp https 443/tcp # http protocol over TLS/SSL https 443/udp microsoft-ds 445/tcp # Microsoft Naked CIFS microsoft-ds 445/udp  IANA  http://www.iana.org/assignments/port-numbers

  7. UDP: User Datagram Protocol  Barebones transport protocol  UDP and transport layer functions  Demux  Connection setup (none)  Connectionless  No handshaking between sender and receiver  Minimal state  Delivery semantics  Unreliable, unordered, mostly unicast (multicast no longer supported)  No flow control support  No congestion control support  No security support

  8. UDP: more  Often used for streaming multimedia apps  loss tolerant 32 bits  rate sensitive source port # dest port # Length, in bytes of UDP checksum length segment, including header Application data (message) ‏ UDP segment format

  9. TCP: Overview  Connection-oriented  Flow and congestion  Delivery semantics controlled:  Reliable, in-order byte  Pipelined operation to stream control size of "pipe" (i.e.  3-way handshake to initialize sender/receiver bandwidth) and provide connection  Pipeline of packets sized integrity  Error detection, correction by MSS (maximum  Retransmission segment size)  Duplicate detection  Control algorithms to keep  Unicast (point-to-point) sender from overwhelming  one sender, one receiver receiver or network  Full duplex (bi-directional flow) application application writes data reads data socket socket door door TCP TCP send buffer receive buffer segment

  10. TCP segment structure 32 bits URG: urgent data counting source port # dest port # (generally not used) ‏ by bytes sequence number of data ACK: ACK # (not segments!) ‏ acknowledgement number valid head not Receive window U A P R S F PSH: push data now len used # bytes (generally not used) ‏ checksum Urg data pnter rcvr willing to accept RST, SYN, FIN: Options (variable length) ‏ connection estab (setup, teardown commands) ‏ application data Internet (variable length) ‏ checksum (as in UDP) ‏

  11. TCP  TCP creates a reliable data transfer service on top of IP’s‏unreliable‏service‏via  Checksum  Sequence numbers  Acknowledgments  Retransmissions  Rate limits on sender

  12. What if the Data is Corrupted? Problem: Data Corruption GET index.html GET windex.html Internet Solution: Add a checksum X 0,9 9 6,7,8 21 4,5 7 1,2,3 6

  13. Segment integrity via checksum  Checksum included in header by sender  Generated by treating data in the packet as numbers and adding them all up  Receiver checks checksum  Performs same operation as sender and checks checksum field  Corruption detected when no match

  14. What if the Data is Out of Order? Problem: Out of Order ml inde x.th GET GET x.thindeml Solution: Add Sequence Numbers ml 4 inde 2 x.th 3 GET 1 GET index.html

  15. Sequence numbers  Data‏in‏each‏packet‏is‏labeled‏with‏a‏“unique”‏number  Establishes ordering amongst packets  Allows receiver to identify which packets have been received and which have not  Initialized during connection setup (i.e. 3-way handshake) A B SYN + Seq A SYN+ACK-A + Seq B ACK-B

  16. What if the Data is Lost? Problem: Lost Data GET index.html Internet Solution: Timeout and Retransmit GET index.html GET index.html Internet GET index.html

  17. Acknowledgements and retransmissions  TCP receiver sends an acknowledgement back to sender for the data it receives  Lets‏sender‏know‏to‏“move‏on”  Lets sender know that network has the capacity to deliver its packets  Retransmissions  Via timeout events  TCP uses single retransmission timer  Sender sends segment and sets a timer  Timer is based on measured round-trip times and round-trip time variations  (e.g. timeout after ave. rtt + 2*std. deviation)  Exponential backoff if persistent loss  Via missing acknowledgements  If receiver reports it has received packets 1, 3, 4, and 5, sender automatically resends 2 before timeout

  18. What if receiver has no resources (flow control)? Problem: Overflowing receiver buffers PUT remix.mp3 Internet Solution: Receiver advertised window PUT remix.mp3 Internet 16KB free

  19. TCP Flow control  Receiver has a finite buffer  App process may be slow reading it  Flow control to make sure sender won't overflow it  Match‏the‏send‏rate‏to‏the‏receiving‏app’s‏drain‏rate  Rcvr advertises spare room in buffer by including value of RcvWindow in each segment/ACK  Also‏known‏as‏the‏“advertised”‏window  Sender limits unACKed data to RcvWindow to avoid overflow

  20. TCP Flow control  Problem: 16-bit advertised window field (in bytes) ‏  Maximum of 64KB !!  Consider network with 1500 byte segments, 100ms RTT, want 10 Gbps throughput  BW*Delay = 10Gbs * 0.1s = 1Gbit  In packets, W=83,333  In bytes, 1Gbit/8 = 125MB  Amount of data potentially in flight from sender to receiver  Need at least a 125MB receiver buffer to support!  Solution: TCP window scaling option  Scaling factor on advertised window specifies # of bits to shift to the left  Scaling factor exchanged during connection setup

  21. What if Network is Overloaded?  Short bursts: buffer  What if buffer overflows?  Packets dropped and retransmitted  Sender adjusts rate until load = resources  Called‏“Congestion‏control”

  22. TCP congestion control  End-host, window-based  Only place to really prevent collapse is at end-host  Added in late 80s due to congestion collapse on the Internet  Increase in network load results in decrease of useful work  A result of  Spurious retransmissions of packets still in flight  Undelivered packets which consume network resources and are dropped elsewhere in network

  23. TCP congestion control basics  Keep a congestion window, ( cwnd ) ‏  Reduce when congestion is perceived  Increase otherwise (probe for bandwidth) ‏  Size of window denotes how much network is able to absorb  “Size‏of‏the‏pipe”  Make cwnd as large as possible without loss  TCP‏“probes”‏for‏usable‏bandwidth‏continuously  Increase cwnd until loss (congestion) ‏  Decrease cwnd upon loss ,then begin probing (increasing) again  Recall‏receiver’s‏advertised‏window‏( rcv_wnd ) ‏  Sender’s‏maximum‏window  min(rcv_wnd,cwnd) ‏

  24. TCP slow start (circa 1990s)  When connection begins, increase rate exponentially fast until first loss event  cwnd = 1 for 1st RTT  cwnd = 2 for 2nd RTT  cwnd = 4 for 3rd RTT  When connection begins, cwnd = 1 MSS  Example: MSS = 500 bytes & RTT = 200 msec  Initial rate = 20 kbps!  Available bandwidth may be much larger than MSS/RTT  desirable to quickly ramp up to respectable rate

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