Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 99 reacties

Volgens Google kan het zelfontwikkelde quic-protocol zorgen voor een forse verbetering in de laadsnelheid van internetpagina's. Het bedrijf heeft het protocol in de afgelopen tijd getest en meldt dat een groot deel van de verbindingen baat heeft bij het protocol.

De resultaten van de tests zijn te vinden op het blog van Google. Quic, dat staat voor Quick UDP Internet Connections, werd al in 2013 geïntroduceerd en is sindsdien door de internetgigant getest. Het protocol werkt via udp en kan beveiligde verbindingen tot stand brengen vergelijkbaar met het veelgebruikte tls. De bedoeling is dat het aantal keer dat server en gebruiker heen en weer communiceren om een verbinding tot stand te brengen wordt gereduceerd.

Zo hoeven er bijvoorbeeld geen round trips plaats te vinden als server en client al eens met elkaar 'gepraat' hebben. Dat in tegenstelling tot tcp+tls waarbij dit wel nodig is. Ook als server en client niet eerder met elkaar gecommuniceerd hebben is het aantal heen-en-weer-verbindingen met quic minder. Al met al levert dat snelheidswinst op. Uit tests van Google blijkt dat 75 procent van de verbindingen baat heeft bij communicatie via quic in plaats van tcp+tls doordat er geen round trips meer nodig zijn.

Naast vermindering in het aantal round trips is quic ontworpen met het doel om packet loss te verminderen. Zo zijn er correctiemechanismes die ervoor moeten zorgen dat pakketjes met fouten niet opnieuw verzonden hoeven worden. Daarnaast moeten er minder pakketjes verloren gaan dan met andere communicatieprotocollen. De gebruikte technieken zorgen vooral bij langzame verbindingen voor snelheidsverbeteringen, aldus Google. Bij degenen in de top 1 procent met langzaamste verbinding kan de snelheidswinst zelfs oplopen tot 1 seconde bij het laden van de Google-hoofdpagina. Bij YouTube-gebruik over langzame verbindingen zorgt quic voor 30 procent minder buffermeldingen, zo blijkt uit tests.

Google heeft quic in de afgelopen tijd getest via Chrome-gebruikers die verbinding maken met de diensten van het bedrijf. Inmiddels worden ongeveer de helft van deze verbindingen opgesteld via quic. Door de succesvolle tests is Google van plan om quic in te dienen als webstandaard, net als het deed bij het spdy-protocol. Er moet echter nog wel wat werk worden verzet, aldus de webgigant.

Google quic

Moderatie-faq Wijzig weergave

Reacties (99)

Ik zou graag wat real-life benchmarks zien voordat ik overtuigd ben van dit (ik weet dat het nog in ontwikkeling is, maar ik ben erg benieuwd).
Gaat dit trouwens niet de serverconfiguratie moeilijker maken omdat je nog oude legacy browsers moet ondersteunen + gelijktijdig deze nieuwe technologie? Of is dit gewoon een extra module in NGINX/Apache?

[Reactie gewijzigd door lampstoelkast op 19 april 2015 12:14]

Het is voor erbij.
Het is vooralsnog niet mogelijk om op alle fronten TCP voorbij te streven.
Daarnaast is TCP in de kernals van operating systems verweven, iets waar Google in beginsel geen toegang to krijgt. Dus er moet nog veel data door de kabels stromen, eer het een volledige standaard is.
Waarom zouden ze aan de TCP implementatie in de kernels willen/moeten komen? En als ze dat al willen doen, ze komen met gemak in de kernels van linux/android ;)

Ze willen UDP gebruiken dus ze hoeven ook niets aan de TCP implementaties te veranderen. Verder lijkt het hele systeem goed inelkaar te zitten, waardoor je met udp makkelijk tcp voorbij kan komen, helemaal op betrouwbare internet verbindingen.

Verder verwacht ik dat dit inderdaad een aparte module erbij gaat worden (UDP poort 80 is meestal niet in gebruik, nadeel is alleen wel weer dat veel firewalls het daarom juist blokkeren). Real life benchmarks hoef je niet eens te zien; dit voorstel is gewoon sneller omdat je minder RTT's doet. Helemaal het cachen van de encryptie is een groot voordeel.
Cachen van encryptie is een levensgroot security probleem.
Koppel daar ook nog eens bij dat UDP zelf ook een security probleem is en je hebt een ramp in wording.

Ik denk dat de winst ook zeer beperkt is.
De meeste roundtrips in TCP zijn voor foutcorrecties.
Die kan je niet achterwegen laten als je UDP gaat gebruiken.
Tenzij je het goed vindt om verminkte foto's en onleesbare teksten voorgeschoteld te krijgen in je browser. Dus wat win je? Syn-Ack ack, en da's al.

Ik denk dat dit meer is ingegeven vanuit een oogpunt van besparing.
Als je minder signalen verzend dan kost je dat minder energie.
En als je dat dan inpakt in het zoete marketing koekje "snelheidswinst" dan gaat iedereen het klakkeloos slikken.
De problemen ten spijt.
Ik geloof niet dat je doorhebt wat het idee is van QUIC. TCP lost het betrouwbaarheidsprobleem van IP op, zonder iets van de data te weten. De simpele methode is om pakketjes te bufferen, in het geval een resend nodig is. En met teveel pakketjes onderweg loopt je TCP buffer vol.

