Post

네트워크1 - google.com


웹브라우저에 www.google.com 을 치면 무슨 일이 일어나는가?



IP주소를 찾기 위해 제일 먼저 DNS 캐시를 탐색함

  1. 브라우저 캐시를 확인
    • 브라우저는 이전에 방문한 웹사이트의 DNS 정보를 저장함
  2. 브라우저 캐시에 없으면 OS의 systemcall을 통해 DNS 기록을 가져옴
    • OS도 DNS 기록들을 캐시에 기록함
  3. 라우터 캐시를 확인
    • 컴퓨터에 위 2개에 없다면 자체 DNS 레코드 캐시를 유지 관리하는 라우터와 통신
  4. 위 모든 단계에서 못찾는다면 ISP으로 이동함. (통신3사 모뎀)
    • ISP는 DNS 캐시를 포함해 자체 DNS 서버를 유지 관리함.



GSLB에 대해 알아보기


  • Global Server Load Balancing

  • DNS는 도메인 주소와 IP를 매핑해 도메인으로 요청이 들어올 때, 타겟의 주소로 변환해 주는 서비스이다.
  • 하나의 도메인주소에 대해 여러 IP주소를 넘겨 줄 수 있는데, 이 기능을 이용해 로드 밸런싱 기능을 수행하지만 한계가 있다.
  • DNS의 로드밸런싱은 하나의 IP를 반환할 뿐, 트래픽분산처리나 서비스 실패의 경우를 고려하지않는 단점이 있다.
    => 이러한 문제를 해결한 GSLB라는 기술이 있다.


  • GSLB 주요기능
    1. 헬스체크
    • 등록된 호스트에 대해 헬스체크를 확인하기에 실패한다면 해당 서버를 제외하기때문에, 사용자에 대해 서비스 장애발생시 다른서버에 요청을 해 대응이 가능하다.
      1. 네트워크 거리와 지역
    • 주기적으로 성능을 체크하기때문에, DNS 요청이 왔을 시 네트워크 거리가 가까운 서버로 보낸다.



구글 서버의 80포트로 htttp req메시지를 보내는것.

  • 해당 요청을 인터넷을 통해 구글에 요청하기위해 패킷을 만들어야함.

ㅁ응용계층: http, dns, smtp 등 => HTTP 요청

ㅁ전송계층 TCP로 연결

  • SP 시작포트번호: 내컴퓨터 포트번호
  • DP 목적지포트번호: www.google.com 은 80포트로 알고있음.


ㅁ인터넷계층

  • SA 시작아이피주소: 내 시작주소는 당연히 알고있음
  • DA 목적지아이피주소: 도메인정보만 알고있음. -> DNS프로토콜을 통해 알아낼수있음.
  • 브라우저는 OS에게 www.google.com에 대한 IP주소를 알고 싶다고 요청함. -> OS에서 DNS서버로 요청을 보내게 된다.


  • DNS서버 주소는 이미 OS에 구현이 되어있음.
  • DNS도 도메민이 담긴 쿼리를 보내고 도메인서버가 IP주소를 res받음.
  • DNS는 UDP 통신을 사용함.
  • www.google.com 주소를 IP주소로 변환하는 과정은
    1. .
    2. com
    3. google.com
    4. www.google.com

와 같은 방식으로 Root DNS서버가 나올 때 까지 거꾸로 타고 올라간다.

  • 일반적으로 DNS 서버는 한 번 조회된 주소에 대해서는 특정 기간동안 보관을 한다.


ㅁ네트워크액세스계층

  • MAC주소를 알아야함.
  • 물리적으로 연결된 우리집 공유기의 MAC주소가 필요함
  • 네트워크 연결이 가능한 통로를 게이트웨이라함. (netstat 확인가능)
  • ARP 를 통해 IP 주소를 MAC주소로 변환


ㅁ데이터를 전송하기 전에 연결을 위한 3way-hand-shaking이 필요함.
ㅁ연결해제는 4way-hand-shaking 이 필요 연결해제를 할 때 바로 해제하는것이 아니라 약간의 시간을 두고 해제함(늦게 도착하는 패킷이 있기때문)


과정이 끝나면 index.html 을 가져온 후 브라우저를 렌더링 하는 과정을 진행


  • 브라우저의 렌더링에 대한 과정은 아래의 url로 들어가면 상세하게 나와있음.
    • https://web.dev/articles/critical-rendering-path/render-tree-construction?hl=ko
  • 렌더링 최적화에 DNS Prefetch 개념도 확인해보면 좋음
    • https://developer.mozilla.org/en-US/docs/Web/Performance/dns-prefetch




간단 용어 정리

IP (Internet Protocall)

  • 인터넷상에서 사용되는 주소체계
  • 인터넷에 연결된 모든 PC는 IP주소체계를 따름
  • ex) 192.168.0.222 와 같은 형식들은 IPv4 형식이다.

IPv4

  • 0.0.0.0 ~ 255.255.255.255 범위
  • 2의 32승 = 약42억개의 IP주소를 표현가능
  • 하지만 현재 인구가 많아져서 사용할 수 있는 IP가 거의 고갈되어가고있음.


Port


  • IP내에서 프로세스 구분을 위해 사용
  • IP주소가 가리키는 PC에 접속할 수 있는 채널, 통로로 표현할 수 있다
  • 예를들어 mysql 포트번호가 3306인데, 나의 IP주소로 접근해 3306포트를 통해 mysql 접속이 가능하다.
  • 포트번호를 중복되어 사용 불가능하다


허브


  • 전기적인 신호를 증폭시켜 LAN의 전송거리를 연장시키고, 여러 대의 디바이스를 연결해 네트워크를 만들어주는 장비 (분배 중계기)

멀티포트: 한 번에 많은 디바이스를 연결
리피터: 전기적인 신호를 증폭시켜 데이터를 재전송


스위치


  • 허브에서는 충돌이 발생하면 연결된 모든 영역에 영향을 끼쳐 통신에 장애를 일으킴
  • 이러한 이유로 충돌 도메인을 나누어 줄 수 있는 장비가 스위치가 있음 (브릿지도있음)
  • 스위치는 L2, L3, L7 와 같이 상위 계층의 정보를 참조해서 스위칭을 결정한다.(상위 계층을 지원할 수록 가격이 매우 비싸다)
  • MAC 주소를 활용해 스위칭하는 제품은 L2 스위치라고 불림


  • 자신에게 연결된 MAC 주소와 포트가 기록된 MAC 주소 테이블을 가지고 있음.
  • 프레임의 목적지를 알기때문에, 해당 디바이스에게 프레임을 바로 보냄
  • 정해진 목적지에만 데이터를 전송하기때문에 프레임 충돌이 감소하고 네트워크 성능이 향상


라우터


  • LAN을 연결시켜주는 장치
  • 패킷의 수신주소를 읽고 통신경로를 이용해 다른 통신망으로 전송하는 장치
  • 정보 전송을 위해 경로를 설정하는 역할을 제공하는 핵심적인 통신 장비
  • IP주소등 L3 주소를 활용해 목적지로 전송





-출처-

https://www.youtube.com/watch?v=BEK354TRgZ8&t=100s
https://web.dev/articles/critical-rendering-path/render-tree-construction?hl=ko
https://coding-start.tistory.com/339
https://velog.io/@osk3856/TCP-Updated-Model

This post is licensed under CC BY 4.0 by the author.