Aksellerert filoverføring

Bakgrunn

I dag bruker internett to hovedprotokoller: TCP og UDP.

TCP er internetts drivkraft. Denne protokollen har innebygde mekanismer som gjør at senderen automatisk vil overføre en TCP-pakke til mottakeren dersom denne mistes underveis. Når en mottaker mottar en TCP-pakke, vil en ACK (Acknowledge) melding bli sendt til avsender slik at avsender vet om sendingen ble levert riktig. Dette er en relativt enkel mekanisme som gjør TCP-protokollen pålitelig og enkel å bruke for utviklere. Å sende ACK-meldinger til avsender kan føre til alvorlige begrensninger for ytelsen (avsender må vente til ACK er mottatt for pakke1 før pakke2 kan sendes) - det er imidlertid gjort mange forbedringer med protokollen opp gjennom årene. Noen av de viktigste egenskapene med en moderne TCP-implementering er:

  • Scalable Window Size / Skalerbar vindusstørrelse gjør det mulig for avsender å sende flere pakker om gangen, og vente på flere ACK-er samtidig. Dataene som sendes, men som ennå ikke har mottatt ACK, refereres ofte til Data In Flight - avsender har en grense for hvor mye data som kan transporteres. Dette betyr at avsender ikke vil kunne sende data raskere enn mottaker kan motta den.

  • Bandwidth throttling / Båndbreddestrømming gjør det i hovedsak mulig for en 10 mbit-klient å kommunisere med en 1000 mbit-server uten å forstyrres av trafikk fra serveren. I TCP er det basert på idéen om at det skal være visst antall data i overførsel til enhver tid.

  • Selective ACKs / Selektive ACK-er gjør at mottakeren kan motta ACK-pakker i hvilken som helst rekkefølge. Dersom pakke1 mistes, vil ikke det hindre pakke2 å bli sendt og å motta ACK før pakke1 sendes på nytt.

Brannmurer, rutere og brytere er sterkt optimalisert for TCP-trafikk - noe som gjør det til det naturlige valget for de fleste oppgaver som utføres via internett i dag. Nettlesere, e-postklienter, Facebook, Instagram, Snapchat, aksjer, Spotify, Slack og FTP-klienter er blant noen av applikasjonene som vanligvis bruker TCP.

Det er imidlertid én ulempe. Når TCP-trafikk sendes over store geografiske avstander, synker ytelsen betraktelig. Årsaken til dette er at trafikken (og ACK-ene) må gjennom flere rutere og nettverksinfrastruktur for å nå frem til mottaker - og dette tar tid.

Tiden det tar refereres ofte til latenstid. Hvis du surfer på et nettsted tilhørende samme land, kan latenstiden være så lav som 10 millisekunder. Når du surfer på et nettsted tilhørende et annet land i et annet kontinent, vil du umiddelbart se at det tar lang tid å laste inn sidene som følge av økt latenstid.

Med TCP blir latensproblemet ekstremt tydelig når du overfører filer på tvers av kontinenter. Både avsender og mottaker kan ha 1000/1000 megabit tilkoblinger, men vil kun få 10 megabit effektiv nettverksbåndbredde når filer overføres som følge av latenstid som forhindrer effektiv kommunikasjon når TCP brukes.

UDP er en nettverksprotokoll i likhet med TCP. Hovedforskjellen mellom disse er at UDP ikke blir bekreftet med ACP. Avsender vet derfor ikke om UDP-pakken når frem til mottaker - protokollen er dermed ikke troverdig. Den er imidlertid svært effektiv og rask, i og med at den avhenger av ACP. UPD fungerer bra til videosamtaler og online spill. I disse tilfellene, gjør det ingenting dersom UDP-pakker er mistet. UDP-pakker sendes kontinuerlig - du legger ikke engang merke til det i videostreaming. Det samme gjelder online spill - du mottar en nyUDP-pakke med de siste oppdateringene innen millisekunder. Det oppstår ingen problemer å miste UDP-pakker nå og da - det viktigste er å overføre data raskt med lavest mulig latens.

