SlideShare a Scribd company logo
Week 4
Reliable transport
Sharing resources
Agenda
• Reliable transport
• Multiplexing
• Connection establishment
• Data transfer
• Connection release
• Sharing resources
Multiplexing
Server
Client
Source port : 1234
Destination port: 5678
Request
Response
Source port : 5678
Destination port: 1234
Source Addr: Client
Dest. Addr: Server
Source Addr: Server
Dest. Addr: Client
Connection table
• A server interacts with many different
clients and maintains a connection table
• This table contains one entry per
active connection with its state
• Each connection is identified by 4
infos
• Client address and port
• Server address and port
Agenda
• Reliable transport
• Multiplexing
• Connection establishment
• Data transfer
• Connection release
• Sharing resources
• Security principles
Coping with delayed
segments
• How to deal with delayed segments ?
• Network level guarantee
• No packet will survive more than MSL
seconds inside the network
• Transport entities use on a local clock to
detect duplicated connection
establishment requests
Three way
handshake
CR (seq=x)
CA (seq=y, ack=x)
CA (seq=x, ack=y)
Sequence number x read
from local transport clock
Local state :
Connection to B :
- Wait for ack for CR (x)
- Start retransmission timer
Sequence number y read from
local transport clock
CA sent to ack CR
Local state :
Connection to A :
- Wait for ack for CA(y)
Received CA acknowledges CR
Send CA to ack received CA
Local state :
Connection to B :
- established
- current_seq = x
The sequence numbers used
for the data segments will start
from x
The sequence numbers
used for the data segments
will start from y
D(x)
D(y)
Local state :
Connection to A :
- established
- current_seq=y
Connection established
Connection established
Host A Host B
Client FSM
Connect.req
Send CR
Timer expires
Send CR
Recvd REJECT
Disconnect.ind
Recvd(CA)
Connect.conf / Send CA
Recvd REJECT
Disconnect.ind
In any state, a Disconnect.ind (abrupt)
-> Send REJECT and transition to red state
Server FSM
Recvd (CR)
Connect.ind
Connect.resp
Send CA
Recvd REJECT
Disconnect.ind
Recvd REJECT
Disconnect.ind
Recvd CA
In any state, a Disconnect.ind (abrupt)
-> Send REJECT and transition to red state
Recvd CR
Recvd CR
Send CA
Three way handshake
(2)
CA (seq=y, ack=z)
CR (seq=z)
REJECT (ack=y)
Connection cancelled
No connection is established
Host A Host B
Sequence number y read from
local transport clock
Acknowledges CR segment
Local state :
Connection to A :
- Wait for ack for CA(y)
Local state :
No connection to B
Send REJECT to cancel
connection establishment
Three way handshake
(3)
CR (seq=z)
Current state does not contain
a CR with seq=x
REJECT (ack=y)
Connection established
CR (seq=z)
Retransmission timer
expires
CA (seq=w, ack=z)
CA (seq=z, ack=w)
CA (seq=y, ack=x)
Sequence number z read
from local transport clock
Local state :
Connection to B :
- Wait for ack for CR (z)
- Start retransmission timer
Host A Host B
Current state does not contain
a segment with seq=y
REJECT ignored
Sequence number w read from
local transport clock
CA sent to ack CR
Local state :
Connection to A :
- Wait for ack for CA(w)
Received CA acknowledges CR
Send CA to ack received CA
Local state :
Connection to B :
- established
- current_seq = z
Three way handshake
(4)
Invalid CA received from A
Send REJECT
CA (seq=w, ack=z)
CR (seq=z)
CA (seq=z, ack=y)
REJECT (ack=w)
REJECT (ack=z)
Sequence number w read from
local transport clock
Acknowledges CR segment
Local state :
Connection to A :
- Wait for ack for CA(w)
Current state does not contain
a CR with seq=z
Host A Host B
No connection is established
Agenda
• Reliable transport
• Multiplexing
• Connection establishment
• Data transfer
• Connection release
• Sharing resources
• Security principles
Reliable data transfer
• What are the main differences with the
reliable protocols of the datalink layer ?
• Segments can be reordered
• Buffers can change dynamically
• Bytestream service
Buffer management
• A transport entity serves a variable
number of applications with a limited
buffer
• The buffer/window allocated to a
given connection may need to change
dynamically as connections start and
stop
Buffer management
A B
Data.req(a)
Data.ind(a)
D(0,a)
C(OK,0, w=1)
C(OK,0,w=3)
Data.req(c)
D(2,c)
2 new buffers become
available
Data.req(b)
Data.ind(b)
D(1,b)
0 1 2 3
0 1 2 3
0 1 2 3
C(OK,1,w=3)
Rwin=1
0 1 2 3
Swin=3, rwin=1
0 1 2 3
Swin=3, rwin=1
0 1 2 3
Swin=3, rwin=1
0 1 2 3
Swin=3, rwin=1
Swin=3, rwin=3
0 1 2 3
Data.req(d)
D(3,d) 0 1 2 3
Buffer management
A B
Data.req(b)
Data.ind(a)
Data.req(a)
D(0,a)
C(OK,0, w=0)
2 new buffers are
available
0 1 2 3
Rwin=1
0 1 2 3
Swin=3, rwin=1
0 1 2 3
Swin=3, rwin=1
0 1 2 3
Receiver cannot handle
segment immediately
C(OK,0,w=3)
Lost segment
0 1 2 3
Swin=3, rwin=0
Window blocked
No transmission possible
Waits for control segment Waits for data segment
How to recover from deadlock ?
Persistence timer on receiver,
resend control segment after
timer expiration
Delayed segments
A B
D(1,b)
Timer expiration
Retransmission D(1,b)
D(3,d)
C(OK,0)
C(OK,0)
C(OK,3)
C(OK,0)
C(OK,1)
D(0,e)
Data.ind(e)
Data.ind(b) !!!!!!!!!!!!
D(0,a)
Data.req(a)
Data.ind(a)
Data.ind(b)
Data.ind(e)
Delayed segments
• How to deal with them ?
• Packets cannot live more than MSL
seconds inside the network
• Only one segment carrying sequence
number x can be transmitted during MSL
seconds
• upper bound on maximum throughput
Bidirectional transfer
• How to efficiently carry data in both
directions ?
Piggybacking
A B
Data.req(a)
Data.ind(a)
D(0,0,a)
Data.req(b)
D(1,0,b)
Error
Discarded
Data.req(c)
D(2,0,c)
Segment -> buffer
Retransmission
Data.ind(b)
D(1,5,b)
Data.ind(c)
Data.req(d)
D(3,6,d)
Data.ind(d)
C(OK,2)
C(OK,3)
Data.req(x)
D(5,0,w)
Data.req(w)
Data.ind(w)
D(6,0,x)
Data.ind(x)
D(5,0,w) acks D(0,0,a)
Bytestream
• How to provide a bytestream service ?
Byte stream service (2)
A B
Data.req(ijkl)
Data.req(mnop)
Data.req(abcdef)
Data.ind(ab)
D(0,ab)
C(OK,1)
C(OK,1)
D(2,cd)
Lost segment
D(4,ef)
Placed in buffer
Data.ind(cdef)
D(2,cd)
Expiration timer
Retransmission
D(6,ijklmnop)
Data.ind(ijklmnop)
C(OK,5)
C(OK,13)
Agenda
• Reliable transport
• Multiplexing
• Connection establishment
• Data transfer
• Connection release
• Sharing resources
• Security principles
Connection release
• Graceful release
• Data transfer finished and connection
must be terminated
• Abrupt release
• Something went wrong and the
connection must be closed immediately
• Data can be lost !
Graceful release
D(‘a’,1233)
DISCONNECT.req (A-B)
DISCONNECT.ind(A-B)
ACK,1234
DISCONNECT.conf(A-B)
ACK,4567
DISCONNECT.conf(A-B)
DISCONNECT.req(B-A)
DISCONNECT.ind(B-A)
DR(B-A,4567)
Outgoing connection (A->B)
closed
Incoming connection (A->B)
closed
Incoming connection (B->A)
closed
Outgoing connection (B->A)
closed
DR(A-B,1234)
DATA.ind(‘a’)
Graceful release (2)
D(‘a’,1230)
DISCONNECT.req (A-B)
DISCONNECT.ind(A-B)
ACK(1230)
DISCONNECT.conf(A-B)
Outgoing connection (A->B)
closed
Incoming connection (A->B)
closed
DR(A-B,1234)
DATA.ind(‘a’)
D(‘bcd’,1231)
ACK(1230)
DATA.ind(‘bcd’)
ACK(1234)
Abrupt release
CR (seq=z)
CA (seq=w, ack=z)
CA (seq=z, ack=w)
D
Data.req()
Data.ind()
Disc.req()
D
Data.req()
DR
Disc.req()
Connection closed
Connection closed
This segment will not be delivered !
Agenda
• Reliable transport
• Sharing resources
• Which resources need to be shared
• Medium Access Control
• Congestion Control
Network resources
• What are the resources that are shared
by multiple users inside a network ?
Sharing bandwidth
• Several nodes on a single link
Sharing bandwidth
• Congested network
Agenda
• Reliable transport
• Sharing resources
• Which resources need to be shared
• Medium Access Control
• Congestion Control
How to share access
to a link ?
• Deterministic solutions
• Probabilistic solutions
Time Division
Multiplexing
ALOHA
Agenda
• Reliable transport
• Sharing resources
• Which resources need to be shared
• Medium Access Control
• Congestion Control
Adapting to different
bandwidth
What is the round-trip-time in
milliseconds this network if A sends
10,000 bits segments, all links are 1
m long and B returns 100 bits acks ?
If A sends four 10,000 bits
segments in a row, after how
many msec will it receive the last
Self-clocking
The congestion
problem
• If R1 has a buffer of five 10,000 bits long
packets, how many packets will be dropped
if A and B send a burst of ten packets at
line rate ?
Fairness
• What is the final objective of congestion
control ?
• On a single link
• Fair share
• In a large network
• Max-min fairness
Max-min fairness
• a max-min allocation of bandwidth is an
allocation of bandwidth which
maximises the allocation of bandwidth
to the sources receiving the smallest
allocation
• a max-min fair allocation is such that
in order to increase the bandwidth
allocated to one source, it is
necessary to decrease the bandwidth
allocated to another source which
already receives a lower allocation
Max-min fairness
• a max-min allocation maximises the
allocation of bandwidth to the sources
receiving the smallest allocation
• Property
• to increase the bandwidth allocated to
one source, it is necessary to
decrease the bandwidth allocated to
another source which already
receives a lower allocation
Example
• Max-min fair bandwidth allocation
R
R
R
R
R
1000 Mbps
100 Mbps
S1
S2
S3 S4 S5 S6 S7 S8
D1 D3 D4
D2
D5
D6
D7
D8
Link1
Link2
Link3
Link4
How to achieve
max-min fairness ?
• Two possible approaches
• Modify the routers to reach max-min
fairness
• Modify the endhosts to reach max-min
fairness
How to detect
congestion ?
• Packet losses
• Increased delay
• Routers add information to packets
• Forward binary feedback
• Backward binary feedback
• Rate feedback
Congestion control
Congestion control
• Additive Increase / Multiplicative
Decrease
# Additive Increase Multiplicative Decrease
if congestion :
rate=rate*betaC # MD, betaC<1
else
rate=rate+alphaN # AI
Simple Router
output port
Buffer
Input links Output link
Buffer acceptance
accepts or rejects
incoming packets
Router output port
Q[1]
Q[2]
Q[3]
Q[N]
Flow identification
Input links
Output link
Flow identification
Identifies the TCP/UDP flow
to which the arriving packet
belongs
Buffer acceptance
accepts or rejects
incoming packets
Queuing strategy
Logical organization of the
router's buffers
Scheduler
Chooses the packet to
be transmitted first on
the output link
Round robin
Flow 2
Flow 1
Flow 3
Flow 4
Flow 5
Flow 1
Flow 2
Flow 3
Flow N
Scheduler :
F1
F2
F3
F4
FN
Round robin
• If the RR scheduler starts with queue1
and serves them in numerical order,
what is the ordering of the packets on
the output link ?
A
B
D
E
F
G
Queue 1
Queue 2
Queue 3
Example
F1
F2
F3
Flow2 (L=2)
Flow1(L=1)
Flow3 (L=1) F1
F2
F3
Flow1 and Flow3 send packets of size 1
Flow 2 sends packets of size 2
Round-Robin
• Advantage
• Can provide fairness independently of
the characteristics of the flows
• Drawback
• Difficult to scale to a very large
number of flows

