3rd Edition: Chapter 3

3rd Edition: Chapter 3

Chapter 3 Transport Layer A note on the use of these ppt slides: Were making these slides freely available to all (faculty, students, readers). Theyre in PowerPoint form so you see the animations; and can add, modify, and delete slides (including this one) and slide content to suit your needs. They obviously represent a lot of work on our part. In return for use, we only ask the following: If you use these slides (e.g., in a class) that you mention their source (after all, wed like people to use our book!) If you post any slides on a www site, that you note that they are adapted from (or perhaps identical to) our slides, and note our copyright of this material. Thanks and enjoy! JFK/KWR Computer Networking: A Top Down Approach 6th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 All material copyright 1996-2012 J.F Kurose and K.W. Ross, All Rights Reserved Transport Layer 3-1 rdt2.1: sender, handles garbled ACK/NAKs rdt_send(data) sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt)

Wait for call 0 from above ( corrupt(rcvpkt) || isNAK(rcvpkt) ) udt_send(sndpkt) Wait for ACK or NAK 0 rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt) L rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isNAK(rcvpkt) ) udt_send(sndpkt) L Wait for ACK or NAK 1 Wait for call 1 from above rdt_send(data) sndpkt = make_pkt(1, data, checksum) udt_send(sndpkt) Transport Layer 3-2

rdt2.1: receiver, handles garbled ACK/NAKs rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq0(rcvpkt) rdt_rcv(rcvpkt) && (corrupt(rcvpkt) sndpkt = make_pkt(NAK, chksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && not corrupt(rcvpkt) && has_seq1(rcvpkt) sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && (corrupt(rcvpkt) sndpkt = make_pkt(NAK, chksum) udt_send(sndpkt) Wait for 0 from below Wait for 1 from below rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) rdt_rcv(rcvpkt) && not corrupt(rcvpkt) && has_seq0(rcvpkt) sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt)

extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt) Transport Layer 3-3 rdt2.1: discussion receiver: sender: must seq #check addedifto received pkt packet is duplicate two seq. #s (0,1) will suffice. state indicates whether 0 or 1 is Why? expected pkt seq # must check if received ACK/NAK note: receiver can not know if its corrupted ACK/NAK received OK at last twice as many states sender state must remember whether expected pkt should have seq # of

0 or 1 Transport Layer 3-4 rdt2.2: a NAK-free protocol same functionality as rdt2.1, using ACKs only instead of NAK, receiver sends ACK for last pkt received OK receiver must explicitly include seq # of pkt being ACKed duplicate ACK at sender results in same action as NAK: retransmit current pkt Transport Layer 3-5 rdt2.2: sender, receiver fragments rdt_send(data) sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && Wait for call 0 from above rdt_rcv(rcvpkt) && (corrupt(rcvpkt) || has_seq1(rcvpkt)) udt_send(sndpkt) Wait for 0 from below

( corrupt(rcvpkt) || isACK(rcvpkt,1) ) udt_send(sndpkt) Wait for ACK 0 sender FSM fragment rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,0) receiver FSM fragment L rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ACK1, chksum) udt_send(sndpkt) Transport Layer 3-6 rdt3.0: channels with errors and loss new assumption: underlying approach:channel sender can also lose packets waits (data, ACKs) checksum, seq. #, ACKs, reasonable

retransmissions will amount be of helpof time but not enough for ACK retransmits if no ACK received in this time if pkt (or ACK) just delayed (not lost): retransmission will be duplicate, but seq. #s already handles Transport Layer 3-7 this rdt3.0 sender rdt_send(data) sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt) start_timer rdt_rcv(rcvpkt) L rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,1) rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) ||

isACK(rcvpkt,0) ) timeout udt_send(sndpkt) start_timer rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,0) stop_timer stop_timer timeout udt_send(sndpkt) start_timer L Wait for ACK0 Wait for call 0from above L rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isACK(rcvpkt,1) ) Wait for ACK1 Wait for call 1 from above rdt_send(data)

rdt_rcv(rcvpkt) L sndpkt = make_pkt(1, data, checksum) udt_send(sndpkt) start_timer Transport Layer 3-8 rdt3.0 in action receiver sender send pkt0 rcv ack0 send pkt1 rcv ack1 send pkt0 pkt0 ack0 send pkt0 rcv pkt0 send ack0 pkt1 ack1 pkt0 ack0 rcv pkt1 send ack1 rcv pkt0 send ack0

