primer to browser netwroking
TRANSCRIPT
Primer of Browser Networking
Shuya OSAKI@otimsuya69 RG:shuyaB3 KUMO Kenkyu Gundan
RG’s rotary lecture
Who’s this guy ? 2
Name
KG
KUMO
Interest
Favorite
3Aim at …Goal- get to know ingredients of Browser Networking- learning technology of below Application Layer
Target- Newcomer of RG- someone who interested in Web and Network Protocol
Contents- Network Model - Building Block of TCP- Brief History of HTTP
3
Network Model
4
3
Network Interface
Internet
Application
Transport
Network Model 5
3Network Model
TCP/IP 4 Reference Model
6
3
ApplicationApplication Layer
This Layer provide user to service.
As… HTTP, DNS, TLS/SSL, IMAP, SSH etc …
TCP/IP 4 Reference Model 7
3
ApplicationTransport Layer
This Layer respond to App layer’s request and order to Internet layer.
Transport Layer have 2 protocol. - TCP - UDP
Transport
TCP/IP 4 Reference Model 8
3
ApplicationInternet Layer
This Layer excuses data transfer.
IP (IPv4/IPv6) belongs to this layer.
Internet
TCP/IP 4 Reference Model 9
3
ApplicationNetwork Interface Layer
This Layer provide data transfer.
This Layer provide hardware too.
As… - Switching hub - Ethernet cable
Network Interface
TCP/IP 4 Reference Model 10
3TCP/IP 4 Reference Model
ApplicationApplication
InternetTransport
Today, We will discuss …
11
3What is TCP/IP ?? This is set of rules (protocols) governing communications
among all computers on the Internet.
IPInternet Protocol
TCP Transmission Control Protocol
IP provides the host-to-host routing (select communication path) and addressing(assign address on the Internet).
TCP provides the abstraction of a reliable network running over an unreliable channel.
12
TCP
13
3TCP
Today, We treat important ingredients of TCP.
Menu is … - 3 way handshake - Flow control - Slow start - HoL Blocking
14
3TCP (3 way handshake)
SYN = Synchronize , ACK = Acknowledge
Handshake is ritual of Communication !- SYN
Sender send sequence number X in random.
- SYN ACK
Receiver increments x by one, picks own ran- dom sequence number y.- ACK
Sender increments both x and y by one and completes the handshake.
15
3TCP Flow control
• Flow control is mechanism prevent the sender from overwhelming the receiver with data it may not be able to process.
• Each side of the TCP connection advertises its own receive window (rwnd), which communicates the size of the available buffer space to hold the incoming data.
16
3
•
Internet�
2015� ����Site from kei-sensei class.
TCP Flow control
17
3
•
Internet�
2015� ����
Site from kei-sensei class.
TCP Flow control
18
3
•
Internet�
2015� ����
Site from kei-sensei class.
TCP Flow control
19
3
• •
Internet�
2015� ����
Site from kei-sensei class.
TCP Flow control
20
3
• •
Internet�
2015� ����
Site from kei-sensei class.
TCP Flow control
21
3
• Slow start means slow and to grow the window size as the packets are acknowledged.
• If packet loss occurred, server reduces the size of the packet and increments packet exponentially.
Site from High Performance Bowser Networking
TCP Slow start 22
3
Good Point of TCP- Ensure secure connection if route isn’t reliable.- Definitely transfer packets.
Bad Point of TCP - Time loss occur if packet lost.- Application can’t treat data when packet is complete.
This bad point is called . HoL Blocking
TCP HoL Blocking
23
History of Web Protocol
24
History of Web Protocol
HTTP 0.9
HTTP 1.0
HTTP 1.1HTTP 2.0
SPDY
QUIC
25
$> telnet igvita.com 80
Connected to 173.230.151.99
GET /archive
Hypertext delivery with HTTP 0.9! - eom.
(connection closed)
HTTP 0.9�is the�ultimate MVP���RQH�OLQH��SODLQ�WH[W�ȊSURWRFROȋ�WR�WHVW�GULYH�WKH�ȊZZZ�LGHDȋ�
History of Web ProtocolHTTP 0.9
Site from Ilya Grigorik
26
$> telnet ietf.org 80
Connected to 74.125.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
Last-Modified: Wed, 1 May 1996 12:45:26 GMT
Server: Apache 0.84
4 years of rapid iteration later… eom.
(connection closed)
HTTP 1.0�is an informational RFC ��GRFXPHQWV�ȊFRPPRQ�XVDJHȋ�RI�+773�IRXQG�LQ�WKH�ZLOG�
History of Web ProtocolHTTP 1.0
Site from Ilya Grigorik
27
$> telnet google.com 80
Connected to 74.125.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
Cookie: __qca=P0-800083390... (snip)
HTTP/1.1 200 OK
Connection: keep-alive
Transfer-Encoding: chunked
Server: nginx/1.0.11
Content-Type: text/html; charset=utf-8
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
100
<!doctype html>
(snip)
HTTP 1.1�ships as RFC standard in 1999 ��K\SHU^W ̶H ̶[̶W ̶`PHGLD�DOO�WKH�WKLQJV�
History of Web ProtocolHTTP 1.1
Site from Ilya Grigorik
28
History of Web ProtocolHTTP 2.0
Site from Ilya Grigorik
● One TCP connection
● Request → Stream○ Streams are multiplexed○ Streams are prioritized
● Binary framing layer○ Prioritization○ Flow control○ Server push
● Header compression
HTTP/2 in one slide…
Site from Ilya Grigorik
29
What is QUIC ??
What is QUIC ??QUIC is Google’s new multiplexing protocol.
This is run on UDP.
QUIC succeed to SPDY’s features.
Site from HTTP over UDP: an Experimental Investigation of QUIC
QUIC’s layer
Features of QUICStream multiplexing over the same UDP Connections.
UDP resilience to loss (QUIC divorced HOL blocking !!)
FEC resilience to loss QUIC sends XORsum of the packets.
TLS-like security
Low cost, 0-RTT start instead of TCP handshake
Pluggable congestion control TCP-CUBIC and Pacing-based
30
3Bibliography
All this slide depends on “High performance Browser Networking”.
If you are interested in these contents,you can read this book on the Internet for free !
→ http://chimera.labs.oreilly.com/books/1230000000545/index.html
34