假定你在浏览器中点击一条超链接获得 Web 页面。相关联的 URL 的 IP 地址没有缓存在本地主机上,因此必须使用 DNS lookup以获得该 IP 地址。如果主机从 DNS 得到 IP 地址之前已经访问了 n 个 DNS 服务器;相继产生的 RTT 依次为 RTT1、…、RTTn。进一步假定与链路相关的 Web 页面只包含一个对象,即由少量的 HTML 文本组成。令 RTT0表示本地主机和包含对象的服务器之间的 RTT 值。假定该对象传输时间为零,则从客户点击该超链接到它接收到该对象需要多长时间?
经过n个RTT后已经知道目标主机的IP, 则此时建立TCP连接。
因为TCP连接会有3次握手, 所以会额外产生一个RTT0 , 在第三次握手时开始请求对象, 在2个额外RTT0结束后, 接收到该对象。
所以客户点击该超链接到它接收到该对象需要
2
R
T
T
0
∑
i
=
1
n
R
T
T
i
2RTT_0 + \sum\limits_{i=1}^{n}RTT_i
2RTT0+i=1∑nRTTi
P8
参照习题 P7,假定在同一服务器上某 HTML,文件引用了 8 个非常小的对象。忽略发送时间,在下列情况下需要多长时间。
a. 没有并行 TCP 连接的非持续 HTTP。
b. 配置有 5 个并行连接的非持续 HTTP。
c. 持续 HTTP。
a
首先请求HTML, 产生1个TCP连接。再依次请求-接收8个小对象, 产生8个TCP连接, 总共9个TCP连接, 而每个TCP连接(握手到接收响应)耗时2个RTT0, 所以耗时为18个RTT0
所以在P7题目的基础上的总耗时为:
(
9
×
2
)
R
T
T
0
∑
i
=
1
n
R
T
T
i
18
R
T
T
0
∑
i
=
1
n
R
T
T
i
(9 \times 2)RTT_0 + \sum\limits_{i=1}^{n}RTT_i \ 18RTT_0 + \sum\limits_{i=1}^{n}RTT_i
(9×2)RTT0+i=1∑nRTTi18RTT0+i=1∑nRTTi
b
首先请求HTML, 产生1个TCP连接。再并行建立5个TCP连接请求5个小对象并接收, 再并行建立3个TCP连接请求3个小对象, 共产生3个同步的TCP连接, 即6个RTT0
所以在P7题目的基础上的总耗时为:
(
3
×
2
)
R
T
T
0
∑
i
=
1
n
R
T
T
i
6
R
T
T
0
∑
i
=
1
n
R
T
T
i
(3 \times 2)RTT_0 + \sum\limits_{i=1}^{n}RTT_i \ 6RTT_0 + \sum\limits_{i=1}^{n}RTT_i
(3×2)RTT0+i=1∑nRTTi6RTT0+i=1∑nRTTi
c
首先请求HTML, 产生1个TCP连接, 并保持。
如果客户端采用流水线式发送请求, 即在一次请求中包含所有8个小对象, 会产生1个RTT0。
所以在P7题目的基础上的总耗时为:
(
2
1
)
R
T
T
0
∑
i
=
1
n
R
T
T
i
3
R
T
T
0
∑
i
=
1
n
R
T
T
i
(2 + 1)RTT_0 + \sum\limits_{i=1}^{n}RTT_i \ 3RTT_0 + \sum\limits_{i=1}^{n}RTT_i
(2+1)RTT0+i=1∑nRTTi3RTT0+i=1∑nRTTi
如果客户端不采用流水线式发送请求, 则请求8个小对象会花费8个RTT0。
所以在P7题目的基础上的总耗时为:
(
2
8
)
R
T
T
0
∑
i
=
1
n
R
T
T
i
10
R
T
T
0
∑
i
=
1
n
R
T
T
i
(2 + 8) RTT_0 + \sum\limits_{i=1}^{n}RTT_i \ 10RTT_0 + \sum\limits_{i=1}^{n}RTT_i
(2+8)RTT0+i=1∑nRTTi10RTT0+i=1∑nRTTi
P9
考虑图 2-12,其中有一个机构的网络和因特网相连。
假定对象的平均长度为 850 000 比特,从这个机构网的浏览器到初始服务器的平均请求率是每秒 16 个请求。还假定从接入链路的因特网一侧的路由器转发一个 HTTP 请求开始,到接收到其响应的平均时间是 3 秒(参见 2.2.5 节)。将总的平均响应时间建模为平均接入时延(即从因特网路由器到机构路由器的时延)和平均因特网时延之和。对于平均接入时延,使用
Δ
/
(
1
−
Δ
β
)
\Delta/(1 - \Delta \beta)
Δ/(1−Δβ),式中
Δ
\Delta
Δ 是跨越接入链路发送一个对象的平均时间,
β
\beta
β 是对象对该接入链路的平均到达率。
a.求出总的平均响应时间。
b. 现在假定在这个机构 LAN 中安装了一个缓存器。假定错失率为 0.4(命中率为 0.6),求出总的响应时间。
a
总的平均响应时间为平均接入时延和平均因特网时延之和
因为假设了HTTP请求报文很小, 所以忽略发送请求的时延, 发送对象后的时延
Δ
\Delta
Δ 是跨越接入链路发送一个对象的平均时间, 则用对象大小 / 接入链路带宽计算
Δ
=
8.5
×
1
0
5
15
×
1
0
6
=
0.0567
s
\Delta = \frac{8.5\times 10^5}{ 15\times10^6} \ = 0.0567s
Δ=15×1068.5×105=0.0567s
β
\beta
β 是对象对该接入链路的平均到达率, 因为这个机构网的浏览器到初始服务器的平均请求率是每秒 16 个请求, 因为每个请求经历的时延时相同的, 所以每个请求之间的间隔不变, 到达接入链路的频率与发送请求的频率相同
β
=
16
\beta = 16
β=16
所以平均接入时延:
Δ
1
−
Δ
β
=
0.0567
1
−
16
×
0.0567
=
0.0567
0.0928
=
0.611
s
\frac{\Delta}{1 - \Delta \beta} \ = \frac{0.0567}{1 - 16 \times 0.0567} \ = \frac{0.0567}{0.0928} \ = 0.611s
1−ΔβΔ=1−16×0.05670.0567=0.09280.0567=0.611s
因特网时延为3s, 所以总的平均响应时间为:
3.611
s
3.611s
3.611s
b
60%的对象在web缓存被命中, 所以直接考虑从web缓存发送对象到客户主机的时延, 即一个对象大小 / 局域网带宽, 这个时延小到可以忽略。
40%的对象要经过因特网到web缓存, 在从web缓存中发送到客户主机
所以, 总的响应时间:
0.6
×
8.5
×
1
0
5
100
×
1
0
6
0.4
×
(
3.611
8.5
×
1
0
5
100
×
1
0
6
)
=
0.6
×
8.5
×
1
0
−
3
0.4
×
(
3.611
0.0085
)
=
0.6
×
0
0.4
×
(
3.611
0
)
=
1.44
s
0.6 \times \frac{8.5\times 105}{100\times106} + 0.4 \times (3.611+\frac{8.5\times 105}{100\times106}) \ = 0.6\times 8.5\times10^{-3} + 0.4 \times (3.611 + 0.0085) \ = 0.6\times 0 + 0.4\times (3.611 + 0) \ = 1.44s
0.6×100×1068.5×105+0.4×(3.611+100×1068.5×105)=0.6×8.5×10−3+0.4×(3.611+0.0085)=0.6×0+0.4×(3.611+0)=1.44s
P10
考虑一条 10 米短链路,某发送方经过它能够以 150 bps 速率双向传输。假定包含数据的分组是 100 000 比特长,仅包含控制(比如 ACK 和握手)的分组是 200 比特长。假定 N 个并行连接每个都获得 1/N 的链路带宽。现在考虑 HTTP 协议,并且假定每个下载对象是 100 kb 长,这些初始下载对象包含 10 个来自相同发送方的引用对象。在这种情况下,经非持续 HTTP 的并行实例的并行下载有意义吗?现在考虑持续 HTTP。你期待这比非持续的情况有很大增益吗?评价并解释你的答案。
令
T
p
T_p
Tp表示客户端与服务器之间的单向传播时延, 假设光的传播速率为
3
×
1
0
8
m
/
s
3\times10^8 m/s
3×108m/s, 一直链路长度为10m
T
p
=
10
3
×
1
0
8
=
0.03
μ
s
T_p = \frac{10}{3\times10^8} = 0.03\mu s
Tp=3×10810=0.03μs
考虑使用非持续 HTTP 请求1个对象后, 然后并行请求10个引用对象的时延, 每个并行连接分到的带宽为15 bps
第一次, 建立一个TCP连接, 获取初始对象
(
200
150
)
T
p
(
200
150
)
T
p
(
200
150
)
T
p
(
100
,
000
150
)
T
p
(\frac{200}{150}) + T_p + (\frac{200}{150}) + T_p + (\frac{200}{150}) + T_p + (\frac{100,000}{150}) + T_p
(150200)+Tp+(150200)+Tp+(150200)+Tp+(150100,000)+Tp
然后, 并行建立10个TCP连接, 获取引用对象
(
200
15
)
T
p
(
200
15
)
T
p
(
200
15
)
T
p
(
100
,
000