Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Please provide details solutions so that I can understand the process. Thank you

ID: 3745881 • Letter: P

Question

Please provide details solutions so that I can understand the process. Thank you.

3. Consider a web page whose base page is of size 250kb. Suppose that the page references 4 objects of size 1Mb each, two of which are located on the base page server and two of which are located on a second server. Suppose further that the round-trip time to both servers is 20ms, the bottleneck capacity of the links to both servers is 10Mbps, and the IP addresses of both servers are in the browser's cache. Assuming that all processing and queuing delays are negligible, and that no other hosts are accessing the links, what is the least time that can elapse when the web page is retrieved using (a) HTTP/1.0 with no parallel connections? (b) persistent, non-pipelined, HTTP/1.1 with no parallel connections? (c) persistent, pipelined, HTTP/1.1 with no parallel connections? (d) persistent, pipelined, HTTP/1.1 with four parallel connections opened after the base page is read. (e) Did opening parallel connections reduce the page retrieval time? Would the result have been the same had all objects resided on the same server? Explain

Explanation / Answer

Some definitions to help you with the further solution.

Persistent connection = Reusing the same TCP connection for multiple HTTP request-responses after one is completed

Pipelined/Parallel = Sending/Receiving muliple HTTP requests parallel in time. For example, if there are 2 HTTP requests which need to be fulfilled. They both can be sent and received at the same time parallel.

Note : Parallel/Pipeline only applies when the requests made to the same server. Requests to different servers can always be sent in parallel.

Coming to your questions.

(a) Since this is HTTP/1.0, no parallel/pipelined connections are supported. 2 connections to server 1 & server 2 are sent one-by-one. Point to note is that Req 1 to server 1 and Req 1 to server 2 can still be parallel.

Therefore, for server 1 = RTT for base page req + Download time of 250kb + RTT for Req 1 + Download time of 1 Mb for Req 1 + RTT for Req 2 + Download time of 1 Mb for Req 2.

Since max bandwidth is 10Mb/s, 1Mb will take 0.1s = 100ms

Total time for base page = 20ms + (250)/(1000) { 1Mbps = 1000 Kb/s = 1 Kb/ms for bandwidth}

Total time for base page = 20.25ms

Total time for server 1 resources = 20ms + 100ms + 20ms + 100ms = 240ms

Similarly total time for server 2 resources = 240ms

But since both of them are on two different servers, requests will be sent parallel. Total time taken would be 260.25ms. (If according to the question, even the requests to the different servers cannot be sent in parallel, total time will 550.25ms)

(b) Same as (a) since this too doesn't support pipelined conections

(c) Same as (a) or (b) since we are not making use of pipelined requests feature here.

(d) HTTP/1.1 supports 6 pipelined/parallel connection to same server. So, Req 1 and Req 2 of both server 1 and server 2 can be sent in parallel.

So, 120ms for Req 1 and Req 2 together and 120ms for Req 3 and Req 4. Since Req 1,2 and Req 3,4 are for 2 different servers, 120ms is the total time for the resources.

Total time = Total time for base page + Total time for 4 requests = 0.25ms + 120ms = 120.25ms

(e) Opening parallel connections did reduce the time but placing all the objects on the same server in this case do not result in any difference. As I already mentioned, max 6 connections can be parallel made in HTTP/1.1. Also the 4 requests together (4 x 1Mb = 4Mb) do not exceed the link capacity, there will NO difference.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote