CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication...
-
Upload
olivia-huitt -
Category
Documents
-
view
223 -
download
1
Transcript of CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication...
![Page 1: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/1.jpg)
CHAPTER 3
![Page 2: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/2.jpg)
Transport Layer 3-2
Transport services and protocols• provide logical communication
between app processes running on different hosts
• transport protocols run in end systems – send side: breaks app
messages into segments, passes to network layer
– rcv side: reassembles segments into messages, passes to app layer
• more than one transport protocol available to apps– Internet: TCP and UDP
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
logical end-end transport
![Page 3: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/3.jpg)
Transport Layer 3-3
Internet 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
applicationtransportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
applicationtransportnetworkdata linkphysical
logical end-end transport
![Page 4: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/4.jpg)
Transport Layer 3-4
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 5: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/5.jpg)
Transport Layer 3-5
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
![Page 6: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/6.jpg)
Transport Layer 3-6
Connectionless demultiplexing
• recall: create sockets with host-local port numbers:
DatagramSocket mySocket1 = new DatagramSocket(12534);
DatagramSocket mySocket2 = new DatagramSocket(12535);
• recall: when creating datagram to send into UDP socket, must specify
(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 7: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/7.jpg)
Transport Layer 3-7
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 8: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/8.jpg)
Transport Layer 3-8
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 9: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/9.jpg)
Transport Layer 3-9
UDP checksum
Sender:• treat segment contents as
sequence of 16-bit integers• checksum: addition (1’s
complement sum) of segment contents
• sender puts checksum value into UDP checksum field
Receiver:• compute checksum of received
segment• check if computed checksum
equals checksum field value:– NO - error detected– YES - no error detected. But
maybe errors nonetheless? More later ….
Goal: detect “errors” (e.g., flipped bits) in transmitted segment
![Page 10: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/10.jpg)
Transport Layer 3-10
Internet Checksum Example• Note: when adding numbers, a carryout from
the most significant bit needs to be added to the result
• Example: add two 16-bit integers
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
wraparound
sumchecksum
![Page 11: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/11.jpg)
Transport Layer 3-11
Principles of Reliable data transfer• important in app., transport, link layers• top-10 list of important networking topics!
• characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)
![Page 12: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/12.jpg)
Transport Layer 3-12
Principles of Reliable data transfer• important in app., transport, link layers• top-10 list of important networking topics!
• characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)
![Page 13: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/13.jpg)
Transport Layer 3-13
Principles of Reliable data transfer• important in app., transport, link layers• top-10 list of important networking topics!
• characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)
![Page 14: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/14.jpg)
Transport Layer 3-14
Reliable data transfer: getting started
sendside
receiveside
rdt_send(): called from above, (e.g., by app.). Passed data to deliver to receiver upper layer
udt_send(): called by rdt,to transfer packet over unreliable channel to receiver
rdt_rcv(): called when packet arrives on rcv-side of channel
deliver_data(): called by rdt to deliver data to upper
![Page 15: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/15.jpg)
Transport Layer 3-15
Reliable data transfer: getting started
We’ll:• incrementally develop sender, receiver sides of
reliable data transfer protocol (rdt)• consider only unidirectional data transfer
– but control info will flow on both directions!
• use finite state machines (FSM) to specify sender, receiver
state1
state2
event causing state transitionactions taken on state transition
state: when in this “state” next state uniquely
determined by next event
eventactions
![Page 16: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/16.jpg)
Transport Layer 3-16
Pipelined protocolspipelining: 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 17: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/17.jpg)
Transport Layer 3-17
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 18: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/18.jpg)
Transport Layer 3-18
Pipelined ProtocolsGo-back-N: big picture:• sender can have up to N unacked packets in pipeline• rcvr only sends cumulative acks
– doesn’t ack packet if there’s a gap• sender has timer for oldest unacked packet
– if timer expires, retransmit all unack’ed packets
Selective Repeat: big pic• sender can have up to N unack’ed packets in pipeline• rcvr sends individual ack for each packet• sender maintains timer for each unacked packet
– when timer expires, retransmit only unack’ed packet
![Page 19: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/19.jpg)
Transport Layer 3-19
TCP segment structure
source port # dest port #
32 bits
applicationdata (variable length)
sequence number
acknowledgement numberReceive window
Urg data pnterchecksumFSRPAU
headlen
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 20: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/20.jpg)
Transport Layer 3-20
TCP seq. #’s and ACKsSeq. #’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 21: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/21.jpg)
Transport Layer 3-21
TCP Round Trip Time and Timeout
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– ignore retransmissions
• SampleRTT will vary, want estimated RTT “smoother”– average several recent
measurements, not just current SampleRTT
![Page 22: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/22.jpg)
Transport Layer 3-22
TCP Flow Control
• receive side of TCP connection has a receive buffer:
• speed-matching service: matching the send rate to the receiving app’s drain rate
app process may be slow at reading from buffer
sender won’t overflowreceiver’s buffer bytransmitting too much, too fast
flow control
![Page 23: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/23.jpg)
Transport Layer 3-23
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 24: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/24.jpg)
Transport Layer 3-24
TCP Connection Management
Recall: TCP sender, receiver establish “connection” before exchanging data segments
• initialize TCP variables:– seq. #s– buffers, flow control info
(e.g. RcvWindow)• client: connection initiator Socket clientSocket = new
Socket("hostname","port
number"); • server: contacted by client Socket connectionSocket =
welcomeSocket.accept();
Three way handshake:Step 1: client host sends TCP SYN
segment to server– specifies initial seq #– no data
Step 2: server host receives SYN, replies with SYNACK segment
– server allocates buffers– specifies server initial seq. #
Step 3: client receives SYNACK, replies with ACK segment, which may contain data
![Page 25: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/25.jpg)
Transport Layer 3-25
TCP Connection Management (cont.)
Closing a connection:
client closes socket: clientSocket.close();
Step 1: client end system sends TCP FIN control segment to server
Step 2: server receives FIN, replies with ACK. Closes connection, sends FIN.
client
FIN
server
ACK
ACK
FIN
close
close
closed
timed
wai
t
![Page 26: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/26.jpg)
Transport Layer 3-26
TCP Connection Management (cont.)
Step 3: client receives FIN, replies with ACK.
– Enters “timed wait” - will respond with ACK to received FINs
Step 4: server, receives ACK. Connection closed.
Note: with small modification, can handle simultaneous FINs.
client
FIN
server
ACK
ACK
FIN
closing
closing
closed
timed
wai
tclosed
![Page 27: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/27.jpg)
Transport Layer 3-27
TCP Connection Management (cont)
TCP clientlifecycle
TCP serverlifecycle
![Page 28: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/28.jpg)
Transport Layer 3-28
Principles of Congestion Control
Congestion:• informally: “too many sources sending too much data too
fast for network to handle”• different from flow control!• manifestations:
– lost packets (buffer overflow at routers)– long delays (queueing in router buffers)
• a top-10 problem!
![Page 29: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/29.jpg)
Transport Layer 3-29
Causes/costs of congestion: scenario 1 • two senders, two
receivers• one router, infinite
buffers • no retransmission
• large delays when congested
• maximum achievable throughput
unlimited shared output link buffers
Host Alin : original data
Host B
lout
![Page 30: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/30.jpg)
Transport Layer 3-30
Causes/costs of congestion: scenario 2 • one router, finite buffers • sender retransmission of timed-out packet
– application-layer input = application-layer output: lin = lout
– transport-layer input includes retransmissions : lin lin
finite shared output link buffers
Host A
lin : original data
Host B
loutl'in: original data, plus
retransmitted data
‘
![Page 31: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/31.jpg)
Transport Layer 3-31
Causes/costs of congestion: scenario 3 • four senders• multihop paths• timeout/retransmit
lin
Q: what happens as and increase ?l
in
finite shared output link
buffers
Host Alin : original data
Host B
lout
l'in : original data, plus retransmitted data
![Page 32: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/32.jpg)
Transport Layer 3-32
Causes/costs of congestion: scenario 3
another “cost” of congestion: when packet dropped, any “upstream transmission
capacity used for that packet was wasted!
Host A
Host B
lo
u
t
![Page 33: CHAPTER 3. Transport Layer 3-2 Transport services and protocols provide logical communication between app processes running on different hosts transport.](https://reader035.fdocuments.in/reader035/viewer/2022062407/56649cc35503460f9498baaf/html5/thumbnails/33.jpg)
Transport Layer 3-33
Approaches towards congestion control
end-end congestion control:• no explicit feedback from
network• congestion inferred from end-
system observed loss, delay• approach taken by TCP
network-assisted congestion control:
• routers provide feedback to end systems– single bit indicating
congestion (SNA, DECbit, TCP/IP ECN, ATM)
– explicit rate sender should send at
Two broad approaches towards congestion control: