Pseudo-code: |
BEGIN: |
# Acquire the value of rtt/RTO, cwnd, ssthresh, loss-rate on each path |
() FOR (i = 0; < total number of paths; ++) |
Path[i] = get value (rtt/RTO, cwnd, ssthresh, lossrate) |
() END-FOR |
# Paths are sorted from (1), according to rule, path having smallest rtt/RTO; if both path have a |
# similar value successive parameters are chosen for determination. Parameters in succession |
# are (largest cwnd, largest ssthresh, low loss-rate) |
() sort Path to Path[n] |
# Assign path as redundant path (RP) for path |
() RP=Path n; |
# Start/Resume transmitting TPDUs (allowed by cwnd of that path) |
() do |
{ |
SEND TPDUs into Path[i] |
} while (i < n − 1); SEND TPDUs [Path ] =TPDU [Path n − 1] |
# Check for transmissions successful in all Paths |
() Paths Tx (Success)? goto (7): goto (1) |
# Count the consecutive successful transmission in Redundant Path (CSTRP) in Path and |
# Path |
() Is Count [CSTRP (Path && Path (n − 1)] ≤10)? goto (5): goto (8) |
() Perform steps (1 to 3) and goto (9) |
() do |
{ |
SEND TPDUs into Path[i] |
} while (i < n); |
# Check for transmissions successful in all Paths |
() Paths Tx (Success)? goto (11): goto (1) |
# Count the consecutive successful transmission in all paths (CSTAP) |
() Is Count [CSTAP (Path , …, ) ≤10)? goto (9): goto (8) |
END |