Konvensjon: Vi regner RTT-er fra klientens klokke. TCP-handshake bruker 1 RTT (SYN/SYN-ACK før klienten kan sende GET). HTTP-request + svar bruker ytterligere 1 RTT.
a) Non-persistent uten parallell:
To objekter (HTML + bilde), hvert med eget TCP-handshake og GET:
- HTML: 1 RTT (handshake) + 1 RTT (GET/respons) = 2 RTT
- Bilde: 1 RTT (handshake) + 1 RTT (GET/respons) = 2 RTT
Total: 4 RTT = 4 × 100 ms = 400 ms
b) Non-persistent, 2 parallelle TCP:
HTML hentes først (klienten må parse den for å vite om bildet): 1 RTT handshake + 1 RTT GET = 2 RTT. Deretter åpnes 2 TCP-er parallelt; men det er bare ett bilde, så:
- HTML: 2 RTT
- Bilde: 2 RTT (1 handshake + 1 GET)
Total: 400 ms (parallellitet hjelper bare når flere objekter henvises). Fordelen ville vært synlig med 5 bilder (samme tid som 3 sekvensielle objekter pga. parallellitet).
c) Persistent HTTP med pipelining:
Én TCP-handshake (1 RTT). Deretter sendes GET for HTML (svar etter 1 RTT). Klienten parser HTML og sender umiddelbart GET for bildet på samme forbindelse — bildet kommer 1 RTT senere. (Med ekte pipelining kunne klienten sendt begge GET-er samtidig dersom bildets URL var kjent på forhånd, men her må klienten først motta HTML.)
Total: 1 RTT (handshake) + 1 RTT (HTML) + 1 RTT (bilde) = 3 RTT = 300 ms
Pensum: Kap. 2 — HTTP RTT-analyse