Als je echter de pakketjes eenvoudig kunt resenden, bijvoorbeeld omdat het een gecachte webpagina is, dan is het inefficient om die logica in TCP nog eens te dupliceren.

Je ziet iets vergelijkbaars met "verminkte data". HTTPS en HTTP 2.0 hebben een stuk betere integrity checks dan TCP's CRC32 cq. Adler. Het is dus inefficient om die goede checks te dupliceren in TCP.

Kortom, als je de features van TCP niet nodig hebt, dan ik het ook efficienter om TCP niet te gebruiken.
Amen!

Weet niet waarom je op off-topic wordt gezet, maar je verwoord het prima. Komt er op neer dat wanneer UDP verkeer gewoontjes wordt, het snitchen aan belanghebbenden ook groter wordt.

Ik zou het in ieder geval niet gaan gebruiken als veilig netwerk. Ik denk dat Google daar op doelt met dat ze het internet veiliger willen maken. En vergeet het grote voordeel niet voor wat betreft Big Data. Je hoeft minder bandbreedte te grbuiken want de verbindingen zijn flink gereduceerd.
Helemaal mee eens. Wat mij meer dwars zit is dat de firewall ook niet meer ziet wat established connecties zijn aangezien UDP stateless is. Tenzij de firewall ook quic protocol moet gaan leren maar dat zie ik niet zo snel voor me. Connected naar bijv. een DMZ vanuit LAN zou ook betekenen dat DMZ naar LAN clients mag connecten bijv.
Ik ben niet zo'n fan van UDP. Ik hou m'n hart vast welke beveiligingsproblemen dit weer op gaat leveren aangezien UDP pakketjes simpel te spoofen zijn.

Welke UDP reflectieaanval gaat hier weer op toegepast worden.
En dan hebben we het nog niet over de extra bufferbloat die hiermee kan optreden.
Het design document spreekt wel over buffer bloat als 'een moelijk probleem om aan te pakken', maar draagt geen oplossingen aan.

Als je dan geen rate control hebt (wat TCP tot op zekere hoogte wel heeft) dan draag je enkel maar bij tot het probleem.
Bufferbloat is een specifiek TCP probleem. TCP garandeert namelijk betrouwbare aflevering, en buffers zijn nodig om TCP resends te doen. Dit protocol omzeilt het probleem doordat het zelf de verantwoordelijkheid kan nemen voor resends, mocht dat nodig zijn.

Rate control is geen oplossing voor het bufferbloat probleem, integendeel. De twee interfereren.
Niet echt waar. Bufferbloat affecteert elk protocol dat betrouwbare aflevering garandeert, inclusief quic, sctp, etc.

fq_codel is trouwens een vorm van rate control (zij het wel op elke node en niet enkel op de endpoints) die werkt door het droppen van bepaalde packets, zodat een protocol zoals TCP dit kan gebruiken om trager te zenden. Ik denk dat jij echter doelt op rate control op endpoints alleen - waar je opmerking dan wel weer steek houdt.

Het design doc legt het trouwens mooi uit welke bufferbloat considerations ze hebben bij quic.
Als ze eerst de verbinding met TCP opzetten om TLS op te zetten om vervolgens naar UDP te switchen is er niet zoveel aan de hand.

Maar inderdaad, reflection attacks zijn een groot probleem van UDP, mijn NTP server heeft daar helaas ook heel eventjes aan meegedaan :/
Reflectie aanvallen zonder versterking/vermenigvuldiging zijn niet van belang, dat kan je ook met TCP.
Udp wordt enkel als basis gebruikt en daar qordt verder op gebouwd, voordelen, Udp is zo eenvoudig dat een uitbreiding eenvoudig toe te voegen is, deze uitbreiding neemt dan alle veiligheidsprocedures op zich.
Tcp is een betrouwbaar protocol, maar zo strict dat het niet uit te breiden/verbeteren is, Udp is een goede basis om van te vertrekken, juist omdat er amper iets vast ligt.
Oh, dan heb ik waarschijnlijk ditt artikel verkeerd begrepen.
http://techcrunch.com/201...ic-protocol/#.pli581:gCxq
Oh, dan heb ik waarschijnlijk ditt artikel verkeerd begrepen.
http://techcrunch.com/201...ic-protocol/#.pli581:gCxq
Dank voor de hele nuttige informatie!