(a) no loss receiver sender rcv ack0 send pkt1 pkt0 ack0 rcv pkt0 send ack0 pkt1 X loss timeout resend pkt1 rcv ack1 send pkt0 pkt1 ack1 pkt0 ack0 rcv pkt1 send ack1 rcv pkt0 send ack0 (b) packet loss Transport Layer 3-9

rdt3.0 in action sender send pkt0 rcv ack0 send pkt1 pkt0 ack0 pkt1 ack1 X receiver rcv pkt0 send ack0 rcv pkt1 send ack1 loss timeout resend pkt1 rcv ack1 send pkt0 pkt1 ack1 pkt0 ack0 (c) ACK loss receiver sender

rcv pkt1 (detect duplicate) send ack1 rcv pkt0 send ack0 send pkt0 rcv ack0 send pkt1 pkt0 rcv pkt0 send ack0 ack0 pkt1 rcv pkt1 send ack1 ack1 timeout pkt1 resend pkt1 rcv ack1 pkt0 send pkt0 ack1 rcv ack1 ack0 send pkt0 pkt0 ack0

rcv pkt1 (detect duplicate) send ack1 rcv pkt0 send ack0 rcv pkt0 (detect duplicate) send ack0 (d) premature timeout/ delayed ACK Transport Layer 3-10 Performance of rdt3.0 rdt3.0 is correct, but performance stinks e.g.: 1 Gbps link, 15 ms prop. delay, 8000 bits L = 8 microsecs Dtrans = R = 9 10 bits/sec 8000 bit packet: U sender: utilization fraction of time sender busy sending L/R .008 U sender = RTT + L / R

= 30.008 = 0.00027 if RTT=30 msec, 1KB pkt every 30 msec: 33kB/sec thruput over 1 Gbps link network protocol limits use of physical resources! Transport Layer 3-11 rdt3.0: stop-and-wait operation sender receiver first packet bit transmitted, t = 0 last packet bit transmitted, t = L / R first packet bit arrives last packet bit arrives, send ACK RTT ACK arrives, send next packet, t = RTT + L / R U sender = L/R RTT + L / R =

.008 30.008 = 0.00027 Transport Layer 3-12 Pipelined protocols pipelining: sender allows multiple, in-flight, yet-to-beacknowledged pkts range of sequence numbers must be increased buffering at sender and/or receiver two generic forms of pipelined protocols: go-Back-N, selective repeat Transport Layer 3-13 Pipelining: increased utilization sender receiver first packet bit transmitted, t = 0 last bit transmitted, t = L / R first packet bit arrives last packet bit arrives, send ACK last bit of 2nd packet arrives, send ACK last bit of 3rd packet arrives, send ACK RTT ACK arrives, send next

packet, t = RTT + L / R 3-packet pipelining increases utilization by a factor of 3! U sender = 3L / R RTT + L / R = .0024 30.008 = 0.00081 Transport Layer 3-14 Pipelined protocols: overview Go-back-N: sender can have up to N unacked packets in pipeline receiver only sends cumulative ack doesnt ack packet if theres a gap sender has timer for oldest

unacked packet Selective Repeat: sender can have up to N unacked packets in pipeline rcvr sends individual ack for each packet sender maintains timer for each unacked packet Transport Layer 3-15 when timer Go-Back-N: sender k-bit seq # in pkt header window of up to N, consecutive unacked pkts allowed ACK(n): ACKs all pkts up to, including seq # n cumulative ACK may receive duplicate ACKs (see receiver) timer for oldest in-flight pkt timeout(n): retransmit packet n and all higher seq # pkts in window Transport Layer 3-16

GBN: sender extended FSM rdt_send(data) L base=1 nextseqnum=1 rdt_rcv(rcvpkt) && corrupt(rcvpkt) if (nextseqnum < base+N) { sndpkt[nextseqnum] = make_pkt(nextseqnum,data,chksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ } else refuse_data(data) timeout start_timer Wait udt_send(sndpkt[base]) udt_send(sndpkt[base+1]) udt_send(sndpkt[nextseqnum1]) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) base = getacknum(rcvpkt)+1 If (base == nextseqnum) stop_timer else start_timer Transport Layer 3-17 GBN: receiver extended FSM default

