Содержание
- 2. Transport Layer 3- Chapter 3: Transport Layer M Ht segment ?
- 3. Transport Layer 3- Chapter 3: Transport Layer our goals: understand principles behind transport layer services: multiplexing,
- 4. Transport Layer 3- Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport:
- 5. Transport Layer 3- Transport services and protocols provide logical communication between app processes running on different
- 6. Transport Layer 3- Transport vs. network layer network layer: logical communication between hosts transport layer: logical
- 7. Transport Layer 3- Internet transport-layer protocols reliable, in-order delivery (TCP) congestion control flow control connection setup
- 8. Transport Layer 3- Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport:
- 9. Transport Layer 3- Multiplexing/demultiplexing process socket transport application physical link network P2 P1 transport application physical
- 10. Transport Layer 3- How demultiplexing works host receives IP datagrams each datagram has source IP address,
- 11. Transport Layer 3- Connectionless demultiplexing recall: created socket has host-local port #: DatagramSocket mySocket1 = new
- 12. Transport Layer 3- Connectionless demux: example DatagramSocket serverSocket = new DatagramSocket (6428); transport application physical link
- 13. Transport Layer 3- Connection-oriented demux TCP socket identified by 4-tuple: source IP address source port number
- 14. Transport Layer 3- Connection-oriented demux: example transport application physical link network P3 transport application physical link
- 15. Transport Layer 3- Connection-oriented demux: example transport application physical link network P3 transport application physical link
- 16. Transport Layer 3- Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport:
- 17. Transport Layer 3- UDP: User Datagram Protocol [RFC 768] “no frills,” “bare bones” Internet transport protocol
- 18. Transport Layer 3- UDP: segment header source port # dest port # 32 bits application data
- 19. Transport Layer 3- UDP checksum sender: treat segment contents, including header fields, as sequence of 16-bit
- 20. Transport Layer 3- Internet checksum: example example: add two 16-bit integers 1 1 1 1 0
- 21. Transport Layer 3- Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport:
- 22. Transport Layer 3- Principles of reliable data transfer important in application, transport, link layers top-10 list
- 23. Transport Layer 3- characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)
- 24. Transport Layer 3- characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)
- 25. Transport Layer 3- Reliable data transfer: getting started send side receive side
- 26. Transport Layer 3- we’ll: incrementally develop sender, receiver sides of reliable data transfer protocol (rdt) consider
- 27. Transport Layer 3- rdt1.0: reliable transfer over a reliable channel underlying channel perfectly reliable no bit
- 28. Transport Layer 3- underlying channel may flip bits in packet checksum to detect bit errors the
- 29. Transport Layer 3- underlying channel may flip bits in packet checksum to detect bit errors the
- 30. Transport Layer 3- rdt2.0: FSM specification Wait for call from above sndpkt = make_pkt(data, checksum) udt_send(sndpkt)
- 31. Transport Layer 3- rdt2.0: operation with no errors Wait for call from above snkpkt = make_pkt(data,
- 32. Transport Layer 3- rdt2.0: error scenario Wait for call from above snkpkt = make_pkt(data, checksum) udt_send(sndpkt)
- 33. Transport Layer 3- rdt2.0 has a fatal flaw! what happens if ACK/NAK corrupted? sender doesn’t know
- 34. Transport Layer 3- rdt2.1: sender, handles garbled ACK/NAKs Wait for call 0 from above sndpkt =
- 35. Transport Layer 3- sndpkt = make_pkt(NAK, chksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && not corrupt(rcvpkt) && has_seq0(rcvpkt) rdt_rcv(rcvpkt) &&
- 36. Transport Layer 3- rdt2.1: discussion sender: seq # added to pkt two seq. #’s (0,1) will
- 37. Transport Layer 3- rdt2.2: a NAK-free protocol same functionality as rdt2.1, using ACKs only instead of
- 38. Transport Layer 3- rdt2.2: sender, receiver fragments
- 39. Transport Layer 3- rdt3.0: channels with errors and loss new assumption: underlying channel can also lose
- 40. Transport Layer 3- rdt3.0 sender sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt) start_timer rdt_send(data) rdt_rcv(rcvpkt) && (
- 41. Transport Layer 3- sender receiver rcv pkt1 rcv pkt0 send ack0 send ack1 send ack0 rcv
- 42. Transport Layer 3- rdt3.0 in action rcv pkt1 send ack1 (detect duplicate) sender receiver rcv pkt1
- 43. Performance of rdt3.0 rdt3.0 is correct, but performance stinks e.g.: 1 Gbps link, 8000 bit packet
- 44. Transport Layer 3- Performance of rdt3.0 rdt3.0 is correct, but performance stinks e.g.: 1 Gbps link,
- 45. Transport Layer 3- rdt3.0: stop-and-wait operation first packet bit transmitted, t = 0 sender receiver RTT
- 46. Transport Layer 3- Pipelined protocols pipelining: sender allows multiple, “in-flight”, yet-to-be-acknowledged pkts range of sequence numbers
- 47. Transport Layer 3- Pipelining: increased utilization first packet bit transmitted, t = 0 sender receiver RTT
- 48. Transport Layer 3- Pipelined protocols: overview Go-back-N: sender can have up to N unacked packets in
- 49. Transport Layer 3- Go-Back-N: sender k-bit seq # in pkt header “window” of up to N,
- 50. Transport Layer 3- GBN: sender extended FSM start_timer udt_send(sndpkt[base]) udt_send(sndpkt[base+1]) … udt_send(sndpkt[nextseqnum-1]) timeout rdt_send(data) if (nextseqnum
- 51. Transport Layer 3- ACK-only: always send ACK for correctly-received pkt with highest in-order seq # may
- 52. Transport Layer 3- GBN in action sender receiver receive pkt0, send ack0 receive pkt1, send ack1
- 53. Transport Layer 3- Selective repeat receiver individually acknowledges all correctly received pkts buffers pkts, as needed,
- 54. Transport Layer 3- Selective repeat: sender, receiver windows
- 55. Transport Layer 3- Selective repeat data from above: if next available seq # in window, send
- 56. Transport Layer 3- Selective repeat in action send pkt0 send pkt1 send pkt2 send pkt3 (wait)
- 57. Transport Layer 3- Selective repeat: dilemma example: seq #’s: 0, 1, 2, 3 window size=3 receiver
- 58. RDT mechanisms Transport Layer 3-
- 59. Transport Layer 3- Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport:
- 60. Transport Layer 3- TCP: Overview RFCs: 793,1122,1323, 2018, 2581 full duplex data: bi-directional data flow in
- 61. Transport Layer 3- TCP segment structure source port # dest port # 32 bits application data
- 62. Transport Layer 3- TCP seq. numbers, ACKs sequence numbers: byte stream “number” of first byte in
- 63. Transport Layer 3- TCP seq. numbers, ACKs User types ‘C’ host ACKs receipt of echoed‘C’ host
- 64. Transport Layer 3- TCP round trip time, timeout Q: how to set TCP timeout value? longer
- 65. Transport Layer 3- EstimatedRTT = (1- α)*EstimatedRTT + α*SampleRTT exponential weighted moving average influence of past
- 66. Transport Layer 3- timeout interval: EstimatedRTT plus “safety margin” large variation in EstimatedRTT -> larger safety
- 67. Transport Layer 3- Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport:
- 68. Transport Layer 3- TCP reliable data transfer TCP creates rdt service on top of IP’s unreliable
- 69. Transport Layer 3- TCP sender events: data rcvd from app: create segment with seq # seq
- 70. Transport Layer 3- TCP sender (simplified) wait for event NextSeqNum = InitialSeqNum SendBase = InitialSeqNum Λ
- 71. Transport Layer 3- TCP: retransmission scenarios lost ACK scenario Host B Host A Seq=92, 8 bytes
- 72. Transport Layer 3- TCP: retransmission scenarios X cumulative ACK Host B Host A Seq=92, 8 bytes
- 73. Transport Layer 3- TCP ACK generation [RFC 1122, RFC 2581] event at receiver arrival of in-order
- 74. Transport Layer 3- TCP fast retransmit time-out period often relatively long: long delay before resending lost
- 75. Transport Layer 3- X fast retransmit after sender receipt of triple duplicate ACK Host B Host
- 76. Transport Layer 3- Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport:
- 77. Transport Layer 3- TCP flow control application process TCP code IP code receiver protocol stack application
- 78. Transport Layer 3- TCP flow control rwnd RcvBuffer TCP segment payloads to application process receiver “advertises”
- 79. Receiver computes rwnd = RcvBuffer-[LastByteRcvd - LastByteRead] Sender computes x = LastByteSent - LastByteAcked If x
- 80. Transport Layer 3- Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport:
- 81. Transport Layer 3- Connection Management before exchanging data, sender/receiver “handshake”: agree to establish connection (each knowing
- 82. Transport Layer 3- TCP 3-way handshake ESTAB
- 83. Transport Layer 3- TCP 3-way handshake: FSM closed Λ listen SYN rcvd SYN sent ESTAB Socket
- 84. Transport Layer 3- TCP: closing a connection client, server each close their side of connection send
- 85. Transport Layer 3- TCP: closing a connection client state server state ESTAB ESTAB
- 86. Transport Layer 3- Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport:
- 87. Transport Layer 3- When packets are lost – packet retransmissions solve this. But packet retransmissions does
- 88. Transport Layer 3- congestion: informally: “too many sources sending too much data too fast for network
- 89. Transport Layer 3- Causes/costs of congestion: scenario 1 two senders, two receivers one router, infinite buffers
- 90. Transport Layer 3- one router, finite buffers sender retransmission of timed-out packet application-layer input = application-layer
- 91. Transport Layer 3- idealization: perfect knowledge sender sends only when router buffers available finite shared output
- 92. Transport Layer 3- λin : original data λout λ'in: original data, plus retransmitted data copy no
- 93. Transport Layer 3- λin : original data λout λ'in: original data, plus retransmitted data free buffer
- 94. Transport Layer 3- A λin λout λ'in copy free buffer space! Host B Realistic: duplicates packets
- 95. Transport Layer 3- Causes/costs of congestion: scenario 2 Realistic: duplicates packets can be lost, dropped at
- 96. Transport Layer 3- four senders multihop paths timeout/retransmit Q: what happens as λin and λin’ increase
- 97. Transport Layer 3- congestion: cost when packet dropped, any upstream transmission capacity used for that packet
- 98. Transport Layer 3- Chapter 3 outline 3.1 transport-layer services 3.2 multiplexing and demultiplexing 3.3 connectionless transport:
- 99. Transport Layer 3- TCP congestion control: Controls the sender rate based on the congestion level in
- 100. Transport Layer 3- TCP congestion control: additive increase multiplicative decrease approach: sender increases transmission rate (window
- 101. Transport Layer 3- TCP Congestion Control: details sender limits transmission: cwnd is dynamic, function of perceived
- 102. TCP Congestion control algorithm has 3 components: Slow Start Congestion Avoidance Fast Recovery Transport Layer 3-
- 103. Transport Layer 3- TCP Slow Start when connection begins, increase rate exponentially until first loss event:
- 104. Transport Layer 3- TCP Slow Start when connection begins, increase rate exponentially until first loss event:
- 105. Transport Layer 3- TCP Congestion Avoidance The slow start algorithm is used when cwnd
- 106. Transport Layer 3- TCP: detecting, reacting to loss loss indicated by timeout: cwnd set to 1
- 107. Transport Layer 3- Q: when should the exponential increase switch to linear? A: when cwnd gets
- 108. Transport Layer 3- Summary: TCP Congestion Control
- 109. Transport Layer 3- TCP throughput avg. TCP thruput as function of window size, RTT? ignore slow
- 110. Transport Layer 3- fairness goal: if K TCP sessions share same bottleneck link of bandwidth R,
- 111. Transport Layer 3- Why is TCP fair? two competing sessions: additive increase gives slope of 1,
- 112. Transport Layer 3- Fairness (more) Fairness and UDP multimedia apps often do not use TCP do
- 114. Скачать презентацию