Onder aan het artikel:
If you want to see if your connection to Chrome uses QUIC, by the way, here is a browser extension that can tell you and you can find all the details about Chrome’s QUIC usage under the net-internals flag (chrome://net-internals/#quic).
Wow, wat een lijst ruim 30 servers met http/2 in een paar minuten internet bezoek en een tiental met QUIC. Dat had ik niet verwacht.

Ik vroeg me af, wil ik dat wel? Dat zonder dat het mij verteld wordt, de beveiliging van mijn verbinding loopt via een nieuw protocol dat nog in beta fase is?
Is die verbinding tijdens al die test altijd even veilig geweest als mijn TLS verbindingen?

[Reactie gewijzigd door djwice op 20 april 2015 21:24]

Ehm, het is heel makkelijk om TCP te omzeilen en in plaats daarvan UDP te gebruiken. Die laatste zit namelijk net zo goed "in de kernels van operating systems verweven".
UDP is 1 pakket zenden en dan de hele stack door van user layer -> kernel -> hardware. Voor TCP geld dat het protocol in de kernel zit en soms zelfs in de hardware. Daardoor kan je in 1 keer een groot blok data aan de kernel geven en worden de pakketten verstuurd door de kernel of door de hardware.

Voor ontvangen geld hetzelfde.

Wel een goed idee van google. Onlangs nog gebenchmarked op het laden van facebook images en je ziet dat het opzetten van de connectie nu de meeste vertraging veroorzaakt (en zij gebruiken al SPDY dus daarna komt alles tegelijk binnen).

[Reactie gewijzigd door PuzzleSolver op 19 april 2015 19:10]

Met UDP kan dat ook prima hoor, een blok data in n keer aan de kernel geven. Die maakt er dan UDP-pakketjes van i.p.v. TCP. Het enige verschil is de stateful vs. stateless eigenschap.
https://msdn.microsoft.co...op/ms740149(v=vs.85).aspx
For message-oriented sockets (address family of AF_INET or AF_INET6, type of SOCK_DGRAM, and protocol of IPPROTO_UDP, for example), care must be taken not to exceed the maximum packet size of the underlying provider. The maximum message packet size for a provider can be obtained by calling getsockopt with the optname parameter set to SO_MAX_MSG_SIZE to retrieve the value of socket option. If the data is too long to pass atomically through the underlying protocol, the error WSAEMSGSIZE is returned, and no data is transmitted.
1 Send is 1 packet onder windows. Maar als dit protocol inderdaad beter is en populair wordt dan wordt het waarschijnlijk wel onderdeel van de kernel.

In linux kan het wel zie ik:

http://stackoverflow.com/...dling-of-multiple-packets

Maar dan moet je nog steeds responses afhandelen in de userspace, voor clients maakt dit niet veel uit, maar op een server zou offloading van dit nieuwe protocol waarschijnlijk beter zijn.

[Reactie gewijzigd door PuzzleSolver op 20 april 2015 18:43]

Hoe zou het OS moeten bepalen wara je de splits in je UDP messages wil hebben? TCP is een bytestream protocol; de onderliggende IP packet grenzen zijn ongedefinieerd op TCP nivo. De kernel mag ze dus zelf kiezen.

In UDP zijn je grenzen expliciet. 1 send zou door het OS nooit opgesplitst mogen worden in 2 pakketjes. Maar wat nu als je 65 KB probeert te verzenden? IP heeft een limiet van 64K. Windows zegt dan, illegaal pakket - kan ik niet verzenden. Linux zegt dan: het worden twee pakketjes, ook al dacht je 1 pakket te verzenden.

Het subtiele effect is dat je meer kans hebt om "gefragmenteerde" UDP pakketjes van een Linux machine te krijgen, want beide helften kunnen los van elkaar verloren raken zonder dat de ontvanger het doorheeft Onder Windows heb je potentieel nog steeds wel fragmentatie op IP nivo (de MTU is vaak maar 1492 bytes) maar dat heeft de IP laag door. Als je applicatie een UDP pakket ontvangt van een Windows machine, dan is dat dus gegarandered niet gefragmenteerd.
Klopt als een bus wat je zegt. Ik neem aan dat dit een reactie was op Yakotb?

Bij linux is er dus een API die het toestaat om een array van buffers in 1 keer aan de kernel te geven:

http://man7.org/linux/man-pages/man2/sendmmsg.2.html
Onder Windows is het model iets ingewikkelder, met Registered I/O kun je wel efficient data streamen maar is het meer dan 1 call.
Bij UDP is er de kans dat er data verloren gaat omdat het niet wordt gecontroleerd.
Bij UDP gebeurt er geen controle door UDP zelf (in tegenstelling tot TCP) maar de softwarelaag kan dat wel doen (zoals ook in het artikel staat). En in dit geval dus een controle specifiek geoptimaliseerd voor http-verkeer (of http/2 of spdy) hoger in de stack op de softwarelaag.
Ik zie ook wel mogelijkheden, al lijkt het mij inderdaad ook belangrijk dat zeker aan de veiligheidsaspecten gedacht wordt (zie ook andere reacties).
Klopt. Daarom is UDP populair voor VOIP (waar een resend toch te laat aankomt) , of hier dus voor HTTP (waar de webserver veel beter in staat is om resends te managen - wsch zit de verzonden file toch in de file cache)
Zijn de helft van de requests van Chrome naar Google-diensten met quic nog niet genoeg benchmarks? Google heeft wat dat betreft een vrij unieke positie waarmee ze met dit soort dingen kunnen experimenteren op grote schaal.
wij van wc-eend ;)
als je al hun adware die op pagina's moet laden niet teveel invloed wil laten hebben op de snelheid waarmee de content wordt geladen die gebruikers wl willen zien wil verkleinen, dan ga je dit soort truukjes dus toepassen.

