Ladda ner presentationen
Presentation laddar. Vänta.
Publicerades avAdam Gustafsson
1
Daniel Stenberg Mer data på kortare tid, tack!
2
Daniel Stenberg 2 31:a maj 2010 Daniel Stenberg Haxx och Fossgruppen curl libssh2 IETF http://daniel.haxx.se/
3
Daniel Stenberg 3 31:a maj 2010 Agenda Transport Framtid API
4
Daniel Stenberg 4 31:a maj 2010 Protokoll-lager Link Internet Transport Application Innehåll som HTML och annat
5
Daniel Stenberg 5 31:a maj 2010 Link- och Internet-lagren Bild från www.useit.com 50 % mer bandbredd varje år
6
Daniel Stenberg 6 31:a maj 2010 Link och Internet, RTT ● RTT, Round Trip (delay) Time står still eller backar ● Genomsnitt till Google inom USA: 90 ms, i världen 100 ms ● Telefoner GSM/3G upp till 6000 ms ● DSL: 40-50 ms ● Kabel: 60 ms ● Uppringt modem: 120-150 ms ● (MTUs...)
7
Daniel Stenberg 7 31:a maj 2010 TCP Transport: fördröjningar ● DNS resolveUndvik, cacha ● Handshake – 3 wayPool, återanvänd ● Nagle – vänta för att fylla på mer Kan stängas av ● Slow startVar medveten ● Delayed ACKsNär 2 är bättre än 1 Att optimera för mindre fördröjningar och kortare RTT kan leda till sämre throughput och bandbredd
8
Daniel Stenberg 8 31:a maj 2010 TCP Transport: fördröjningar ● DNS resolveUndvik, cacha ● Handshake – 3 wayPool, återanvänd ● Nagle – vänta för att fylla på mer Kan stängas av ● Slow startVar medveten ● Delayed ACKsNär 2 är bättre än 1 Att optimera för mindre fördröjningar och kortare RTT kan leda till sämre throughput och bandbredd
9
Daniel Stenberg 9 31:a maj 2010 TCP Transport: fördröjningar ● DNS resolveUndvik, cacha ● Handshake – 3 wayPool, återanvänd ● Nagle – vänta för att fylla på mer Kan stängas av ● Slow startVar medveten ● Delayed ACKsNär 2 är bättre än 1 Att optimera för mindre fördröjningar och kortare RTT kan leda till sämre throughput och bandbredd
10
Daniel Stenberg 10 31:a maj 2010 TCP Transport: fördröjningar ● DNS resolveUndvik, cacha ● Handshake – 3 wayPool, återanvänd ● Nagle – vänta för att fylla på mer Kan stängas av ● Slow startVar medveten ● Delayed ACKsNär 2 är bättre än 1 Att optimera för mindre fördröjningar och kortare RTT kan leda till sämre throughput och bandbredd
11
Daniel Stenberg 11 31:a maj 2010 TCP Transport: fördröjningar ● DNS resolveUndvik, cacha ● Handshake – 3 wayPool, återanvänd ● Nagle – vänta för att fylla på mer Kan stängas av ● Slow startVar medveten ● Delayed ACKsNär 2 är bättre än 1 Att optimera för mindre fördröjningar och kortare RTT kan leda till sämre throughput och bandbredd
12
Daniel Stenberg 12 31:a maj 2010 TCP Transport: fördröjningar ● DNS resolveUndvik, cacha ● Handshake – 3 wayPool, återanvänd ● Nagle – vänta för att fylla på mer Kan stängas av ● Slow startVar medveten ● Delayed ACKsNär 2 är bättre än 1 Att optimera för mindre fördröjningar och kortare RTT kan leda till sämre throughput och bandbredd
13
Daniel Stenberg 13 31:a maj 2010 HTTP ● Ovanpå TCP så... ● Request size, pratigt protokoll ● Cookie sizes, cookies skickas alltid om de matchar ● Cache friendliness, skicka inte mer HTTP än nödvändigt ● Pipelining, besegra RTT men... ● Compression
14
Daniel Stenberg 14 31:a maj 2010 HTTP ● Ovanpå TCP så... ● Request size, pratigt protokoll ● Cookie sizes, cookies skickas alltid om de matchar ● Cache friendliness, skicka inte mer HTTP än nödvändigt ● Pipelining, besegra RTT men... ● Compression
15
Daniel Stenberg 15 31:a maj 2010 HTTP ● Ovanpå TCP så... ● Request size, pratigt protokoll ● Cookie sizes, cookies skickas alltid om de matchar ● Cache friendliness, skicka inte mer HTTP än nödvändigt ● Pipelining, besegra RTT men... ● Compression
16
Daniel Stenberg 16 31:a maj 2010 HTTP ● Ovanpå TCP så... ● Request size, pratigt protokoll ● Cookie sizes, cookies skickas alltid om de matchar ● Cache friendliness, skicka inte mer HTTP än nödvändigt ● Pipelining, besegra RTT men... ● Compression
17
Daniel Stenberg 17 31:a maj 2010 HTTP ● Ovanpå TCP så... ● Request size, pratigt protokoll ● Cookie sizes, cookies skickas alltid om de matchar ● Cache friendliness, skicka inte mer HTTP än nödvändigt ● Pipelining, besegra RTT men... ● Compression
18
Daniel Stenberg 18 31:a maj 2010 HTTP ● Ovanpå TCP så... ● Request size, pratigt protokoll ● Cookie sizes, cookies skickas alltid om de matchar ● Cache friendliness, skicka inte mer HTTP än nödvändigt ● Pipelining, besegra RTT men... ● Compression
19
Daniel Stenberg 19 31:a maj 2010 HTTP i webbläsare ● Många koppel. Var 2. Numera 6 eller 8. Snart... ● Ingen Pipelining ● AJAX ● “long polling”
20
Daniel Stenberg 20 31:a maj 2010 HTTP i handhållet ● Wifi ● GSM/3g ● High latency, low bandwidth
21
Daniel Stenberg 21 31:a maj 2010 API ● Hur man gör saker har betydelse
22
Daniel Stenberg 22 31:a maj 2010 Typisk TCP-klient Så länge klienten lever { vänta på socket-händelse Kolla vilken socket som det hände på Hantera socketen } Traditionellt med select() eller poll()
23
Daniel Stenberg 23 31:a maj 2010 10000 koppel ändrar reglerna ● select och poll blir exponentiellt sämre med antalet koppel
24
Daniel Stenberg 24 31:a maj 2010 event-based ● Agera vid händelse på socketen det händer på ● Inte leta, veta Bild från http://www.monkey.org/~provos/libevent/ Bild från http://developers.sun.com
25
Daniel Stenberg 25 31:a maj 2010 event-klient Function call_on_event { Hantera trafik på socketen } event_wait( &call_on_event) Libevent, libev, epoll, kqueue,
26
Daniel Stenberg 26 31:a maj 2010 Exempel ● libcurl... ● är open source ● leds av Daniel ● kan FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, IMAP, SMTP, POP3 och RTSP just nu ● det främsta dataöverförings-libraryt helt enkelt
27
Daniel Stenberg 27 31:a maj 2010 libcurl ● DNS cache ● Återanvänder TCP-koppel ● API: select-stil ● API: event-stil, upp tille mycket snabbare ● C10K, upp till C70K
28
Daniel Stenberg 28 31:a maj 2010 Framtiden ● WebSockets ● SPDY ● SCTP ● MPTCP ●...
29
Daniel Stenberg 29 31:a maj 2010 Framtid 1: WebSockets ● WHATWG startade ● IETF hybi working group ● Browser till server ● Lösning på HTTP long-polling problemet ● TCP-replacement över TCP ● Javascript-centric (kan inte skicka binärt!) ● HTTP upgrade ● Debatteras ivrigt just nu
30
Daniel Stenberg 30 31:a maj 2010 Framtid 2: SPDY ● Google ● HTTP replacement ● Multiplexade strömmar över ett koppel ● Pririterade strömmar ● Server-initierade strömmar ● Chrome har implementation ● Experiementellt
31
Daniel Stenberg 31 31:a maj 2010 Framtid 3: SCTP ● IETF (RFC 4960, 2007) ● Ersätter TCP som transport ● Meddelanden, inte byte-strömmar ● Flera samtidiga logiska meddelande-strömmar ● HTTP över SCTP ● Över UDP? ● Sannolikhet oklar
32
Daniel Stenberg 32 31:a maj 2010 Framtid 4: MPTCP ● Multi-Path TCP ● IETF ● Flera vägar mellan source och destination ● Kompatibelt API för applikationer ● “Snällt mot nätet” ● Som gjort för saker med flera interface ● Sannolikhet: trolig
33
Daniel Stenberg 33 31:a maj 2010 MPTCP
34
Daniel Stenberg 34 31:a maj 2010 MPTCP ett koppel
35
Daniel Stenberg 35 31:a maj 2010 MPTCP två koppel
36
Daniel Stenberg 36 31:a maj 2010 Summering ● RTT står still fast bandbredd ökar ● TCP har fördröjningar ● HTTP kör på TCP ● Använd rätt API:er ● WebSockets, SPDY, SCTP och MPTCP
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.