More Related Content

What's hot

12 ethernet-wifi
12 ethernet-wifi12 ethernet-wifi
12 ethernet-wifi
Olivier Bonaventure
 
9 ipv6-routing
9 ipv6-routing9 ipv6-routing
9 ipv6-routing
Olivier Bonaventure
 
5 sharing-app
5 sharing-app5 sharing-app
5 sharing-app
Olivier Bonaventure
 
Part 1 : reliable transmission
Part 1 : reliable transmissionPart 1 : reliable transmission
Part 1 : reliable transmission
Olivier Bonaventure
 
TCPLS presentation @ietf 109
TCPLS presentation @ietf 109TCPLS presentation @ietf 109
TCPLS presentation @ietf 109
Olivier Bonaventure
 
4 transport-sharing
4 transport-sharing4 transport-sharing
4 transport-sharing
Olivier Bonaventure
 
Part 2 : reliable transmission and building a network
Part 2 : reliable transmission and building a networkPart 2 : reliable transmission and building a network
Part 2 : reliable transmission and building a network
Olivier Bonaventure
 
11 bgp-ethernet
11 bgp-ethernet11 bgp-ethernet
11 bgp-ethernet
Olivier Bonaventure
 
Computer Networking : Principles, Protocols and Practice - lesson 1
Computer Networking : Principles, Protocols and Practice - lesson 1Computer Networking : Principles, Protocols and Practice - lesson 1
Computer Networking : Principles, Protocols and Practice - lesson 1
Olivier Bonaventure
 