pagina's worden tegenwoordig bijna niet meer geoptimaliseerd, want "iedereen heeft toch snel internet". Dat heeft dus als nadeel dat ze stiekem bloatware in hun pagina's kunnen steken en dan hebben de traagsten natuurlijk de pech om ook op al die rommel te moeten wachten.

1 seconde sneller de google homepage laden op de 1% traagste systemen? Ik denk dat het dan wel duidelijk is hoe miniem de impact is. Een pagina die niet meer hoeft te zijn dan een invulformulier en een button om de request te transmitten is herleid tot iets waar ze dus een nieuw protocol voor hebben gemaakt.
1 seconde is best lang (de vuistregel is dat de meeste mensen verwachten dat binnen twee seconden een pagina is geladen vziw), op grote schaal kan dat je serieus geld kosten en zorgt het ook voor lagere ranking in zoekmachines. Een beetje serieuze site besteedt daar dus wel aandacht aan.

Mbt tot gegeven voorbeelden van snelheidswinst; ik denk dat die 1% van de homepage slechte mobiele verbindingen betreft oid. Vind je 30% minder bufferingsmeldingen op YouTube ook 'minieme impact'? Iedereen is gebaat bij een sneller internet, niet alleen Google.
"Iedereen is gebaat bij een sneller internet, niet alleen Google." Dat klopt maar:
Niemand is gebaat bij een minder veilig internet, behalve data mining bedrijven zoals Google.

Ik zou graag willen zien hoe dit protocol stand houdt met betrekking tot security aspecten. Juist in een tijd dat we er achter komen dat we meer 'bewust' om moeten gaan met het internet lijkt het me niet dat je het makkelijker wilt gaan maken om je data gemined te krijgen. :/
"Veilig" is geen magisch worod. De vraag is altijd wt je beveiligt tegen we.

Vroeger was de vraag altijd hoe de Transport Layer Security werkte. Als A en B communcieerden, kan E dan meeluisteren? Maar dat is niet jouw zorg hier met Google. Als jij met Google communiceert, dan heft Google niet mee te luisteren.

Daarom noemen we dit aspect privacy, en geen security.
Volledig met je eens, punt van verschil is dat privacy onderdeel is van security en andersom.
Ik zou bijna denken dat je nog nooit de homepage van Google hebt gezien. Op die web pagina 1 seconde winst behalen is gewoon zeer knap.

Maar die winst is vooral belangrijk voor de grote websites zoals die van Google, Microsoft, Twitter en Facebook omdat als jij sneller jouw content hebt, zij met dezelfde hoeveelheid hardware meer requests kunnen afhandelen. En voor partijen welke 1000-den webservers hebben staan, kan dat performance verschil een hoop geld besparen..
ik zie ze elke dag meerdere keren en om de zoveel tijd dat ik in m'n gmail account wil inloggen frustreer ik me in het feit dat ze eerst een volledige pagina geven met reclame waarom ik een account zou moeten nemen.

Kijk voor de grap eens naar de source van hun homepage: 133.164 karakters in 171 lijnen, daar kan nog wel wat in geoptimaliseerd worden voor de gewenste functionaliteit van de bezoekers, zijnde iets opzoeken
Pagina's worden juist wel geoptimaliseerd tegenwoordig. Met name omdat het vooral op mobile nog steeds relevant is. Google kijkt voor hun pageranking ook naar hoe snel een pagina laadt.

Met name latency is killing op mobile. Maar performance op het web is redelijk gecompliceerd.
Inderdaad, als je op je iPad een website bezoekt waarbij elke pagina meerdere MB's zijn, dan pak je toch liever de laptop.

Ook ongeoptimaliseerde webshops lopen procenten omzet mis door alleen de gebruikerservaring.

Vandaar ook dat Google pagina's met een snellere laadtijd hoger plaats in de zoekresultaten, omdat die pagina's waarschijnlijk een betere ervaring bieden.
daar tegenover staat wel heel wat minder packets.

Als jij een paar miljoen bezoekers krijgt en je kunt hiermee gigabytes aan data besparen heb je dus wel minder kosten, voor bedrijven is dat zeker interresant als je dat mij vraagt.
Een pagina die niet meer hoeft te zijn dan een invulformulier en een button om de request te transmitten is herleid tot iets waar ze dus een nieuw protocol voor hebben gemaakt.
Die niet meer zou moeten zijn dan een invulformulier en een button. Ik heb het net even nagekeken met de developer tools in IE en de Google frontpage vereist echter bijna 1MB aan data (waarschijnlijk minder met compressie, maar toch). Hiervan is het overgrote deel allerlei obfuscated javascript waarvan het doel me nou niet echt duidelijk is.

