foundations of communication on multiple-access channel dariusz kowalski
TRANSCRIPT
Foundations of Communication on
Multiple-Access ChannelDariusz Kowalski
Local Area Networks (LANs) ETHERNET
Synchronous communication assumed fast access and bounded delay for message
delivery Messages are sent in slots of known length
04/20/23Multiple Access Channel 2
Motivation
Collection of n stations with known labels which communicate via global channel
Global clock is provided to all stations Every station can transmit Every station receives a message M if exactly
one station transmits message M in the current step
Transmission is reliable, which means that either all stations receive message or none
04/20/23Multiple Access Channel 3
Model of Communication
Stations can stop theirs activity by crashing (crash-failures)
Time of failures are not known by stations we say that failures are generated by
adversary according to the worst-case pattern to achieve worst complexity
Failures mean also unavailability
04/20/23Multiple Access Channel 4
Failures
Protocol : function in which inputs are sequences of messages outputs are one message (to transmit in the
current step) empty message means no transmission (or no
message received) Weak correctness : protocol is correct in the
absence of failures Strong correctness : protocol is correct in the
presence of any adversary
04/20/23Multiple Access Channel 5
Protocol and Correctness
Time : number of clock ticks (steps) since the beginning of protocol till the end
Work : sum of steps, over all stations, taken by the end of protocol, e.g. if all stations do not fail, work is equal to Time
multiplied by number of stations if there are two stations, first is working by 9
steps till the end of protocol, second has been failed after 4th step, work is 9+4=13
04/20/23Multiple Access Channel 6
Complexity measures
Let f(n,k) and g(n,k) be mathematical formulas depending on variables n,k (some of these variables may not be represented in formulas). We use notations: f(n,k) = (g(n,k)) if there is a constant c > 0
and fixed parameters m,l such that for all n > m and k > l inequality f(n,k) > c ·g(n,k) holds
f(n,k) = O(g(n,k)) if g(n,k) = (f(n,k)) f(n,k) = (g(n,k)) if g(n,k) = (f(n,k)) and
f(n,k) = (g(n,k))
04/20/23Multiple Access Channel 7
Asymptotic notations
Detecting collision some set K of k stations want to transmit; how to recognize if k >1 ?
Solving collision some set K of k >1 stations want to transmit; how to select one of them to transmit
successfully (without collision) ?
04/20/23Multiple Access Channel 8
Problems
Performing tasks (Do-All problem) set of t tasks is given to all stations; each task takes one step to perform; tasks may be performed many times (even in the
same step or by the same stations) and in any order;
how to complete all the tasks and stop simultaneously ?
04/20/23Multiple Access Channel 9
Problems (cont.)
Protocol ECHO(K) :STEP 1: all stations in K transmit concurrently
together with the station with the smallest label
STEP 2: all stations in K transmit Output :
2+ (collision, k >1) : if no message received in step 1 and step 2
1 : if k = 1 then either the same message received in step 1 and step 2 or message received only in step 2
0 : in all other cases04/20/23Multiple Access Channel 10
Detecting collision - no failures
For every deterministic protocol detecting collision there is a set of stations K such that this protocol requires time
(k log n / log k) to detect collision among stations in K.
There is a randomized protocol DECAY (described later) detecting collision for every set K of stations in time O(log n) with probability at least 1/2
04/20/23Multiple Access Channel 11
Detecting collision - failures case
Procedure BIN-SELECTION(L) : M is initialized as a subset of L that contains |
L|/2 stations with the smallest label if ECHO(M) = 0 then BIN-SELECTION(L\M) if ECHO(M) = 2+ then BIN-SELECTION(M) if ECHO(M) = 1 then stop (successful step)
Protocol BIN-SELECTION : L is initialized as the set of all stations, |L|=n BIN-SELECTION(L)
04/20/23Multiple Access Channel 12
Solving collision - no failures
Protocol DECAY(v,K) :counter is initially 0Repeat increase counter by 1 if v is in K then transmit set coin to 0 or 1 with equal probabilityuntil coin = 0 or counter = 2 log n
04/20/23Multiple Access Channel 13
Solving collision - failures case
For every set of stations K, protocol DECAY(v,K) solves collision among stations in K by step 2 log n with probability at least 1/2
For every deterministic protocol solving collision there is a set of stations K such that this protocol requires time
(k log n / log k) to solve collision among stations in K.
04/20/23Multiple Access Channel 14
Solving collision - failures case (cont.)
Protocol LOAD-BALANCE(v) :
Perform tasks in
consecutive steps and stop; l is an order of
label of v in the set of all stations
Complexity of protocol LOAD-BALANCE : Time: (t/n + 1) Work: (t + n)
04/20/23Multiple Access Channel 15
Do-All problem - no failures
ln
tl
n
t
,,11
Preliminaries : Global means that, in any step, object is the
same in all stations (which are not failed) STATION is a (global) list of stations which are
not known to be failed Station is a (global) pointer on list STATION
denoting station which transmits in the current step
TASK is a (global) list of unconfirmed tasks, where task is confirmed if it is performed and sent by some station via channel
04/20/23Multiple Access Channel 16
Do-All problem - failures case
Task is a (global) pointer on list TASK denoting first unconfirmed task assigned to perform by Station
Shift is a (global) number that states the positions that pointer Task has to jump on list TASK in order to update this pointer
TASK(v) is a local (stored in station v) list of tasks unconfirmed or unperformed by station v
Global assignment : jth station on list STATION is assigned to jth task modulo #TASK on list TASK
04/20/23Multiple Access Channel 17
Do-All problem - failures case (cont.)
Example
04/20/23Multiple Access Channel 18
s1 STATION
TASK
s2 sj s18
t1 t2tj t12
s12
Station
TaskTask
Shift = 36
Task
Protocol TWO-LISTS(v) :Repeat perform first task from list TASK(v) perform task according to global assignment if the pointer Station is on v then transmit
list TASK(v) update objectsuntil list TASK(v) is empty
04/20/23Multiple Access Channel 19
Do-All problem - failures case (cont.)
Updating objects :Let w be the station that Station points to; move pointer Station by one position if message from station w is received in the
current step then TASK becomes TASK(w) else remove station w from the list STATION
if #TASK < Shift then Shift becomes Shift/2
move pointer Task by square root of Shift positions
04/20/23Multiple Access Channel 20
Do-All problem - failures case (cont.)
Strong correctness of protocol TWO-LISTS : task is confirmed if it has been performed by
some station - proof by induction on number of steps
station v stops after every task is performed by v or confirmed
Complexity of protocol TWO-LISTS : Time : (t) Work : (t + n·min{n,t})
04/20/23Multiple Access Channel 21
Do-All problem - failures case (cont.)
References : B. Chlebus, D. Kowalski, A. Lingas
The Do-All problem in broadcast networks in Proc. of 20th ACM Symp. on Principles of Distr. Computing (PODC 2001), 117 - 127
Open problems : Considering these three problems in stronger
models of failures, such as fail stop with restarts Does randomization help to perform tasks more
efficiently?
04/20/23Multiple Access Channel 22
References and open problems