IPv6 Segment Routing : an end-to-end solution ?
IPv6 Segment Routing : an end-to-end solution ?IPv6 Segment Routing : an end-to-end solution ?
IPv6 Segment Routing : an end-to-end solution ?
Olivier Bonaventure
 
Part 10 : Routing in IP networks and interdomain routing with BGP
Part 10 : Routing in IP networks and interdomain routing with BGPPart 10 : Routing in IP networks and interdomain routing with BGP
Part 10 : Routing in IP networks and interdomain routing with BGP
Olivier Bonaventure
 
Part 8 : TCP and Congestion control
Part 8 : TCP and Congestion controlPart 8 : TCP and Congestion control
Part 8 : TCP and Congestion control
Olivier Bonaventure
 
Network interview questions
Network interview questionsNetwork interview questions
Network interview questions
rajasekar1712
 
0-RTT TCP converters
0-RTT TCP converters0-RTT TCP converters
0-RTT TCP converters
Olivier Bonaventure
 
Multipath TCP
Multipath TCPMultipath TCP
Multipath TCP
Olivier Bonaventure
 
Transport layer services
Transport layer servicesTransport layer services
Transport layer services
Melvin Cabatuan
 
Unit III IPV6 UDP
Unit III IPV6 UDPUnit III IPV6 UDP
Unit III IPV6 UDPsangusajjan
 
Lec 12(Transport Layer)
Lec 12(Transport Layer)Lec 12(Transport Layer)
Lec 12(Transport Layer)
maamir farooq
 
IPv6 Entreprise Multihoming
IPv6 Entreprise MultihomingIPv6 Entreprise Multihoming
IPv6 Entreprise Multihoming
Olivier Bonaventure
 

What's hot (20)

12 ethernet-wifi
12 ethernet-wifi12 ethernet-wifi
12 ethernet-wifi
 
9 ipv6-routing
9 ipv6-routing9 ipv6-routing
9 ipv6-routing
 
5 sharing-app
5 sharing-app5 sharing-app
5 sharing-app
 
Part 1 : reliable transmission
Part 1 : reliable transmissionPart 1 : reliable transmission
Part 1 : reliable transmission
 
TCPLS presentation @ietf 109
TCPLS presentation @ietf 109TCPLS presentation @ietf 109
TCPLS presentation @ietf 109
 
4 transport-sharing
4 transport-sharing4 transport-sharing
4 transport-sharing
 
Part 2 : reliable transmission and building a network
Part 2 : reliable transmission and building a networkPart 2 : reliable transmission and building a network
Part 2 : reliable transmission and building a network
 
11 bgp-ethernet
11 bgp-ethernet11 bgp-ethernet
11 bgp-ethernet
 
