[TIL] HTTP : The Definitive Guide "p452 ~ p 461"

시윤·2026년 3월 3일

[TIL] Two Pages Per Day

목록 보기
158/159
post-thumbnail

Chapter 20. Redirection and Load Balancing

(해석 또는 이해가 잘못된 부분이 있다면 댓글로 편하게 알려주세요.)


✏️ 요약


HTTP Redirection

  • 장점
    • 리디렉트 하는 서버가 클라이언트의 IP 주소를 알고 있다 -> 더 많은 정보를 보유한 채로 destination을 선택할 수 있다
  • 단점
    • 어느 서버로 리디렉트할지 결정하는 과정에서 많은 프로세싱 파워 소모
    • 요청을 두 번 보내야 하므로 사용자 지연 증가
      • 리디렉트 하는 서버에 장애가 발생하면 사이트 전체가 마비된다

DNS Redirection

  • DNS는 하나의 도메인에 여러 개의 IP를 바인딩할 수 있다
  • DNS가 반환하는 IP는 Round Robin 방식이나 부하가 적은 서버를 선택하는 등 다양한 방식으로 결정될 수 있다

DNS round robin

  • 여러 개의 웹 서버 팜 가운데 하나에 순차적으로 로드 밸런싱하는 방식
  • 대부분의 DNS 클라이언트는 첫 번째 주소를 사용 -> DNS 서버가 nslookup이 완료될 때마다 IP 주소를 로테이션 하여 부하를 분산한다

The impact of DNS caching

  • DNS lookup의 결과가 응용 프로그램이나 OS, 하위의 DNS 서버에 저장되고 재사용될 수 있다 -> 동일한 주소를 반복적으로 사용하는 문제 발생
  • 대부분의 운영체제가 DNS lookup을 자동으로 수행하고 결과를 저장하므로 IP 주소의 로테이션이 원활하게 이루어지지 않을 수 있다
  • 하나의 클라이언트가 계속해서 동일한 IP로 접속하게 되지만 여러 클라이언트에 대해서는 여전히 로드 밸런싱의 효과가 있다

Other DNS-based redirection algorithms

  • Load-balancing algorithms : 웹 서버의 부하를 추적해서 가장 부하가 적은 서버로 리디렉트 하는 기술
  • Proximity-routing algorithms : 사용자를 가장 가까운 웹 서버로 리디렉트 하는 기술
  • Fault-masking algorithms : 네트워크 상태를 모니터링하고 중간에 결함이 발생하지 않도록 요청을 라우팅하는 기술

Anycast Addressing

  • 동일한 IP를 가진 웹 서버가 여러 위치에 분산되어 있을 때 최단 경로로 라우팅하기 위한 기술
  • 각각의 웹 서버가 인근의 backbone 라우터에게 자신이 라우터라고 전파 -> backbone 라우터가 특정 anycast 주소에 대한 패킷을 받으면 가장 가까운 라우터로 이동시킨다
  • 요구사항
    • 서버가 라우터 프로토콜을 이해하고 사용할 수 있어야 한다
    • 라우터가 IP 주소 충돌 문제를 해결할 수 있어야 한다

IP MAC Forwarding

  • Layer 4-aware Switch : IP, 포트번호에 대한 정보를 갖고 라우팅

IP Address Forwarding

  • 들어오는 패킷의 TCP/IP 주소를 확인하고 Destination IP 주소에 따라 라우팅한다
  • Destination의 MAC Address가 아닌 IP 주소에 기반하는 것이 특징 -> 여러 hop을 거친 곳에 destination이 위치하더라도 포워딩이 가능하다
  • Full NAT : 스위치가 서버로 요청을 넘길 때 클라이언트 IP를 스위치의 IP로 교체하는 방식
    • 장점 : 네트워크 구성이 복잡해도 반드시 스위치로 돌아올 수 있다
    • 단점 : 서버가 진짜 클라이언트의 IP 주소를 알 수 없다
  • Half NAT : 스위치가 서버로 요청을 넘길 때 클라이언트 IP를 그대로 유지하는 방식
    • 장점 : 서버가 진짜 클라이언트의 IP 주소를 알 수 있다
    • 단점 : 서버와 클라이언트 사이의 모든 네트워크 경로를 통제해야 한다
profile
틈틈이 두 페이지씩 원서 읽기

0개의 댓글