udt_send(sndpkt) L Wait expectedseqnum=1 sndpkt = make_pkt(expectedseqnum,ACK,chksum) rdt_rcv(rcvpkt) && notcurrupt(rcvpkt) && hasseqnum(rcvpkt,expectedseqnum) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(expectedseqnum,ACK,chksum) udt_send(sndpkt) expectedseqnum++ ACK-only: always send ACK for correctly-received pkt with highest in-order seq # may generate duplicate ACKs need only remember expectedseqnum out-of-order pkt: discard (dont buffer): no receiver Transport Layer 3-18 GBN in action sender window (N=4) 012345678 012345678 012345678 012345678 012345678 012345678

sender send pkt0 send pkt1 send pkt2 send pkt3 (wait) rcv ack0, send pkt4 rcv ack1, send pkt5 ignore duplicate ACK 012345678 012345678 012345678 012345678 pkt 2 timeout send pkt2 send pkt3 send pkt4 send pkt5 receiver Xloss receive pkt0, send ack0 receive pkt1, send ack1 receive pkt3, discard, (re)send ack1 receive pkt4, discard, (re)send ack1 receive pkt5, discard, (re)send ack1 rcv rcv rcv rcv

pkt2, pkt3, pkt4, pkt5, deliver, deliver, deliver, deliver, send send send send ack2 ack3 ack4 ack5 Transport Layer 3-19 Selective repeat receiver individually acknowledges all correctly received pkts buffers pkts, as needed, for eventual in-order delivery to upper layer sender only resends pkts for which ACK not received sender timer for each unACKed pkt

sender window N consecutive seq #s limits seq #s of sent, unACKed pkts Transport Layer 3-20 Selective repeat: sender, receiver windows Transport Layer 3-21 Selective repeat sender data from above: receiver pkt n in [rcvbase, rcvbase+N-1] if next available seq # in window, pkt send send ACK(n) out-of-order: buffer timeout(n): resend pkt n, restart timer in-order: deliver (also ACK(n) in [sendbase,sendbase+N]: deliver buffered, inorder pkts), advance mark pkt n as received window to next not if n smallest unACKed pkt, advance window yet-received pkt base to next unACKed seq # pkt n in [rcvbaseN,rcvbase-1]

ACK(n) otherwise: ignore Transport Layer 3-22 Selective repeat in action sender window (N=4) 012345678 012345678 012345678 012345678 012345678 012345678 sender send pkt0 send pkt1 send pkt2 send pkt3 (wait) rcv ack0, send pkt4 rcv ack1, send pkt5 record ack3 arrived 012345678 012345678 012345678 012345678 pkt 2 timeout send pkt2 record ack4 arrived

record ack4 arrived receiver Xloss receive pkt0, send ack0 receive pkt1, send ack1 receive pkt3, buffer, send ack3 receive pkt4, buffer, send ack4 receive pkt5, buffer, send ack5 rcv pkt2; deliver pkt2, pkt3, pkt4, pkt5; send ack2 Q: what happens when ack2 arrives? Transport Layer 3-23 receiver window (after receipt) sender window (after receipt) Selective repeat: dilemma example: seq #s: 0, 1, 2, 3 window size=3 receiver sees no

difference in two scenarios! duplicate data accepted as new in (b) Q: what relationship between seq # size and window size to avoid problem in (b)? 0123012 pkt0 0123012 pkt1 0123012 0123012 pkt2 0123012 0123012 pkt3 0123012 X 0123012 pkt0

(a) no problem will accept packet with seq number 0 receiver cant see sender side. receiver behavior identical in both cases! somethings (very) wrong! 0123012 pkt0 0123012 pkt1 0123012 0123012 pkt2 0123012 X X timeout retransmit pkt0 X 0123012 0123012 (b) oops! pkt0 will accept packet

with seq number 0 Transport Layer 3-24 Chapter 3 outline 3.1 transport-layer services 3.5 connectionoriented 3.2 multiplexing and demultiplexing transport: TCP 3.3 connectionless transport: UDP segment 3.4 principles of reliablestructure data transfer reliable data transfer flow control connection management 3.6 principles of congestion Transport Layer 3-25 TCP: Overview RFCs: 793,1122,1323, 2018, 2581 point-to-point: one sender, one receiver

bi-directional data flow in same connection MSS: maximum segment size reliable, in-order byte steam: no message boundaries pipelined: TCP congestion and flow control set window size full duplex data: connectionoriented: handshaking (exchange of control msgs) Transport Layer 3-26 inits sender, TCP segment structure 32 bits URG: urgent data (generally not used) ACK: ACK # valid PSH: push data now

