Web Cache

youngwiki
Pinkgo (토론 | 기여)님의 2025년 3월 21일 (금) 15:41 판 (Web cache 예시)

상위 문서: Application Layer

개요

Clients requesting objects through a Web cache
Clients requesting objects through a Web cache

Web Cache(Proxy server라고도 한다.)는 origin web server를 거치지 않고로 client의 HTTP request를 처리하기 위해서 사용된다. 유저는 기본적으로 Web에 cache를 통해서 접근한다. 이때 Web cache는 자체적인 data storage space를 가지고 있어 최근에 요청된 object들의 복사본들을 해당 space에 저장한다. 사용자는 모든 request를 기본적으로 Web cache가 존재한다면 origin server가 아닌 web cache에 전송한다. 이때 Web cache는 다음과 같이 작동한다.

  1. browser는 Web cache와 TCP 연결을 설정하고 해당 객체에 대한 HTTP 요청을 Web cache에 보낸다.
  2. 유저가 request한 object가 해당 cache의 저장공간에 존재한다면 cache는 request받은 object를 client에 전송한다.
  3. .1. 만약 cache에 request받은 object가 존재하지 않는다면, cache는 origin server와 TCP 연결을 설정한다. 해당 연결을 통해 web cache는 origin server에 해당 object에 대한 HTTP request message를 보낸다. origin server는 해당 request를 받고 HTTP response message를 통해서 object를 web cache에 보낸다.
  4. .2. Web cache는 object를 받고, 해당 object를 자신의 data storage space에 저장하고 HTTP response message를 통해서 browser에 object를 전송한다.

작동 과정에서 알 수 있듯이, Web cache는 client와 server의 기능을 동시에 수행한다. 또한 이러한 web cache는 보통 ISP에 의해서 설치된다.

Web cache의 장점

Bottleneck between an institutional network and the Internet
Bottleneck between an institutional network and the Internet

ISP가 추가적인 비용을 들여서 web cache를 설치하는 이유는 다음과 같다.

  1. client request에 대한 응답 시간을 상당히 줄일 수 있다.
  2. server와 전체 네트워크에 가해지는 traffic을 상당히 줄일 수 있다.
  3. 무엇보다, 비용이 저렴하다.

Web cache 예시

다음과 같은 상황을 가정해보자.

  • request하는 평균 object 크기: 1Mbits
  • LAN의 bandwidth: 100Mbps
  • browser에서 origin server로의 평균 request rate: 15requests/sec
  • institutional router에서 origin server까지의 RTT: 2sec
  • access link rate: 15Mbps

이러한 경우, LAN[1]의 bandwidth는 단 15%만 사용된다. [2] 하지만, access link의 bandwidth는 99%가 사용된다. [3] 이러한 경우, total delay는 다음과 같이 결정된다.

total delay = Internet delay + access delay + LAN delay
            = 2sec + minutes + usecs

이 경우, RTT에 의해서 생기는 Internet delay나 LAN에서 발생하는 delay는 사실상 무시되고 total delay는 거의 access delay에 의해서 결정된다. access delay는 institutional router와 origin server를 연결하는 access link가 bottleneck link로 작동하기 때문에 발생한다. 이러한 문제를 해결하는 방법은 두가지가 있다.

1. ISP가 access link의 bandwidth를 150Mbps로 확장한다. 이 경우, access link의 bandwidth는 10%가 사용된다. 따라서 total delay는 다음과 같이 결정된다.

total delay = Internet delay + access delay + LAN delay
            = 2sec + msecs + usecs <math>\times</math>

각주

  1. 근거리 네트워크를 의미한다.
  2. traffic intensity = (15requests/sec)*(1Mbits/requests)/(100Mbps) = 15%
  3. traffic intensity = (15requests/sec)*(1Mbits/requests)/(15Mbps) = 100%