네트워크 기초

Jun 2k (Jun2)·2023년 9월 21일

CS공부

목록 보기
1/8
post-thumbnail

브라우저에 URL을 입력하면 무슨일이 발생할까?

기술 면접 단골 질문이다. 한 번 알아보자.

Step 1 : URL을 해석

URL은 scheme://<user>:<password>@<host>:<port>/<url-path>과 같은 형태를 가진다.

ex)

Step2 : DNS 조회

DNS

도메인 네임 시스템, 도메인과 ip주소를 서로 변환해주는 시스템

DNS로 요청을 보내기 전에 브라우저 캐시와 hosts 파일을 참조 (중복 방지)

DNS 조회 로직
출처: 프로그래머스 데브코스 이선협 님 강의

도메인은 present.do
나머지 서브도메인에 do가 붙는 경우는 호스트

Step3 : 해당 IP가 존재하는 서버로 이동

네트워크 장비 라우터를 통해 이동
이 때 동적 라우팅 기법을 사용한다.

Step4 : ARP를 이용하여 MAC 주소 변환

Address Resolution Protocol(ARP)

논리 주소인 IP 주소를 물리 주소인 MAC 주소로 변환하는 프로토콜
=> 실제 통신을 위해 변하지 않는 고유한 MAC 주소가 필요

네트워크 내에 ARP를 broadcasting 하면 해당 IP 주소를 가지고 있는 기기가 MAC 주소를 반환

기계의 실제 위치를 알기 위해선 논리 주소 IP가 아닌 물리적인 주소 MAC 주소가 필요함
IP 주소와 MAC 주소는 용도가 다름 그래서 나눈거임
IP 주소는 도로명, 지번 주소, MAC 주소는 위경도 좌표로 비유 가능

실제 택배 보내는 것과 동일 => 도로명 주소 확인 후 진짜 물리 주소로 이동
중간 중간 물류 Hub가 라우터에 비유

Step5: TCP 통신을 통해 Socket을 염

  • 네트워크를 통해 해당 기기로 패킷을 전달
  • 3 way handshake로 연결 요청
  • 요청이 수락되면 기기는 패킷을 받아 처리

Step6 : 서버는 응답을 반환

  • HTTP 프로토콜로 들어온 패킷을 읽고 처리
  • 요청에 따른 적절한 응답 값 반환

Step7 : 브라우저 렌더링

  • HTML을 읽어 DOM tree 구축
  • 만들어진 DOM tree 이용하여 페인팅
  • 스크립트 실행

😅 해당 내용은 공부하면서 정리한 글입니다. 틀린 부분이나 오해하고 있는 부분이 있다면 피드백 부탁드립니다.

관련 레퍼런스

네트워크 프로그래밍 기초 문서들


선택 과제 더 알아보기

  • OSI 7 계층
  • Routing Table
  • Subnet Mask
  • TCP Socket Stream
  • http가 이미 있음에도 불구하고 https의 탄생 배경, 왜 필요한지 조사
  • https가 생김으로 인해 기존 과정에서 무엇이 추가되었는지 조사

profile
유리프트 프론트엔드

0개의 댓글