(generally not used) RST, SYN, FIN: connection estab (setup, teardown commands) Internet checksum (as in UDP) source port # dest port # sequence number acknowledgement number head not UAP R S F len used checksum receive window Urg data pointer options (variable length) counting by bytes of data (not segments!) # bytes rcvr willing to accept application data (variable length) Transport Layer 3-27

TCP seq. numbers, ACKs sequence numbers: byte stream number of first byte in segments data outgoing segment from sender source port # dest port # sequence number acknowledgement number rwnd checksum urg pointer window size N acknowledgements: seq # of next byte expected from other side cumulative ACK Q: how receiver handles out-of-order segments A: TCP spec sender sequence number space sent ACKed

sent, not- usable not but not usable yet yet sent ACKed (inflight) incoming segment to sender source port # dest port # sequence number acknowledgement number rwnd A checksum urg pointer Transport Layer 3-28 TCP seq. numbers, ACKs Host B Host A User types C host ACKs receipt of echoed C Seq=42, ACK=79, data = C host ACKs

receipt of C, echoes Seq=79, ACK=43, data = C back C Seq=43, ACK=80 simple telnet scenario Transport Layer 3-29 TCP round trip time, timeout Q: how to set TCP timeout value? longer than RTT Q: how to estimate RTT? ignore retransmissions but RTT varies too short: premature timeout, unnecessary retransmission s SampleRTT: measured time from segment transmission until ACK receipt

SampleRTT will vary, want estimated RTT smoother average several recent measurements, Transport Layer 3-30 TCP round trip time, timeout EstimatedRTT = (1- )*EstimatedRTT + *SampleRTT RTT: gaia.cs.umass.edu to fantasia.eurecom.fr 350 RTT: gaia.cs.umass.edu to fantasia.eurecom.fr 300 RTT (milliseconds) exponential weighted moving average influence of past sample decreases exponentially fast typical value: = 0.125 RTT (milliseconds) 250

200 sampleRTT 150 EstimatedRTT 100 1 8 15 22 29 36 43 50 57 64 71 time (seconnds) time SampleRTT Estimated RTT

78 85 92 99 106 Transport Layer 3-31 TCP round trip time, timeout timeout interval: safety margin EstimatedRTT plus large variation in EstimatedRTT -> larger safety margin DevRTT = (1-)*DevRTT + estimate SampleRTT deviation from *|SampleRTT-EstimatedRTT|SampleRTT-EstimatedRTT|SampleRTT-EstimatedRTT| EstimatedRTT: (typically, = 0.25)) TimeoutInterval = EstimatedRTT + 4*DevRTT estimated RTT safety margin

Transport Layer 3-32 Chapter 3 outline 3.1 transport-layer services 3.5 connectionoriented 3.2 multiplexing and demultiplexing transport: TCP 3.3 connectionless transport: UDP segment 3.4 principles of reliablestructure data transfer reliable data transfer flow control connection management 3.6 principles of congestion Transport Layer 3-33 TCP reliable data transfer TCP creates rdt service on top of IPs unreliable service lets initially pipelined consider segments simplified TCP cumulative acks sender:

single retransmission timer retransmissions triggered by: ignore duplicate acks ignore flow control, congestion Transport Layer 3-34 TCP sender events: data rcvd from timeout: retransmit app: create segment segment that with seq # caused timeout seq # is byte restart timer stream number ack rcvd: of first data if ack byte in acknowledges segment previously start timer if unacked not already segments running

update what is think of timer as Transport Layer 3-35 known to be TCP sender (simplified) data received from application above L NextSeqNum = InitialSeqNum SendBase = InitialSeqNum wait for event create segment, seq. #: NextSeqNum pass segment to IP (i.e., send) NextSeqNum = NextSeqNum + length(data) if (timer currently not running) start timer ACK received, with ACK field value y timeout retransmit not-yet-acked segment with smallest seq. # start timer if (y > SendBase) { SendBase = y /* SendBase1: last cumulatively ACKed byte */ if (there are currently not-yet-acked segments) start timer

else stop timer } Transport Layer 3-36 TCP: retransmission scenarios Host B Host A Host B Host A SendBase=92 X ACK=100 Seq=92, 8 bytes of data timeout timeout Seq=92, 8 bytes of data Seq=100, 20 bytes of data ACK=100 ACK=120 Seq=92, 8 bytes of data SendBase=100 ACK=100 Seq=92, 8 bytes of data