Computer Networking : Principles, Protocols and Practice - lesson 1
Computer Networking : Principles, Protocols and Practice - lesson 1Computer Networking : Principles, Protocols and Practice - lesson 1
Computer Networking : Principles, Protocols and Practice - lesson 1
 
IPv6 Segment Routing : an end-to-end solution ?
IPv6 Segment Routing : an end-to-end solution ?IPv6 Segment Routing : an end-to-end solution ?
IPv6 Segment Routing : an end-to-end solution ?
 
Part 10 : Routing in IP networks and interdomain routing with BGP
Part 10 : Routing in IP networks and interdomain routing with BGPPart 10 : Routing in IP networks and interdomain routing with BGP
Part 10 : Routing in IP networks and interdomain routing with BGP
 
Part 8 : TCP and Congestion control
Part 8 : TCP and Congestion controlPart 8 : TCP and Congestion control
Part 8 : TCP and Congestion control
 
Network interview questions
Network interview questionsNetwork interview questions
Network interview questions
 
0-RTT TCP converters
0-RTT TCP converters0-RTT TCP converters
0-RTT TCP converters
 
Multipath TCP
Multipath TCPMultipath TCP
Multipath TCP
 
Transport layer services
Transport layer servicesTransport layer services
Transport layer services
 
Unit III IPV6 UDP
Unit III IPV6 UDPUnit III IPV6 UDP
Unit III IPV6 UDP
 
Lec 12(Transport Layer)
Lec 12(Transport Layer)Lec 12(Transport Layer)
Lec 12(Transport Layer)
 
IPv6 Entreprise Multihoming
IPv6 Entreprise MultihomingIPv6 Entreprise Multihoming
IPv6 Entreprise Multihoming
 
Tcp
TcpTcp
Tcp
 

Similar to Part 4 : reliable transport and sharing resources

Part3-reliable.pptx
Part3-reliable.pptxPart3-reliable.pptx
Part3-reliable.pptx
Olivier Bonaventure
 
Part3-reliable.pptx
Part3-reliable.pptxPart3-reliable.pptx
Part3-reliable.pptx
Olivier Bonaventure
 
Part4-reliable-tcp.pptx
Part4-reliable-tcp.pptxPart4-reliable-tcp.pptx
Part4-reliable-tcp.pptx
Olivier Bonaventure
 
Data link layer
Data link layerData link layer
Data link layer
sbkbca
 
Network protocols and vulnerabilities
Network protocols and vulnerabilitiesNetwork protocols and vulnerabilities
Network protocols and vulnerabilities
G Prachi
 
Part4-reliable-tcp.pptx
Part4-reliable-tcp.pptxPart4-reliable-tcp.pptx
Part4-reliable-tcp.pptx
Olivier Bonaventure
 
Day 1.3 osi reference
Day 1.3 osi referenceDay 1.3 osi reference
Day 1.3 osi reference
CYBERINTELLIGENTS
 
R2 itesm-02
R2 itesm-02R2 itesm-02
Serval: Software Defined Service-­Centric Networking
Serval: Software Defined Service-­Centric NetworkingServal: Software Defined Service-­Centric Networking
Serval: Software Defined Service-­Centric Networking
Open Networking Summits
 
COMPLETE COMPUTER NETWORK
COMPLETE COMPUTER NETWORK COMPLETE COMPUTER NETWORK
COMPLETE COMPUTER NETWORK
Amar Panchal
 
Transport layer
Transport layerTransport layer
Transport layer
reshmadayma
 
Data linkcontrol
Data linkcontrolData linkcontrol
Data linkcontrol
Bablu Shofi
 
Part9-congestion.pptx
Part9-congestion.pptxPart9-congestion.pptx
Part9-congestion.pptx
Olivier Bonaventure
 
Data_Link_Layer.ppt
Data_Link_Layer.pptData_Link_Layer.ppt
Data_Link_Layer.ppt
NicetomeetYou2
 
Data Link Layer of OSI Model responsibilities
Data Link Layer of OSI Model responsibilitiesData Link Layer of OSI Model responsibilities
Data Link Layer of OSI Model responsibilities
HemantPareek21
 
Transport layer
Transport layerTransport layer
Transport layer
reshmadayma
 
Quality of service
Quality of serviceQuality of service
Quality of service
Ismail Mukiibi
 
lec 3 4 Core Delays Thruput Net Arch.ppt
lec 3 4 Core Delays Thruput Net Arch.pptlec 3 4 Core Delays Thruput Net Arch.ppt
lec 3 4 Core Delays Thruput Net Arch.ppt
MahamKhurram4
 
Part5-tcp-improvements.pptx
Part5-tcp-improvements.pptxPart5-tcp-improvements.pptx
Part5-tcp-improvements.pptx
Olivier Bonaventure
 
A Platform for Large-Scale Grid Data Service on Dynamic High-Performance Netw...
A Platform for Large-Scale Grid Data Service on Dynamic High-Performance Netw...A Platform for Large-Scale Grid Data Service on Dynamic High-Performance Netw...
A Platform for Large-Scale Grid Data Service on Dynamic High-Performance Netw...
Tal Lavian Ph.D.
 

Similar to Part 4 : reliable transport and sharing resources (20)

Part3-reliable.pptx
Part3-reliable.pptxPart3-reliable.pptx
Part3-reliable.pptx
 
Part3-reliable.pptx
Part3-reliable.pptxPart3-reliable.pptx
Part3-reliable.pptx
 
Part4-reliable-tcp.pptx
Part4-reliable-tcp.pptxPart4-reliable-tcp.pptx
Part4-reliable-tcp.pptx
 
