CS/Network

Caching

WakaraNai 2021. 10. 15. 18:48
728x90
반응형

cache는 ISP에서 설치

Web caches (proxy server)

  • origin server까지 가지 않고 proxy server에서 대신 처리
  • client가 무조건 cache를 이용하여 server에 접속할 수 있도록 설정해야 함
  • 그 객체가 cache에 있다면 proxy server에서 처리
  • 없다면 origin server에서 처리
  •  

 

  • client와 server가 동시에 실행되어야 함
    • cache가 client에게는 server처럼, server에게는 client처럼 일해야 함
  • 대학, 회사, 가정용 ISP에서 이용
  • 사용하는 이유
    • access traffic을 줄이기 위해서
    • request에 대한 “response time”을 줄이기 위해서
    • server와 인터넷을 연결한 link의 대역폭이 낮을 때,
      • 인기있는 파일만 proxy server에 올려두면 이에 대해 대처할 수 있다


Caching Ex

가정

  • avg object size는 100K
  • 요청 속도는 1초당 15개를 서버에 요청 : 15/sec (avg request rate)
  • 브라우저로 보내는 평균 데이터 전송 속도는 1.50 Mbps
  • origin server로부터 자신의 public internet 속 router까지 RTT 2sec
  • access link rate : 1.54Mbps
  • institutional network에서의 LAN의 capacity: 1 Gbps

 

결과

  • avg data rate
    • = 15/sec * 100K  = 1.50 Mbps

 

  • 하나의 요청을 전송하는데 걸리는 시간 : L/R
    • 100K / 1.50Mbps = 0.0667 sec
  • traffic intensity (TI)
    • 15 * L/R = 
  • avg access delay
    • (L/R) / (1-TI)
  • total avg response time
    • = avg access delay + avg internet delay(2 sec) 

 

  • LAN utilization
    • = avg data rate / LAN의 capacity = 1.50Mbps / 1 Gbps = 0.15%
  • access link utilization 
    • = avg data rate / access link rate = 1.50Mbps / 1.54Mbps 거의 99%
  • total delay = Internet delay + access delay + LAN delay
    • 인터넷을 건너오는데 드는 시간 2초 (RTT)
    • access link에서 걸린 시간은 가늠하기 힘듦
      • access link utilization이 99%, 즉 이 때 delay는 기하급수적으로 증가
      • 그래서 대략적으로 분 단위라고 표현
    • = 2 sec + minutes + usecs

 

만약 access link의 대역폭을 10배 키운다면

  • minutes -> msecs로 단축
  • 그러나 이 방법은 비용이 많이 들어감

 

 

다른 방법 : local web cache 도입

 institutional network에 “local web cache” 도입

 

  • LAN utilization은 0.15%로 그대로
  • data 전송 속도 1.50Mbps를 local web cache를 통해 해소
  • 그렇기에, access link utilization, total delay가 줄어듦
    • cache hit rate를 추가적으로 고려해서 delay를 계산해야 함
    • cache hit rate = 0.4라고 가정하면,
      • 요청 중 40%는 cache에서, 60%는 origin에서 해야 함
      • 그럼 60%에 대해서만 data rate over access link를 계산
        • 0.6 * 1.50Mbps = 0.9 Mbps in access link ( access link에 발생한 traffic의 양)
        • utilization : 0.9/1.54 (access link의 대역폭)
        • = 0.58 (99% -> 58%)
      • total delay = 0.6 * (delay from origin server) + 0.4 * (delay from cache)
      • 0.6 * (2+0.01)  + 0.4(msec) = 1.2sec
        • internet을 건너오는데 2sec,
        • access link utilization이 정상 범주 내에 있기에 msec 소
        • 그래서 2+0.01
      • msec = 0.01
      • +) avg access delay
        • (L/R) / (1-0.6*TI)

 

  • access link 확장보다 비용 측면에서 저렴
  • 그리고 delay도 훨씬 줄어듦

 

Conditional GET

cache의 마지막 수정 시간을 기준으로 요청한 object가

그 전에 수정되었다면 보내주지 않음

 

목표

  • proxy server가 client로
  • origin server가 server 로.
  • proxy server가 가진 object가 최신 버전이면 보내지 않음
    • object transmission delay X
    • lower link utilization
     

proxy server 

  • HTTP request에 cache를 받아온 시간을 표시
    •  date는 해당 web page가 web cache에 저장된 시간
  •  

origin server

  • 그 요청을 받으면, 그 시간과 이후로 object가 변하지 않았다면 object 없이 응답
  • 그러나, 변했다면 새 버전의 object로 실어서 보냄 : <data>
  •  

 

 

728x90
반응형

'CS > Network' 카테고리의 다른 글

DNS  (0) 2021.10.15
Electronic Mail  (0) 2021.10.15
Web and HTTP ( header & cookie )  (0) 2021.10.15
Application layer  (0) 2021.10.15
Networks Under Attack : Security  (0) 2021.10.15