Your SlideShare is downloading. ×
0
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Web performance Part 1 "Networking theoretical basis"
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Web performance Part 1 "Networking theoretical basis"

359

Published on

The presentation is devoted to some theoretical questions connected with Web Performance. Further presentations will dwell on more practical aspects of web applications performance improvement. All 4 …

The presentation is devoted to some theoretical questions connected with Web Performance. Further presentations will dwell on more practical aspects of web applications performance improvement. All 4 presentations will help you reduce latency, enrich optimization of javascript code, discover tricky parts when working with API browser, see best practices of networking and learn lots of other important and interesting things. Enjoy! =)

Published in: Software
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
359
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
14
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Web Performance Networking Theoretical Basis Andrew Kovalenko & Mykyta Semenistyi
  • 2. Andrew Kovalenko Education: Donetsk National University, Physics faculty. Medical Supplier Company “Lyapko”: 2007 - 2008. eGo Creative Media Solutions: 2008 - now. Position: Team Lead in Jaybird Marketing Group Team. Author of the “KineticJS Starter” book. Author of the “BodyMotivator” project. Software Developer and Web Junkie. Twittering about frontend design and development. Slogan: Software for the people! @cybind http://blog.cybind.net
  • 3. Mykyta Semenistyi Donetsk National Technical UniThesis:“Network optimizations of web apps” Binary Studio 2012 - now @msemenistyi
  • 4. Why we need fast websites? Fast website better user engagement better user retention higher conversions
  • 5. Table of contents ➔ latency & bandwidth ➔ bufferbloat ➔ TCP fast open ➔ congestion control & avoidance ➔ slow start restart ➔ UDP ➔ Wireless Networks ➔ HTTP
  • 6. Latency + Bandwidth ≈ Performance Ilya Grigorik: High Performance Browser Networking
  • 7. Internet & broadband adoption
  • 8. More bandwidth doesn’t matter (much) Ilya Grigorik: High Performance Browser Networking
  • 9. Latency components ➔ propagation delay ➔ transmission delay ➔ processing delay ➔ queuing delay
  • 10. Decreasing transatlantic latency with Hibernia Express
  • 11. TCP/IP ➔ retransmission of lost data ➔ in-order delivery ➔ congestion control and avoidance ➔ data integrity ➔ more
  • 12. Three-way handshake
  • 13. Three-way handshake Ilya Grigorik: High Performance Browser Networking
  • 14. TCP fast open (TFO) Linux 3.7+
  • 15. Bufferbloat Linux 3.5+: CoDel
  • 16. Flow control Ilya Grigorik: High Performance Browser Networking
  • 17. Congestion control & avoidance Ilya Grigorik: High Performance Browser Networking
  • 18. Slow start Ilya Grigorik: High Performance Browser Networking
  • 19. Slow start restart
  • 20. The TCP profit 264 ms 96 msIlya Grigorik: High Performance Browser Networking
  • 21. TCP performance checklist ➔ Linux: 3.7+ ➔ cwnd size = 10 ➔ disable slow-start after idle ➔ enable window scaling ➔ eliminate redundant data transfers ➔ compress transferred data ➔ position servers closer to the user ➔ reuse established TCP connections
  • 22. UDP
  • 23. ➔ Reliable ➔ Connection-oriented ➔ Segment retransmission and flow control through windowing ➔ Segment sequencing ➔ Acknowledge segments ➔ Unreliable ➔ Connectionless ➔ No windowing or retransmission ➔ No sequencing ➔ No acknowledgement TCP UDP
  • 24. Mobile networks Ilya Grigorik: High Performance Browser Networking
  • 25. Mobile networks performance checklist ➔ Preserve battery power ➔ Eliminate periodic and inefficient data transfers ➔ Anticipate network latency overhead ➔ Design for variable network interface availability ➔ Burst your data and return to idle ➔ Offload to WiFi networks
  • 26. HTTP $> telnet google.com 80 Connected to 74.125.xxx.xxx GET /about/ (hypertext response) (connection closed) $> telnet website.org 80 Connected to xxx.xxx.xxx.xxx GET /rfc/rfc1945.txt HTTP/1.0 User-Agent: CERN-LineMode/2.15 libwww/2.17b3 Accept: */* HTTP/1.0 200 OK Content-Type: text/plain Content-Length: 137582 Expires: Thu, 01 Dec 1997 16:00:00 GMT Last-Modified: Wed, 1 May 1996 12:45:26 GMT Server: Apache 0.84 (plain-text response) (connection closed) $> telnet website.org 80 Connected to xxx.xxx.xxx.xxx GET /index.html HTTP/1.1 Host: website.org User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4)... (snip) Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*; q=0.8 Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 Cookie: __qca=P0-800083390... (snip) HTTP/1.1 200 OK Server: nginx/1.0.11 Connection: keep-alive Content-Type: text/html; charset=utf-8 Via: HTTP/1.1 GWA Date: Wed, 25 Jul 2012 20:23:35 GMT Expires: Wed, 25 Jul 2012 20:23:35 GMT Cache-Control: max-age=0, no-cache Transfer-Encoding: chunked 100 <!doctype html> (snip) 100 (snip) 0 GET /favicon.ico HTTP/1.1 0.9 (1991) 1.0 (1996) 1.1 (1999)
  • 27. Components of HTTP request WebPageTest.org
  • 28. WebPerformance Landing Page WebPageTest.org
  • 29. HTCPCP/1.0 The Hyper Text Coffee Pot Control Protocol (HTCPCP) ● controlling ● monitoring ● diagnosing coffee pots. It is specified in RFC 2324, published on 1 April 1998. http://www.error418.org/
  • 30. HTTP 2.0 ➔ March 2012: Call for proposals for HTTP 2.0 ➔ September 2012: First draft of HTTP 2.0 ➔ July 2013: First implementation draft of HTTP 2.0 ➔ April 2014: Working Group last call for HTTP 2.0 ➔ November 2014: Submit HTTP 2.0 to IESG as a Proposed Standard Ilya Grigorik: High Performance Browser Networking
  • 31. HTTP 2.0 ➔ Improve latency over HTTP 1.1. ➔ Address the "head of line blocking". ➔ One TCP connection. ➔ Semantics of HTTP 1.1. ➔ Interact with HTTP 1.x. goals Ilya Grigorik: High Performance Browser Networking
  • 32. HTTP 2.0 Ilya Grigorik: High Performance Browser Networking Binary Framing Format
  • 33. HTTP 2.0 Ilya Grigorik: High Performance Browser Networking TCP Connection
  • 34. HTTP 2.0prioritization Ilya Grigorik: High Performance Browser Networking ➔ 0 - the highest. ➔ 2^31−1 - the lowest. ➔ no spec for implementation CSS Fonts Icons Images
  • 35. HTTP 2.0server push Ilya Grigorik: High Performance Browser Networking
  • 36. HTTP 2.0 Ilya Grigorik: High Performance Browser Networking Streams Multiplexing
  • 37. SPDYgoals ➔ Target 50% reduction in page load time. ➔ Avoid changes to content by website authors. ➔ Avoid changes in network infrastructure. ➔ Develop with the open-source community. ➔ Gather real performance data. Ilya Grigorik: High Performance Browser Networking Chrome, FF, IE11, Opera 12.10 SPDY/3

×