Data link layer
Data link layerData link layer
Data link layer
 
Network protocols and vulnerabilities
Network protocols and vulnerabilitiesNetwork protocols and vulnerabilities
Network protocols and vulnerabilities
 
Part4-reliable-tcp.pptx
Part4-reliable-tcp.pptxPart4-reliable-tcp.pptx
Part4-reliable-tcp.pptx
 
Day 1.3 osi reference
Day 1.3 osi referenceDay 1.3 osi reference
Day 1.3 osi reference
 
R2 itesm-02
R2 itesm-02R2 itesm-02
R2 itesm-02
 
Serval: Software Defined Service-­Centric Networking
Serval: Software Defined Service-­Centric NetworkingServal: Software Defined Service-­Centric Networking
Serval: Software Defined Service-­Centric Networking
 
COMPLETE COMPUTER NETWORK
COMPLETE COMPUTER NETWORK COMPLETE COMPUTER NETWORK
COMPLETE COMPUTER NETWORK
 
Transport layer
Transport layerTransport layer
Transport layer
 
Data linkcontrol
Data linkcontrolData linkcontrol
Data linkcontrol
 
Part9-congestion.pptx
Part9-congestion.pptxPart9-congestion.pptx
Part9-congestion.pptx
 
Data_Link_Layer.ppt
Data_Link_Layer.pptData_Link_Layer.ppt
Data_Link_Layer.ppt
 
Data Link Layer of OSI Model responsibilities
Data Link Layer of OSI Model responsibilitiesData Link Layer of OSI Model responsibilities
Data Link Layer of OSI Model responsibilities
 
Transport layer
Transport layerTransport layer
Transport layer
 
Quality of service
Quality of serviceQuality of service
Quality of service
 
lec 3 4 Core Delays Thruput Net Arch.ppt
lec 3 4 Core Delays Thruput Net Arch.pptlec 3 4 Core Delays Thruput Net Arch.ppt
lec 3 4 Core Delays Thruput Net Arch.ppt
 
Part5-tcp-improvements.pptx
Part5-tcp-improvements.pptxPart5-tcp-improvements.pptx
Part5-tcp-improvements.pptx
 
A Platform for Large-Scale Grid Data Service on Dynamic High-Performance Netw...
A Platform for Large-Scale Grid Data Service on Dynamic High-Performance Netw...A Platform for Large-Scale Grid Data Service on Dynamic High-Performance Netw...
A Platform for Large-Scale Grid Data Service on Dynamic High-Performance Netw...
 

More from Olivier Bonaventure

Part10-router.pptx
Part10-router.pptxPart10-router.pptx
Part10-router.pptx
Olivier Bonaventure
 
Part1-Intro-Apps.pptx
Part1-Intro-Apps.pptxPart1-Intro-Apps.pptx
Part1-Intro-Apps.pptx
Olivier Bonaventure
 
Part2-Apps-Security.pptx
Part2-Apps-Security.pptxPart2-Apps-Security.pptx
Part2-Apps-Security.pptx
Olivier Bonaventure
 
Part11-lan.pptx
Part11-lan.pptxPart11-lan.pptx
Part11-lan.pptx
Olivier Bonaventure
 
Part8-ibgp.pptx
Part8-ibgp.pptxPart8-ibgp.pptx
Part8-ibgp.pptx
Olivier Bonaventure
 
Part7-routing.pptx
Part7-routing.pptxPart7-routing.pptx
Part7-routing.pptx
Olivier Bonaventure
 
Part6-network-routing.pptx
Part6-network-routing.pptxPart6-network-routing.pptx
Part6-network-routing.pptx
Olivier Bonaventure
 
Part1-Intro-Apps.pptx
Part1-Intro-Apps.pptxPart1-Intro-Apps.pptx
Part1-Intro-Apps.pptx
Olivier Bonaventure
 
Part2-Apps-Security.pptx
Part2-Apps-Security.pptxPart2-Apps-Security.pptx
Part2-Apps-Security.pptx
Olivier Bonaventure
 
A personal journey towards more reproducible networking research
A personal journey towards more reproducible networking researchA personal journey towards more reproducible networking research
A personal journey towards more reproducible networking research
Olivier Bonaventure
 
Part 11 : Interdomain routing with BGP
Part 11 : Interdomain routing with BGPPart 11 : Interdomain routing with BGP
Part 11 : Interdomain routing with BGP
Olivier Bonaventure
 
Part 3 : building a network and supporting applications
Part 3 : building a network and supporting applicationsPart 3 : building a network and supporting applications
Part 3 : building a network and supporting applications
Olivier Bonaventure
 
Making our networking stack truly extensible
Making our networking stack truly extensible Making our networking stack truly extensible
Making our networking stack truly extensible
Olivier Bonaventure
 

More from Olivier Bonaventure (13)

Part10-router.pptx
Part10-router.pptxPart10-router.pptx
Part10-router.pptx
 
Part1-Intro-Apps.pptx
Part1-Intro-Apps.pptxPart1-Intro-Apps.pptx
Part1-Intro-Apps.pptx
 
Part2-Apps-Security.pptx
Part2-Apps-Security.pptxPart2-Apps-Security.pptx
Part2-Apps-Security.pptx
 
Part11-lan.pptx
Part11-lan.pptxPart11-lan.pptx
Part11-lan.pptx
 
Part8-ibgp.pptx
Part8-ibgp.pptxPart8-ibgp.pptx
Part8-ibgp.pptx
 
Part7-routing.pptx
Part7-routing.pptxPart7-routing.pptx
Part7-routing.pptx
 
Part6-network-routing.pptx
Part6-network-routing.pptxPart6-network-routing.pptx
Part6-network-routing.pptx
 