SendBase=120 ACK=120 SendBase=120 lost ACK scenario premature timeout Transport Layer 3-37 TCP: retransmission scenarios Host B Host A Seq=92, 8 bytes of data timeout Seq=100, 20 bytes of data X ACK=100 ACK=120 Seq=120, 15 bytes of data cumulative ACK Transport Layer 3-38 TCP ACK generation [RFC 1122, RFC 2581] event at receiver

TCP receiver action arrival of in-order segment with expected seq #. All data up to expected seq # already ACKed delayed ACK. Wait up to 500ms for next segment. If no next segment, send ACK arrival of in-order segment with expected seq #. One other segment has ACK pending immediately send single cumulative ACK, ACKing both in-order segments arrival of out-of-order segment higher-than-expect seq. # . Gap detected immediately send duplicate ACK, indicating seq. # of next expected byte arrival of segment that partially or completely fills gap immediate send ACK, provided that segment starts at lower end of gap Transport Layer 3-39 TCP fast retransmit time-out period often relatively long: long delay

before resending lost packet detect lost segments via duplicate ACKs. sender often sends many segments back- TCP fast retransmit if sender receives 3 ACKs for same data duplicate (triple ACKs), (triple duplicate ACKs), resend unacked segment with smallest seq # likely that unacked segment lost, so dont wait for timeout Transport Layer 3-40 TCP fast retransmit Host B Host A Seq=92, 8 bytes of data

Seq=100, 20 bytes of data timeout X ACK=100 ACK=100 ACK=100 ACK=100 Seq=100, 20 bytes of data fast retransmit after sender receipt of triple duplicate ACK Transport Layer 3-41 Chapter 3 outline 3.1 transport-layer services 3.5 connectionoriented 3.2 multiplexing and demultiplexing transport: TCP 3.3 connectionless transport: UDP segment 3.4 principles of reliablestructure data transfer reliable data transfer flow control connection management 3.6 principles of congestion Transport Layer 3-42

TCP flow control application may remove data from TCP socket buffers . slower than TCP receiver is delivering (sender is sending) application process application TCP socket receiver buffers TCP code IP code flow control receiver controls sender, so sender wont overflow receivers buffer by transmitting too much, too fast OS from sender receiver protocol stack Transport Layer 3-43 TCP flow control

receiver advertises free buffer space by including rwnd value in TCP header of receiver-to-sender segments RcvBuffer size set via socket options (typical default is 4096 bytes) many operating systems autoadjust RcvBuffer sender limits amount of unacked (in-flight) data to receivers rwnd value guarantees receive buffer will not overflow to application process RcvBuffer rwnd buffered data free buffer space TCP segment payloads receiver-side buffering Transport Layer 3-44 Chapter 3 outline

3.1 transport-layer services 3.5 connectionoriented 3.2 multiplexing and demultiplexing transport: TCP 3.3 connectionless transport: UDP segment 3.4 principles of reliablestructure data transfer reliable data transfer flow control connection management 3.6 principles of congestion Transport Layer 3-45 Connection Management before exchanging data, sender/receiver handshake: agree to establish connection (each knowing the other willing to establish connection) agree on connection parameters application application connection state: ESTAB connection variables:

seq # client-toserver server-to-client rcvBuffer size network at server,client connection state: ESTAB connection Variables: seq # client-toserver server-to-client rcvBuffer size network at server,client Socket clientSocket = newSocket("hostname","port number"); Socket connectionSocket = welcomeSocket.accept(); Transport Layer 3-46 Agreeing to establish a connection 2-way handshake: Lets talk ESTAB OK ESTAB Q: will 2-way handshake always work in network?

choose x ESTAB req_conn(x) acc_conn(x) ESTAB variable delays retransmitted messages (e.g. req_conn(x)) due to message loss message reordering cant see other side Transport Layer 3-47 Agreeing to establish a connection 2-way handshake failure scenarios: choose x choose x req_conn(x) req_conn(x) ESTAB ESTAB retransmit req_conn( x)

ESTAB retransmit req_conn( x) ESTAB acc_conn(x) req_conn(x) client terminat es connection x completes acc_conn(x) data(x+1) retransmit data(x+1) server forgets x ESTAB half open connection! (no client!) client terminat es connection x completes req_conn(x) data(x+1)

