서버에서 살아남기

브라우저에 www.google.com 을 입력하면? 본문

네트워크

브라우저에 www.google.com 을 입력하면?

개발롬 2023. 3. 26. 23:05
💡 요약
1. 브라우저에 URL 입력
2. DNS를 통해 서버의 IP주소를 찾음
3. client 에서 HTTP request 메세지 전송 > TCP/IP 패킷 생성 > 서버로 전송
4. 서버에서 response 메세지 > TCP/IP 패킷 생성 > client로 전송
5. 웹 브라우저에 출력

1. 유저가 브라우저에서 www.google.com 을 입력하면 HTTP Request message를 생성

2. IP 주소를 알아야 하므로 DNS에 해당 도메인의 IP주소를 요청하여 IP 주소 획득

클라이언트에서 전달받은 메세지에는 아래의 세가지 정보가 포함됩니다.

  • 이름 : www.google.com
  • 클래스
    • DNS 구조를 고안했을 때 인터넷 이외의 네트워크에서 이용할 수도 있음을 고려하여 식별하기 위한 값인 클래스를 만들음. 그러나 지금은 인터넷 이외의 네트워크가 소멸됐으므로 클래스는 항상 인터넷을 나타내는 IN 이라는 값을 가짐
  • 타입
    • 이름에 어떤 타입의 정보가 지원되는지를 나타냄. 예를 들어 타입이 A면 이름에 IP 주소가 지원되는 것을 나타냄.
    • IP 주소를 조회할 때 : A
    • 메일 : MX
    • 이름에 닉네임을 붙이기 위한 CNAME

3. 해당 IP 주소로 요청 시 OSI 모델의 캡슐화 과정

3-1. 각 계층에서 하는 일

  • 응용계층
    • 애플리케이션과 데이터를 주고 받는 게층
    • 클라이언트의 요청을 전달하기 위해 통신 대상(ex. 서버)이 이해할 수 있는 형태로 데이터를 변환하고 전송계층으로 전달하는 역할
  • 전송계층
    • 신뢰할 수 있는 통신을 구현
      1) 오류를 점검하는 기능
      2) 전송된 데이터의 목적지가 어떤 애플리케이션인지 식별하는 기능
    • 특징
      • 신뢰성/정확성 > 연결형 통신 (TCP 통신)
        즉, 연결 설정 과정을 거침.
      • 효율성 > 비연결형 통신 (UDP 통신)
        ex. 동영상 시청 시
  • 네트워크 계층
    • 다른 네트워크(인터넷 상의 모든 컴퓨터)와 통신하기 위한 경로 설정 및 논리 주소를 결정
    • 경로를 선택하여 주소를 정하고 경로에 따라 패킷(IP주소 + 데이터)을 전달함
  • 데이터 링크 계층
    • 같은 네트워크에 존재하는 여러 대의 컴퓨터를 보다 쉽게 통신할 수 있게 만들어줌.
      1) 주소 할당 : 물리 계층으로부터 받은 신호들이 네트워크 상의 장치에 올바르게 안착할 수 있게 해줌
      2) 오류 감지 : 신호가 전달되는 동안 오류가 포함되는지 감지. 오류가 감지되면 해당 데이터 폐기함.
    • 가장 많이 사용 되는 규칙은 이더넷
  • 물리 계층
    • 데이터를 보내기 위한 매체(물리 장비)를 다루는 계층
    • 전기적, 기계적, 기능적 특징을 바탕으로 데이터 통신
    • 해당 계층에서는 데이터 전달만 하기 떄문에 검증과 에러 등에 대해서는 고려하지 않음.

3-2. 각 계층별 전송 과정

  1. URL 입력해서 접속
  2. 컴퓨터 → 응용계층
    1. GET/index.html HTTP/1.1
  3. 응용계층 → 전송계층
    1. 2-a의 데이터에 TCP헤더가 붙음
    2. TCP헤더에 들어가는 정보 (출발지 포트, 목적지 포트, 일련번호, 확인 응답번호 등)
    3. 출발지 포트 번호(웹 브라우저)는 1025번 이상인 포트 중에서 무작위로 선택 되며, 목적지 포트 번호는 웹 서버 포트 번호인 80
  4. 전송계층 → 네트워크 계층
    1. 3-a 의 데이터에 IP헤더가 붙음
    2. IP헤더에는 출발지 IP주소와 목적지 IP주소가 붙음
      1. IP주소 : 어떤 네트워크의 어떤 컴퓨터인지를 구분할 수 있도록 하는 주소
    3. 이 외에도 IP헤더에는 버전, 헤더 길이, TTL, 프로토콜 등이 붙음
  5. 네트워크 계층 → 데이터링크 계층
    1. 이더넷 헤더와 트레일러가 추가됨
      * 이더넷 : 허브와 같은 장비에 연결된 컴퓨터와 데이터를 주고 받을 때 사용
    2. 이더넷 헤더 : 목적지 MAC 주소, 출발지 MAC 주소
      * MAC 주소 : 48비트 숫자이며 전 세계에서 유일한 번호임
    3. 트레일러(FCS - 프레임 체크 시퀀스) : 데이터 전송 도중 오류가 발생하는지 확인하는 용도
      * 패킷을 운반하는 도중 잡음 등의 영향으로 파형이 흐트러져 데이터가 변한 경우 이것을 검출하기 위해 사용
  6. 데이터링크 → 물리 계층
    1. 데이터를 전기 신호로 변환하여 네트워크를 통해서 전송

'네트워크' 카테고리의 다른 글

사설 IP와 VPN  (0) 2023.07.27
서버의 부하 분산  (0) 2022.08.21
라우터가 하는 일  (0) 2022.05.29