Misschien ben ik wel ouderwets, maar ik denk dat er een stuk meer winst te halen valt als websites gewoon van de zovele nutteloze tierlanteintjes ontdaan zouden worden. Dat geldt overigens net zo goed voor veel normale software en apps.
blij dat toch iemand die het doorheeft ;)
Interessant, zelf zit ik de helft van mijn surf time op internet via de Satelliet. Als je ziet met een langzame verbinding hoeveel requests er worden gedaan op de servers van Google als je gewoon iets simpels intoetst zoals een website kom je er achter dat het laden van pagina's vertraging oplevert en waar je niet hebt om gevraagd hun eigen schuld is. Misschien hebben ze het nu eindelijk zelf in de gaten, niet dat hun oplossing veel verbetering zal opleveren. Counting is more important.

[Reactie gewijzigd door Sailor69 op 19 april 2015 23:24]

Je kan een test opzetten met onderstaande tools :
https://www.chromium.org/quic/playing-with-quic

Ze leveren blijkbaar een custom server hiervoor.
Heb zeer sterke twijfels hierover ivm verschillende factoren die hieronder zijn beschreven maar moesten deze effectief op te lossen vallen / opgelost zijn en moesten ze dit ooit populair krijgen (waaraan ik twijfel - oa idd dankzij de problemen in zowat alle huidige firewalls, met recht) zal er wel een apache/nginx module en/of ondersteuning hiervoor komen (echter ik betwijfel dit, ga er straks wat meer over lezen, over de technische werking).
Een goede ontwikkeling, maar Google zal het moeilijk krijgen om dit door de markt te laten accepteren. Het nieuwe protocol heeft voor de webserver enorme voordelen maar de consument op een snelle verbinding zal er nauwelijks iets van merken. Om dit nieuwe protocol te kunnen gebruiken zullen bestaande applicaties, zoals webbrowsers, moeten worden aangepast, dat kan lang gaan duren en ook niet elke fabrikant zal daar zin in hebben.

Wordt het een gratis protocol of zullen fabrikanten hier licenties voor moeten betalen?

Bijzonder om te lezen is wel dat de Google Chrome browser dit protocol al gebruikt en dat Google het wil gaan uitbreiden naar al hun (mobiele) applicaties.

[Reactie gewijzigd door carlo op 19 april 2015 12:30]

Juist voor mensen met snelle verbindingen heeft het voordeel.
Op trage verbindingen heeft de rtt minder invloed op de totale load-tijd.

De rtt word niet kleiner wanneer je verbinding sneller wordt, dus uiteindelijk zit je alleen nog maar op die rtt te wachten. Door minder roundtrips te maken word de volledige load-tijd korter.
Klinkt logisch, maar volgens het artikel toch andersom:
De gebruikte technieken zorgen vooral bij langzame verbindingen voor snelheidsverbeteringen, aldus Google. Bij degenen in de top 1 procent met langzaamste verbinding kan de snelheidswinst zelfs oplopen tot 1 seconde bij het laden van de Google-hoofdpagina.
Wat is traag, is dat weinig bandbreedte of hoge latency?
en toch zegt het artiekel anders.... namelijk dat round trips bij trage verbindingen vaak zorgen dat je secondes gaat missen, en dat is ook wel logisch, bij snelle en stabiele verbindingen heb je de hele site in een paar grote pakketjes, bij trage verbindingen duurt het langer en heb je meer kans op onderbrekingen, als je dan ook nog eens die hele cicle vang authenticatie opnieuw moet doen ga je op een toch al trage verbinding NOG meer wachten,

dus relatief gezien heb je gelijk omdat bij snelle verbdingen de procentuele belasting groter is, maar als je het effectief in secondes gaat tellen, zal dat anders uitpakken vermoed ik, (op basis van googles statements).
Zo zit het helaas niet. Als je een TCP-verbinding opzet moet je sowieso 1 RTT wachten voordat je data kunt sturen. Hierbij is het irrelevant wat de bandbreedte van je verbinding is, 1 RTT = 1 RTT, en die hangt vooral af van de lengte van de route, niet van de verbindingssnelheid. Dus bij snelle verbindingen is 1 RTT relatief meer dan bij langzame verbindingen.

Als ik een pakketje naar San Fransisco wil sturen, maakt het niet veel uit of ik met een 56kbps dial-up modem-verbinding maak of met een 1 Gbps glasvezel-verbinding, in beide gevallen zal het ongeveer 150ms duren voordat ik data kan gaan sturen.

[Reactie gewijzigd door Yakotb op 20 april 2015 15:19]

Op snelle verbindingen heeft het feit dat het OS en zelfs de hardware een deel van het protocol afhandeld voordelen voor de CPU load van je systeem. Uiteraard kan dit bij niet nieuwe protocol ook nog in de toekomst gedaan worden.

ALs je echt op snelheid wil optimaliseren loop je inderdaad al gauw tegen de manier hoe het OS de protocollen heeft geimplementeerd. Dat is nauwelijks gedocumenteerd, en je hebt er vanuit gebruikers programma's maar beperkt invloed op. De workarround is dan wellicht UPD te gebruiken om zelf een transport portocol te maken dat geoptimaliseerd is voor het doel waar jij het voor nodig heeft.

