브라우저에 URL을 입력하면?

00_8_3·2022년 4월 5일
0

네트워크

목록 보기
1/2

크롬 브라우저 기준으로

  • 주소 창에 입력 ->
  • 크롬이 URL인지 검색인지 구분 ->
  • URL인 경우 브라우저가 OS에 DNS에 요청 ->
  • 브라우저가 OS의 프로토콜 스택에 메시지 송신을 의뢰하고 소켓을 작성한다
  • 브라우저가 OS의 프로토콜 스택에 메시지 송신을 의뢰하고 소켓을 작성한다
  • 3-way-handshake로 서버와 연결 수립

    간단 쓰리웨이핸드쉐이킹
    클라에서 SYN 1 보냄, 서버 요청 수락후 SYN 1, ACK 1 만들어 재전송, 클라 패킷 받았다고 ACK 1 반송

    https 같은 경우 이어서 TLS 핸드쉐이크도 진행된다.

  • TCP에서 패킷을 만들어 헤더에 붙인다.
  • IP에서 패킷을 더 잘게 나누고 원격지 MAC주소를 헤더에 붙인다.

    원격지 서버의 MAC 주소 또는 라우터의 MAC주소를 가져옴

  • 바이너릴 데이터를 전기신호로 바꾸어 원격지로 송출
  • 라우터에 패킷이 도착 후 인터넷 내부로 중개
  • ISP가 목적지/원격지 라우터를 통해 웹 서버로 패킷을 전송
  • 웹 서버로 도착 후 전기 신호를 바이너리 데이터로 바꿉니다. (발송된 데이터의 재조립)
  • 웹 서버는 응답 메시지를 작성하여 위의 클라이언트가 했던 것 처럼 응답 메시지를 클라에게 전송.
  • 클라 브라우저는 CSS, HTML, JS를 해석하여 완성된 웹페이지를 위에 띄운다.
  • 요청 종료 후 4-way-handshake로 접속 끊고 소켓 말소.

    클라에서 FIN 1을 서버엥 전송
    서버는 ACK를 반송
    서버가 연결 종료 준비가 되었으면 FIN을 클라에 전송
    클라는 확인 패킷 ACK를 전송 후 연결을 종료

    반대로 서버에서 먼저 끊을 수 있습니다.

참고

https://maxkim-j.github.io/posts/packet-travel

0개의 댓글