Part1-Intro-Apps.pptx
Part1-Intro-Apps.pptxPart1-Intro-Apps.pptx
Part1-Intro-Apps.pptx
 
Part2-Apps-Security.pptx
Part2-Apps-Security.pptxPart2-Apps-Security.pptx
Part2-Apps-Security.pptx
 
A personal journey towards more reproducible networking research
A personal journey towards more reproducible networking researchA personal journey towards more reproducible networking research
A personal journey towards more reproducible networking research
 
Part 11 : Interdomain routing with BGP
Part 11 : Interdomain routing with BGPPart 11 : Interdomain routing with BGP
Part 11 : Interdomain routing with BGP
 
Part 3 : building a network and supporting applications
Part 3 : building a network and supporting applicationsPart 3 : building a network and supporting applications
Part 3 : building a network and supporting applications
 
Making our networking stack truly extensible
Making our networking stack truly extensible Making our networking stack truly extensible
Making our networking stack truly extensible
 

Recently uploaded

重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
vmemo1
 
Bài tập unit 1 English in the world.docx
Bài tập unit 1 English in the world.docxBài tập unit 1 English in the world.docx
Bài tập unit 1 English in the world.docx
nhiyenphan2005
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
JeyaPerumal1
 
2.Cellular Networks_The final stage of connectivity is achieved by segmenting...
2.Cellular Networks_The final stage of connectivity is achieved by segmenting...2.Cellular Networks_The final stage of connectivity is achieved by segmenting...
2.Cellular Networks_The final stage of connectivity is achieved by segmenting...
JeyaPerumal1
 
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
cuobya
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
Trish Parr
 
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdfJAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
Javier Lasa
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
Rogerio Filho
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
hackersuli
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
Laura Szabó
 
Understanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdfUnderstanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdf
SEO Article Boost
 
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Brad Spiegel Macon GA
 
Italy Agriculture Equipment Market Outlook to 2027
Italy Agriculture Equipment Market Outlook to 2027Italy Agriculture Equipment Market Outlook to 2027
Italy Agriculture Equipment Market Outlook to 2027
harveenkaur52
 
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
zoowe
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
3ipehhoa
 
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
eutxy
 
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdfMeet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Florence Consulting
 
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
CIOWomenMagazine
 
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
Arif0071
 

Recently uploaded (20)

重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
重新申请毕业证书(RMIT毕业证)皇家墨尔本理工大学毕业证成绩单精仿办理
 
Bài tập unit 1 English in the world.docx
Bài tập unit 1 English in the world.docxBài tập unit 1 English in the world.docx
Bài tập unit 1 English in the world.docx
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
 
2.Cellular Networks_The final stage of connectivity is achieved by segmenting...
2.Cellular Networks_The final stage of connectivity is achieved by segmenting...2.Cellular Networks_The final stage of connectivity is achieved by segmenting...
2.Cellular Networks_The final stage of connectivity is achieved by segmenting...
 
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
假文凭国外(Adelaide毕业证)澳大利亚国立大学毕业证成绩单办理
 
Search Result Showing My Post is Now Buried
Search Result Showing My Post is Now BuriedSearch Result Showing My Post is Now Buried
Search Result Showing My Post is Now Buried
 
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdfJAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
 