Maar dit protocol is dus specifiek geoptimaliseerd voor web-https-tls achtige links. Voor p2p is het misschien weer heel beroerd.
Een goede ontwikkeling, maar Google zal het moeilijk krijgen om dit door de markt te laten accepteren. Het nieuwe protocol heeft voor de webserver enorme voordelen maar de consument op een snelle verbinding zal er nauwelijks iets van merken. Om dit nieuwe protocol te kunnen gebruiken zullen bestaande applicaties, zoals webbrowsers, moeten worden aangepast, dat kan lang gaan duren en ook niet elke fabrikant zal daar zin in hebben.
Ik zie daar helemaal geen probleem. Webbrowsers worden continu geupdate en http/2, wat in feite een aangepaste vorm is van het spdy-protocol van Google, zal ook ondersteund gaan worden. Met quic zou dat net zo goed kunnen gebeuren.
Maar UDP is in veel bedrijven een no-go als het gaat om webtraffic.
Er komt dus echt wel meer bij kijken dan een upgrade van je favoriete browser
Ik denk dat het heel simpel is. Op het moment dat Chrome een waarschuwing in Chrome laat zien: "Warning: your Internet provider is intentionally slowing down Google Chrome", dan zegt de CEO tegen de CTO dat hij daar geen zin in heeft en dat IT eens moet ophouden met moelijk doen. Vergeet niet dat bij CEO's de reputatie van Google ("Gratis! Werkt altijd!") een stuk beter is dan de eigen IT afdeling ("Duur! Inflexibel! Altijd problemen!")
Gelukkig zijn er nog bedrijven waar security boven de CEO staat :)
Het zou wat worden als de CEO gaa bepalen welke browser er gebruikt mag worden, en hoe de firewall moet beheerd worden.
uiteindelijk heeft Google zijn spdy ook de aanzet gegeven voor http/2 dat nu stilaan word uitgerold.
Was die round trip ook niet nodig vanwege veiligheid dan?

Verder merk je er met een snelle verbinding toch al weinig van (voor meeste Nederlanders dus vrij nutteloos) en gaat het meer om het opbouwen van de pagina zelf wat de meeste vertraging oplevert.
Zat daar aan te denken jah... Zie een ping van 100 in het voorbeeld. Als ik binnen Europa boven de 10-20 uitkomt is het een uitzondering.
Had Google geen plannen voor satellietinternet? Dat heeft relatief hoge latencies, als ik me goed herinner, en dan kan zo'n protocol wel helpen om performance te verbeteren.
Dat is niet daarvoor, daar zijn andere initiatieven voor omdat het zo afwijkt van de "Aardse" obstakels.

http://en.wikipedia.org/wiki/Interplanetary_Internet
http://www.wired.com/2013...-interplanetary-internet/

Daar komen / zijn andere protocollen voor. Quic is ook ontwikkeld met als doelstelling het internet via TLS (https) veiliger (encrypted) te maken maar wel minstens zo snel.

Dat betekend niet dat Google wilt dt iederen SSL keys gaat kopen, er zijn voorstellen voor een ontwerpen waarbij je je eigen TLS (ssl) key kan genereren en deze ook geldig is, mogelijk door een browser anders aangeduid om je erop te wijzen dat dit een eigen certificaat is. Het precieze weet ik zo even niet, zou goed kunnen in combinatie met een DNS record wat je TLS record aanvult / valideert.

Doel is in iedergeval geen unencrypted traffic op het internet.
Wat ze doen met Quic is gelijkaardig aan TCP FastOpen wat gewoon een IETF protocol is. De voornaamste vraag naar dit protocol zijn cellular networks waar latency relatief hoog is (ontwikkelingsgebieden + Chinese androids). De situatie is een beetje rommelig aan het worden met HTTP 2.0, Quic en SPDY. Een aantal eigenschappen proberen ze dus op de verkeerde laag op te lossen en zullen vanzelf verdwijnen (TCP-FO, TCP-MP, IPv6/IPSEC ...) en in een aantal opzichten zijn ze nogal complementair aan elkaar.

