When a SPDY stream is created

42 views
Skip to first unread message

Tran

unread,
Jan 5, 2015, 11:46:51 PM1/5/15
to spdy...@googlegroups.com
As specified, "once the connection is established, clients and servers exchange framed messages" (http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3), I can infer that when the client setup the a SPDY connection, it starts a stream (let say stream ID 3 for example) to communicate with the server. This stream will convey the requests (from client) and responses (for different requests, from a server). 

There are still some uncleared points to me, could any one help me to clarify them?

(1) When multiple streams are created (for example stream 5, 7,...) if the first stream (ID 3) is till active? What is the trigger for a new stream creation?

(2) Commonly, a stream may contain different types of traffic such as: text, video, audio,... Is there any spec saying that a particular data type is conveyed by a specific stream?

(3) One stream may contain several data frames. Each data fame refers to the stream ID, but there is no frame ID to identify a specific frame. In this sense, how to manage the order of frames? Should the order of data is managed by the underline TCP?

Thank you and best regards,

Tran


Ryan Hamilton

unread,
Jan 6, 2015, 12:21:09 AM1/6/15
to spdy...@googlegroups.com
On Mon, Jan 5, 2015 at 8:46 PM, Tran <gold...@gmail.com> wrote:
As specified, "once the connection is established, clients and servers exchange framed messages" (http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3), I can infer that when the client setup the a SPDY connection, it starts a stream (let say stream ID 3 for example) to communicate with the server. This stream will convey the requests (from client) and responses (for different requests, from a server). 

There are still some uncleared points to me, could any one help me to clarify them?

(1) When multiple streams are created (for example stream 5, 7,...) if the first stream (ID 3) is till active? What is the trigger for a new stream creation?

​Its up to the application to create a stream. in the case of a web browser, a new stream is created every time a request ​is to be made.

(2) Commonly, a stream may contain different types of traffic such as: text, video, audio,... Is there any spec saying that a particular data type is conveyed by a specific stream?

​In the case of HTTP data, it's via the content-type header.​
 
(3) One stream may contain several data frames. Each data fame refers to the stream ID, but there is no frame ID to identify a specific frame. In this sense, how to manage the order of frames? Should the order of data is managed by the underline TCP?

​Yes, the data frame need to be processed in order received by the transport.
 
Thank you and best regards,

Tran


--

---
You received this message because you are subscribed to the Google Groups "spdy-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to spdy-dev+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Patrick McManus

unread,
Jan 6, 2015, 4:35:32 PM1/6/15
to spdy...@googlegroups.com
I'll add just a bit to what Ryan said

On Mon, Jan 5, 2015 at 11:46 PM, Tran <gold...@gmail.com> wrote:
As specified, "once the connection is established, clients and servers exchange framed messages" (http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3), I can infer that when the client setup the a SPDY connection, it starts a stream (let say stream ID 3 for example) to communicate with the server. This stream will convey the requests (from client) and responses (for different requests, from a server). 


One stream is used per request/response pair. They may exist in parallel. This is impt.

 
There are still some uncleared points to me, could any one help me to clarify them?

(1) When multiple streams are created (for example stream 5, 7,...) if the first stream (ID 3) is till active? What is the trigger for a new stream creation?

the stream is active until it is actively closed, normally through bidirectional fin_flags but sometimes via reset. They must be opened in an increasing order, but they do not need to be closed in any particular sequence.
 
Reply all
Reply to author
Forward
0 new messages