accept data(x+1 ) server forgets x ESTAB accept data(x+1 ) Transport Layer 3-48 TCP 3-way handshake client state server state LISTEN LISTEN choose init seq num, x send TCP SYN msg SYNSENT SYNbit=1, Seq=x choose init seq num, y send TCP SYNACK SYN RCVD msg, acking SYN SYNbit=1, Seq=y ACKbit=1; ACKnum=x+1 received SYNACK(x) ESTAB indicates server is live;

send ACK for SYNACK; this segment may contain ACKbit=1, ACKnum=y+1 client-to-server data received ACK(y) indicates client is live ESTAB Transport Layer 3-49 TCP 3-way handshake: FSM closed Socket connectionSocket = welcomeSocket.accept(); L SYN(x) SYNACK(seq=y,ACKnum=x+1) create new socket for communication back to client listen SYN(seq=x) SYN sent SYN rcvd ACK(ACKnum=y+1) Socket clientSocket = newSocket("hostname","port number"); ESTAB

SYNACK(seq=y,ACKnum=x+1) ACK(ACKnum=y+1) L Transport Layer 3-50 TCP: closing a connection client, server each close their side of connection send TCP segment with FIN bit = 1 respond to received FIN with ACK on receiving FIN, ACK can be combined with own FIN simultaneous FIN exchanges can be handled Transport Layer 3-51 TCP: closing a connection client state server state ESTAB ESTAB clientSocket.close() FIN_WAIT_1

FIN_WAIT_2 can no longer send but can receive data FINbit=1, seq=x CLOSE_WAIT ACKbit=1; ACKnum=x+1 wait for server close FINbit=1, seq=y TIMED_WAIT timed wait for 2*max segment lifetime can still send data LAST_ACK can no longer send data ACKbit=1; ACKnum=y+1 CLOSED CLOSED Transport Layer 3-52 See you next week! Any question? Introduction 1-53

Recently Viewed Presentations

  • THE ROAD OF DIONYSIUS TOURIST CLUSTER Road of

    THE ROAD OF DIONYSIUS TOURIST CLUSTER Road of

    THE ROAD OF DIONYSIUS TOURIST CLUSTER Road of the wine
  • Y Cynllun Ymchwil Cymunedol - -ORCA

    Y Cynllun Ymchwil Cymunedol - -ORCA

    Yn fras, mae'r grðp ail iaith yn Nyffryn Teifi ddeg gwaith mwy tebygol na'r rhai mamiaith i ddewis y Saesneg. Felly, o ddyhead iaith y sleid hon, awn ymlaen at wir ddefnydd ymarferol yn y nesa. Mamiaith yn unig unwaith...
  • At the far end of town where the

    At the far end of town where the

    And deep in the Grickle-grass, some people say,if you look deep enough you can still see, today,where the Lorax once stoodjust as long as it couldbefore somebody lifted the Lorax away.
  • IASI Product List - SSEC, UW-Madison

    IASI Product List - SSEC, UW-Madison

    Walter Wolf Mitch Goldberg Lihang Zhou NESDIS/ORA/CRAD Preparing for AIRS Simulating AIRS/AMSU-A/HSB data in real-time from the NCEP 6-hour forecast since April 2000. Deriving NRT level 2 retrievals since June 2001. All products generated in near real-time and stored on...
  • Polymerase Chain Reaction (PCR)  PCR is a means

    Polymerase Chain Reaction (PCR) PCR is a means

    The nitrogenous base adenine will only pair with thymine The nitrogenous base guanine will only pair with cytosine During replication, once the DNA strands are separated, DNA polymerase uses each strand as a template to synthesize new strands of DNA...
  • Sharing Economy in Japan and the United States

    Sharing Economy in Japan and the United States

    Sharing Economy in the U.S. and Japan Wendy Li (U.S. Bureau of Economic Analysis) ... Tokyo Fund raising history of Uber and Airbnb Key Findings Firms adopting sharing technology are more OC-intensive Incumbents not adopting sharing technology exhibit higher depreciation...
  • Money Laundering in Canada 2011

    Money Laundering in Canada 2011

    Arab lands = 10m sq. km. ; Israel = 20,770 sq. km. Europe It just so happens that the land area of the Arab countries is exactly the size of Europe, and Israel is the size of Wales (within 1%).
  • Anxiety Disorders and Somatoform Disorders

    Anxiety Disorders and Somatoform Disorders

    Anxiety Disorders in general. Behavioral: The avoidance of an anxiety-provoking situation may be practiced. Example, persons may be unwilling to leave home. Somatic: Numerous physiological complaints are experienced due to activation of the sympathetic nervous system. Examples: Stomach aches. Headaches....