01.03.2013 Views

TCP-PCP: A Transport Control Protocol Based on the Prediction of ...

TCP-PCP: A Transport Control Protocol Based on the Prediction of ...

TCP-PCP: A Transport Control Protocol Based on the Prediction of ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Recv( ACK[i] ):<br />

CP[i] → CP[i − 1];<br />

calculate CP[i];<br />

CP[i]-CP[i − 1] →△CP ;<br />

if newACK <strong>the</strong>n<br />

if ACK[i].CE=1<br />

ecn-acti<strong>on</strong>()<br />

SS() or CA()<br />

else<br />

SS() or CA() //Same as Newreno<br />

endif;<br />

else <strong>the</strong>n<br />

if △CP > 0<br />

Rate<str<strong>on</strong>g>C<strong>on</strong>trol</str<strong>on</strong>g>() //Same as Westwood<br />

Retransmit()<br />

else<br />

Retransmit()<br />

endif;<br />

Fig. 2: Pseudo code <strong>of</strong> <str<strong>on</strong>g>TCP</str<strong>on</strong>g>-<str<strong>on</strong>g>PCP</str<strong>on</strong>g>’s sender receiving procedure<br />

Time t1<br />

Time t2<br />

Ack[ 7]<br />

ecnecho Ack[ 0]<br />

ecnecho<br />

Time t3 A<br />

0 0 0 1 1 1 1 1<br />

1 0 0 0 1 1 1 1<br />

1 1 0 0 0 1 1 1<br />

Time t3 B 0 1 0 0 0 1 1 1<br />

Fig. 3: The first scenario<br />

current ACK is duplicate and △CP ≤ 0, <str<strong>on</strong>g>TCP</str<strong>on</strong>g>-<str<strong>on</strong>g>PCP</str<strong>on</strong>g> sender<br />

<strong>on</strong>ly retransmits <strong>the</strong> data packet. <str<strong>on</strong>g>TCP</str<strong>on</strong>g>-<str<strong>on</strong>g>PCP</str<strong>on</strong>g> modified sender’s<br />

behavior by △CP when <strong>the</strong>re are packet losses. This is <strong>the</strong><br />

important distinguishing feature <strong>of</strong> <str<strong>on</strong>g>TCP</str<strong>on</strong>g>-<str<strong>on</strong>g>PCP</str<strong>on</strong>g> with respect to<br />

o<strong>the</strong>r <str<strong>on</strong>g>TCP</str<strong>on</strong>g> variants. For example, <strong>the</strong> sender <strong>of</strong> <str<strong>on</strong>g>TCP</str<strong>on</strong>g> Westwood<br />

will trigger Rate<str<strong>on</strong>g>C<strong>on</strong>trol</str<strong>on</strong>g> without care about <strong>the</strong> situati<strong>on</strong> <strong>of</strong><br />

mid routers, and that <strong>of</strong> Jersey will decide whe<strong>the</strong>r to do<br />

Rate<str<strong>on</strong>g>C<strong>on</strong>trol</str<strong>on</strong>g> just by single ECN signal.<br />

Additi<strong>on</strong>ally, <str<strong>on</strong>g>TCP</str<strong>on</strong>g>-<str<strong>on</strong>g>PCP</str<strong>on</strong>g>’s sender estimates <strong>the</strong> eligible bandwidth<br />

based <strong>on</strong> ACK packets arriving interval and adjusts<br />

<strong>the</strong> ssthresh (slow star thresh) and cwnd appropriately. This<br />

method to do Rate<str<strong>on</strong>g>C<strong>on</strong>trol</str<strong>on</strong>g> procedure is <strong>the</strong> same as <str<strong>on</strong>g>TCP</str<strong>on</strong>g><br />

Westwood, which can be described as follows.<br />

ssthresh =(BWE∗RT Tmin)/seg size;<br />

if(cwnd > ssthresh) cwnd = ssthresh;<br />

Like <str<strong>on</strong>g>TCP</str<strong>on</strong>g> Jersey, <str<strong>on</strong>g>TCP</str<strong>on</strong>g>-<str<strong>on</strong>g>PCP</str<strong>on</strong>g> also employs threshold marking<br />

method in ECN. C<strong>on</strong>cretely, <strong>the</strong> router marks all <strong>the</strong> packets<br />

when <strong>the</strong> EWMA-averaged queue length exceeds a given<br />

threshold, which is set to 1/3 <strong>of</strong> <strong>the</strong> link buffer capacity in<br />

experiments.<br />

B. Analysis <strong>of</strong> <str<strong>on</strong>g>TCP</str<strong>on</strong>g>-<str<strong>on</strong>g>PCP</str<strong>on</strong>g><br />

In this secti<strong>on</strong>, we give two scenarios to show how <str<strong>on</strong>g>TCP</str<strong>on</strong>g>-<br />

<str<strong>on</strong>g>PCP</str<strong>on</strong>g> works in hybrid networks.<br />

As shown in Fig 3, <strong>the</strong> CE lists at t1, t2 and t3 are<br />

given, where t2 is <strong>the</strong> time when <strong>the</strong> sender receives <strong>the</strong> first<br />

ACK packet after t1, and t3 is after t2. Att1, <strong>the</strong> CE list<br />

<strong>of</strong> <strong>the</strong> latest 8 ACK packets is 00011111. At t2, <strong>the</strong> sender<br />

Time t1<br />

Time t2<br />