De pizza/muur smijt strategie van Google is vervelend want het forceert IETF/IEEE ze te beantwoorden met half afgewerkte oplossingen zoals HTTP 2.0 :( Het zou aangenamer zijn als ze collaboratief werken dan deze houding aannemen.

[Reactie gewijzigd door analog_ op 19 april 2015 16:00]

Ik zie niet dat http 2.0 niet correct is, er zijn nog wat dingen in ontwikkeling maar dat blijf je houden.

SPDY is er niet meer, dat is opgegaan in HTTP 2.0 Google heeft het een tijd gebruikt, is met wat verbeteringen opgenomen in de HTTP 2.0 standaard en google heeft aangekondigd begin 2016 SPDY support te stoppen. Google's diensten zie je nu ook over Quic komen (chrome browser) en over http2

Quic is een nieuwe initiatief, of het wat wordt zal de tijd leren.
TCPinitCWND sluit ook aardig aan bij TCP fastopen en volgens mij worden deze 2 in de laatste linux kernels bij default al gebruikt.

BIj IPv6 is IPsec niet meer mandatory. Het strikt vasthouden aan lagen (osi) vind ik ook wat achterhaald. Dat er standaarden moeten zijn zeker, maar deze kunnen beter zijn op basis van wat werkt dan op basis van dat het precies in theoretische vakjes past.

Als voorbeeld denk ik altijd aan een thuis router, of modem, of is het beide? En een switch, layer2 of layer3? De grenzen vervagen.
Ik zat eigenlijk niet zozeer aan interplanetaire communicatie te denken maar meer aan internet in gesoleerde gebieden, zoals Afrika, Australische Outback, eilanden, noem maar op.
Misschien moeten ze zichzelf wat minder gaan isoleren? ;)
Ware het niet dat je al 3 rtt's hebt moeten wachten voordat de eerste payload binnenkomt.
Klinkt interssant. Omdat ze UDP gebruiken, moet er wel aan error control en correctie gedaan worden op de applicatielaag. Ik vraag me af wat hiervaan de impact is op het daadwerkelijk verzonden volume en of het protocol ook resilient is voor loss van meerdere packets. En als dat zo is, hoe de recovery dan gebeurt. Vermoedelijk moet de client aan de server laten weten dat er packets missen. Dat kan best complex zijn omdat UDP packets nu eenmaal niet genummerd zijn en door de inherente structuur van het internet niet noodzakelijk in volgorde of synchroon binnenkomen.
Ik gok zo dat er best veel winst geboekt kan worden op kwalitatief goede verbindingen door een hele zwik 'overbodig' verkeer te schrappen, maar dat anderzijds de performantie wel eens des te harder zou kunnen lijden van minder goede connecties.
Mangled packets wordt met parity packets gecorrigeerd, net zoals bij bijvoorbeeld Raid 5 gebeurt. Na N aantal pakketten wordt een parity pakket gestuurd ter verificatie en mogelijkerwijs correctie van ten hoogste 1 pakket.

Missing packets wordt net als bij TCP actief heropgevraagd:
RETRANSMISSION RECOVERY FROM PACKET LOSS
In cases where packet losses have exceeded the error-recovery limits of the protocol, a request for retransmission may be implicitly or explicitly produced. The techniques for instigating retransmission will be modeled after the TCP protocol. In keeping with that system, acknowledgements of data that is received will be periodically sent, and timeouts may be used to spontaneously instigate a retransmission when no acknowledgement is received. Acknowledgments will also serve a key role in delivering congestion related bandwidth information, analogously to TCP’s ACK’s impact on its congestion windows.
Daarnaast hebben ze nog een hoop andere truukjes erbij verzonnen zoals pacing (rate limiting vanuit de zender) en zelfs voorbarige hertransmissie. Meer info in het Design Document
Maar al dit gebeurt volledig op de applicatielaag. Voor Tcp/ip incl errorcorrectie zit op elke deftige nic hardware acceleratie. Vandaar mijn zorg mbt performantie op minder degelijke verbindingen. Ten eerste moet elk pakket, goed of niet, doorheen de hele stack. Dan moet er gewacht worden, aangezien ontbrekende paketten misschien nog op komst zijn. Crc en parity zijn prima, maar dat betekent niet alleen dat data hersteld kan worden, maar ook dat de feitelijke data over meer paketten verdeeld wordt.
Versta mij niet verkeerd: ik ben er van overtuigd dat UDP zeker niet moet onderdoen voor TCP, met name qua performantie. Het hangt af van de implementatie in de applicatielaag en van de feitelijke netwerkkwaliteit of er werkelijk voordelen overblijven. Niet staat ons overigens in de weg om zowel tcp als udp te gebruiken, zoals we ook voor dns doen.
Je kunt wellicht altijd terugvallen op TCP, ook zou je pakketjes kunnen nummeren in de applicatielaag :)
Een groot nadeel van dit protocol is dat TOR dan niet meer werkt want die beveiligd alleen TCP verbindingen en geen UDP. Dus het zou vervelend zijn als websites alleen quic zouden gaan ondersteunen.
Gaat voorlopig ook niet gebeuren want dan heb je dat oude browsers en machines er niet mee om kunnen gaan en je effectief een deel van je bezoekers de rug toekeert
dan kan je altijd i2p gebruiken, die ondersteunt wel gewoon UDP
Dit is zeer zeker een goede ontwikkeling van google. Ik ken namelijk al iemand die als workaround een permanente tunnel openzette tussen zijn server en zijn amerikaanse relay om dit te versnellen. Dat lijkt leuk hobby werk tot je er achter komt dat cloudflare dit doet op tcp basis in hun railgun systeem om de zelfde reden.

Hoewel ik dit hobby systeem zelf niet heb kunnen zien gaf deze owner mij aan dat de permanente verbinding om deze open te houden wel constant bandbrete verbruikt. Hoeveel kan ik helaas niet zeggen.

Het grote voordeel van google is dus een systeem dat een stuk makkelijker te implementeren is en niet de constante bandbrete slurpende verbinding heeft naar de eindgebruiker.

[Reactie gewijzigd door henk717 op 19 april 2015 13:26]

Dus dit werkt ook voor games?
zoja kan het de ms verlagen tussen Europa en Amerika?
Zit op dit moment rond de 125 ms wat best wel hoog is...
Helaas niet, waarschijnlijk heb ik in mijn orginele text zijn gameserver met een andere server verward, dit is aangepast.
Bij games heb je namelijk al een constante verbinding met de server in de meeste gevallen.