I utgangspunktet kan UDP fremstå som et dumt valg for filoverføring. Den totale mangelen på pålitelighet betyr korrupte filer som følge av mistede UDP-pakker. Mangelen på båndbreddestrømming vil føre til at klienter utsettes for trafikk og går til slutt offline. For at UDP skal være nytting for å overføring av filer, må protokollen være pålitelig på samme måte som TCP er. For å forbedre den, må de mistede pakkene sendes på nytt og båndbreddestrømming må være mulig. Sikkerhet må også addresseres.

Filemail UDP Aksellerasjonsprotokol (UAP)

Filemail UDP Acceleration Protocol (UAP) er en skreddersydd filoverføringsprotokoll bygget oppå UDP som tilbyr lynrask overføringshastighet - selv i miljøer med høy latens. Det overgår alle TCP-baserte protokoller som HTTP og FTP - spesielt når du sender filer over store geografiske avstander der latensen kryper 50 ms.

Benchmarks

Benchmarks viser at Filemail UDP av og til er opp til 200 ganger raskere enn FTP, HTTP og andre overføringsmetoder basert på TCP.

Reell overføringshastighet ved sending av filer fra Oslo til Sydney over 21 nettverkshopp. Begge endepunkter er tilkoblet internett via forbindelser på 1000/1000 mbit.

Filemail UAP er bygget fra bunnen av, med et mål: Å overføre filer ekstremt raskt fra A til B på den mest sikre og pålitelige måten som mulig. Nedenfor er noen av egenskapene til denne revolusjonerende protokollen.

Uoffisielle sammenligninger med USP-baserte overføringsløsninger av IBM Aspera og Signiant, viser at Filemail er raskere i stort sett alle tilfeller. Noen av ytelsesforskjellene kan skyldes at Filemail bruker maskinvareakselerasjon ved å spesifikt bruke AES-NI instruksjonssett. Protokollene fra IBM Aspera og Signiant brukers også en egen TCP-kanal (SSH) for å utføre båndbredde-throttling, ACK osv. Filemail UAP er ikke avhengig av den mer langsomme TCP-protokollen - den bruker UDP for å overføre data, ACK, bånbredde-throttling og kryptering.

Sikkerhet

All UDP-datatrafikk et beskyttet av AES Galois/Counter Mode (AES-GCM)-kryptering. I dag ansees dette som gullstandarden innen kryptering og det sikrer at data som overføres ikke kan avlyttes av en tredjepart. Hver overføring har en egen nøkkel. Nøkkelen blir utvekslet mellom klient og server ved å bruke Rivest-Shamir-Adleman (RSA)-kryptering.

Maskinvareakselerert kryptering

Filemail UAP bruker AES-NI instruksjonssett introdusert av AMD og Intel for noen år tilbake. Dette introduksjonssettet gjør det mulig for Filemil UAP å bruke dedikerte maskinvarekomponenter for kryptering og dekryptering av data. Dette utgjør en enorm forskjell når det gjelder overføringshastigheter. AES-NI støttes av operativsystemer som Microsoft Windows, macOS, Linux, iOS og Android. Maskinvareprodusenter som Intel, AMD, ARM, VIA, Atmel, Samsung, Qualcomm, NXP og Broadcom støtter også dette.

Krav til programvare og maskinvare

Filemail UAP er skrevet i lavt nivå C++ og kan kjøres på praktisk talt alle enheter og operativsystemer. Binære utgivelser er per nå tilgjengelig for Windows, macOS og Linux. Filemail Desktop er vårt flaggskip-overføringsverktøy som bruker UAP. Konsollapplikasjoner er også tilgjengelige. Filemail UAP er kraftig optimalisert og har et ekstremt lite minneavtrykk på bare noen få megabyte, mens den fremdeles maksimaliserer båndbredde gjennomstrømming. Den bruker også mindre enn 5% CPU når du sender filer med maks hastighet.

Toveis overføringsakselerasjon

Filemail UAP brukes både til nedlasting og opplasting av filer med Filemail Desktop. Det betyr at du og dine kunder og forretningspartnere kan dra nytte av denne teknologien.

Kom i gang med Filemail UAP

Filemail UAP er integrert i Filemail Desktop-applikasjonen og aktiveres automatisk når du sender og laster ned filer. Filemail Desktop er gratis og krever ikke innlogging.