Time t3<br />

Time t4 A<br />

Time t4 B<br />

Ack[ 7]<br />

ecnecho Ack[ 0]<br />

ecnecho<br />

0<br />

0<br />

0 1<br />

1 1<br />

0 0 0 0 1 1 1 1<br />

0 0 0 0 0 1 1 1<br />

1 0 0 0 0 0 1 1<br />

0 0 0 0 0 0 1 1<br />

Fig. 4: The sec<strong>on</strong>d scenario<br />

receives a duplicate ACK in which CE=1. So <strong>the</strong> CE list<br />

<strong>of</strong> <strong>the</strong> latest 8 ACK packets is 10001111 at t2. In some<br />

protocols, for example, <str<strong>on</strong>g>TCP</str<strong>on</strong>g> Jersey, <strong>the</strong> sender will trigger<br />

c<strong>on</strong>gesti<strong>on</strong> c<strong>on</strong>trol. However, In <str<strong>on</strong>g>TCP</str<strong>on</strong>g>-<str<strong>on</strong>g>PCP</str<strong>on</strong>g>, calculating result<br />

<strong>of</strong> CP[1] = CP[2] = 0.4 means that probability <strong>of</strong> c<strong>on</strong>gesti<strong>on</strong><br />

occurred in time t2 is not increased. So <str<strong>on</strong>g>TCP</str<strong>on</strong>g>-<str<strong>on</strong>g>PCP</str<strong>on</strong>g> sender does<br />

not invoke Rate<str<strong>on</strong>g>C<strong>on</strong>trol</str<strong>on</strong>g> procedure at t2.<br />

At t3, if <str<strong>on</strong>g>TCP</str<strong>on</strong>g>-<str<strong>on</strong>g>PCP</str<strong>on</strong>g>’s sender receives a duplicate ACK in<br />

which CE=1 and gets CP[3] = 0.55. DuetoCP[3] >CP[2],<br />

<str<strong>on</strong>g>TCP</str<strong>on</strong>g>-<str<strong>on</strong>g>PCP</str<strong>on</strong>g>’s sender predicts that c<strong>on</strong>gesti<strong>on</strong> would occur so<strong>on</strong><br />

and triggers <strong>the</strong> c<strong>on</strong>gesti<strong>on</strong> c<strong>on</strong>trol mechanism at <strong>the</strong> moment.<br />

On <strong>the</strong> c<strong>on</strong>trary, if <str<strong>on</strong>g>TCP</str<strong>on</strong>g>-<str<strong>on</strong>g>PCP</str<strong>on</strong>g>’s sender receives a duplicate<br />

ACK in which CE=0 and gets CP[3] = 0.35. Due to<br />

CP[3] CP[3]. On <strong>the</strong> c<strong>on</strong>trary,<br />

as l<strong>on</strong>g as CP[4] is less than CP[3], <str<strong>on</strong>g>TCP</str<strong>on</strong>g>-<str<strong>on</strong>g>PCP</str<strong>on</strong>g>’s sender will<br />

not decrease <strong>the</strong> sending rate.<br />

It is obvious that in <str<strong>on</strong>g>TCP</str<strong>on</strong>g>-<str<strong>on</strong>g>PCP</str<strong>on</strong>g> protocol, even if <strong>the</strong> sender<br />

received duplicate ACKs caused by several errors, as l<strong>on</strong>g<br />

as <strong>the</strong> queue length does not exceed <strong>the</strong> threshold or <strong>the</strong><br />

c<strong>on</strong>gesti<strong>on</strong> probability does not increase, <strong>the</strong> sender will not<br />

decrease its sending rate. C<strong>on</strong>trarily, even if <strong>the</strong>re is <strong>on</strong>ly <strong>on</strong>e<br />

duplicate packet arrival, <strong>the</strong> sending rate might decline because<br />

<strong>of</strong> CP value being increased.<br />

As a whole, <str<strong>on</strong>g>TCP</str<strong>on</strong>g>-<str<strong>on</strong>g>PCP</str<strong>on</strong>g> is based <strong>on</strong> ECN mark. By deducing<br />

a c<strong>on</strong>gesti<strong>on</strong> probability, <str<strong>on</strong>g>TCP</str<strong>on</strong>g>-<str<strong>on</strong>g>PCP</str<strong>on</strong>g> can protect <str<strong>on</strong>g>TCP</str<strong>on</strong>g> c<strong>on</strong>necti<strong>on</strong><br />

from short-term, recoverable, n<strong>on</strong>-c<strong>on</strong>gestive packet<br />

losses, and enhance its performance in hybrid network eventually.<br />

IV. PERFORMANCE EVALUATION<br />

We have d<strong>on</strong>e <strong>the</strong> necessary code modificati<strong>on</strong> in NS2 [11]<br />

to simulate <str<strong>on</strong>g>TCP</str<strong>on</strong>g>-<str<strong>on</strong>g>PCP</str<strong>on</strong>g>. The modificati<strong>on</strong> includes overwriting<br />

978-1-4244-2324-8/08/$25.00 © 2008 IEEE.<br />

This full text paper was peer reviewed at <strong>the</strong> directi<strong>on</strong> <strong>of</strong> IEEE Communicati<strong>on</strong>s Society subject matter experts for publicati<strong>on</strong> in <strong>the</strong> IEEE "GLOBECOM" 2008 proceedings.<br />

1<br />

1

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!