Documente Academic
Documente Profesional
Documente Cultură
Investeşte în oameni!
Programul Operaţional Sectorial pentru Dezvoltarea Resurselor Umane 2007 – 2013
Proiect POSDRU/107/1.5/S/76813 – Burse doctorale: investitii in cercetare-inovare-dezvoltare pentru viitor (DocInvest)
TEZĂ DE DOCTORAT
REZUMAT
Bucureşti, 2013
Transferul rapid, în paralel, al datelor în reţele WAN
CUPRINS
1. INTRODUCERE .................................................................................................................4
1.1. MOTIVAREA CERCETĂRII .................................................................................... 4
1.2. OBIECTIVELE CERCETĂRII .................................................................................. 5
2. STUDIU COMPARATIV AL TEHNICILOR ŞI APLICAŢIILOR DE TRANSFER DE
DATE ÎN REŢEA .......................................................................................................................7
2.1. TRANSFERURILE DE DATE ŞI MEDIUL GRID ................................................... 7
2.1.1. Serviciul FTS ....................................................................................................... 7
2.2. SISTEMUL PROTOCOALELOR DE COMUNICAŢIE ÎN REŢEA ....................... 8
2.2.1. Protocolul TCP..................................................................................................... 8
2.2.2. Performanţele TCP............................................................................................... 9
2.2.3. Performanţa conexiunilor TCP multiple .............................................................. 9
2.3. DIVERSE IMPLEMENTĂRI ALE TCP .................................................................. 10
2.3.1. TCP Sack ........................................................................................................... 10
2.3.2. TCP Vegas ......................................................................................................... 10
2.3.3. HighSpeed TCP ................................................................................................. 11
2.3.4. Fast TCP............................................................................................................. 11
2.3.5. MPTCP .............................................................................................................. 11
2.3.6. MulTCP.............................................................................................................. 12
2.4. MANAGEMENTUL ACTIV AL COZILOR DIN RUTERE (AQM) ..................... 12
2.4.1. Algoritmul RED ................................................................................................. 12
2.4.2. Algoritmul BLUE .............................................................................................. 12
2.4.3. Algoritmul SFB .................................................................................................. 13
2.5. PROTOCOALE NON-TCP ...................................................................................... 13
2.5.1. XCP .................................................................................................................... 13
2.5.2. SCTP .................................................................................................................. 13
2.5.3. DCCP ................................................................................................................. 14
2.6. APLICAŢII DE TRANSFER RAPID....................................................................... 14
2.6.1. XFTP .................................................................................................................. 14
2.6.2. Psockets.............................................................................................................. 15
2.6.3. Globus GridFTP ................................................................................................. 15
2.6.4. RBUDP .............................................................................................................. 15
2.6.5. SABUL .............................................................................................................. 16
2.6.6. GridFTP Overlay ............................................................................................... 16
2.7. SUMAR..................................................................................................................... 16
2
Transferul rapid, în paralel, al datelor în reţele WAN
3
Transferul rapid, în paralel, al datelor în reţele WAN
1. INTRODUCERE
Aşa cum rezultă din studiul prezentat în capitolul 2, soluţiile de transfer existente
prezintă atît avantaje cît şi un număr de limitări intrinsece.
4
Transferul rapid, în paralel, al datelor în reţele WAN
5
Transferul rapid, în paralel, al datelor în reţele WAN
6
Transferul rapid, în paralel, al datelor în reţele WAN
FTS [33] (File Transfer Service) este un serviciu de transfer al datelor definit de
arhitectura gLite, actualmente parte a EMI [34] (European Middleware Initiative). Serviciul
este responsabil de transferul seturilor de date între diversele centre, permiţînd controlul
resurselor de reţea în scopul efectuării de transferuri de fişiere cu locaţie precizată la nivel
fizic şi opţional de fişiere logice (LFN, Logical File Name) catalogabile.
Din punct de vedere conceptual, FTS controlează un set de canale configurabile între
nodurile din reţea. Fiecare canal este unidirecţional aşa încît este posibil ca instanţe diferite
ale FTS să controleze fiecare dintre cele două sensuri ale unui canal.
Arhitectura FTS este modulară avînd o serie de componente extensibile. Astfel,
clienţii (aplicaţii care efectuează transferuri de date) accesează via protocolul SOAP un
serviciu Web de tip Tomcat (compliant WSDL), putîndu-se construi clienţi diferiţi. Acesta
interfaţează o bază de date (MySQL sau Oracle) care conţine schema FTS. Iar agenţii FTS
efectuează transferurile de fişiere propriu-zise (via canalele FTS) în acord cu setările din baza
de date.
7
Transferul rapid, în paralel, al datelor în reţele WAN
In concluzie, din prezentarea de mai sus a mediilor grid din punct de vedere al
complexităţii şi amplorii transferurilor de date necesare, rezultă aşadar importanţa adoptării
unor mecanisme perfecţionate de transmisie care să permită transferarea cu eficienţă, într-un
timp cît mai scurt, a datelor în reţea.
Protocoalele standardizează felul în care datele sunt reprezentate atunci cînd sunt
transferate intre maşinile conectate la o reţea [35]. Ele adresează probleme complexe legate
de erori hardware, congestie în reţea, pierdere ori întîrziere de pachete (termen folosit în sens
larg, ca unitate primară de transfer în reţea), date corupte, date duplicate sau sosite într-o
ordine aleatorie, etc.
Din punct de vedere logic, protocoalele sunt implementate pe mai multe nivele
suprapuse de software, fiecare tratînd probleme specifice. Comunicaţia la fiecare nivel de
protocol se bazează pe principiul că obiectele transmise sunt identice cu acelea primite. În
practică, tehnica folosită de protocoalele de comunicaţie se bazează pe multiplexare şi
demultiplexare.
Funcţionalitatea inclusă la fiecare nivel face obiectul unor modele standardizate.
Astfel, modelul ISO/OSI [36] este format din 7 nivele (Physical Hardware, Data Link,
Network, Transport, Session, Presentation, Application). Cercetarea în domeniul TCP/IP a
condus la un al doilea model, mai simplu dar mai des folosit, conţinînd doar 4 nivele logice
(plus nivelul hardware), şi anume: Aplicaţie, Transport, Internet şi Interfaţa de reţea. Între
cele două modele există diferenţe conceptuale. Astfel, modelul ISO implementează detecţia
erorilor de transmisie la fiecare nivel, în mod independent, în timp ce modelul TCP/IP asigură
fiabilitatea de tip end-to-end, cu majoritatea verificărilor grupate într-un singur nivel, cel de
transport.
TCP [5], [37] este protocolul care standardizează felul în care se realizează transmisia
fiabilă a fluxurilor de date în Internet, fiind o parte constitutiva a modelului TCP/IP. TCP
asigură o conexiune bidirecţională, permiţînd schimbul eficient de date indiferent de
caracteristicile reţelelor de transport. Deoarece TCP este implementat de obicei la nivelul
sistemului de operare, el poate fi folosit de orice aplicaţie printr-o interfaţă de acces uniformă.
TCP divide datele în segmente (înglobate în datagrame IP) şi menţine o fereastră de
transmisie specializată, la nivel de octet. Dimensiunea ferestrei variază în timp, funcţie de
spaţiul disponibil la recepţie, informarea făcîndu-se prin segmentele de confirmare. În acest
mod este controlat în mod eficient debitul transmisiei.
Confirmările TCP sunt de tip cumulativ, în sensul că precizează următorul octet pe
care receptorul se aşteaptă să-l primească. Această strategie nu ţine seama de ordinea, posibil
aleatorie, a segmentelor primite şi poate conduce la o retransmisie ineficientă, fie excesivă,
fie redusă la retransmisia simplă, ceea ce anulează avantajul ferestrei de transmisie. O
posibilă corecţie este algoritmul de retransmisie rapidă, care declanşează retransmisia înainte
de timeout a segmentului următor unuia pentru care s-au primit deja multiple confirmări
(patru cel puţin).
Mecanismele de transmisie precedente nu sunt suficiente deoarece nu se ţine cont de
congestia în reţea, cauzată de maşini intermediare (gateways) ce nu pot face faţă traficului
impus. De aceea TCP consideră că majoritatea pierderilor sunt datorate congestiei şi
introduce un nou parametru şi anume fereastra de congestie (cwnd), independent de
capacitatea existentă la recepţie, care limitează superior ferestra de transmisie admisibilă.
Algoritmul AIMD înjumătăţeşte fereastra de congestie (pîna la unu) la pierderea unui
8
Transferul rapid, în paralel, al datelor în reţele WAN
Deşi capabil să se adapteze unui domeniu larg de tipuri de reţele, TCP atinge
un debit de transfer maxim determinat de algoritmii săi de evitare a congestiei. Conform
studiilor din [6] acesta (notat BW) este aproximat de ecuaţia:
(2.1)
unde p este rata de pierdere a pachetelor, iar C este o constantă dependentă de parametrii
algoritmului TCP.
Conform studiului din [38], influenţa termenilor din ecuaţia (2.1) este diferită. Astfel,
MSS are valorile cele mai statice pentru o conexiune TCP dată, fiind calculabil în baza MTU
(care reprezintă dimensiunea maximă a unui pachet transmisibil fără fragmentare pe parcurs).
Valorile obişnuite ale MTU sunt egale cu 1500 octeţi, dar există şi cazuri de reţele Ethernet
cu valori de pînă la 9000 octeţi (jumbo frame), ceea ce poate mări BW de pînă la 6 ori.
RTT este mai dinamic decît MSS dar mai puţin variabil decît p, fiind limitat inferior
de viteza de propagare a luminii şi putînd creşte din cauza prezenţei ruterelor intermediare
sau din cauza efectelor produse de prelucrările specifice din cozile de aşteptare sau congestia
din reţea.
Rata de pierdere a pachetelor p are variabilitatea cea mai mare, avînd două cauze
principale de producere: congestia normală din reţea şi un set complex de cauze aleatorii,
independente de traficul din reţea, reprezentînd erori hardware şi software se pot produce la
nivel de calculatoare sau la nivelul ruterelor din reţea.
În afara erorilor mai sus mentionaţe, există o rată de eroare intrinsecă fiecărui mediu
de transmisie – BER, cu valori maxime admisibile standardizate de IEEE pentru fiecare tip de
reţea. De exemplu, într-o reţea cu BW = 1 Gbps, MSS = 1500, RTT = 100 ms, C = 1.2 (TCP
clasic), substituind în ecuaţia (2.1), rezultă un p de ordinul , ceea ce corespunde unui
BER de ordinul , dificil de atins chiar şi pentru fibre optice.
Rezultă deci că efectele produse de p din motive aleatorii, nedatorate congestiei, sunt
în măsură să afecteze în mod negativ performanţele conexiunilor TCP individuale, ţinîndu-se
cont de caracteristicile algoritmului AIMD care înjumătăţeşte cwnd şi deci micşorează rata de
transfer atunci cînd pachetele sunt pierdute.
O soluţie la problema descrisă mai sus o reprezintă folosirea mai multor conexiuni
TCP simultane, soluţie adoptată de mai multe din aplicaţiile de transfer descrise în secţiunea
nr. 2.4.
În mod colectiv, N conexiuni în paralel se comportă asemănător unei conexiuni cu
MSS de N ori mai mare, cel puţin în faza de slow-start. Aceasta rezultă din însumarea
ecuaţiei (2.1) pentru fiecare din conexiunile i participante, cu . Considerînd
parametrii MSS şi RTT aceiaşi pentru fiecare dintre conexiunile realizate între aceleaşi două
calculatoare şi estimînd că în absenţa congestiei chiar şi rata de pierdere a pachetelor este
9
Transferul rapid, în paralel, al datelor în reţele WAN
(2.2)
Alt mod de a interpreta ecuaţia (2.2) se referă la competiţia între conexiuni cu RTT
mare, specifice reţelelor HBDP şi conexiunile locale cu RTT mic; simplificînd cu N atît la
numărător cît şi la numitor, devine evident că ansamblul conexiunilor TCP paralele se
comportă ca avînd un RTT de N ori mai mic.
Segmente care nu sunt pierdute din cauza congestiei, dar care tot produc diminuarea
ratei de transfer, deoarece semnalizează înjumătaţirea cwnd, nu afectează toate cele N
conexiuni în acelaşi timp, aşa încît scăderea debitului este mai mică în cazul transmisiei
paralele.
Din experimentele efectuate în [38] mai rezultă că rata globală de transfer creşte liniar
cu numărul de conexiuni TCP simultane, pînă cînd se atinge un regim de saturaţie, cînd
reţeaua nu mai are capacitate disponibilă de transfer. Mărirea mai departe a numărului de
conexiuni poate produce efecte nedorite, de diminuare a debitului total din cauza congestiei
excesive.
TCP SACK este descris în forma sa definitivă în RFC 2018 [7] din anul 1996, însă a
fost propus pentru prima dată încă din anul 1988 în RFC 1072 [40]. Mecanismul de
confirmări selective al SACK este o strategie care corectează comportamentul TCP în cazul
pierderilor multiple de segmente de date.
Din punct de vedere tehnic sunt folosite două opţiuni TCP noi, Sack-Permitted şi Sack
propriu-zisă.
Comportamentul TCP SACK în cazul congestiei este dezbatut în [41], rezultînd că
sporeşte într-adevăr semnificativ performanţele transferului de date, în special în cazul
reţelelor WAN foarte încărcate sau chiar şi în absenţa congestiei, în situaţia mai multor erori
grupate.
TCP Vegas [8] este o implementare alternativă a TCP care nu îi schimbă specificaţiile
generale, avînd avantajul de a modifica numai modul în care datele sunt transmise (nu şi
recepţia, ca în cazul TCP SACK). Comparativ cu TCP Reno, debitul transferurilor de date
este mărit cu 37% pînă la 71%, iar retransmisia segmentelor pierdute este redusă cu o cincime
şi chiar pînă la o jumătate.
10
Transferul rapid, în paralel, al datelor în reţele WAN
TCP Vegas foloseşte trei tehnici distincte pentru a obţine rezultatele menţionate mai
sus: un nou mecanism de efectuare a retransmisiilor mai devreme, la momentul oportun; un
mecanism de detectare proactivă a congestiei; un mecanism Slow-Start modificat.
Cu toate că TCP Vegas a demonstrat o viteză superioară şi stabilă, fără a afecta latenţa
sau a concura inechitabil alte conexiuni, este mai rar folosit în Internet, tocmai din cauza
abordării conservative în ceea ce priveşte utilizarea resurselor de reţea, aşa cum se arată şi în
studiul comparativ [26] cu TCP Reno.
2.3.5. MPTCP
MPTCP (Multipath TCP) este o extensie a TCP capabilă să folosească simultan trasee
diferite în reţea pentru interconectarea calculatoarelor cu interfeţe de reţea multiple şi adrese
de reţea (IP) diferite. La ora actuală (2013) este prezentat într-un document IETF [12]
avansat, fiind dezvoltat încă din anul 2009.
Tehnica folosită de MPTCP este transparentă pentru aplicaţiile de reţea deoarece este
implementat sub forma unei noi biblioteci de sockets la nivelul sistemului de operare. Aşa
cum se arată în [43] protocolul MPTCP este implementat cu ajutorul a noi opţiuni TCP în
scopul asigurării traversării nestînjenite a unei diversităţi de maşini intermediare din reţea, de
11
Transferul rapid, în paralel, al datelor în reţele WAN
tip NAT, PEP, firewall, IDS, etc. Transmisia datelor se poate face pe oricare dintre
conexiunile participante, iar implementarea minimizează necesarul de memorie şi procesare
prin aplicarea unor strategii de retransmisie oportunistică, de penalizare a căilor mai lente şi
de autoconfigurare a mărimii buffer-elor de reţea.
Performanţa MPTCP a fost studiată în laborator în medii wireless cu aplicaţii folosind
protocolul HTTP, obţinîndu-se rezultate bune comparativ cu TCP Reno în [44].
2.3.6. MulTCP
O altă metodă de a controla congestia din reţea este implicarea activă a ruterelor în
controlul acesteia. În mod tradiţional, ruterele folosesc o politică de tip drop-tail în
managementul cozilor de pachete asociate cu interfeţele de reţea deservite, în sensul că
pachetele care depăşesc capacitatea existentă a cozilor sunt abandonate.
În locul acestei politici se pot aplica scheme bazate pe marcarea sau abandonarea
pachetelor în mod probabilistic, înainte de a se atige capacitatea maximă a cozilor. Marcarea
pachetelor se face cu ajutorul unei extensii a protocolului IP (sau TCP), ECN, standardizată
de RFC 3168 [45], în care un bit CE (Congestion Experienced) este actualizat în antetul
pachetelor IP atunci cînd congestia iminentă este detectată de rutere.
12
Transferul rapid, în paralel, al datelor în reţele WAN
rutere. Algoritmul BLUE păstrează o unică probabilitate, , utilizată pentru marcarea (sau
abandonarea) pachetelor.
Algoritmul BLUE a fost comparat prin simulare cu RED (în [14]) obţinîndu-se
performanţe superioare sau cel puţin egale sub toate aspectele.
2.5.1. XCP
XCP [16] (eXplicit Control Protocol) este un protocol nou care controlează congestia
mai bine decît protocolul TCP şi asigură eficienţa, echitatea şi stabilitatea transmisiei în reţele
HBDP. Acest protocol introduce şi un concept nou, acela al separării controlului eficienţei de
cel al echităţii transmisiei.
Noul protocol generalizează bitul ECN de la nivelul ruterelor prin includerea unui
antet de congestie în fiecare pachet transmis în reţea. Ruterele calculează eficienţa în baza
unei formule MIMD cu (doi) parametri invarianţi la numărul şi debitul relativ al fluxurilor
participante, determinaţi pe criterii de asigurare a stabilităţii. Controlul echităţii este bazat pe
un algoritm AIMD, cu excesul de debit disponibil împărţit egal între fluxuri, iar scăderea
debitului fiecărui flux este proporţională cu debitul său curent; în plus se asigură convergenţa
rapidă prin tehnica de realocare/amestecare a debitului între fluxuri.
Comparativ cu TCP, XCP este stabil şi eficient independent de debit, RTT şi numărul
de fluxuri. Rezultatele simulării demonstrează că XCP este mai performat decît TCP atît în
reţele normale cît şi mai ales HBDP. XCP are şanse de răspîndire doar în reţele dedicate
cercetării ştiinţifice şi mai puţin în Internet în general şi aceasta din cauza costurilor de
implementare prohibitive.
2.5.2. SCTP
SCTP [17] (Stream Control Transmission Protocol) este un protocol definit pentru
prima oară în RFC 2960 [47] în anul 2000 şi definitivat în anul 2007 prin RFC 4960 [48]. El
a fost dezvoltat iniţial cu scopul de a se permite funcţionarea protocoalelor de
telecomunicaţie, în special pentru aplicaţii VoIP, de transfer a vocii în reţele IP. Îmbină
caracteristici ale UDP, în sensul că este orientat spre transmisia de mesaje (chunks), dar se
aseamănă şi cu TCP prin aceea că transmisia mesajelor este garantată.
13
Transferul rapid, în paralel, al datelor în reţele WAN
2.5.3. DCCP
DCCP [18] (Datagram Congestion Control Protocol) este un protocol nou la nivelul
de transport al reţelei, de tip unicast, care asigură controlul congestiei dar fără o transmisie
garantată a datelor. A fost proiectat pentru a răspunde mai bine nevoilor unor clase de
aplicaţii specifice, de exemplu de telefonie pe Internet, de transmisie multimedia sau jocuri
video interactive. Pentru acestea retransmisiile de tip TCP sunt în majoritatea cazurilor
inadecvate, utilizatorii preferînd o transmisie la timp uneia complete.
DCCP este construit pe baza protocolului UDP căruia îi adaugă o serie de trăsături
similare cu TCP: un sistem de numerotare secvenţială a mesajelor; un mecanism de control al
conexiunilor, bazat pe conceptul de semi-conexiune; mecanisme de control a congestiei,
modularizate (e.g. CCID 2 [52], agresiv şi CCID 3 [53], adaptiv).
Performanţele DCCP au fost studiate în [54] prin compararea cu UDP şi TCP în cazul
unei aplicaţii CBR (Constant Bit Rate), rezultînd că DCCP combină o rată de pierdere a
pachetelor redusă cu o rată bună de transmitere a pachetelor importante. În raport cu SCTP,
DCCP este presupus a obţine rezultate mai bune deoarece nu este afectat de apariţia de
întîrzieri arbitrare ce pot fi cauzate de transmisia garantată a SCTP.
2.6.1. XFTP
XFTP [21] este o aplicaţie de tip client-server care extinde protocolul FTP descris în
RFC 959 [55] cu o implementare multisocket.
Extensia de protocol se referă numai la modul activ al FTP (comenzile MULT şi
MPRT) si este implementată prin folosirea a n conexiuni simultane, multiplexate asincron, cu
zone tampon pentru evitarea blocajelor, într-un singur proces. Fişierele transferate sunt
împărţite în m părţi egale (de cîte 8K, cu ), fiecare fiind transmisă împreună cu
numărul său de ordine printr-una din conexiunile disponibile şi apoi reordonată la sosire.
În ciuda inconvenientelor legate de folosirea unui grad mai redus de paralelism (un
singur proces) şi a necesităţii de a se efectua reordonări la recepţie, XFTP a reuşit să obţină o
14
Transferul rapid, în paralel, al datelor în reţele WAN
utilizare de 90% a capacităţii unei linii T1 (via satelit, cu o viteză de pînă la 1.544 Mbps), faţă
de numai 24% în cazul FTP.
2.6.2. Psockets
PSockets [22] este o bibliotecă de funcţii scrisă în C++ care ajută aplicaţiile să obţină
o utilizare optimală a reţelei fără a trebui să ajusteze fereastra de transmisie, descrisă de RFC
1323 [56].
Tehnica folosită se bazează pe împărţirea egală a datelor într-un număr de părţi
determinat de numărul de conexiuni deschise simultan şi transmiterea acestora în mod
asincron, în paralel. Biblioteca Psockets ascunde detaliile legate de numărul de sockets
efectiv întrebuinţaţi şi felul în care datele sunt segmentate şi apoi reconstituite la recepţie. În
acest fel se elimină inconvenientul reordonării la recepţie, existent în cazul metodei folosite
de XFTP. De notat că ideea unei transmisii fără reordonare a fost adoptată de asemenea în
prezenta teză.
PSockets este uşor de folosit de către aplicaţiile interesate în obţinerea unor debite de
transfer cît mai mari deoarece oferă funcţii cu o interfaţă (API) identică (e.g. send, receive) cu
aceea a bibliotecii de reţea obişnuite (Berkeley sockets [39]).
2.6.4. RBUDP
RBUDP [19] (Reliable Blast UDP) este o aplicaţie de transfer a datelor în reţele de
mare capacitate, dedicate sau capabile de QoS (e.g. reţele optice). Transferul datelor propriu-
zise se face cu UDP, iar traficul de control este semnalizat cu TCP.
Astfel, într-o primă fază, datele de transferat sunt transmise cu datagrame UDP şi o
viteză specificată de utilizator, aleasă aşa încît să nu depăşească capacitatea maximă a reţelei.
Receptorul păstrează evidenţa pachetelor pierdute (sub formă de hartă de biţi, bitmap) pe care
apoi o comunică, via TCP, transmiţătorului. Acesta retransmite numai pachetele UDP
pierdute şi întreg procesul se repetă pînă la eliminarea tuturor pierderilor. Se observă aşadar
că RBUDP nu foloseşte mecanisme de control a congestiei şi nici vreun algoritm de tip slow-
start precum TCP. Totodată acesta grupează toate confirmările la încheierea secvenţei de
transmisie UDP, eliminîndu-se astfel confirmările de pe parcurs, consumatoare de timp.
15
Transferul rapid, în paralel, al datelor în reţele WAN
2.6.5. SABUL
SABUL [20] (Simple Available Bandwidth Utilization Library) este o bibliotecă C++
disponibilă în sursă, cu funcţii de reţea pentru aplicaţii de transfer performante, în medii Grid.
Datele sunt transferate via UDP, iar controlul transmisiei se face via TCP. SABUL
implementează un algoritm de control a congestiei, funcţie de rata de transfer şi un mecanism
de transmisie sigură a datelor.
Tehnica folosită de SABUL se bazează pe un algoritm de tip AIMD de control al ratei
de transfer prin recalcularea, o dată la fiecare 10 ms, a intervalului de timp între două
transmisii consecutive de pachete de date. În plus, rata de transfer este limitată de o fereastră
virtuală de transmisie, a cărei valoare maximă trebuie să fie setată de către aplicaţie.
Comparativ cu RBUDP, SABUL obţine rezultate performante nu numai în reţele
private ci şi în cele publice, deoarece nu limitează în mod drastic capacitatea traficului TCP
de a folosi reţeaua în mod normal. Rezultatele obţinute prin simulare şi experimente în reţele
reale arată că SABUL este echitabil în raport cu alte fluxuri coexistente, în sensul atingerii
unor viteze egale de transfer, indiferent de viteza iniţială a fiecăruia.
2.7. SUMAR
16
Transferul rapid, în paralel, al datelor în reţele WAN
orientată către transferul în flux continuu de date (streaming) şi ca urmare nu este limitată la
transferul fişierelor de dimensiuni determinate.
3.1. ARHITECTURĂ
un proces părinte specializat în citirea, respectiv scrierea dintr-un pipe prin care se
accesează exclusiv input-ul sau output-ul proceselor externe producătoare sau consumatoare
de date.
un număr de N procese fii, specializate în scrierea, respectiv citirea datelor din reţea
sub formă de conexiuni TCP, cîte una per proces.
un segment de memorie partajată între procese, care asigură sincronizarea, tratarea şi
raportarea erorilor şi care conţine şi toate zonele tampon pentru transferul datelor între pipe şi
reţea; de asemenea, conţine şi structuri de date care servesc la raportarea timpilor de
17
Transferul rapid, în paralel, al datelor în reţele WAN
18
Transferul rapid, în paralel, al datelor în reţele WAN
Avînd în vedere faptul că algoritmii de transfer consideraţi sunt incluşi într-o aplicaţie
cu arhitectură client-server, o serie de aspecte specifice au fost luate în considerare, cu scopul
de a se crea o aplicaţie robustă care să răspundă cerinţelor moderne de transfer a datelor în
reţea. Aceasta a servit, pe de o parte, aplicării unei metodologii experimentale realiste, iar pe
de altă parte a răspuns şi cerinţelor concrete ale primilor utilizatori ai acestui sistem de
transfer în medii grid. Astfel:
Protocolul de control al transferului este de tip binar. De asemenea, este şi criptat
RSA ceea ce ii conferă un grad mare de securitate.
Autentificarea corectă a utilizatorilor a fost extinsă cu un modul similar celui folosit
de ssh, care foloseşte aceleaşi chei publice şi private, în vederea autentificării fără
introducerea de parole, ceea ce simplifică exploatarea în regim de loturi de prelucrare, fără
intervenţie umană. Autentificarea în medii grid este de asemenea posibilă atunci cînd serverul
este iniţiat de către client la distanţă, cu o versiune a ssh capabilă de autentificare GSI (GSI-
OpenSSH [61]) sau prin utilizarea unei versiuni compilate cu un modul GSI opţional.
Sub aspectul securităţii este de menţionat şi faptul că datele transferate pot fi la rîndul
lor cifrate, în mod opţional, prin codificare RC4.
Traversarea facilă a reţelelor protejate de firewalls sau maşini NAT se poate face prin
conectarea tuturor conexiunilor TCP paralele de date la un singur port, aflat în regim de
ascultare. Numărul de port al destinaţiei poate fi acelaşi cu numărul portului de control al
serverului. Aceasta se realizează prin comunicarea între procese cu semnale care produc
suspendarea temporară a regimului de ascultare a serverului principal. Reordonarea corectă a
conexiunilor acceptate, independent de IP-ul (posibil local) ori portul sursă se face printr-un
schimb cifrat de mesaje.
Parcurgerea comenzilor şi a opţiunilor din linia de comandă a clientului se face cu un
mini-interpretor. Dintre comenzile acceptate, comanda pipe avînd ca argument aplicaţia de
executat la distanţă (de către server) asigură şi suportul pentru conexiuni de tip split-TCP.
De asemenea, interpretorul poate efectua şi selecţii cu expresii regulate ale mai multor
fişiere sau/şi subdirectoare şi poate executa în mod recursiv (şi chiar şi cu opţiunea de
excludere a fişierelor deja transferate) transmisia fisierelor dorite în modul file striping, în
mod optimizat (simultan).
Transferul în flux continuu (streaming la nivel de octet), efectuat totodată cu o rată a
transmisiei maximizată, permite reutilizarea comenzilor Unix cu execuţie la distanţă prin
includerea în mod natural în script-uri de sistem. De exemplu, comanda dd poate fi folosită
pentru reluarea unui transfer întrerupt. Comanda tar poate fi folosită la sincronizarea rapidă a
subdirectoarelor la distanţă.
Aşa cum rezultă din arhitectura adoptată, aceasta este bazată pe modelul teoretic al
cozilor sincronizate, cunoscute şi sub numele de cozi de tip fork-join [62]. Acest model este
specific procesărilor paralele şi distribuite, de exemplu cu aplicabilitate la sisteme de discuri
de tip RAID [63], sau chiar la managementul proceselor de fabricaţie sau al accesului la
magazii industriale.
Conform literaturii matematice de specialitate din [64], modelul fork-join, poate fi
văzut ca un model simplu de cozi într-un sistem de procesare paralelă. Este format dintr-un
număr N de procesoare (servere) paralele, fiecare dispunînd de o coadă proprie locală.
Prelucrările de executat (job-uri) sunt formate din N proceduri (tasks) care sunt alocate
cozilor diferitelor procesoare, fenomen cunoscut sub numele de faza de fork. O prelucrare
19
Transferul rapid, în paralel, al datelor în reţele WAN
este considerată ca fiind încheiată dacă toate procedurile componente au fost la rîndul lor
terminate, aceasta fiind aşa-zisă fază de join.
Se observă urmatoarea analogie cu modelul teoretic fork-join: datele citite de către
procesul părinte dintr-un pipeline de sistem (văzut ca un punct unic de interfaţă cu sistemul
de operare) sunt împărţite, într-o ordine prestabilită (ciclică, de tip round-robin), între cele N
procese fii, prin intermediul segmentului de memorie partajată şi al zonelor tampon conţinute,
fiecare de dimensiune maximă B, în faza de fork. Faza de join se execută în fapt la receptorul
de date, care are o structură simetrică, şi unde datele sunt recompuse, în aceeaşi ordine, din
elementele lor constitutive şi apoi părăsesc sistemul prin alt pipeline, de scriere. De notat
faptul că fiecare iteraţie a transmisiei în flux continuu reprezintă o prelucrare formată din N
proceduri individuale, de transmisie şi recepţie a datelor în reţea, care trebuie să fie
completată în întregime înainte ca urmatoarea prelucrare să fie posibilă.
(3.1)
Deoarece acum:
(3.3)
(3.4)
ceea ce constituie o aproximare ideală a lui R ca fiind suma ratelor de transmisie individuale,
cu condiţia ca timpii de transfer individuali să fie corect măsuraţi.
Se observă aşadar că soluţia teoretică de îmbunătăţire a ratei de transfer globale care a
fost considerată pentru suportul căilor cu rată inegală (multi-path), este de tipul rutării
preferenţiale către cozile mai libere, în baza informaţiilor legate de timpii de tranziţie
individuali, folosiţi pentru a estima gradul de încărcare al fiecărei conexiuni TCP
componente.
20
Transferul rapid, în paralel, al datelor în reţele WAN
3.4. SUMAR
21
Transferul rapid, în paralel, al datelor în reţele WAN
(smartphone) sunt capabile de moduri de conectare radio diferite (e.g. LTE, GPRS,
Bluetooth, wireless).
Centrele de calcul moderne, compuse dintr-un număr considerabil de calculatoare
(mii, chiar sute de mii) sunt un caz special de interconectare, care nu se încadrează în clasa
multihomed, în care o singură interfaţă logica este conectată la mai multe interfeţe fizice,
creîndu-se astfel multiple căi alternative între maşini ce pot mări atît rata de transfer cît şi
siguranţa transmisiei. Aşa cum se arată în [70] [71], redundanţa la nivel de căi între oricare
două noduri se explică prin utilizarea unei topologii ierarhice de tip arbore cu rădăcini
multiple (multi-rooted tree), iar rutarea între noduri se bazează pe algoritmul ECMP, descris
de RFC 2992 [72]. Deoarece ECMP alocă în mod static (prin hashing) conexiunile la rutele
disponibile , fără să ţină seama de încărcarea reţelei şi nici de ratele de transfer implicate, se
pot produce coliziuni la nivel de conector (switch) de reţea şi degradări ale performanţelor de
transfer.
De aceea, suportul pentru utilizarea de căi multiple în reţea, cu viteze de transmisie
inegale, este important fiindcă ajută la îmbunătăţirea performanţelor de transfer, redirectîndu-
se traficul către căile cele mai libere şi pentru că reuşeşte să valorifice în mod eficient gradul
mare de paralelism existent în centrele moderne de calcul.
În situaţia în care există multiple canale de comunicaţie (e.g. intranet, VPN, WAN),
capabile de viteze de transfer diferite şi folosite simultan prin repartizarea unui număr nenul
de conexiuni TCP fiecăruia, se pune problema ponderării transmisiei datelor în vederea
maximizării debitului total. În absenţa ponderării, din cauza constrîngerilor de sincronizare a
fluxului, viteza globală tinde spre viteza celei mai lente conexiuni multiplicată cu numărul de
conexiuni folosite, aşa cum rezultă din ecuaţia (3.1). Cu ajutorul ponderării volumului de date
furnizat fiecărei conexiuni, funcţie de capacitatea sa curentă estimată, viteza globală este
superioară şi se apropie mai mult de suma vitezelor maxime ale fiecărui canal participant la
transfer, conform ecuaţiei (3.4).
Desemnarea adreselor de IP, sursă şi destinaţie, ce urmează a fi interconectate, se
poate face, la nivelul liniei de comandă (cu parametrul –j care enumeră, în ordinea dorită,
orice combinaţie de adrese sau nume IP) atît pentru client cît şi pentru server, cu scopul de a
se controla în mod explicit selecţia altfel implicită a acestora (conform algoritmului descris
de RFC 3484 [73] cu privire la alegerea adreselor IP implicite). În acest fel asocierea
conexiunilor TCP la canalele existente este determinată exclusiv în baza adreselor IP.
De asemenea, mai trebuie precizat că algoritmul cu ponderare a transmisiei proiectat
are o trăsătură importantă, şi anume se adaptează la modificarea dinamică a debitelor de
transfer per canal, fiind conceput ca un sistem de control de tip PID (proporţional-integral-
derivativ) [74] [75].
Transmisia în flux continuu (streaming), fără ponderare, este formată dintr-un ciclu
infinit de scriere/citire în/din reţea, încheiat la terminarea proceselor externe
producator/consumator de date interconectate prin sistemul propus de pipes extinse (mai
precis atunci cînd citirea, respectiv scrierea din/în pipe-ul local, efectuată de procesul părinte
corespunzător, nu mai este posibilă) sau la întîlnirea unei erori fatale de reţea.
Asigurarea unui transfer corect în reţea, în condiţii de streaming, unde mărimea
datelor de transmis nu este disponibilă, se face prin adoptarea unei convenţii de transmisie cu
22
Transferul rapid, în paralel, al datelor în reţele WAN
24
Transferul rapid, în paralel, al datelor în reţele WAN
Pentru a îmbunătăţi atît precizia de calcul a timpilor de transfer per conexiune, cît şi
stabilitatea şi rata globală de transfer ale transmisiei, am recurs la cîteva strategii practice,
rezultate în urma numeroaselor experimente efectuate. Astfel, am inclus un mecanism
(simplu) de alarmă care să declanşeze reponderarea transmisiei cu scopul de a corecta
cazurile mai rare în care rata de transfer globală a devenit determinată (în mod eronat) de rata
de transfer a conexiunii celei mai lente. Asemenea cazuri se produc în urma unei estimări
greşite a timpilor de transfer per zonă atunci cînd, de exemplu, protocolul TCP este încă în
faza de slow-start.
De asemenea, am renunţat, din prima versiune a algoritmilor, la scăderea mediei
timpilor de transfer ca motiv de declanşare a reponderării (păstrînd numai creşterea), pentru a
se îmbunătăţi stabilitatea, în sensul evitării fazelor de măsurare nenecesare. Am apreciat că
scăderea mediei este de fapt un răspuns pozitiv al sistemului care nu mai are nevoie de un
control suplimentar. În sensul teoriei sistemelor, am aplicat un filtru asupra funcţiei de
control.
Totodată am introdus o estimare continuă a referinţei din bucla de feedback, calculată
ca fiind media ultimelor trei valori ale mediei timpilor de transfer individuali (în loc de
valoarea fixă iniţială). Această abordare transformă sistemul de control într-unul de tip PI
(proporţional-integral) în care funcţia de eroare este însumată în timp. În acest mod se
corectează fluctuaţiile specifice controlului proporţional simplu, P-only, cauzate de faptul că
la echilibru funcţia de eroare prezintă o valoare (offset) nenulă.
25
Transferul rapid, în paralel, al datelor în reţele WAN
4.3. SUMAR
26
Transferul rapid, în paralel, al datelor în reţele WAN
27
Transferul rapid, în paralel, al datelor în reţele WAN
28
Transferul rapid, în paralel, al datelor în reţele WAN
Într-o primă serie de experimente am fost interesat să constat dacă folosirea de pipes
pentru transferul în flux continuu are vreun impact asupra performanţelor de transfer, în
comparaţie cu transferul orientat către transmisia de fişiere prin file striping.
Deoarece în file striping este obligatorie folosirea de fişiere de dimensiuni cunoscute
şi pentru a elimina latenţa produsă de discurile de sistem, am întrebuinţat fişiere în memorie
(de tip tmpfs) în cazul reţelelor rapide (de 1 Gbps şi 8 Gbps). În fiecare situaţie, mărimea
fişierelor transmise a fost adecvată capacităţii de transport a reţelei, în sensul atingerii unui
regim de transfer stabil TCP, iar numărul de conexiuni paralele a fost variat pînă la atingerea
saturaţiei în reţea. Transmisia în flux continuu a fost realizată prin interconectarea cu pipes
extinse la distanţă a comenzii de sistem cat.
În figura 5.2 se prezintă rata de transfer medie obţinută în cazul transferurilor unui
fişier de pe disc, de 300 MB, folosindu-se 1 pînă la 4 conexiuni TCP simultane, în reţeaua de
100 Mbps, în ambele moduri, atît file striping cît şi file streaming. Viteza de transfer medie a
unui fişier în memorie de 400 MB, cu numărul de conexiuni TCP paralele variind între 1 şi
14, în reţeaua de 1 Gbps, este prezentată în figura 5.3 (striping şi streaming). Rezultatele
transferului unui fişier în memorie de 10 GB, cu o variaţie a numărului de conexiuni TCP
între 1 şi 24, în reţeaua de 8 Gbps, sunt prezentate în figura 5.4 (viteze medii, striping şi
streaming).
29
Transferul rapid, în paralel, al datelor în reţele WAN
Fig. 5.5. Topologie cu 3 canale virtuale independente într-o reţea IPoIB de 8 Gbps
Setările necesare au fost realizate cu programul de control al traficului tc, prin crearea
de aliasuri cu mai multe adrese de IP distincte ce au fost apoi asociate atît în mod static cît şi
în mod dinamic la canale cu rate de transfer maxime diferite.
Astfel, în fiecare dintre cele trei reţele testate, am constituit un număr de cîte trei
canale, avînd o rată de transfer maximă de 10, 20 şi 30 Mbps pentru reţeaua de 100 Mbps, de
100, 200 şi 300 Mbps în reţeaua de 1 Gbps şi respectiv de 1, 2 şi 3 Gbps în cea de-a treia
reţea, de capacitate totală egală cu 8 Gbps.
Această configuraţie a fost aleasă pe considerentul de a nu se folosi în total mai mult
decît 75% din capacitatea fizică totală a reţelei, pentru a se realiza un regim de funcţionare
sigură în condiţiile traficului bazat pe conexiuni TCP. Apreciez de asemenea că valorile alese
pentru debitele per canal sunt şi suficient de distincte pentru a se ilustra abilitatea algoritmilor
de a folosi într-o bună măsură întreaga lăţime de bandă a transmisiei, în concordanţă cu
30
Transferul rapid, în paralel, al datelor în reţele WAN
valorile teoretice estimate de ecuaţia (3.4) de mai sus, în condiţii cît mai apropiate de un
regim de funcţionare reală optimizată.
31
Transferul rapid, în paralel, al datelor în reţele WAN
32
Transferul rapid, în paralel, al datelor în reţele WAN
33
Transferul rapid, în paralel, al datelor în reţele WAN
unde pipe-ul extins în reţea este reprezentat cu simbolul ”| ... |”, iar pipe-ul normal (local, la
nivelul sistemului de operare) cu simbolul ”|”. Se observă ca releul R execută atît procesul
server de conectare cu S, cît şi un proces client, de conectare cu D, comunicarea
interprocesuala a datelor făcîndu-se cu un pipe normal.
34
Transferul rapid, în paralel, al datelor în reţele WAN
Din punct de vedere cantitativ algoritmii de transmisie în flux continuu apar a fi la fel
de rapizi ca şi cei bazaţi pe file striping atunci cînd conexiunile TCP concurente urmează căi
identice sau cel puţin cu aceeaşi rată de transfer maximă. În acest caz sincronizarea fluxului
la nivelul zonelor tampon nu introduce întîrzieri notabile deoarece timpii de golire ai zonelor
sunt practic egali.
Aceasta rezultă din figurile 5.2, 5.3 şi 5.4 în care rata medie de transfer creşte
aproximativ liniar cu numărul de conexiuni TCP paralele pînă la atingerea unei valori de
saturaţie de aproximativ 90% din laţimea de bandă disponibilă, în concordanţă cu
peformanţele teoretice ale protocolului TCP, pentru ambii algoritmi la fel şi în toate cele trei
tipuri de reţele considerate.
La o examinare mai atentă, în cazul reţelelor rapide, de 1 Gbps şi 8 Gbps, pentru care
fiecare microsecundă contează, transmisia de tip file striping apare să aibă un avantaj iniţial
(pentru mai puţine conexiuni simultane) faţă de cea în flux continuu. Aceasta se explică prin
faptul că există operaţii suplimentare de sincronizare ce nu pot fi excluse la transmisia în flux
continuu, dar absente în cazul transmisiei de tip file striping. Cu toate acestea, cînd parametrii
de transmisie sunt corect configuraţi (e.g. zone tampon de dimensiuni sporite) şi pentru un
număr mai mare de conexiuni simultane, rata medie de transfer devine sensibil egală, astfel
încît penalitatea introdusă de sincronizare devine neglijabilă.
Diferenţe semnificative apar atunci cînd operaţiile de transfer nu sunt continui, aşa
cum am constat la sincronizarea în reţea a directoarelor cu multe fişiere mici. În aceste cazuri,
numărul de conexiuni concurente nu a contat practic, ci numai gradul mare de fragmentare al
transmisiei TCP, în special pentru multele fişiere mici, transferate pe rînd prin file striping,
ceea ce explică durata totală mult mai mare decît pentru tar/un-tar.
De asemenea, cazul split-TCP experimentat demonstrează avantajul ce se poate
obţine, sub aspectul unei rate de transfer superioare, atunci cînd există mecanisme de
înlocuire a unui transfer direct cu altul via unul sau mai multe relee intermediare. Calea
optimă este cea al cărei segment cel mai lent are o rată de transfer maximă în raport cu
celelalte căi posibile. Astfel, din figura 5.16 rezultă că transferul S->R->D atinge o rată medie
de transfer de care este de aproape trei ori mai mare decît rata medie a
transferului direct, S->D, de numai . În fapt, viteza S->R->D este aproximativ
egală cu viteza S->R ( ), ceea ce arată şi overhead-ul redus introdus de releul R
(segmentl R->S fiind de 1 Gbps, deci cu întîrzieri de propagare neglijabile).
35
Transferul rapid, în paralel, al datelor în reţele WAN
36
Transferul rapid, în paralel, al datelor în reţele WAN
5.5. SUMAR
Acest capitol a fost dedicat prezentării şi analizării unei serii de experimente care să
valideze arhitectura sistemului şi algoritmii de transfer cu viteză a datelor în reţea proiectaţi.
Astfel, metodologia adoptată s-a bazat pe folosirea unei aplicaţii de tip client-server
construită conform arhitecturii descrisă pe larg în capitolul 3 şi care implementează
principalii algoritmi de transfer (descrişi în capitolul 4) împreună cu o instrumentare comună
care a facilitat evaluarea lor comparativă.
Testarea a avut loc prin experimente desfăşurate în reţele reale, avînd o capacitate de
transmisie de 100 Mbps, 1 Gbps şi 8 Gbps, pentru a se putea verifica consistenţa algoritmilor
de transfer în condiţii cît mai variate cu putinţă.
Din compararea algoritmilor de streaming cu aceia de file striping, ambii executaţi în
paralel, cu multiple conexiuni TCP simultane, a rezultat că efectul constrîngerilor de
sincronizare a fluxului de date este nesemnificativ, astfel încît atît transferul datelor de
dimensiuni necunoscute cît şi al fişierelor se poate face la fel de bine numai prin streaming.
Aceasta reprezintă un avantaj, pus în evidenţă în cazul unor operaţii de salvare sau
sincronizare a directoarelor, efectuat cu viteză sporită prin tar/un-tar.
De asemenea, a fost verificat şi mecanismul ce permite efectuarea de transferuri de
date de tip split-TCP, rezultînd că propagarea datelor de-a lungul mai multor calculatoare cu
rol de releu de transmisie se face cu operaţii suplimentare neglijabile şi într-un mod recursiv,
alternîndu-se interconectările prin pipes locale cu acelea prin pipes extinse, iar rezultatele pot
fi remarcabile în privinţa vitezei de transfer atinse, faţă de aceea a unor căi directe dar mai
lente.
Suportul pentru transmisia pe căi multiple, de tip multi-path, a fost determinat printr-o
serie de experimente efectuate atît în regim static cît şi dinamic. A rezultat o bună
concordanţă cu estimările ratei de transfer globale prevăzută de modelul teoretic al cozilor de
tip fork-join, aflat la baza arhitecturii de sistem adoptate. De asemenea, răspunsul la variaţii
dinamice ale ratelor de transfer ale conexiunilor individuale a demonstrat corectitudinea
conceperii algoritmului de transmisie cu ponderare ca un sistem de control de tip PID.
37
Transferul rapid, în paralel, al datelor în reţele WAN
Rezultatele cercetării din această teză au fost diseminate sub forma următoarelor
publicaţii şi rapoarte ştiinţifice:
1. D. Schrager, “Study of Techniques and Applications for Fast Data Transfers in
HBDP Networks,” in Proceedings of 12th International Symposium on Parallel and
Distributed Computing, ISPDC2013, Bucharest, Romania, Jun. 2013.
2. D. Schrager, “New Solutions for Fast Data Transfers in HBDP Networks,” UPB
Scientific Bulletin, Series C, Electrical Engineering and Computer Science, ISSN-L 2286 -
3540, 2013.
3. D. Schrager şi F. Rădulescu, “Efficient Algorithms for Fast Data Transfers Using
Long and Large Pipes in WAN Networks,” in Proceedings of 19th International Conference
on Control Systems and Computer Science, CSCS19, Bucharest, Romania, May 2013.
4. D. Schrager şi F. Rădulescu, “An Improved Application Level Multi-Path
Streaming Algorithm for HBDP Networks,” in Proceedings of 5th International Conference
on Computational Collective Intelligence Technologies and Applications, ICCCI2013,
Craiova, Romania, Sep. 2013.
5. The ATLAS DC1 Task Force, incl. D. Schrager, “ATLAS Data Challenge 1,”
Nov. 2003.
6. Incl. D. Schrager, “Full Supersymmetry Simulation for ATLAS in DC1,” ATL-
COM-PHYS-2003-0xx, Dec. 2003.
Studiul în acest domeniu poate fi extins şi cu alţi algoritmi de transfer care să asigure
o stabilitate şi eficienţă îmbunătăţită, în special în cazul suportului pentru multi-path.
De asemenea, o serie de automatizări, care să asigure o transparenţă mai mare pentru
utilizatori, ar putea fi adăugate aplicaţiei de transfer, de exemplu prin proiectarea unui modul
de control al căilor multiple din reţea care să realizeze şi o selecţie implicită a adreselor de IP
disponibile la sursa şi destinaţia transferului de date.
O altă posibilitate de cercetare o reprezintă validarea modelului de transfer a datelor şi
prin efectuarea de simulări, în reţele cu o topologie şi capacitate variabilă, în scopul unei mai
bune evaluări a performanţelor transmisiilor de tip split-TCP sau multi-path.
39
Transferul rapid, în paralel, al datelor în reţele WAN
Continuarea cercetării din acestă teză va fi utilă pentru toate domeniile interesate de
transmiterea unor cantităţi de date masive, cu rapiditate şi uşurinţă, în condiţiile diversificării
şi dezvoltării continui a capacităţii reţelelor în viitor.
BIBLIOGRAFIE - SELECTIVĂ
40
Transferul rapid, în paralel, al datelor în reţele WAN
41
Transferul rapid, în paralel, al datelor în reţele WAN
[36] H. Zimmermann, “OSI Reference Model - The ISO Model of Architecture for Open
Systems Interconnection,” IEEE Transactions on Communications, Vols. COM-28, no.
4, Apr. 1980.
[37] M. Allman, V. Paxon and W. Stevens, “TCP Congestion Control,” RFC 2581, Apr.
1999.
[38] T. J. Hacker, Improving End-to-End Reliable Transport Using Parallel Transmission
Control Protocol Sessions, PhD thesis, University of Michigan, 2004.
[39] S. J. Leffler, M. K. McKusick, M. J. Karels and J. S. Quarterman, The Design and
Implementation of the 4.3BSD UNIX Operating System, Reading, MA: Addison-
Wesley, 1989.
[40] V. Jacobson and R. Braden, “TCP Extensions for Long-Delay Paths,” RFC 1072, Oct.
1988.
[41] K. Fall and S. Floyd, “Simulation-based comparisons of Tahoe, Reno and SACK TCP,”
ACM SIGCOMM Computer Communication Review, vol. 26, no. 3, pp. 5-21, Jul. 1996.
[42] J. Xu, Performance evaluation of TCP over optical channels and heterogeneous
networks, Univ. of South Florida, MSc Thesis, Mar. 2004.
[43] S. Barre, Implementation and Assessment of Modern Host-based Multipath Solutions,
PhD Thesis, Louvain School of Engineering, Louvain-la-Neuve, Belgium, Oct. 2011.
[44] C. Raiciu, C. Paasch, S. Barre, A. Ford, M. Honda, F. Duchene, O. Bonaventure and M.
Handley, “How Hard Can It Be? Designing and Implementing a Deployable Multipath
TCP,” in Proceedings of USENIX Symposium of Networked Systems Design and
Implementation (NSDI’12), Apr. 2012.
[45] K. Ramakrishnan, S. Floyd and D. Black, “The Addition of Explicit Congestion
Notification (ECN) to IP,” RFC 3168, Sep. 2001.
[46] B. Bloom, “Space/time Trade-offs in Hash Coding with Allowable Errors,”
Communications of the ACM, vol. 13, no. 7, Jul. 1970.
[47] R. Stewart, Q. Xie, K. Morneault, C. Sharp, H. Schwarzbauer, T. Taylor, I. Rytina, M.
Kalla, L. Zhang and V. Paxson, Stream Control Transmission Protocol, RFC 2960, Oct.
2000.
[48] R. Stewart, Stream Control Transmission Protocol, RFC 4960, Sep. 2007.
[49] C. Caini, R. Firrincieli, M. Marchese, T. d. Cola, M. Luglio, C. Roseti, N. Celandroni
and F. Potorti, “Transport layer protocols and architectures for satellite networks,”
International Journal of Satellite Communications and Networking, vol. 25, no. 1, pp. 1-
26, 2007.
[50] J. R. Iyengar, P. Amer and R. Stewart, “Performance Implications of a Bounded Receive
Buffer In Concurrent Multipath Transfer,” Computer Communications, vol. 30, no. 4, p.
818–829, Feb. 2007.
[51] J. Iyengar, P. Amer and R. Stewart, “Concurrent Multipath Transfer Using SCTP
Multihoming Over Independent End-to-End Paths,” IEEE/ACM Transactions on
Networking, vol. 14, no. 5, p. 951–964, Oct. 2006.
[52] S. Floyd and E. Kohler, “Profile for Datagram Congestion Control Protocol (DCCP)
Congestion Control ID 2: TCP-like Congestion Control,” RFC 4341, Mar. 2006.
[53] S. Floyd, E. Kohler and J. Padhye, “Profile for Datagram Congestion Control Protocol
(DCCP) Congestion Control ID 3: TCP-Friendly Rate Control (TFRC),” RFC 4342,
Mar. 2006.
42
Transferul rapid, în paralel, al datelor în reţele WAN
43
Transferul rapid, în paralel, al datelor în reţele WAN
44