<<  Transport ja Logistika Der Computer oder der Schulunterricht  >>
Chapter 3 Transport Layer
Chapter 3 Transport Layer
Transport services and protocols
Transport services and protocols
Transport services and protocols
Transport services and protocols
Transport services and protocols
Transport services and protocols
Principles of Reliable data transfer
Principles of Reliable data transfer
Reliable data transfer: getting started
Reliable data transfer: getting started
Pipelined protocols
Pipelined protocols
GBN in action
GBN in action
Selective repeat: sender, receiver windows
Selective repeat: sender, receiver windows
Selective repeat in action
Selective repeat in action
Selective repeat: dilemma
Selective repeat: dilemma
Example RTT estimation:
Example RTT estimation:
TCP Connection Management (cont)
TCP Connection Management (cont)
TCP Connection Management (cont)
TCP Connection Management (cont)
Causes/costs of congestion: scenario 1
Causes/costs of congestion: scenario 1
Causes/costs of congestion: scenario 3
Causes/costs of congestion: scenario 3
Case study: ATM ABR congestion control
Case study: ATM ABR congestion control
TCP congestion control FSM: overview
TCP congestion control FSM: overview
Popular flavors of TCP
Popular flavors of TCP
Transport Layer

: Jim Kurose & Keith Ross. , . , Transport Layer.ppt zip- 857 .

Transport Layer

