Spdy protocol
This presentation is the property of its rightful owner.
Sponsored Links
1 / 25

SPDY protocol PowerPoint PPT Presentation


  • 74 Views
  • Uploaded on
  • Presentation posted in: General

SPDY protocol. By Jory Cohen Made for CISC856, Spring 2010 Thanks to Dr. Amer , Mike Belshe (Google), Jon Leighton. What is SPDY?. Experimental protocol being researched by Google and the UD PEL

Download Presentation

SPDY protocol

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Spdy protocol

SPDY protocol

By Jory Cohen

Made for CISC856, Spring 2010

Thanks to Dr. Amer, Mike Belshe(Google), Jon Leighton


What is spdy

What is SPDY?

  • Experimental protocol being researched by Google and the UD PEL

  • Application-layer protocol for transporting content over the web, designed specifically for minimal latency


Why spdy

Why SPDY?

  • HTTP is inefficient

    • Single request per connection

      • Browsers now open 6connections per domain for concurrency

    • Only clients can initiate requests

    • Header size – 200 bytes to over 2 KB

    • Redundant headers

    • Optional data compression


What does spdy offer

What does SPDY offer?

  • Multiplexed requests

    • No limit to number of requests over SPDY connection

  • Prioritized requests

  • Compressed headers and data

  • Server push and server hint

  • Only changes way data is written to network

    • SPDY keeps cookies, encoding negotiations, etc. same as HTTP


Which layer is spdy

Which layer is SPDY?


Some spdy features

Some SPDY features

  • Streams can be bi-directional

  • SPDY allows for unlimited concurrent streams over a single TCP connection

  • Fewer network connections need to be made, and fewer, but more densely packed, packets are issued


Spdy benefits

SPDY benefits

  • The client can request as many items as the clientwants from the server, and assign a priority to each request

  • SPDY compresses request and response HTTP headers, resulting in fewer TCP PDUs and fewer bytes transmitted


Server push

Server Push

  • Server pushes to the client before something is requested

    • Valuable for visiting a webpage, server knows everything that should be requested

    • Reduces the client’s processing time before being able to send out subsequent requests

    • Server must open multiple streams


Spdy protocol

Server Push Example

Client

Server

Stream 1

HTTP Get request

Response for HTTP Get

Stream 1

Server push

Stream 2

Server push

Stream 4

Server push

Stream 6

Server push

Stream 8


Server hint

Server hint

  • Server tells client that itwill probably ask for certain resources

    • Client can request resources due to server hint much faster than without

    • Client can also make decision to ignore hint given by the server

    • Has similar benefit to server push, reduces processing time necessary at client before new requests are sent to the server


Spdy protocol

Server Hint Example

Client

Server

HTTP Get request

Stream 1

Response for HTTP Get

Stream 1

Server hints to client

Stream 2

Client request based on hint

Stream 3

Client request based on hint

Stream 5

Client request based on hint

Stream 7

Client request based on hint

Stream 9

Server responses

Streams 3,5,7,9


Stream ids and connections

Stream IDs and connections

  • Connections started by the client must be odd

  • Connections started by the server must be even

  • Stream number 99 can be initiated before stream number 2

  • No steam ID of 0

  • Stream must be set to be unidirectional in SYN_STREAM, default would be bi-directional


Example

Example

  • Client sends SYN_STREAM to open connection

  • Client can begin sending data or requests for data without waiting for response

  • After client is done sending, clientsets the FLAG_FIN flag and connection is half closed


Spdy protocol

Client

Server

Stream ID = 1

SYN_STREAM

Data or Requests

Stream ID = 3

SYN_STREAM

Data or Requests

SYN_STREAM

Stream ID = 2

Data or Requests

Stream ID = 1

SYN_REPLY

SYN_REPLY Stream 3 & Data Stream 1


Connection termination

Connection termination

  • Normal termination

    • Both sides have sent FLAG_FIN

  • Abrupt termination

    • One side sends RST_STREAM

  • TCP connection teardown

    • Both sides must realize that the connection was abnormally terminated


Spdy protocol

Client

Server

Stream 3

Data + FLAG_FIN

Data reply for Stream 3

Data reply for Stream 3

Data reply for Stream 3

Data reply for Stream 3

Data reply for Stream 3 + FLAG_FIN


Compression

Compression

4244 bytes on wire, 9978 total bytes uncompressed.

42% of bytes without compression.

861 bytes on the wire, 2299 total bytes uncompressed.

37% of bytes without compression.


Interesting spdy pdus

Interesting SPDY PDUs

  • NOOP

    • Receiver does nothing, ignores PDU

  • PING

    • Used to test RTT, takes priority over data

  • GOAWAY

    • Used for graceful termination

    • Contains a last good stream number

  • HEADERS

    • Used to send additional headers that would not fit in a previous PDU

  • WINDOW_UPDATE

    • Used for per stream flow control in SPDY


Interesting spdy pdus cont d

Interesting SPDY PDUs (cont’d)

  • SETTINGS

    • Used to communicate ID/value pairs

      • Upload bandwidth

      • Download bandwidth

      • Round trip time

      • Maximum concurrent streams

      • Current CWND

      • Persistence of previous settings


Spdy protocol

Download of 25 websites with 1% constant packet loss.

Download was run 10 times for each site and average page load time is reported. [1]


Spdy protocol

Download of 25 websites with 1% constant packet loss.

Download was run 10 times for each site and average page load time is reported.[1]


Spdy protocol

Download of 25 websites with 1% constant packet loss.

Download was run 10 times for each site and average page load time is reported.[1]


Google and pel work

Google and PEL work

  • SPDY enabled Chrome browser with Flip-in-mem server

  • SPDY “plug-in” for wireshark

  • Use SCTP with SPDY


References

References

  • SPDY protocol specification http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft2

  • SPDY white paper http://www.chromium.org/spdy/spdy-whitepaper [1]

  • SPDY homepage with other resources http://www.chromium.org/spdy/


  • Login