네트워크1 - google.com
웹브라우저에 www.google.com 을 치면 무슨 일이 일어나는가?
IP주소를 찾기 위해 제일 먼저 DNS 캐시를 탐색함
- 브라우저 캐시를 확인
- 브라우저는 이전에 방문한 웹사이트의 DNS 정보를 저장함
- 브라우저 캐시에 없으면 OS의 systemcall을 통해 DNS 기록을 가져옴
- OS도 DNS 기록들을 캐시에 기록함
- 라우터 캐시를 확인
- 컴퓨터에 위 2개에 없다면 자체 DNS 레코드 캐시를 유지 관리하는 라우터와 통신
- 위 모든 단계에서 못찾는다면 ISP으로 이동함. (통신3사 모뎀)
- ISP는 DNS 캐시를 포함해 자체 DNS 서버를 유지 관리함.
GSLB에 대해 알아보기
Global Server Load Balancing
- DNS는 도메인 주소와 IP를 매핑해 도메인으로 요청이 들어올 때, 타겟의 주소로 변환해 주는 서비스이다.
- 하나의 도메인주소에 대해 여러 IP주소를 넘겨 줄 수 있는데, 이 기능을 이용해 로드 밸런싱 기능을 수행하지만 한계가 있다.
- DNS의 로드밸런싱은 하나의 IP를 반환할 뿐, 트래픽분산처리나 서비스 실패의 경우를 고려하지않는 단점이 있다.
=> 이러한 문제를 해결한 GSLB라는 기술이 있다.
- GSLB 주요기능
- 헬스체크
- 등록된 호스트에 대해 헬스체크를 확인하기에 실패한다면 해당 서버를 제외하기때문에, 사용자에 대해 서비스 장애발생시 다른서버에 요청을 해 대응이 가능하다.
- 네트워크 거리와 지역
- 주기적으로 성능을 체크하기때문에, 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주소로 변환하는 과정은
- .
- com
- google.com
- 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 개념도 확인해보면 좋음
간단 용어 정리
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.