1 networking primer - transport layer ece 256 spring 2009 romit roy choudhury dept. of ece and cs
TRANSCRIPT
![Page 1: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/1.jpg)
1
Networking Primer - Transport Layer
ECE 256 Spring 2009
Romit Roy ChoudhuryDept. of ECE and CS
![Page 2: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/2.jpg)
2
Agenda
Transport Layer Multiplexing / Demultiplexing
Reliable Transport Stop-and-wait Pipelined
• Go back N
• Selective Request
TCP Congestion Control Flow Control
![Page 3: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/3.jpg)
3
Need for Transport Layer
Network Layer offers connections Connections not reliable
•Losses, delays due to out-of-order, queue overflow, …
Transport Layer Goals: End to end reliability In Order delivery Performance
•Congestion control
•Flow control
![Page 4: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/4.jpg)
4
Transport services and protocols
logical communication between processes
transport protocols run in end systems breaks app messages into
segments reassembles segments into
messages, passes to app layer
more than one transport protocol available to apps Internet: TCP and UDP
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
logical end-end transport
![Page 5: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/5.jpg)
5
TCP, UDP: transport-layer protocols
reliable, in-order delivery (TCP) congestion control flow control connection setup
unreliable, unordered delivery: UDP no-frills extension of
“best-effort” IP
services not available: delay guarantees bandwidth guarantees
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
logical end-end transport
![Page 6: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/6.jpg)
6
Agenda
Transport Layer Multiplexing / Demultiplexing
Reliable Transport Stop-and-wait Pipelined
• Go back N
• Selective Request
TCP Congestion Control Flow Control
![Page 7: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/7.jpg)
7
Multiplexing/demultiplexing
application
transport
network
link
physical
P1 application
transport
network
link
physical
application
transport
network
link
physical
P2P3 P4P1
host 1 host 2 host 3
= process= socket
delivering received segmentsto correct socket
Demultiplexing at rcv host:gathering data from multiplesockets, enveloping data with header (later used for demultiplexing)
Multiplexing at send host:
![Page 8: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/8.jpg)
8
How demultiplexing works
host receives IP datagrams each datagram has source IP
address, destination IP address each datagram carries 1
transport-layer segment each segment has source,
destination port number
host uses IP addresses & port numbers to direct segment to appropriate socket
source port # dest port #
32 bits
applicationdata
(message)
other header fields
TCP/UDP segment format
Analogous to car rentals at airports
Shuttles MUX passengers and take themTo rental office -- DeMUX to diff cars
Analogous to car rentals at airports
Shuttles MUX passengers and take themTo rental office -- DeMUX to diff cars
![Page 9: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/9.jpg)
9
Agenda
Transport Layer Multiplexing / Demultiplexing
Reliable Transport Stop-and-wait Pipelined
• Go back N
• Selective Request
TCP Congestion Control Flow Control
![Page 10: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/10.jpg)
10
Some transmission methods
Stop & Wait Pipelined
Go Back N Selective Repeat
![Page 11: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/11.jpg)
11
Stop-and-wait operation
first packet bit transmitted, t = 0
sender receiver
RTT
last packet bit transmitted, t = L / R
first packet bit arriveslast packet bit arrives, send ACK
ACK arrives, send next packet, t = RTT + L / R
U sender
= .008
30.008 = 0.00027
microseconds
L / R
RTT + L / R =
![Page 12: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/12.jpg)
12
Pipelined protocols
Pipelining: sender allows multiple, “in-flight”, yet-to-be-acknowledged 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
![Page 13: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/13.jpg)
13
Pipelining: increased utilization
first packet bit transmitted, t = 0
sender receiver
RTT
last bit transmitted, t = L / R
first packet bit arriveslast packet bit arrives, send ACK
ACK arrives, send next packet, t = RTT + L / R
last bit of 2nd packet arrives, send ACKlast bit of 3rd packet arrives, send ACK
U sender
= .024
30.008 = 0.0008
microseconds
3 * L / R
RTT + L / R =
Increase utilizationby a factor of 3!
![Page 14: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/14.jpg)
14
Go-Back-N
Sender: k-bit seq # in pkt header “window” of up to N, consecutive unack’ed pkts allowed
ACK(n): ACKs all pkts up to, including seq # n - “cumulative ACK” may receive duplicate ACKs
timer for each in-flight pkt timeout(n): retransmit pkt n and all higher seq # pkts in window
![Page 15: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/15.jpg)
15
GBN inaction
![Page 16: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/16.jpg)
16
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 again limits seq #s of sent, unACKed pkts
![Page 17: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/17.jpg)
17
Selective Request
Makes sense to transmit only the lost packets But this is true under what assumption ?
Can you say a case in which Go-BACK-N might be better
![Page 18: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/18.jpg)
18
Selective repeat: sender, receiver windows
![Page 19: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/19.jpg)
19
Selective repeat
data from above : if next available seq # in
window, send pkt
timeout(n): resend pkt n, restart timer
ACK(n) in [sendbase,sendbase+N]:
mark pkt n as received if n smallest unACKed pkt,
advance window base to next unACKed seq #
sender
pkt n in [rcvbase, rcvbase+N-1]
send ACK(n) out-of-order: buffer in-order: deliver (also
deliver buffered, in-order pkts), advance window to next not-yet-received pkt
pkt n in [rcvbase-N,rcvbase-1]
ACK(n)
otherwise: ignore
receiver
![Page 20: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/20.jpg)
20
Selective repeat in action
![Page 21: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/21.jpg)
21
Selective repeat: dilemma
Example: seq #’s: 0, 1, 2, 3 window size=3
receiver sees no difference in two scenarios!
incorrectly passes duplicate data as new in (a)
Q: what relationship between seq # size and window size?
What if pkts go out of orderWhat if pkts go out of order
![Page 22: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/22.jpg)
22
Agenda
Transport Layer Multiplexing / Demultiplexing
Reliable Transport Stop-and-wait Pipelined
• Go back N
• Selective Request
TCP Congestion Control Flow Control
![Page 23: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/23.jpg)
23
TCP: Connection-Oriented Transport
TCP has 3 main components Reliable transmission Congestion Control Flow Control
![Page 24: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/24.jpg)
24
Reliable Transmission
TCP is connection-oriented Sender sends control packets (SYN) and
receiver replies (ACK) Receiver also opens a similar connection
Sender sends a small burst of packets Receiver ACKs: ACK contains the next
expected packet (actually byte) Sender receives ACK, and sends a bigger burst
Called “Self-clocking” behavior
![Page 25: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/25.jpg)
25
Reliable Transmission
If train of packets lost Sender will not get any ACKs Will timeout (gets alarmed) Retransmit from first un-ACK-ed packet, Drastically reduces window size
If packet n lost, but (n+1) successful Receiver will send Duplicate ACK If many DupACKs, then receiver not alarmed Resends (n+1) Cuts window size by half
![Page 26: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/26.jpg)
26
Congstion Control
![Page 27: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/27.jpg)
27
TCP Congestion Control
Problem Definition How much data should I pump into the network
to ensure• Intermediate router queues not filling up
•Fairness achieved among multiple TCP flows
Why is this problem difficult? TCP cannot have information about the
network Only TCP receiver can give some feedbacks
![Page 28: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/28.jpg)
28
The TCP Intuition
Pourwater
Collectwater
![Page 29: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/29.jpg)
29
The TCP Protocol (in a nutshell)
T transmits few packets, waits for ACK Called slow start
R acknowledges all packet till seq #i by ACK i (optimizations possible) ACK sent out only on receiving a packet Can be Duplicate ACK if expected packet not received
ACK reaches T indicator of more capacity T transmits larger burst of packets (self clocking) … so on Burst size increased until packet drops (i.e., DupACK or
timeout)
When T gets DupACK or waits for longer than RTO Assumes congestion reduces burst size (congestion
window)
![Page 30: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/30.jpg)
30
TCP Timeline
Host A
one segment
RTT
Host B
time
two segments
four segments
Think of a blindperson trying tostand up in a lowceiling room
Objective:Don’t bang yourhead, but standup quickly
Think of a blindperson trying tostand up in a lowceiling room
Objective:Don’t bang yourhead, but standup quickly
![Page 31: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/31.jpg)
31
Timeout -- function of RTT
Q: how to set TCP timeout value?
longer than RTT but RTT varies
too short: premature timeout unnecessary
retransmissions too long: slow
reaction to segment loss
Q: how to estimate RTT? SampleRTT: measured time
from segment transmission until ACK receipt
SampleRTT will vary, want estimated RTT “smoother” average several recent
measurements, not just current SampleRTT
![Page 32: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/32.jpg)
32
TCP Round Trip Time and Timeout
EstimatedRTT = (1- )*EstimatedRTT + *SampleRTT
Exponential weighted moving average influence of past sample decreases exponentially fast typical value: = 0.125
![Page 33: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/33.jpg)
33
Example RTT estimation:
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT (milliseconds)
SampleRTT Estimated RTT
![Page 34: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/34.jpg)
34
TCP Round Trip Time and Timeout
Setting the timeout EstimtedRTT plus “safety margin”
large variation in EstimatedRTT -> larger safety margin
first estimate of how much SampleRTT deviates from EstimatedRTT:
TimeoutInterval = EstimatedRTT + 4*DevRTT
DevRTT = (1-)*DevRTT + *|SampleRTT-EstimatedRTT|
(typically, = 0.25)
Then set timeout interval:
![Page 35: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/35.jpg)
35
When waited for > RTO
0
5
10
15
20
25
0 3 6 9 12 15 20 22 25
Time (round trips)
Congestion window
(segments)ssthresh = 8 ssthresh = 10
cwnd = 20
After RTO timeout
double CongWin every RTT
done by incrementing CongWin
for every ACK received
double CongWin every RTT
done by incrementing CongWin
for every ACK received
![Page 36: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/36.jpg)
36
The TCP Protocol (in a nutshell)
DupACK not necessarily indicator of congestion Can happen due to out of order (OOO) delivery of packets
If 3 OOO pkts, then CW need not be cut drastically The DupACK packet retransmitted Continue with same pace of transmission as before
(fast recovery)
R advertizes its receiver window in ACKs If filling up, T reduces congestion window
Why ?
![Page 37: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/37.jpg)
37
Fast Recovery on 3 OOO DupACKs
0123456789
0 2 4 6 8 10 12 14
Time (round trips)
Window size (segments)
Receiver’s advertized window
After fast recovery
![Page 38: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/38.jpg)
38
Why is TCP fair?
Two competing sessions: Additive increase gives slope of 1, as throughout increases multiplicative decrease decreases throughput proportionally
R
R
equal bandwidth share
Connection 1 throughputConnect
ion 2
th
roughput
congestion avoidance: additive increaseloss: decrease window by factor of 2
congestion avoidance: additive increaseloss: decrease window by factor of 2
![Page 39: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/39.jpg)
39
TCP Flow Control
Problem Definition The receiver has limits on buffer If many nodes transmitting to same receiver
•Losses may happen at receiver
Need to avoid such losses
Solution Receiver tells transmitter how much space left Transmitter chooses its congestion window
accordingly
![Page 40: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/40.jpg)
40
TCP Flow control: how it works
(Suppose TCP receiver discards out-of-order segments)
spare room in buffer= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Rcvr advertises spare room by including value of RcvWindow in segments
Sender limits unACKed data to RcvWindow guarantees receive
buffer doesn’t overflow
![Page 41: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/41.jpg)
41
Why is it different in Wireless?
![Page 42: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/42.jpg)
42
Questions?
…
![Page 43: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/43.jpg)
43
Announcements
Reviews: Please send as plain text in email No other data in the review email
Class ppt Please start picking slots
![Page 44: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/44.jpg)
44
TCP Slow Start (more)
When connection begins, increase rate exponentially until first loss event: double CongWin every
RTT done by incrementing CongWin for every ACK received
Summary: initial rate is slow but ramps up exponentially fast
Host A
one segment
RTT
Host B
time
two segments
four segments
![Page 45: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/45.jpg)
45
TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581
full duplex data: bi-directional data flow
in same connection MSS: maximum
segment size
connection-oriented: handshaking (exchange
of control msgs) init’s sender, receiver state before data exchange
flow controlled: sender will not
overwhelm receiver
point-to-point: one sender, one
receiver
reliable, in-order byte steam: no “message
boundaries”
pipelined: TCP congestion and flow
control set window size
send & receive bufferssocketdoor
TCPsend buffer
TCPreceive buffer
socketdoor
segment
applicationwrites data
applicationreads data
![Page 46: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/46.jpg)
46
TCP segment structure
source port # dest port #
32 bits
applicationdata
(variable length)
sequence number
acknowledgement numberReceive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (variable length)
URG: urgent data (generally not used)
ACK: ACK #valid
PSH: push data now(generally not used)
RST, SYN, FIN:connection estab(setup, teardown
commands)
# bytes rcvr willingto accept
countingby bytes of data(not segments!)
Internetchecksum
(as in UDP)
![Page 47: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/47.jpg)
47
TCP seq. #’s and ACKs
Seq. #’s: byte stream
“number” of first byte in segment’s data
ACKs: seq # of next byte
expected from other side
cumulative ACKQ: how receiver handles
out-of-order segments A: TCP spec
doesn’t say, - up to implementor
Host A Host B
Seq=42, ACK=79, data = ‘C’
Seq=79, ACK=43, data = ‘C’
Seq=43, ACK=80
Usertypes
‘C’
host ACKsreceipt
of echoed‘C’
host ACKsreceipt of
‘C’, echoesback ‘C’
timesimple telnet scenario
![Page 48: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/48.jpg)
48
Connectionless demultiplexing
Create sockets with port numbers:
DatagramSocket mySocket1 = new DatagramSocket(99111);
DatagramSocket mySocket2 = new DatagramSocket(99222);
UDP socket identified by two-tuple:
(dest IP address, dest port number)
When host receives UDP segment: checks destination port
number in segment directs UDP segment to
socket with that port number
IP datagrams with different source IP addresses and/or source port numbers directed to same socket
![Page 49: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/49.jpg)
49
Connectionless demux (cont)
DatagramSocket serverSocket = new DatagramSocket(6428);
ClientIP:B
P2
client IP: A
P1P1P3
serverIP: C
SP: 6428
DP: 9157
SP: 9157
DP: 6428
SP: 6428
DP: 5775
SP: 5775
DP: 6428
SP provides “return address”
![Page 50: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/50.jpg)
50
Connection-oriented demux
TCP socket identified by 4-tuple: source IP address source port number dest IP address dest port number
recv host uses all four values to direct segment to appropriate socket
Server host may support many simultaneous TCP sockets: each socket identified
by its own 4-tuple
Web servers have different sockets for each connecting client non-persistent HTTP will
have different socket for each request
![Page 51: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/51.jpg)
51
Connection-oriented demux (cont)
ClientIP:B
P1
client IP: A
P1P2P4
serverIP: C
SP: 9157
DP: 80
SP: 9157
DP: 80
P5 P6 P3
D-IP:CS-IP: A
D-IP:C
S-IP: B
SP: 5775
DP: 80
D-IP:CS-IP: B
![Page 52: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/52.jpg)
52
Connection-oriented demux: Threaded Web Server
ClientIP:B
P1
client IP: A
P1P2
serverIP: C
SP: 9157
DP: 80
SP: 9157
DP: 80
P4 P3
D-IP:CS-IP: A
D-IP:C
S-IP: B
SP: 5775
DP: 80
D-IP:CS-IP: B
![Page 53: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/53.jpg)
53
Chapter 3 outline
3.1 Transport-layer services
3.2 Multiplexing and demultiplexing
3.3 Connectionless transport: UDP
3.4 Principles of reliable data transfer
3.5 Connection-oriented transport: TCP segment structure reliable data transfer flow control connection
management
3.6 Principles of congestion control
3.7 TCP congestion control
![Page 54: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/54.jpg)
54
UDP: User Datagram Protocol [RFC 768]
“no frills,” “bare bones” Internet transport protocol
“best effort” service, UDP segments may be: lost delivered out of order
to app connectionless:
no handshaking between UDP sender, receiver
each UDP segment handled independently of others
Why is there a UDP? no connection
establishment (which can add delay)
simple: no connection state at sender, receiver
small segment header no congestion control: UDP
can blast away as fast as desired
![Page 55: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/55.jpg)
55
UDP: more
often used for streaming multimedia apps loss tolerant rate sensitive
other UDP uses DNS SNMP
reliable transfer over UDP: add reliability at application layer application-specific error
recovery!
source port # dest port #
32 bits
Applicationdata
(message)
UDP segment format
length checksumLength, in
bytes of UDPsegment,including
header
![Page 56: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/56.jpg)
56
TCP seq. #’s and ACKs
Seq. #’s: byte stream
“number” of first byte in segment’s data
ACKs: seq # of next
byte expected from other side
cumulative ACK
Host A Host B
Seq=42, ACK=79, data = ‘C’
Seq=79, ACK=43, data = ‘C’
Seq=43, ACK=80
Usertypes
‘C’
host ACKsreceipt
of echoed‘C’
host ACKsreceipt of
‘C’, echoesback ‘C’
timesimple telnet scenario
![Page 57: 1 Networking Primer - Transport Layer ECE 256 Spring 2009 Romit Roy Choudhury Dept. of ECE and CS](https://reader035.vdocument.in/reader035/viewer/2022062717/56649e4d5503460f94b42a1e/html5/thumbnails/57.jpg)
57
TCP Connection Management (cont.)
After session over,
Both sender and receiver exchange control signals to terminate the connection
client
FIN
server
ACK
ACK
FIN
close
close
closed
tim
ed w
ait