[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024[HUN][hackersuli] Red Teaming alapok 2024
[HUN][hackersuli] Red Teaming alapok 2024
 
Gen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needsGen Z and the marketplaces - let's translate their needs
Gen Z and the marketplaces - let's translate their needs
 
Understanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdfUnderstanding User Behavior with Google Analytics.pdf
Understanding User Behavior with Google Analytics.pdf
 
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
 
Italy Agriculture Equipment Market Outlook to 2027
Italy Agriculture Equipment Market Outlook to 2027Italy Agriculture Equipment Market Outlook to 2027
Italy Agriculture Equipment Market Outlook to 2027
 
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
国外证书(Lincoln毕业证)新西兰林肯大学毕业证成绩单不能毕业办理
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
 
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
 
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdfMeet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
 
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
Internet of Things in Manufacturing: Revolutionizing Efficiency & Quality | C...
 
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
 

Part 4 : reliable transport and sharing resources

  • 2. Agenda • Reliable transport • Multiplexing • Connection establishment • Data transfer • Connection release • Sharing resources
  • 3. Multiplexing Server Client Source port : 1234 Destination port: 5678 Request Response Source port : 5678 Destination port: 1234 Source Addr: Client Dest. Addr: Server Source Addr: Server Dest. Addr: Client
  • 4. Connection table • A server interacts with many different clients and maintains a connection table • This table contains one entry per active connection with its state • Each connection is identified by 4 infos • Client address and port • Server address and port
  • 5. Agenda • Reliable transport • Multiplexing • Connection establishment • Data transfer • Connection release • Sharing resources • Security principles
  • 6. Coping with delayed segments • How to deal with delayed segments ? • Network level guarantee • No packet will survive more than MSL seconds inside the network • Transport entities use on a local clock to detect duplicated connection establishment requests
  • 7. Three way handshake CR (seq=x) CA (seq=y, ack=x) CA (seq=x, ack=y) Sequence number x read from local transport clock Local state : Connection to B : - Wait for ack for CR (x) - Start retransmission timer Sequence number y read from local transport clock CA sent to ack CR Local state : Connection to A : - Wait for ack for CA(y) Received CA acknowledges CR Send CA to ack received CA Local state : Connection to B : - established - current_seq = x The sequence numbers used for the data segments will start from x The sequence numbers used for the data segments will start from y D(x) D(y) Local state : Connection to A : - established - current_seq=y Connection established Connection established Host A Host B
  • 8. Client FSM Connect.req Send CR Timer expires Send CR Recvd REJECT Disconnect.ind Recvd(CA) Connect.conf / Send CA Recvd REJECT Disconnect.ind In any state, a Disconnect.ind (abrupt) -> Send REJECT and transition to red state
  • 9. Server FSM Recvd (CR) Connect.ind Connect.resp Send CA Recvd REJECT Disconnect.ind Recvd REJECT Disconnect.ind Recvd CA In any state, a Disconnect.ind (abrupt) -> Send REJECT and transition to red state Recvd CR Recvd CR Send CA
  • 10. Three way handshake (2) CA (seq=y, ack=z) CR (seq=z) REJECT (ack=y) Connection cancelled No connection is established Host A Host B Sequence number y read from local transport clock Acknowledges CR segment Local state : Connection to A : - Wait for ack for CA(y) Local state : No connection to B Send REJECT to cancel connection establishment
  • 11. Three way handshake (3) CR (seq=z) Current state does not contain a CR with seq=x REJECT (ack=y) Connection established CR (seq=z) Retransmission timer expires CA (seq=w, ack=z) CA (seq=z, ack=w) CA (seq=y, ack=x) Sequence number z read from local transport clock Local state : Connection to B : - Wait for ack for CR (z) - Start retransmission timer Host A Host B Current state does not contain a segment with seq=y REJECT ignored Sequence number w read from local transport clock CA sent to ack CR Local state : Connection to A : - Wait for ack for CA(w) Received CA acknowledges CR Send CA to ack received CA Local state : Connection to B : - established - current_seq = z
  • 12. Three way handshake (4) Invalid CA received from A Send REJECT CA (seq=w, ack=z) CR (seq=z) CA (seq=z, ack=y) REJECT (ack=w) REJECT (ack=z) Sequence number w read from local transport clock Acknowledges CR segment Local state : Connection to A : - Wait for ack for CA(w) Current state does not contain a CR with seq=z Host A Host B No connection is established
  • 13. Agenda • Reliable transport • Multiplexing • Connection establishment • Data transfer • Connection release • Sharing resources • Security principles
  • 14. Reliable data transfer • What are the main differences with the reliable protocols of the datalink layer ? • Segments can be reordered • Buffers can change dynamically • Bytestream service
  • 15. Buffer management • A transport entity serves a variable number of applications with a limited buffer • The buffer/window allocated to a given connection may need to change dynamically as connections start and stop
  • 16. Buffer management A B Data.req(a) Data.ind(a) D(0,a) C(OK,0, w=1) C(OK,0,w=3) Data.req(c) D(2,c) 2 new buffers become available Data.req(b) Data.ind(b) D(1,b) 0 1 2 3 0 1 2 3 0 1 2 3 C(OK,1,w=3) Rwin=1 0 1 2 3 Swin=3, rwin=1 0 1 2 3 Swin=3, rwin=1 0 1 2 3 Swin=3, rwin=1 0 1 2 3 Swin=3, rwin=1 Swin=3, rwin=3 0 1 2 3 Data.req(d) D(3,d) 0 1 2 3
  • 17. Buffer management A B Data.req(b) Data.ind(a) Data.req(a) D(0,a) C(OK,0, w=0) 2 new buffers are available 0 1 2 3 Rwin=1 0 1 2 3 Swin=3, rwin=1 0 1 2 3 Swin=3, rwin=1 0 1 2 3 Receiver cannot handle segment immediately C(OK,0,w=3) Lost segment 0 1 2 3 Swin=3, rwin=0 Window blocked No transmission possible Waits for control segment Waits for data segment How to recover from deadlock ? Persistence timer on receiver, resend control segment after timer expiration
  • 18. Delayed segments A B D(1,b) Timer expiration Retransmission D(1,b) D(3,d) C(OK,0) C(OK,0) C(OK,3) C(OK,0) C(OK,1) D(0,e) Data.ind(e) Data.ind(b) !!!!!!!!!!!! D(0,a) Data.req(a) Data.ind(a) Data.ind(b) Data.ind(e)
  • 19. Delayed segments • How to deal with them ? • Packets cannot live more than MSL seconds inside the network • Only one segment carrying sequence number x can be transmitted during MSL seconds • upper bound on maximum throughput
  • 20. Bidirectional transfer • How to efficiently carry data in both directions ?
  • 21. Piggybacking A B Data.req(a) Data.ind(a) D(0,0,a) Data.req(b) D(1,0,b) Error Discarded Data.req(c) D(2,0,c) Segment -> buffer Retransmission Data.ind(b) D(1,5,b) Data.ind(c) Data.req(d) D(3,6,d) Data.ind(d) C(OK,2) C(OK,3) Data.req(x) D(5,0,w) Data.req(w) Data.ind(w) D(6,0,x) Data.ind(x) D(5,0,w) acks D(0,0,a)
  • 22. Bytestream • How to provide a bytestream service ?
  • 23. Byte stream service (2) A B Data.req(ijkl) Data.req(mnop) Data.req(abcdef) Data.ind(ab) D(0,ab) C(OK,1) C(OK,1) D(2,cd) Lost segment D(4,ef) Placed in buffer Data.ind(cdef) D(2,cd) Expiration timer Retransmission D(6,ijklmnop) Data.ind(ijklmnop) C(OK,5) C(OK,13)
  • 24. Agenda • Reliable transport • Multiplexing • Connection establishment • Data transfer • Connection release • Sharing resources • Security principles
  • 25. Connection release • Graceful release • Data transfer finished and connection must be terminated • Abrupt release • Something went wrong and the connection must be closed immediately • Data can be lost !
  • 26. Graceful release D(‘a’,1233) DISCONNECT.req (A-B) DISCONNECT.ind(A-B) ACK,1234 DISCONNECT.conf(A-B) ACK,4567 DISCONNECT.conf(A-B) DISCONNECT.req(B-A) DISCONNECT.ind(B-A) DR(B-A,4567) Outgoing connection (A->B) closed Incoming connection (A->B) closed Incoming connection (B->A) closed Outgoing connection (B->A) closed DR(A-B,1234) DATA.ind(‘a’)
  • 27. Graceful release (2) D(‘a’,1230) DISCONNECT.req (A-B) DISCONNECT.ind(A-B) ACK(1230) DISCONNECT.conf(A-B) Outgoing connection (A->B) closed Incoming connection (A->B) closed DR(A-B,1234) DATA.ind(‘a’) D(‘bcd’,1231) ACK(1230) DATA.ind(‘bcd’) ACK(1234)
  • 28. Abrupt release CR (seq=z) CA (seq=w, ack=z) CA (seq=z, ack=w) D Data.req() Data.ind() Disc.req() D Data.req() DR Disc.req() Connection closed Connection closed This segment will not be delivered !
  • 29. Agenda • Reliable transport • Sharing resources • Which resources need to be shared • Medium Access Control • Congestion Control
  • 30. Network resources • What are the resources that are shared by multiple users inside a network ?
  • 31. Sharing bandwidth • Several nodes on a single link
  • 33. Agenda • Reliable transport • Sharing resources • Which resources need to be shared • Medium Access Control • Congestion Control
  • 34. How to share access to a link ? • Deterministic solutions • Probabilistic solutions
  • 36. ALOHA
  • 37. Agenda • Reliable transport • Sharing resources • Which resources need to be shared • Medium Access Control • Congestion Control
  • 38. Adapting to different bandwidth What is the round-trip-time in milliseconds this network if A sends 10,000 bits segments, all links are 1 m long and B returns 100 bits acks ? If A sends four 10,000 bits segments in a row, after how many msec will it receive the last
  • 40. The congestion problem • If R1 has a buffer of five 10,000 bits long packets, how many packets will be dropped if A and B send a burst of ten packets at line rate ?
  • 41. Fairness • What is the final objective of congestion control ? • On a single link • Fair share • In a large network • Max-min fairness
  • 42. Max-min fairness • a max-min allocation of bandwidth is an allocation of bandwidth which maximises the allocation of bandwidth to the sources receiving the smallest allocation • a max-min fair allocation is such that in order to increase the bandwidth allocated to one source, it is necessary to decrease the bandwidth allocated to another source which already receives a lower allocation
  • 43. Max-min fairness • a max-min allocation maximises the allocation of bandwidth to the sources receiving the smallest allocation • Property • to increase the bandwidth allocated to one source, it is necessary to decrease the bandwidth allocated to another source which already receives a lower allocation
  • 44. Example • Max-min fair bandwidth allocation R R R R R 1000 Mbps 100 Mbps S1 S2 S3 S4 S5 S6 S7 S8 D1 D3 D4 D2 D5 D6 D7 D8 Link1 Link2 Link3 Link4
  • 45. How to achieve max-min fairness ? • Two possible approaches • Modify the routers to reach max-min fairness • Modify the endhosts to reach max-min fairness
  • 46. How to detect congestion ? • Packet losses • Increased delay • Routers add information to packets • Forward binary feedback • Backward binary feedback • Rate feedback
  • 48. Congestion control • Additive Increase / Multiplicative Decrease # Additive Increase Multiplicative Decrease if congestion : rate=rate*betaC # MD, betaC<1 else rate=rate+alphaN # AI
  • 49. Simple Router output port Buffer Input links Output link Buffer acceptance accepts or rejects incoming packets
  • 50. Router output port Q[1] Q[2] Q[3] Q[N] Flow identification Input links Output link Flow identification Identifies the TCP/UDP flow to which the arriving packet belongs Buffer acceptance accepts or rejects incoming packets Queuing strategy Logical organization of the router's buffers Scheduler Chooses the packet to be transmitted first on the output link
  • 51. Round robin Flow 2 Flow 1 Flow 3 Flow 4 Flow 5 Flow 1 Flow 2 Flow 3 Flow N Scheduler : F1 F2 F3 F4 FN
  • 52. Round robin • If the RR scheduler starts with queue1 and serves them in numerical order, what is the ordering of the packets on the output link ? A B D E F G Queue 1 Queue 2 Queue 3
  • 53. Example F1 F2 F3 Flow2 (L=2) Flow1(L=1) Flow3 (L=1) F1 F2 F3 Flow1 and Flow3 send packets of size 1 Flow 2 sends packets of size 2
  • 54. Round-Robin • Advantage • Can provide fairness independently of the characteristics of the flows • Drawback • Difficult to scale to a very large number of flows

Editor's Notes

  1. In this example, the duplicate CR is likely to be a previous retransmission of the CR that was delayed in the network.
  2. MSL means Maximum Segment Lifetime
  3. How to determine a max-min fair bandwidth allocation for a given network ? Algorithm [Bertsekas & Gallager, Data Networks, 2nd edition, Prentice Hall 1992] First start with an allocation of 0 Mbps for each source Then equally increment the allocation to each source until one link becomes saturated. At this point, each source which uses the saturated link receives an allocation equal to the bandwidth of this saturated link divided by the number of sources using this bottleneck link. Next, the allocation of all the sources which do not use a saturated link is equally incremented until another link becomes saturated. The algorithm continues from step to step, always incrementing the allocation of the sources which do not use a saturated link, until all sources use at least one of the saturated links.