Wel zijn er andere truukjes mogelijk die ik toepas binnen mijn eigen source engine server.
Je kunt namelijk het totale pakket wat uitgestuurd wordt vergroten, dit heb ik maximaal ingesteld zodat de volledige hedendaagse bandbrete wordt gebruikt.

Dit betekend in de meeste gevallen dat er bij een ontbrekend pakket de volledige data wel binnen komt bij het volgende. De game hoeft deze dus niet in een Que te plaatsen en de speler niet een seconden te wachten tot dat de game alles in deze Que heeft verwerkt.

De optimalizaties hebben wonderen gedaan voor mijn Half-Life 2 Deathmatch server. Niet alleen is het nu mogelijk veel meer npc's en objecten actief te hebben op 1 map doordat de maximale packages groter zijn. Veel spelers rond de hele wereld hebben gerapporteerd dat hun 200MS ping ineens wel speelbaar is geworden.

Hierbij een video van de oorspronkelijke connectie test : https://www.youtube.com/watch?v=ZcZhxFohQlM

[Reactie gewijzigd door henk717 op 19 april 2015 13:36]

Weet je zeker dat wat jullie aan het doen zijn niet gewoon veel kleine pakketjes toevoegd, wat er voor zorgt dat een router ergens zijn statische allocatie van zeg 1000 paketten aan buffer veel sneller kan legen. Omdat 1000 x 84 bytes veel minder data (dus ook 'vonkjes' op de fysieke laag) is dan 1000 x 1492 bytes.

Ook de bufferbloat.net mensen hebben opgemerkt dat gewoon veel kleine pakketten in dezelfde richting dumpen de latency(-variatie) aanmerkelijk kan verbeteren. Zou fijn zijn als we alle routers eenmaal hebben vervangen door versies met fair queueing en dynamische buffer allocatie per verbinding (PIE, fq_codel, sch_fq).

Paper: http://www.i-teletraffic....ase/2014/braud2014tcp.pdf

Anderszins kan een versleutelde tunnel natuurlijk service detectie van traffic shaping op de routers verhinderen, waardoor je met gebruik van een tunnel in een meer standaard en eerlijker wachtrij terecht komt.

[Reactie gewijzigd door Henk Poley op 20 april 2015 08:08]

Haal met gemak 92ms naar US east. (east ja, niet west) dus dat is nog verder dan New York. Waarschijnlijk zit het merendeel van jou latency bij je telefoonlijn. Kabel heeft een kleine 6-8ms naar de isp, DSL kom je al gauw bij de 20/30ms extra naar je telefooncentrale.

<100ms prima haalbaar dus.

[Reactie gewijzigd door Marctraider op 19 april 2015 15:55]

New York = US East
Zeg dat de afstand circa 6000km is, en je bent circa 5 microseconde kwijt per kilometer (volgens: http://www.m2optics.com/b...ing-Optical-Fiber-Latency).
Dan is de tijd die benodigd is om een signaal over de glasvezel te sturen ongeveer 30ms. Omdat je de ping weer terug moet krijgen ben je alleen aan afstand al circa 60ms kwijt. Het zal dus niet bar veel sneller kunnen!
Transatlantisch is 125ms latency best netjes, daar ga je niet heel veel kunnen winnen. Een kale ICMP ping doet er normaal al rond de 100ms over naar NY.
Het werkt door de overhead bij het initieel opzetten van de verbinding te verkleinen. Het kan een signaal niet sneller doen gaan. Je 125ms ping is simpelweg afkomstig vanwege de afstand die het signaal moet afleggen.
Afaik maken games al vaak gebruik van UDP, omdat de controlchecks in TCP onnodig zijn.
Ook leuk als je met een content filter zit en dit soort gedrocht wordt op layer 3 doorgelaten zonder opvolging op layer 7. Weg bescherming...

Teredo is ook zoiets leuk om elke vorm van beveiliging te omzeilen...

[Reactie gewijzigd door 148406 op 19 april 2015 14:46]

Tja, als je level 8 filtering ;) wil toepassen op protocol stack level 3, dan heb je een design probleem ja. Maar met de brede introductie van HTTPS was dat toch al een probleem, QUIC of niet.
Er is geen level 8...
Dat was de knipoog - je wilt feitelijk filteren op een te hoog abstractie nivo.
Erg informatief document: https://docs.google.com/d...sQx7rFV-ev2jRFUoVD34/edit
Maar eigenlijk moeten we dus stoppen met TCP en overgaan op UDP ?

[Reactie gewijzigd door walkstyle op 19 april 2015 14:44]

Dit lijkt goed nieuws, en dat zal het ook wel zijn, alleen de meeste tijd zit hem nog steeds in het lokaal verwerken van de gedownloade pagina, al hangt dat wel van de pagina af natuurlijk. Deze pagina zelf bijvoorbeeld kost me 600 ms van de 800 ms (ongeveer) totaal.
In mijn Chrome 42.0 wordt QUIC inderdaad al gebruikt om google.nl te laden.
(klik op het groene slotje en dan op verbindingen, dan staat er "De verbinding maakt gebruik van QUIC.")

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True