-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNOTES_SPDY
111 lines (82 loc) · 4.91 KB
/
NOTES_SPDY
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
DESIGN Thoughts for SPDY with Multipath.
When lost segments are detected we send the cwnd to the receiver in order to
know that we must
Managing Socket State
const std::string group_name
group_name is the primary label placed on sockets. A group_name consists of an
origin and type. This is to associate simiarly connected client socket
objects. We can either augment the group_name by appending interface
information for considering sockets
HostPortPair::HostPortPair(const std::string& in_host, uint16 in_port)
: host_(in_host), port_(in_port) {}
would thus become
HostPortPair::HostPortPair(const std::string& in_host, uint16 in_port)
: host_(in_host), port_(in_port) {}
----
SPDY explicitly avoids using multiple TCP connections to a domain, which
contradicts the design choice made by modern browsers. Modern browsers may
employ up to six TCP connections to a particular domain. This is to overcome TCP
slow start behavior; by striping small requests across multiple connections,
latency may be reduced to the end-user's experience of seeing a web page
rendered. Because servers must deal with the additional burden of the six TCP
connections AND a recent strategy to increase server-side initial congestion
windows to four segments, a burst of 24 packets per request.
Beyond addressing server burden, the strategy to assuage the effects of slow
start in order to minimize end-user latency may not be the strongest design.
SPDY emphasizes the use of a single TCP connection and multiplexing the multiple
requests spawned by servers to a particular domain. By converting HTTP methods
(e.g., GETs and POSTs) to streams over a single TCP connection, the collective
web packets generated by SPDY, in addition to other efficiency-oriented
strategies employed in SPDY, demonstrate a lower latency user-experience.
But a single TCP connection implies a 4-tuple: (src IP, src port, dst IP, dst
port) that links identity with IP addresses and ports. Nevertheless, multiple
network interfaces are common features in modern mobile devices. This means that
the total bandwidth available to a single application (presumably, that which is
available to the device) cannot be achieved in the current model of multiple IP
identities.
An application may be able to leverage multiple TCP connections without
requiring the overhead of stabilizing either the MPTCP~\cite{mpctp-nsdi11}
codebase (kernel modifications) or changing the web. An application knows best
what it needs and providing the right abstractions below an application can ease
the application meeting its deadlines.
While SPDY saves in some dimensions its potential is not fully
realized. Moreover, the opportunity for q
----
Client may generate two SPDY connections and choose to send requests along each
as normal. When we get values back we let the winner pass to the application but
otherwise use the informatoin we learn about the connection to assess the value
of multiple interfaces and otherwise send more data along one path or another.
ClientSocketHandles have group_name_, which uniquely identifies the origin and
type of the connection. Used by the ClientSocketPool to group similarly
connected client socket objects.
We can either extend this by associating origin, _interface_, and type of the
connection.
Each connection may have multiple stream IDs. We share state about the multiple
SPDY connections through key-value section of the SPDY protocol.
----
'TCP congestion window vs. application specification.' Repeat what we send
across different links but what are the energy concerns?
Application knows better than the lower layers about how to reason about
multiple connections.
SPDY offers flow control. We can also consider the implications of leveraging
congestion control at higher layers in the protocol.
----
SETTINGS frame modification.
"SETTINGS frames can be sent at any time by either endpoint, are optionally
sent, and are fully asynchronous."
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+--------------------------------------------------------------+
| |
+----------------+---------------------------------------------+
| Flags | Length |
+----------------+---------------------------------------------+
| Number of Entries |
+----------------+---------------------------------------------+
| ID.flags | Unique ID |
+----------------+---------------------------------------------+
| Value |
+--------------------------------------------------------------+
| |
| |
+--------------------------------------------------------------+