adjustment algorithms are implemented at the FEC coder.
The flow rate allocation algorithm (Algorithm 3) is imple-
mented at the rate allocator. The input parameters for the
FEC coder include the communication path status
(RTT
p
; m
p
; p
B
p
), delay constraint T, and FEC adaptation step
size DQ; DS (for redundancy and packet size). The parame-
ters passed onto the Rate allocator include the communica-
tion path status (RTT
p
; m
p
; p
B
p
), delay constraint T, and
threshold limit value (TLV). The role of the Parameter Con-
trol Unit is to collect the control parameters (delay constraint
T, FEC adaption parameter), communication path status
(round trip time, packet loss rate and available bandwidth)
and output the decision parameters for the scheduling algo-
rithms 1-3. The data transmitter is responsible for assigning
the FEC packets onto different communication paths accord-
ing to the rate allocation vector. This process can be imple-
mented by the packet scheduling function in MPTCP [12],
which associates segments sent on different sub-flows. For
each decision epoch, the video frames are coded into the
FEC packets and dispatched onto different communication
paths at the data transmitter.
Algorithm 1. FEC Redundancy Adaption
Require: fRTT
p
; m
p
; p
B
p
;m
p
g
p2P
, T, DQ ¼ 0:5%;//m
p
-consecu-
tive losses over path p
Ensure: The FEC redundancy value Q;
1:
RTT
p
(
31
32
RTT
p
þ
1
32
RTT
p
,
s
RTT
p
(
15
16
s
RTT
p
þ
1
16
jRTT
p
RTT
p
j;
2: Con
I (ðm
p
¼¼ 1Þ && ðRTT
p
< RTT
p
s
RTT
p
Þ,
Con
II (ðm
p
¼¼ 2Þ && ðRTT
p
< RTT
p
s
RTT
p
=2Þ,
Con
III (ðm
p
¼¼ 3Þ && ðRTT
p
< RTT
p
Þ,
Con
IV (ðm
p
> 3Þ && ðRTT
p
< RTT
p
s
RTT
p
=2Þ;
3: if Con
IjjConIIjjConIIIjjConIV ¼¼ True
ðÞ
then
4: Thresh ( 1; // random packet losses
5: else
6: if RTT
p
> RTT
P
þ
s
RTT
p
2
then
7: Thresh ( 0:6; // congested status
8: end if
9: Thresh ( 0:8; // mildly congested status
10: end if
11: C
p
(
maxfR
p
;ðn
p
SÞ=Tgð1þQÞ
m
p
; Q (
P
p2P
p
B
p
P
;
12: while fmaxfR
p
;
n
p
S
T
gð1 þ QÞ < m
p
ð1 p
B
p
Þ && C
p
<
Threshg do
13: Q ( Q þ DQ;
14: Update the approximate function ’ðQÞ;
15: U
p
ðQ;SÞ(
m
p
½1p
t
p
1p
t
p
ðÞ
p
o
p
maxfR
p
;ðnSÞ=Tgð1þQÞ
;
DU
p
ðDQÞ(
’ QþDQðÞ’ðQÞ
DQ=m
p
;
16: Procedure: S ( PacketSizeAdaption (Q); // Algorithm 2
17: end while
18: return Q ( arg maxf
P
p2P
U
p
ðQ;SÞg;
At the receiver side, the information feedback unit is
responsible for periodically sending back the channel status
information (round trip time, available bandwidth and
packet loss rate), which is involved in the scheduling
algorithms at the sender side. ADMIT employs the same
connection and sub-flow level acknowledgements (ACKs)
mechanisms specified in the baseline MPTCP [12]. Due to
the path asymmetry in heterogeneous wireless networks,
the packets may arrive at the destination out-of-order. These
packets will be reordered by the Data Flow Reassemble
block (i.e., the MPTCP reordering buffer) to reconstruct the
original video traffic for the decoding process. To ensure
the in-order data delivery, the arrival packets are temporar-
ily stored in a connection-level receive buffer until being
read by the video application. A larger receive buffer can
tolerate higher level of packet reordering and the size
should be able to store all data until the missing segment is
successfully retransmitted [12]. The basic frame-copy error
concealment is implemented at the application layer of the
receiver side to mitigate the playback disruptions.
Algorithm 2. FEC Packet size Adaption
Require: RTT
p
; m
p
; p
B
p
;R;DS; S ¼ MSS;
Ensure: The FEC packet size S;
1: while fðS>0Þ && ½Eðd
E
p
Þ < Tg do
2: S
0
( S; S ( S DS; n (ð1 þ QÞk
de
;
3: n
p
(
R
p
P
P
i¼1
R
i
n, p
o
p
( exp
T
E d
T
p
ðÞ
þE d
N
p
ðÞ
;
4: p
t
p
(
1
n
p
P
8c
p
fLðc
p
Þp
c
1
p
p
Q
n1
i¼1
½F
hc
i
p
;c
ðiþ1Þ
p
i
p
ðu
p
Þg;
5: P
p
ðQ;SÞ(p
t
p
ðn; k; SÞþ 1 p
t
p
ðn; k; SÞ
hi
p
o
ðn; k; SÞ;
6: PðQ;SÞ(Equation ð7Þ, UðQ;SÞ(
P
p2P
U
p
ðQ;SÞ;
7: if PðQ;SÞ > PðQ;S
0
ÞjjUðQ ;SÞ <UðQ;S
0
Þfgthen
8: break;
9: end if
10: end while
11: return S ( arg min
P
p2P
R
p
P
p
ðQ;SÞ
P
p2P
R
p
nk
n
;
Algorithm 3. Reliability-Aware Flow Rate Allocation
Require: fRTT
p
; m
p
; p
p
g
p2P
, T, D, TLV ¼ 1:25;
Ensure: fR ¼ fR
p
g
p2P
;n;kg;
1: for each path p in P do
2: E
p
(
1p
B
p
RTT
p
exp
exp 1ð1L
p
Þ=10
½
1
maxfR
p
;ðn
p
SÞ=Tgð1þRÞ
;
3: R
p
(ðR E
p
Þ=
P
p2P
E
p
;
4: if Dðp 2PÞ > Dðp 62PÞthen
5: R
p
( 0, continue == End this loop if path p increases D;
6: end if
7: L
p
(
m
p
ð1p
B
p
Þmax R
p
;
n
p
S
T
ð1þRÞ
P
P
i¼1
m
i
ð1p
B
i
Þ
P
P
i¼1
max R
i
;
n
i
S
T
ð1þRÞ
=P
;
8: Estimate the FEC parameters ðn; kÞ with Algorithm 1;
9: DR
p
( DR
p
=U
p
, R
p
( R
p
þ DR
p
;
10: Update the approximate function ’ðR
p
Þ;
11: if L
p
TLV then
12: R
p
( R
p
þ DR
p
== Intra-path allocation;
13: Update the available resources of path p;
14: else
15: DP (
P
p2P
P
p
ðR
p
ÞP
p
R
p
þDR
p
ðÞ
DR
p
;
16: p
0
( arg max DP
fg
, subject to p
0
2P&& p
0
6¼ p, DR
p
þ
DR
p
0
¼ 0 == Inter-path allocation;
17: if DP > 0 then
18: R
p
( R
p
þ DR
p
;
19: Update the reliability parameters of path p and p
0
;
20: end if
21: end if
22: end for
23: R;n;k
fg
( arg min
a
P
p2P
R
p
R
0
þ b
P
p2P
R
p
P
p
ðR
p
;n
p
Þ
P
p2P
R
p
;
2348 IEEE TRANSACTIONS ON MOBILE COMPUTING, VOL. 15, NO. 9, SEPTEMBER 2016