BIC TCP
BIC TCP ( Binary Increase Congestion Control ) är en av algoritmerna för överbelastningskontroll som kan användas för Transmission Control Protocol (TCP). BIC är optimerad för höghastighetsnätverk med hög latens: så kallade " long fat networks" . För dessa nätverk har BIC betydande fördelar jämfört med tidigare system för kontroll av överbelastning när det gäller att korrigera för kraftigt underutnyttjad bandbredd.
BIC implementerar en unik congestion window (cwnd) algoritm. Denna algoritm försöker hitta den maximala cwnd genom att söka i tre delar: binär sökningsökning , additiv ökning och långsam start. När ett nätverksfel inträffar använder BIC:n multiplikativ minskning för att korrigera cwnd.
BIC TCP är implementerat och används som standard i Linux- kärnor 2.6.8 och senare. Standardimplementeringen ändrades igen till CUBIC TCP i versionen 2.6.19.
Algoritm
Definiera följande variabler:
S max : det maximala inkrementet S min : det minsta inkrementet w max : den maximala fönsterstorleken β: multiplikativ fönsterminskningsfaktor cwnd: stockningsfönsterstorlek bic_inc: fönsterökning per RTT (tur och retur)
Vid varje RTT-intervall uppdatera cwnd med följande:
Om inga paket tappas, ökar överbelastningsfönstret (cwnd) på tre distinkta sätt: binär sökningsökning, additiv ökning och långsam start. I varje steg används ett som ett steg.
Ett steg för att öka cwnd:
if (cwnd < w max ) // binär sökning ELLER additiv bic_inc = (w max - cwnd) / 2; else // långsam start ELLER additiv bic_inc = cwnd - w max ; if (bic_inc > S max ) // additiv bic_inc = S max ; annars if (bic_inc < S min ) // binär sökning ELLER långsam start bic_inc = S min ; cwnd = cwnd + (bic_inc / cwnd);
Om ett eller flera paket släpps, reduceras cwnd med multiplikativ minskning . Detta kräver β, som används för att minska cwnd med (100×β)%. I fallet med två flöden, ett med en stor cwnd och den andra en liten cwnd, snabb konvergens för att minska det större cwnd-flödets w max med en högre hastighet än den mindre cwnd:s flöde för att tillåta snabbare konvergens av det större cwnd-flödet när ökar sin cwnd.
Ett steg för att minska cwnd:
if (cwnd < w max ) // snabb konvergens w max = cwnd * (2-β) / 2; annars w max = cwnd; cwnd = cwnd * (1-p);
Se även
- TCP-algoritm för att undvika överbelastning
- Transmission Control Protocol § Utveckling
- SCTP
- KUBISK TCP
externa länkar
- [1] Hemsida.