例题:
1. (4分)假设在客户端浏览器中通过点击某个超链接获得另一个Web页面。如果客户端只知道Web页面所在服务器的名字,但不知道该服务器的IP地址。因此,客户端必须使用DNS查询服务器的IP地址。假设,客户端使用DNS获得Web服务器的IP地址共耗时tdns。进一步假定,该Web页面共有10个非常小的对象。令RTT0表示客户端和Web服务器间数据传输的RTT值, HTML文档及内嵌对象的传输时间(发送时间)均忽略不计。在下列情况下,从点击该超链接开始,到接收到完整的页面分别需要多少时间? (注意,比须解释所得结果的理由)
1、 (共4分)
(1)无并行连接的非持续HTTP
答:(1) DNS解析所需的tdns;使用串行非持续连接,获得一个对象需要2RTT0。因此,共需20RTT0+tdns。
(2)有流水线的持续HTTP 3RTTo+Tdns
答:(2) 有流水线的持续HTTP,DNS解析需要tdns。 建立TCP连接耗时RTT0;然后,获得页面的html文档耗时RTT0;获得页面其他对象耗时RTT0。综上,共耗时:3RTT0+tdns。
6. 浏览器与WWW服务器之间的网络路径被抽象为一条传输速率为100Mbps(1M=106)的链路。假设浏览器要从服务器下载100Kbits(1K=1000)长的页面,并包含10个嵌入的图像(文件名分别 img01.jpg,img02.jpg ……img10.jpg),每个图像文件大小都是100Kbits,页面和10个图像存储在同一服务器中。从浏览器到服务器的往返时间(RTT)为300毫秒。由于GET方法的request消息比较小,忽略客户端发送GET request消息需要的时间,但需要考虑在链路上传输HTML基文件和嵌入对象所需的时间,以及建立TCP连接所需要的时间(假设TCP连接建立时间为1RTT)。
1)使用非持续HTTP(假设在浏览器和服务器之间没有并行连接),响应时间多长?即从用户请求URL到页面和嵌入的图像都到达浏览器需要多长时间?注意要描述导致延迟的不同部分。
一个RTT时间请求,一个RTT响应并返回请求的文件+文件传数据时间。由于是没有并行链接的非持续HTTP链接,每个对象都需要逐个请求所以是:
(2RTT+0.001)*11=6.611s
2) 仍然使用非持续连接,假设浏览器想打开多少到服务器的并行连接都可以。这种情况下,响应时间是多少?
先请求HTML基文件,2RTT+文件传输时间。现在知道了对象的个数,创建一个TCP链接2RTT,但是由于文件储存在同一服务器中,所以服务器需要逐个发送文件,因此时间是10个文件传输时间,所以总时间是:
(2RTT+0.001)+(2RTT+10*0.001)=1s
3)假设使用持续HTTP连接,但没有使用流水线机制。这种情况下响应时间是多少?
使用无流水的持续HTTP链接,服务器的连续发送基文档和内嵌文件对象,建立连接1个RTT,每个对象是1RTT+文件传输时间所以总时间是:
1RTT+11*(1RTT+对象传输时间)=0.3 +11(0.3+0.001)=3.611s。
4) 假设使用流水线的持续HTTP,响应时间是多少?
使用流水线的持续HTTP,首先建立链接1个RTT,然后获取HTML基文档1RTT+文件传输时间,内嵌对象的请求背靠背的从客户端发送1RTT,服务器则一次发送文件对象10个文件传输时间,所以总时间是:
3RTT+11*0.001=0.911s
7. 假设在浏览器键入地址(URL)后从某个WWW服务器获取一个Web页面,该服务器的IP地址已缓存在本地。用RTT表示从客户机到Web服务器的往返时间(RTT)。假设该Web页面由一个基本的HTML文件和五个小图像组成,每个对象的发送时间与RTT相比很小,可以忽略不计。在下列情况下,从用户输入地址后按下回车键到接收到完整的Web页面需要多长时间?
1) 没有并行连接的非持续HTTP。
12RTT
2) 最多有五个并行连接的非持续HTTP。
4RTT
3) 使用流水线的持续HTTP。
3RTT