Transport Layer.ppt
1Chapter 3 Transport Layer. A note on 50sender only resends pkts for which ACK not
the use of these ppt slides: Were making received sender timer for each unACKed pkt
these slides freely available to all sender window N consecutive seq #s again
(faculty, students, readers). Theyre in limits seq #s of sent, unACKed pkts.
PowerPoint form so you can add, modify, Transport Layer. 3-50.
and delete slides (including this one) and 51Selective repeat: sender, receiver
slide content to suit your needs. They windows. Transport Layer. 3-51.
obviously represent a lot of work on our 52Selective repeat. pkt n in [rcvbase,
part. In return for use, we only ask the rcvbase+N-1] send ACK(n) out-of-order:
following: If you use these slides (e.g., buffer in-order: deliver (also deliver
in a class) in substantially unaltered buffered, in-order pkts), advance window
form, that you mention their source (after to next not-yet-received pkt pkt n in
all, wed like people to use our book!) If [rcvbase-N,rcvbase-1] ACK(n) otherwise:
you post any slides in substantially ignore. data from above : if next
unaltered form on a www site, that you available seq # in window, send pkt
note that they are adapted from (or timeout(n): resend pkt n, restart timer
perhaps identical to) our slides, and note ACK(n) in [sendbase,sendbase+N]: mark pkt
our copyright of this material. Thanks and n as received if n smallest unACKed pkt,
enjoy! JFK/KWR All material copyright advance window base to next unACKed seq #.
1996-2009 J.F Kurose and K.W. Ross, All Transport Layer. 3-52.
Rights Reserved. Computer Networking: A 53Selective repeat in action. Transport
Top Down Approach 5th edition. Jim Kurose, Layer. 3-53.
Keith Ross Addison-Wesley, April 2009. 54Selective repeat: dilemma. Example:
Transport Layer. 3-1. seq #s: 0, 1, 2, 3 window size=3 receiver
2Chapter 3: Transport Layer. learn sees no difference in two scenarios!
about transport layer protocols in the incorrectly passes duplicate data as new
Internet: UDP: connectionless transport in (a) Q: what relationship between seq #
TCP: connection-oriented transport TCP size and window size? Transport Layer.
congestion control. Our goals: understand 3-54.
principles behind transport layer 55Chapter 3 outline. 3.1 Transport-layer
services: multiplexing/demultiplexing services 3.2 Multiplexing and
reliable data transfer flow control demultiplexing 3.3 Connectionless
congestion control. Transport Layer. 3-2. transport: UDP 3.4 Principles of reliable
3Chapter 3 outline. 3.1 Transport-layer data transfer. 3.5 Connection-oriented
services 3.2 Multiplexing and transport: TCP segment structure reliable
demultiplexing 3.3 Connectionless data transfer flow control connection
transport: UDP 3.4 Principles of reliable management 3.6 Principles of congestion
data transfer. 3.5 Connection-oriented control 3.7 TCP congestion control.
transport: TCP segment structure reliable Transport Layer. 3-55.
data transfer flow control connection 56TCP: Overview RFCs: 793, 1122, 1323,
management 3.6 Principles of congestion 2018, 2581. point-to-point: one sender,
control 3.7 TCP congestion control. one receiver reliable, in-order byte
Transport Layer. 3-3. steam: no message boundaries pipelined:
4Transport services and protocols. TCP congestion and flow control set window
provide logical communication between app size send & receive buffers. full
processes running on different hosts duplex data: bi-directional data flow in
transport protocols run in end systems same connection MSS: maximum segment size
send side: breaks app messages into connection-oriented: handshaking (exchange
segments, passes to network layer rcv of control msgs) inits sender, receiver
side: reassembles segments into messages, state before data exchange flow
passes to app layer more than one controlled: sender will not overwhelm
transport protocol available to apps receiver. Transport Layer. 3-56.
Internet: TCP and UDP. Transport Layer. 57TCP segment structure. URG: urgent
3-4. data (generally not used). counting by
5Transport vs. network layer. Household bytes of data (not segments!). ACK: ACK #
analogy: 12 kids sending letters to 12 valid. PSH: push data now (generally not
kids processes = kids app messages = used). # bytes rcvr willing to accept.
letters in envelopes hosts = houses RST, SYN, FIN: connection estab (setup,
transport protocol = Ann and Bill teardown commands). Internet checksum (as
network-layer protocol = postal service. in UDP). Transport Layer. 3-57.
network layer: logical communication 58TCP seq. #s and ACKs. Seq. #s: byte
between hosts transport layer: logical stream number of first byte in segments
communication between processes relies on, data ACKs: seq # of next byte expected
enhances, network layer services. from other side cumulative ACK Q: how
Transport Layer. 3-5. receiver handles out-of-order segments A:
6Internet transport-layer protocols. TCP spec doesnt say, - up to implementer.
reliable, in-order delivery (TCP) Host B. Host A. simple telnet scenario.
congestion control flow control connection User types C. host ACKs receipt of C,
setup unreliable, unordered delivery: UDP echoes back C. host ACKs receipt of
no-frills extension of best-effort IP echoed C. Seq=42, ACK=79, data = C.
services not available: delay guarantees Seq=79, ACK=43, data = C. Seq=43,
bandwidth guarantees. Transport Layer. ACK=80. Transport Layer. 3-58.
3-6. 59TCP Round Trip Time and Timeout. Q:
7Chapter 3 outline. 3.1 Transport-layer how to estimate RTT? SampleRTT: measured
services 3.2 Multiplexing and time from segment transmission until ACK
demultiplexing 3.3 Connectionless receipt ignore retransmissions SampleRTT
transport: UDP 3.4 Principles of reliable will vary, want estimated RTT smoother
data transfer. 3.5 Connection-oriented average several recent measurements, not
transport: TCP segment structure reliable just current SampleRTT. Q: how to set TCP
data transfer flow control connection timeout value? longer than RTT but RTT
management 3.6 Principles of congestion varies too short: premature timeout
control 3.7 TCP congestion control. unnecessary retransmissions too long: slow
Transport Layer. 3-7. reaction to segment loss. Transport Layer.
8Multiplexing/demultiplexing. 3-59.
delivering received segments to correct 60TCP Round Trip Time and Timeout.
socket. gathering data from multiple EstimatedRTT = (1- ?)*EstimatedRTT +
sockets, enveloping data with header ?*SampleRTT. Exponential weighted moving
(later used for demultiplexing). host 3. average influence of past sample decreases
host 2. host 1. = socket. = process. exponentially fast typical value: ? =
application. P4. application. application. 0.125. Transport Layer. 3-60.
P1. P2. P3. P1. transport. transport. 61Example RTT estimation: Transport
transport. network. network. network. Layer. 3-61.
link. link. link. physical. physical. 62TCP Round Trip Time and Timeout.
physical. Transport Layer. 3-8. Setting the timeout EstimtedRTT plus
9How demultiplexing works. host safety margin large variation in
receives IP datagrams each datagram has EstimatedRTT -> larger safety margin
source IP address, destination IP address first estimate of how much SampleRTT
each datagram carries 1 transport-layer deviates from EstimatedRTT: DevRTT =
segment each segment has source, (1-?)*DevRTT + ?*|SampleRTT-EstimatedRTT|
destination port number host uses IP (typically, ? = 0.25). Then set timeout
addresses & port numbers to direct interval: TimeoutInterval = EstimatedRTT +
segment to appropriate socket. other 4*DevRTT. Transport Layer. 3-62.
header fields. application data (message). 63Chapter 3 outline. 3.1 Transport-layer
TCP/UDP segment format. 32 bits. source services 3.2 Multiplexing and
port #. dest port #. Transport Layer. 3-9. demultiplexing 3.3 Connectionless
10Connectionless demultiplexing. When transport: UDP 3.4 Principles of reliable
host receives UDP segment: checks data transfer. 3.5 Connection-oriented
destination port number in segment directs transport: TCP segment structure reliable
UDP segment to socket with that port data transfer flow control connection
number IP datagrams with different source management 3.6 Principles of congestion
IP addresses and/or source port numbers control 3.7 TCP congestion control.
directed to same socket. Create sockets Transport Layer. 3-63.
with port numbers: DatagramSocket 64TCP reliable data transfer. TCP
mySocket1 = new DatagramSocket(12534); creates rdt service on top of IPs
DatagramSocket mySocket2 = new unreliable service pipelined segments
DatagramSocket(12535); UDP socket cumulative ACKs TCP uses single
identified by two-tuple: (dest IP address, retransmission timer. retransmissions are
dest port number). Transport Layer. 3-10. triggered by: timeout events duplicate
11Connectionless demux (cont). ACKs initially consider simplified TCP
DatagramSocket serverSocket = new sender: ignore duplicate ACKs ignore flow
DatagramSocket(6428); SP provides return control, congestion control. Transport
address. Transport Layer. 3-11. Layer. 3-64.
12Connection-oriented demux. TCP socket 65TCP sender events: data rcvd from app:
identified by 4-tuple: source IP address create segment with seq # seq # is
source port number dest IP address dest byte-stream number of first data byte in
port number receiving host uses all four segment start timer if not already running
values to direct segment to appropriate (think of timer as for oldest unACKed
socket. Server host may support many segment) expiration interval:
simultaneous TCP sockets: each socket TimeOutInterval. timeout: retransmit
identified by its own 4-tuple Web servers segment that caused timeout restart timer
have different sockets for each connecting ACK rcvd: if acknowledges previously
client non-persistent HTTP will have unACKed segments update what is known to
different socket for each request. be ACKed start timer if there are
Transport Layer. 3-12. outstanding segments. Transport Layer.
13Connection-oriented demux (cont). 3-65.
Client IP:B. server IP: C. S-IP: B. 66TCP sender (simplified). Comment:
D-IP:C. SP: 9157. DP: 80. S-IP: A. S-IP: SendBase-1: last cumulatively ACKed byte
B. D-IP:C. D-IP:C. Transport Layer. 3-13. Example: SendBase-1 = 71; y= 73, so the
14Connection-oriented demux: Threaded rcvr wants 73+ ; y > SendBase, so that
Web Server. Client IP:B. server IP: C. P4. new data is ACKed. NextSeqNum =
S-IP: B. D-IP:C. SP: 9157. DP: 80. S-IP: InitialSeqNum SendBase = InitialSeqNum
A. S-IP: B. D-IP:C. D-IP:C. Transport loop (forever) { switch(event) event: data
Layer. 3-14. received from application above create TCP
15Chapter 3 outline. 3.1 Transport-layer segment with sequence number NextSeqNum if
services 3.2 Multiplexing and (timer currently not running) start timer
demultiplexing 3.3 Connectionless pass segment to IP NextSeqNum = NextSeqNum
transport: UDP 3.4 Principles of reliable + length(data) event: timer timeout
data transfer. 3.5 Connection-oriented retransmit not-yet-acknowledged segment
transport: TCP segment structure reliable with smallest sequence number start timer
data transfer flow control connection event: ACK received, with ACK field value
management 3.6 Principles of congestion of y if (y > SendBase) { SendBase = y
control 3.7 TCP congestion control. if (there are currently
Transport Layer. 3-15. not-yet-acknowledged segments) start timer
16UDP: User Datagram Protocol [RFC 768]. } } /* end of loop forever */. Transport
no frills, bare bones Internet Layer. 3-66.
transport protocol best effort service, 67TCP: retransmission scenarios.
UDP segments may be: lost delivered out of premature timeout. Host A. Host B.
order to app connectionless: no Sendbase = 100. SendBase = 120. SendBase =
handshaking between UDP sender, receiver 100. SendBase = 120. Seq=92, 8 bytes data.
each UDP segment handled independently of Seq=100, 20 bytes data. ACK=100. ACK=120.
others. Why is there a UDP? no connection Seq=92, 8 bytes data. ACK=120. Seq=92
establishment (which can add delay) timeout. Transport Layer. 3-67.
simple: no connection state at sender, 68TCP retransmission scenarios (more).
receiver small segment header no SendBase = 120. Transport Layer. 3-68.
congestion control: UDP can blast away as 69TCP ACK generation [RFC 1122, RFC
fast as desired. Transport Layer. 3-16. 2581]. TCP Receiver action Delayed ACK.
17UDP: more. often used for streaming Wait up to 500ms for next segment. If no
multimedia apps loss tolerant rate next segment, send ACK Immediately send
sensitive other UDP uses DNS SNMP reliable single cumulative ACK, ACKing both
transfer over UDP: add reliability at in-order segments Immediately send
application layer application-specific duplicate ACK, indicating seq. # of next
error recovery! Application data expected byte Immediate send ACK, provided
(message). UDP segment format. 32 bits. that segment starts at lower end of gap.
source port #. dest port #. Length, in Event at Receiver Arrival of in-order
bytes of UDP segment, including header. segment with expected seq #. All data up
checksum. length. Transport Layer. 3-17. to expected seq # already ACKed Arrival of
18UDP checksum. Goal: detect errors in-order segment with expected seq #. One
(e.g., flipped bits) in transmitted other segment has ACK pending Arrival of
segment. Receiver: compute checksum of out-of-order segment higher-than-expect
received segment check if computed seq. # . Gap detected Arrival of segment
checksum equals checksum field value: NO - that partially or completely fills gap.
error detected YES - no error detected. Transport Layer. 3-69.
But maybe errors nonetheless? More later 70Fast Retransmit. time-out period often
. Sender: treat segment contents as relatively long: long delay before
sequence of 16-bit integers checksum: resending lost packet detect lost segments
addition (1s complement sum) of segment via duplicate ACKs. sender often sends
contents sender puts checksum value into many segments back-to-back if segment is
UDP checksum field. Transport Layer. 3-18. lost, there will likely be many duplicate
19Internet Checksum Example. Note When ACKs for that segment. If sender receives
adding numbers, a carryout from the most 3 ACKs for same data, it assumes that
significant bit needs to be added to the segment after ACKed data was lost: fast
result Example: add two 16-bit integers. 1 retransmit: resend segment before timer
1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 expires. Transport Layer. 3-70.
0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 71X. time. Host A. Host B. seq # x1. seq
1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 # x2. seq # x3. ACK x1. seq # x4. seq #
1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1. x5. ACK x1. ACK x1. ACK x1. triple
wraparound. sum. checksum. Transport duplicate ACKs. timeout. resend seq X2.
Layer. 3-19. Transport Layer. 3-71.
20Chapter 3 outline. 3.1 Transport-layer 72Fast retransmit algorithm: event: ACK
services 3.2 Multiplexing and received, with ACK field value of y if (y
demultiplexing 3.3 Connectionless > SendBase) { SendBase = y if (there
transport: UDP 3.4 Principles of reliable are currently not-yet-acknowledged
data transfer. 3.5 Connection-oriented segments) start timer } else { increment
transport: TCP segment structure reliable count of dup ACKs received for y if (count
data transfer flow control connection of dup ACKs received for y = 3) { resend
management 3.6 Principles of congestion segment with sequence number y }. a
control 3.7 TCP congestion control. duplicate ACK for already ACKed segment.
Transport Layer. 3-20. fast retransmit. Transport Layer. 3-72.
21Principles of Reliable data transfer. 73Chapter 3 outline. 3.1 Transport-layer
important in app., transport, link layers services 3.2 Multiplexing and
top-10 list of important networking demultiplexing 3.3 Connectionless
topics! characteristics of unreliable transport: UDP 3.4 Principles of reliable
channel will determine complexity of data transfer. 3.5 Connection-oriented
reliable data transfer protocol (rdt). transport: TCP segment structure reliable
Transport Layer. 3-21. data transfer flow control connection
22Principles of Reliable data transfer. management 3.6 Principles of congestion
important in app., transport, link layers control 3.7 TCP congestion control.
top-10 list of important networking Transport Layer. 3-73.
topics! characteristics of unreliable 74TCP Flow Control. receive side of TCP
channel will determine complexity of connection has a receive buffer:
reliable data transfer protocol (rdt). speed-matching service: matching send rate
Transport Layer. 3-22. to receiving applications drain rate. app
23Principles of Reliable data transfer. process may be slow at reading from
important in app., transport, link layers buffer. Transport Layer. 3-74.
top-10 list of important networking 75TCP Flow control: how it works.
topics! characteristics of unreliable receiver: advertises unused buffer space
channel will determine complexity of by including rwnd value in segment header
reliable data transfer protocol (rdt). sender: limits # of unACKed bytes to rwnd
Transport Layer. 3-23. guarantees receivers buffer doesnt
24Reliable data transfer: getting overflow. (suppose TCP receiver discards
started. send side. receive side. out-of-order segments) unused buffer
Transport Layer. 3-24. space: = rwnd = RcvBuffer-[LastByteRcvd -
25Reliable data transfer: getting LastByteRead]. Transport Layer. 3-75.
started. Well: incrementally develop 76Chapter 3 outline. 3.1 Transport-layer
sender, receiver sides of reliable data services 3.2 Multiplexing and
transfer protocol (rdt) consider only demultiplexing 3.3 Connectionless
unidirectional data transfer but control transport: UDP 3.4 Principles of reliable
info will flow on both directions! use data transfer. 3.5 Connection-oriented
finite state machines (FSM) to specify transport: TCP segment structure reliable
sender, receiver. event causing state data transfer flow control connection
transition. actions taken on state management 3.6 Principles of congestion
transition. state: when in this state control 3.7 TCP congestion control.
next state uniquely determined by next Transport Layer. 3-76.
event. Transport Layer. 3-25. 77TCP Connection Management. Three way
26Rdt1.0: reliable transfer over a handshake: Step 1: client host sends TCP
reliable channel. underlying channel SYN segment to server specifies initial
perfectly reliable no bit errors no loss seq # no data Step 2: server host receives
of packets separate FSMs for sender, SYN, replies with SYNACK segment server
receiver: sender sends data into allocates buffers specifies server initial
underlying channel receiver read data from seq. # Step 3: client receives SYNACK,
underlying channel. sender. receiver. replies with ACK segment, which may
rdt_send(data). rdt_rcv(packet). Wait for contain data. Recall: TCP sender, receiver
call from below. Wait for call from above. establish connection before exchanging
extract (packet,data) deliver_data(data). data segments initialize TCP variables:
packet = make_pkt(data) udt_send(packet). seq. #s buffers, flow control info (e.g.
Transport Layer. 3-26. RcvWindow) client: connection initiator
27Rdt2.0: channel with bit errors. Socket clientSocket = new
underlying channel may flip bits in packet Socket("hostname","port
checksum to detect bit errors the number"); server: contacted by client
question: how to recover from errors: Socket connectionSocket =
acknowledgements (ACKs): receiver welcomeSocket.accept(); Transport Layer.
explicitly tells sender that pkt received 3-77.
OK negative acknowledgements (NAKs): 78TCP Connection Management (cont.).
receiver explicitly tells sender that pkt Closing a connection: client closes
had errors sender retransmits pkt on socket: clientSocket.close(); Step 1:
receipt of NAK new mechanisms in rdt2.0 client end system sends TCP FIN control
(beyond rdt1.0): error detection receiver segment to server Step 2: server receives
feedback: control msgs (ACK,NAK) FIN, replies with ACK. Closes connection,
rcvr->sender. Transport Layer. 3-27. sends FIN. Transport Layer. 3-78.
28rdt2.0: FSM specification. receiver. 79TCP Connection Management (cont.).
sender. rdt_send(data). snkpkt = Step 3: client receives FIN, replies with
make_pkt(data, checksum) udt_send(sndpkt). ACK. Enters timed wait - will respond
rdt_rcv(rcvpkt) && isNAK(rcvpkt). with ACK to received FINs Step 4: server,
Wait for call from above. receives ACK. Connection closed. Note:
udt_send(sndpkt). rdt_rcv(rcvpkt) with small modification, can handle
&& isACK(rcvpkt). L. simultaneous FINs. closing. closing. timed
rdt_rcv(rcvpkt) && wait. closed. closed. client. server. FIN.
notcorrupt(rcvpkt). extract(rcvpkt,data) ACK. FIN. ACK. Transport Layer. 3-79.
deliver_data(data) udt_send(ACK). 80TCP Connection Management (cont). TCP
Transport Layer. 3-28. server lifecycle. TCP client lifecycle.
29rdt2.0: operation with no errors. Transport Layer. 3-80.
rdt_send(data). snkpkt = make_pkt(data, 81Chapter 3 outline. 3.1 Transport-layer
checksum) udt_send(sndpkt). services 3.2 Multiplexing and
rdt_rcv(rcvpkt) && isNAK(rcvpkt). demultiplexing 3.3 Connectionless
Wait for call from above. transport: UDP 3.4 Principles of reliable
udt_send(sndpkt). rdt_rcv(rcvpkt) data transfer. 3.5 Connection-oriented
&& isACK(rcvpkt). Wait for call transport: TCP segment structure reliable
from below. L. rdt_rcv(rcvpkt) && data transfer flow control connection
notcorrupt(rcvpkt). extract(rcvpkt,data) management 3.6 Principles of congestion
deliver_data(data) udt_send(ACK). control 3.7 TCP congestion control.
Transport Layer. 3-29. Transport Layer. 3-81.
30rdt2.0: error scenario. 82Principles of Congestion Control.
rdt_send(data). snkpkt = make_pkt(data, Congestion: informally: too many sources
checksum) udt_send(sndpkt). sending too much data too fast for network
rdt_rcv(rcvpkt) && isNAK(rcvpkt). to handle different from flow control!
Wait for call from above. manifestations: lost packets (buffer
udt_send(sndpkt). rdt_rcv(rcvpkt) overflow at routers) long delays (queueing
&& isACK(rcvpkt). Wait for call in router buffers) a top-10 problem!
from below. L. rdt_rcv(rcvpkt) && Transport Layer. 3-82.
notcorrupt(rcvpkt). extract(rcvpkt,data) 83Causes/costs of congestion: scenario
deliver_data(data) udt_send(ACK). 1. two senders, two receivers one router,
Transport Layer. 3-30. infinite buffers no retransmission. large
31rdt2.0 has a fatal flaw! What happens delays when congested maximum achievable
if ACK/NAK corrupted? sender doesnt know throughput. Transport Layer. 3-83.
what happened at receiver! cant just 84Causes/costs of congestion: scenario
retransmit: possible duplicate. Handling 2. one router, finite buffers sender
duplicates: sender retransmits current pkt retransmission of lost packet. Host A.
if ACK/NAK garbled sender adds sequence lout. Host B. finite shared output link
number to each pkt receiver discards buffers. lin : original data. l'in :
(doesnt deliver up) duplicate pkt. Sender original data, plus retransmitted data.
sends one packet, then waits for receiver Transport Layer. 3-84.
response. Transport Layer. 3-31. 85Causes/costs of congestion: scenario
32rdt2.1: sender, handles garbled 2. always: (goodput) perfect
ACK/NAKs. rdt_send(data). sndpkt = retransmission only when loss:
make_pkt(0, data, checksum) retransmission of delayed (not lost)
udt_send(sndpkt). rdt_rcv(rcvpkt) packet makes larger (than perfect case)
&& ( corrupt(rcvpkt) || for same. costs of congestion: more work
isNAK(rcvpkt) ). udt_send(sndpkt). (retrans) for given goodput unneeded
rdt_rcv(rcvpkt) && retransmissions: link carries multiple
notcorrupt(rcvpkt) && copies of pkt. Transport Layer. 3-85.
isACK(rcvpkt). rdt_rcv(rcvpkt) && 86Causes/costs of congestion: scenario
notcorrupt(rcvpkt) && 3. Q: what happens as and increase ? four
isACK(rcvpkt). L. L. rdt_rcv(rcvpkt) senders multihop paths timeout/retransmit.
&& ( corrupt(rcvpkt) || finite shared output link buffers. lout.
isNAK(rcvpkt) ). rdt_send(data). sndpkt = lin : original data. l'in : original data,
make_pkt(1, data, checksum) plus retransmitted data. Transport Layer.
udt_send(sndpkt). udt_send(sndpkt). Wait 3-86.
for call 0 from above. Transport Layer. 87Causes/costs of congestion: scenario
3-32. 3. another cost of congestion: when
33rdt2.1: receiver, handles garbled packet dropped, any upstream transmission
ACK/NAKs. rdt_rcv(rcvpkt) && capacity used for that packet was wasted!
notcorrupt(rcvpkt) && lout. Transport Layer. 3-87.
has_seq1(rcvpkt). rdt_rcv(rcvpkt) 88Approaches towards congestion control.
&& notcorrupt(rcvpkt) && two broad approaches towards congestion
has_seq0(rcvpkt). extract(rcvpkt,data) control: network-assisted congestion
deliver_data(data) sndpkt = make_pkt(ACK, control: routers provide feedback to end
chksum) udt_send(sndpkt). rdt_rcv(rcvpkt) systems single bit indicating congestion
&& (corrupt(rcvpkt). (SNA, DECbit, TCP/IP ECN, ATM) explicit
rdt_rcv(rcvpkt) && rate sender should send at. end-end
(corrupt(rcvpkt). sndpkt = make_pkt(NAK, congestion control: no explicit feedback
chksum) udt_send(sndpkt). sndpkt = from network congestion inferred from
make_pkt(NAK, chksum) udt_send(sndpkt). end-system observed loss, delay approach
rdt_rcv(rcvpkt) && not taken by TCP. Transport Layer. 3-88.
corrupt(rcvpkt) && 89Case study: ATM ABR congestion
has_seq1(rcvpkt). rdt_rcv(rcvpkt) control. ABR: available bit rate: elastic
&& not corrupt(rcvpkt) && service if senders path underloaded:
has_seq0(rcvpkt). sndpkt = make_pkt(ACK, sender should use available bandwidth if
chksum) udt_send(sndpkt). sndpkt = senders path congested: sender throttled
make_pkt(ACK, chksum) udt_send(sndpkt). to minimum guaranteed rate. RM (resource
extract(rcvpkt,data) deliver_data(data) management) cells: sent by sender,
sndpkt = make_pkt(ACK, chksum) interspersed with data cells bits in RM
udt_send(sndpkt). Transport Layer. 3-33. cell set by switches (network-assisted)
34rdt2.1: discussion. Sender: seq # NI bit: no increase in rate (mild
added to pkt two seq. #s (0,1) will congestion) CI bit: congestion indication
suffice. Why? must check if received RM cells returned to sender by receiver,
ACK/NAK corrupted twice as many states with bits intact. Transport Layer. 3-89.
state must remember whether current 90Case study: ATM ABR congestion
pkt has 0 or 1 seq. #. Receiver: must control. two-byte ER (explicit rate) field
check if received packet is duplicate in RM cell congested switch may lower ER
state indicates whether 0 or 1 is expected value in cell sender send rate thus
pkt seq # note: receiver can not know if maximum supportable rate on path EFCI bit
its last ACK/NAK received OK at sender. in data cells: set to 1 in congested
Transport Layer. 3-34. switch if data cell preceding RM cell has
35rdt2.2: a NAK-free protocol. same EFCI set, sender sets CI bit in returned
functionality as rdt2.1, using ACKs only RM cell. Transport Layer. 3-90.
instead of NAK, receiver sends ACK for 91Chapter 3 outline. 3.1 Transport-layer
last pkt received OK receiver must services 3.2 Multiplexing and
explicitly include seq # of pkt being demultiplexing 3.3 Connectionless
ACKed duplicate ACK at sender results in transport: UDP 3.4 Principles of reliable
same action as NAK: retransmit current data transfer. 3.5 Connection-oriented
pkt. Transport Layer. 3-35. transport: TCP segment structure reliable
36rdt2.2: sender, receiver fragments. data transfer flow control connection
sender FSM fragment. receiver FSM management 3.6 Principles of congestion
fragment. rdt_send(data). sndpkt = control 3.7 TCP congestion control.
make_pkt(0, data, checksum) Transport Layer. 3-91.
udt_send(sndpkt). rdt_rcv(rcvpkt) 92TCP congestion control: goal: TCP
&& ( corrupt(rcvpkt) || sender should transmit as fast as
isACK(rcvpkt,1) ). udt_send(sndpkt). possible, but without congesting network
rdt_rcv(rcvpkt) && Q: how to find rate just below congestion
notcorrupt(rcvpkt) && level decentralized: each TCP sender sets
isACK(rcvpkt,0). rdt_rcv(rcvpkt) its own rate, based on implicit feedback:
&& (corrupt(rcvpkt) || ACK: segment received (a good thing!),
has_seq1(rcvpkt)). L. udt_send(sndpkt). network not congested, so increase sending
rdt_rcv(rcvpkt) && rate lost segment: assume loss due to
notcorrupt(rcvpkt) && congested network, so decrease sending
has_seq1(rcvpkt). extract(rcvpkt,data) rate. Transport Layer. 3-92.
deliver_data(data) sndpkt = make_pkt(ACK1, 93TCP congestion control: bandwidth
chksum) udt_send(sndpkt). Transport Layer. probing. probing for bandwidth: increase
3-36. transmission rate on receipt of ACK, until
37rdt3.0: channels with errors and loss. eventually loss occurs, then decrease
New assumption: underlying channel can transmission rate continue to increase on
also lose packets (data or ACKs) checksum, ACK, decrease on loss (since available
seq. #, ACKs, retransmissions will be of bandwidth is changing, depending on other
help, but not enough. Approach: sender connections in network). Q: how fast to
waits reasonable amount of time for ACK increase/decrease? details to follow.
retransmits if no ACK received in this TCPs sawtooth behavior. ACKs being
time if pkt (or ACK) just delayed (not received, so increase rate. X. X. X. X.
lost): retransmission will be duplicate, sending rate. time. Transport Layer. 3-93.
but use of seq. #s already handles this 94TCP Congestion Control: details.
receiver must specify seq # of pkt being sender limits rate by limiting number of
ACKed requires countdown timer. Transport unACKed bytes in pipeline: cwnd: differs
Layer. 3-37. from rwnd (how, why?) sender limited by
38rdt3.0 sender. L. L. L. L. min(cwnd,rwnd) roughly, cwnd is dynamic,
rdt_send(data). rdt_rcv(rcvpkt) && function of perceived network congestion.
( corrupt(rcvpkt) || isACK(rcvpkt,1) ). LastByteSent-LastByteAcked ? cwnd. cwnd
sndpkt = make_pkt(0, data, checksum) bytes. RTT. Transport Layer. 3-94.
udt_send(sndpkt) start_timer. 95TCP Congestion Control: more details.
rdt_rcv(rcvpkt). timeout. udt_send(sndpkt) segment loss event: reducing cwnd timeout:
start_timer. rdt_rcv(rcvpkt) && no response from receiver cut cwnd to 1 3
notcorrupt(rcvpkt) && duplicate ACKs: at least some segments
isACK(rcvpkt,1). rdt_rcv(rcvpkt) getting through (recall fast retransmit)
&& notcorrupt(rcvpkt) && cut cwnd in half, less aggressively than
isACK(rcvpkt,0). stop_timer. stop_timer. on timeout. ACK received: increase cwnd
timeout. udt_send(sndpkt) start_timer. slowstart phase: increase exponentially
rdt_rcv(rcvpkt). rdt_send(data). fast (despite name) at connection start,
rdt_rcv(rcvpkt) && ( or following timeout congestion avoidance:
corrupt(rcvpkt) || isACK(rcvpkt,0) ). increase linearly. Transport Layer. 3-95.
sndpkt = make_pkt(1, data, checksum) 96TCP Slow Start. when connection
udt_send(sndpkt) start_timer. Transport begins, cwnd = 1 MSS example: MSS = 500
Layer. 3-38. bytes & RTT = 200 msec initial rate =
39rdt3.0 in action. Transport Layer. 20 kbps available bandwidth may be
3-39. >> MSS/RTT desirable to quickly ramp
40rdt3.0 in action. Transport Layer. up to respectable rate increase rate
3-40. exponentially until first loss event or
41Performance of rdt3.0. rdt3.0 works, when threshold reached double cwnd every
but performance stinks ex: 1 Gbps link, 15 RTT done by incrementing cwnd by 1 for
ms prop. delay, 8000 bit packet: U sender: every ACK received. Host A. Host B. one
utilization fraction of time sender busy segment. RTT. two segments. four segments.
sending. 1KB pkt every 30 msec -> Transport Layer. 3-96.
33kB/sec thruput over 1 Gbps link network 97Transitioning into/out of slowstart.
protocol limits use of physical resources! ssthresh: cwnd threshold maintained by TCP
Transport Layer. 3-41. on loss event: set ssthresh to cwnd/2
42rdt3.0: stop-and-wait operation. remember (half of) TCP rate when
sender. receiver. first packet bit congestion last occurred when cwnd >=
transmitted, t = 0. last packet bit ssthresh: transition from slowstart to
transmitted, t = L / R. first packet bit congestion avoidance phase. Transport
arrives. RTT. last packet bit arrives, Layer. 3-97. L.
send ACK. ACK arrives, send next packet, t 98TCP: congestion avoidance. AIMD. when
= RTT + L / R. Transport Layer. 3-42. cwnd > ssthresh grow cwnd linearly
43Pipelined protocols. Pipelining: increase cwnd by 1 MSS per RTT approach
sender allows multiple, in-flight, possible congestion slower than in
yet-to-be-acknowledged pkts range of slowstart implementation: cwnd = cwnd +
sequence numbers must be increased MSS/cwnd for each ACK received. ACKs:
buffering at sender and/or receiver. Two increase cwnd by 1 MSS per RTT: additive
generic forms of pipelined protocols: increase loss: cut cwnd in half
go-Back-N, selective repeat. Transport (non-timeout-detected loss ):
Layer. 3-43. multiplicative decrease. AIMD: Additive
44Pipelining: increased utilization. Increase Multiplicative Decrease.
Increase utilization by a factor of 3! Transport Layer. 3-98.
sender. receiver. first packet bit 99TCP congestion control FSM: overview.
transmitted, t = 0. last bit transmitted, new ACK. loss: 3dupACK. loss: 3dupACK.
t = L / R. first packet bit arrives. RTT. Transport Layer. 3-99.
last packet bit arrives, send ACK. last 100TCP congestion control FSM: details.
bit of 2nd packet arrives, send ACK. last Transport Layer. 3-100. L.
bit of 3rd packet arrives, send ACK. ACK 101Popular flavors of TCP. TCP Reno.
arrives, send next packet, t = RTT + L / ssthresh. cwnd window size (in segments).
R. Transport Layer. 3-44. ssthresh. TCP Tahoe. Transmission round.
45Pipelining Protocols. Go-back-N: Transport Layer. 3-101.
overview sender: up to N unACKed pkts in 102Summary: TCP Congestion Control. when
pipeline receiver: only sends cumulative cwnd < ssthresh, sender in slow-start
ACKs doesnt ACK pkt if theres a gap phase, window grows exponentially. when
sender: has timer for oldest unACKed pkt cwnd >= ssthresh, sender is in
if timer expires: retransmit all unACKed congestion-avoidance phase, window grows
packets. Selective Repeat: overview linearly. when triple duplicate ACK
sender: up to N unACKed packets in occurs, ssthresh set to cwnd/2, cwnd set
pipeline receiver: ACKs individual pkts to ~ ssthresh when timeout occurs,
sender: maintains timer for each unACKed ssthresh set to cwnd/2, cwnd set to 1 MSS.
pkt if timer expires: retransmit only Transport Layer. 3-102.
unACKed packet. Transport Layer. 3-45. 103TCP throughput. Q: whats average
46Go-Back-N. Sender: k-bit seq # in pkt throughout of TCP as function of window
header window of up to N, consecutive size, RTT? ignoring slow start let W be
unACKed pkts allowed. ACK(n): ACKs all window size when loss occurs. when window
pkts up to, including seq # n - is W, throughput is W/RTT just after loss,
cumulative ACK may receive duplicate window drops to W/2, throughput to W/2RTT.
ACKs (see receiver) timer for each average throughout: .75 W/RTT. Transport
in-flight pkt timeout(n): retransmit pkt n Layer. 3-103.
and all higher seq # pkts in window. 104TCP Futures: TCP over long, fat
Transport Layer. 3-46. pipes. example: 1500 byte segments, 100ms
47GBN: sender extended FSM. L. RTT, want 10 Gbps throughput requires
rdt_send(data). if (nextseqnum < window size W = 83,333 in-flight segments
base+N) { sndpkt[nextseqnum] = throughput in terms of loss rate: ? L =
make_pkt(nextseqnum,data,chksum) 2?10-10 Wow new versions of TCP for
udt_send(sndpkt[nextseqnum]) if (base == high-speed. Transport Layer. 3-104.
nextseqnum) start_timer nextseqnum++ } 105TCP Fairness. fairness goal: if K TCP
else refuse_data(data). base=1 sessions share same bottleneck link of
nextseqnum=1. timeout. start_timer bandwidth R, each should have average rate
udt_send(sndpkt[base]) of R/K. Transport Layer. 3-105.
udt_send(sndpkt[base+1]) 106Why is TCP fair? Two competing
udt_send(sndpkt[nextseqnum-1]). sessions: Additive increase gives slope of
rdt_rcv(rcvpkt) && 1, as throughout increases multiplicative
corrupt(rcvpkt). rdt_rcv(rcvpkt) decrease decreases throughput
&& notcorrupt(rcvpkt). base = proportionally. R. R. equal bandwidth
getacknum(rcvpkt)+1 If (base == share. Connection 2 throughput. Connection
nextseqnum) stop_timer else start_timer. 1 throughput. loss: decrease window by
Transport Layer. 3-47. factor of 2. congestion avoidance:
48GBN: receiver extended FSM. ACK-only: additive increase. loss: decrease window
always send ACK for correctly-received pkt by factor of 2. congestion avoidance:
with highest in-order seq # may generate additive increase. Transport Layer. 3-106.
duplicate ACKs need only remember 107Fairness (more). Fairness and parallel
expectedseqnum out-of-order pkt: discard TCP connections nothing prevents app from
(dont buffer) -> no receiver opening parallel connections between 2
buffering! Re-ACK pkt with highest hosts. web browsers do this example: link
in-order seq #. L. Wait. default. of rate R supporting 9 connections; new
udt_send(sndpkt). rdt_rcv(rcvpkt) app asks for 1 TCP, gets rate R/10 new app
&& notcurrupt(rcvpkt) && asks for 11 TCPs, gets R/2 ! Fairness and
hasseqnum(rcvpkt,expectedseqnum). UDP multimedia apps often do not use TCP
extract(rcvpkt,data) deliver_data(data) do not want rate throttled by congestion
sndpkt = control instead use UDP: pump audio/video
make_pkt(expectedseqnum,ACK,chksum) at constant rate, tolerate packet loss.
udt_send(sndpkt) expectedseqnum++. Transport Layer. 3-107.
expectedseqnum=1 sndpkt = 108Chapter 3: Summary. principles behind
make_pkt(expectedseqnum,ACK,chksum). transport layer services: multiplexing,
Transport Layer. 3-48. demultiplexing reliable data transfer flow
49GBN in action. Transport Layer. 3-49. control congestion control instantiation
50Selective Repeat. receiver and implementation in the Internet UDP
individually acknowledges all correctly TCP. Next: leaving the network edge
received pkts buffers pkts, as needed, for (application, transport layers) into the
eventual in-order delivery to upper layer network core. Transport Layer. 3-108.
Transport Layer.ppt

Transport Layer

Transport Layer

Ravers - Their appearance and behavior promotes a departure from human nature. In my opinion subculture the ravers not as bad as it seems. Ideology of the ravers based on entertainment and non-interference. bag. Contents. Ravers prefer techno music: trance, house, drum & bass. Benny Benassi feat. badges.

Word 2010 - Bullets and numbers. Exploring Microsoft Office Word. Compatibility mode. Watermarks. Calculate with table formulas. Leaders characters. Cropping. Text Effects. Document views. Figure captions. Writing styles. Spelling and grammar. Text alignment. Typography gives your document a polished, professional look.

Cinema - Cinema - public institution to public demonstration of films. The most widely K. medium capacity (from 300 to 1,000 seats). thank you for your attention. The total number of K in the world - about 100 thousand. Theater, public building (or part of it), equipped for movies. Cinema. Salkov and Cats presents.

Education system - MODERN SYSTEM OF EDUCATION IN RUSSIA. To all these requirements the person with degree of the bachelor also satisfies. And how specialization? Certainly, it is possible to continue "to swot away" sciences independently. MAGISTRACY - the best way for the bachelor to qualification tops. About employment abroad.

Olympic games 2012 - Opening Ceremony. Oscar Pistorius is a man who never gives up. London became the first city to have received three Olympics. Closing ceremony. Oscar on the Olympic Games in 2012. Olympic games in london. Olympic Torch Relay Olympic Games. Talismans of Games Wenlock and Mandeville. Sports facilities.

Youth subcultures - punk. skinhead. rocker. mod. subculture. hippie. goth. raver. biker. hacker.


900igr.net > > > Transport Layer