UDP-baserat dataöverföringsprotokoll
Utvecklare | Yunhong Gu |
---|---|
Stabil frisättning | 4.11 / 23 februari 2013
|
Förvar | |
Skrivet i | C++ |
Typ | Protokoll (dator) |
Licens | BSD-licens |
Hemsida |
UDP-baserat Data Transfer Protocol ( UDT ), är ett högpresterande dataöverföringsprotokoll designat för att överföra stora volymetriska datamängder över höghastighets wide area-nätverk . Sådana inställningar är vanligtvis ofördelaktiga för det vanligare TCP- protokollet.
De första versionerna utvecklades och testades på nätverk med mycket hög hastighet (1 Gbit/s, 10 Gbit/s, etc.); dock har de senaste versionerna av protokollet uppdaterats för att även stödja handelsvaruinternet. Till exempel stöder protokollet nu konfiguration av rendezvous-anslutningar, vilket är en önskvärd funktion för att korsa NAT-brandväggar med UDP .
UDT har en implementering med öppen källkod som kan hittas på SourceForge . Det är en av de mest populära lösningarna för att stödja höghastighetsdataöverföring och är en del av många forskningsprojekt och kommersiella produkter.
Bakgrund
UDT utvecklades av Yunhong Gu under hans doktorandstudier vid National Center for Data Mining (NCDM) vid University of Illinois i Chicago i Dr Robert Grossmans laboratorium. Dr Gu fortsätter att underhålla och förbättra protokollet efter examen.
UDT-projektet startade 2001, när billiga optiska nätverk blev populära och utlöste en bredare medvetenhet om TCP-effektivitetsproblem över höghastighets wide area-nätverk. Den första versionen av UDT, även känd som SABUL (Simple Available Bandwidth Utility Library), designades för att stödja bulkdataöverföring för vetenskaplig dataöverföring över privata nätverk. SABUL använde UDP för dataöverföring och en separat TCP-anslutning för kontrollmeddelanden.
I oktober 2003 uppnådde NCDM en överföring på 6,8 gigabit per sekund från Chicago , USA till Amsterdam , Nederländerna . Under det 30 minuter långa testet överförde de cirka 1,4 terabyte data.
SABUL döptes senare om till UDT från och med version 2.0, som släpptes 2004. UDT2 tog bort TCP-kontrollanslutningen i SABUL och använde UDP för både data och kontrollinformation. UDT2 introducerade också en ny överbelastningskontrollalgoritm som gjorde att protokollet kunde köras "rättvist och vänligt" med samtidiga UDT- och TCP-flöden.
UDT3 (2006) utökade användningen av protokollet till råvaruinternet. Överbelastningskontroll justerades för att stödja relativt låg bandbredd också. UDT3 minskade också avsevärt användningen av systemresurser (CPU och minne). Dessutom tillåter UDT3 användare att enkelt definiera och installera sina egna trängselkontrollalgoritmer.
UDT4 (2007) introducerade flera nya funktioner för att bättre stödja hög samtidighet och brandväggspassering. UDT4 gjorde det möjligt för flera UDT-anslutningar att binda till samma UDP-port och det stödde också konfiguration av rendezvous-anslutningar för enklare UDP-hålslagning .
En femte version av protokollet är för närvarande på planeringsstadiet. Möjliga funktioner inkluderar möjligheten att stödja flera oberoende sessioner över en enda anslutning.
Dessutom, eftersom avsaknaden av en säkerhetsfunktion för UDT har varit ett problem med dess initiala implementering i en kommersiell miljö, har Bernardo (2011) utvecklat en säkerhetsarkitektur för UDT som en del av sina doktorandstudier. Denna arkitektur genomgår dock förbättringar för att stödja UDT i olika nätverksmiljöer (dvs optiska nätverk).
Protokoll arkitektur
UDT är byggt ovanpå User Datagram Protocol (UDP) och lägger till mekanismer för överbelastningskontroll och tillförlitlighetskontroll. UDT är ett anslutningsorienterat duplexprotokoll på applikationsnivå som stöder både tillförlitlig dataströmning och delvis tillförlitlig meddelandehantering.
Erkännande
UDT använder periodiska bekräftelser ( ACK ) för att bekräfta paketleverans, medan negativa ACK (förlustrapporter) används för att rapportera paketförlust. Periodiska ACK hjälper till att minska kontrolltrafiken på den omvända vägen när dataöverföringshastigheten är hög, eftersom antalet ACK i dessa situationer är proportionellt mot tiden snarare än antalet datapaket.
AIMD med minskande ökning
UDT använder en AIMD (additiv ökning multiplicativ minskning) stil överbelastningskontrollalgoritm. Ökningsparametern är omvänt proportionell mot den tillgängliga bandbredden (uppskattad med paketpartekniken), sålunda kan UDT undersöka hög bandbredd snabbt och kan sakta ner för bättre stabilitet när den närmar sig maximal bandbredd. Minskningsfaktorn är ett slumptal mellan 1/8 och 1/2. Detta hjälper till att minska den negativa effekten av förlustsynkronisering.
I UDT begränsas paketöverföring av både hastighetskontroll och fönsterkontroll. Sändningshastigheten uppdateras av AIMD-algoritmen som beskrivs ovan. Överbelastningsfönstret, som en sekundär kontrollmekanism, ställs in i enlighet med dataankomsthastigheten på mottagarsidan.
Konfigurerbar trängselkontroll
UDT-implementeringen exponerar en uppsättning variabler relaterade till överbelastningskontroll i en C++-klass och tillåter användare att definiera en uppsättning återuppringningsfunktioner för att manipulera dessa variabler. Således kan användare omdefiniera kontrollalgoritmen genom att åsidosätta några eller alla dessa återuppringningsfunktioner. De flesta TCP-kontrollalgoritmer kan implementeras med den här funktionen med färre än 100 rader kod.
Konfiguration av Rendezvous-anslutning
Förutom den traditionella klient-/serveranslutningskonfigurationen (AKA uppringare/lyssnare, där en lyssnare väntar på anslutning och potentiellt accepterar flera anslutande uppringare), stöder UDT också ett nytt konfigurationsläge för rendezvous-anslutningen. I det här läget lyssnar båda sidor på sin port och ansluter till peeren samtidigt, det vill säga att de båda ansluter till varandra. Därför måste båda parter använda samma port för anslutning, och båda parter är rollekvivalenta (i motsats till avlyssnar-/uppringarroller i traditionella installationer). Rendezvous används ofta för brandväggar när båda kamrater är bakom brandväggar.
Använd scenarier
UDT används ofta i högpresterande datorer för att stödja höghastighetsdataöverföring över optiska nätverk. Till exempel GridFTP , ett populärt dataöverföringsverktyg inom grid computing, har UDT tillgängligt som ett dataöverföringsprotokoll.
Över råvaruinternet har UDT använts i många kommersiella produkter för snabb filöverföring över breda nätverk .
Eftersom UDT är enbart baserat på UDP, har det också använts i många situationer där TCP är i underläge för UDP. Dessa scenarier inkluderar peer-to-peer- applikationer, video- och ljudkommunikation och många andra.
Utvärdering av genomförbara säkerhetsmekanismer
UDT anses vara ett toppmodernt protokoll, som adresserar infrastrukturkrav för överföring av data i höghastighetsnätverk. Dess utveckling skapar dock nya sårbarheter eftersom den, precis som många andra protokoll, enbart förlitar sig på de befintliga säkerhetsmekanismerna för nuvarande protokoll som Transmission Control Protocol (TCP) och UDP.
Forskning utförd av Dr. Danilo Valeros Bernardo från University of Technology Sydney , en medlem av Australian Technology Network med fokus på praktiska experiment på UDT med hjälp av deras föreslagna säkerhetsmekanismer och utforskande av användningen av andra befintliga säkerhetsmekanismer som används på TCP/UDP för UDT, fått intressanta recensioner i olika nätverks- och säkerhetsvetenskapliga gemenskaper.
För att analysera säkerhetsmekanismerna utför de ett formellt korrekthetsbevis för att hjälpa dem att avgöra deras tillämplighet genom att använda protokollsammansättningslogik ( PCL). Detta tillvägagångssätt är modulärt och omfattar [ förtydligande behövs ] ett separat bevis för varje protokollsektion och ger insikt i nätverksmiljön där varje sektion kan användas tillförlitligt. Dessutom gäller beviset för en mängd olika felåterställningsstrategier och andra implementerings- och konfigurationsalternativ. De hämtar sin teknik från PCL på TLS och Kerberos i litteraturen. De arbetar med att utveckla och validera dess säkerhetsarkitektur genom att använda omskrivningssystem och automater.
Resultatet av deras arbete, som är först i litteraturen, är en mer robust teoretisk och praktisk representation av en säkerhetsarkitektur av UDT, genomförbar att arbeta med andra höghastighetsnätverksprotokoll.
Härledda verk
UDT-projektet har varit en bas för SRT -projektet, som använder överföringssäkerheten för live-videoströmning över offentligt internet.
Utmärkelser
UDT-teamet har vunnit den prestigefyllda Bandwidth Challenge tre gånger under den årliga ACM/IEEE Supercomputing Conference , världens främsta konferens för högpresterande datoranvändning, nätverk, lagring och analys.
Vid SC06 (Tampa, FL) överförde teamet en astronomidatauppsättning med 8 Gbit/s disk-to-disk från Chicago, IL till Tampa, FL med UDT. På SC08 (Austin, TX) demonstrerade teamet användningen av UDT i en komplex höghastighetsdataöverföring som involverar olika distribuerade applikationer över ett 120-nodssystem, över fyra datacenter i Baltimore, Chicago (2) och San Diego. På SC09 (Portland, OR) visade ett samarbetsteam från NCDM, Naval Research Lab och iCAIR UDT-drivna dataintensiva cloud computing-applikationer.
Se även
Litteratur
- Bernardo, DV och Hoang, D.B; "Empirisk undersökning: Experimentering och implementeringar av höghastighetsprotokolldataöverföring för GRID" Proceedings of IEEE 25th International Conference on Advance Information Networking and Application Workshops, mars 2011, Singapore.
- Yunhong Gu och Robert L. Grossman, UDT: UDP-baserad dataöverföring för höghastighets Wide Area Networks, Computer Networks (Elsevier). Volym 51, nummer 7. maj 2007.