Presentation laddar. Vänta.

Presentation laddar. Vänta.

Daniel Stenberg Mer data på kortare tid, tack!. Daniel Stenberg 2 31:a maj 2010 Daniel Stenberg Haxx och Fossgruppen curl libssh2 IETF

Liknande presentationer


En presentation över ämnet: "Daniel Stenberg Mer data på kortare tid, tack!. Daniel Stenberg 2 31:a maj 2010 Daniel Stenberg Haxx och Fossgruppen curl libssh2 IETF"— Presentationens avskrift:

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


Ladda ner ppt "Daniel Stenberg Mer data på kortare tid, tack!. Daniel Stenberg 2 31:a maj 2010 Daniel Stenberg Haxx och Fossgruppen curl libssh2 IETF"

Liknande presentationer


Google-annonser