[Network] 8) 네트워크의 전체 흐름

Gon Kim·2022년 11월 11일
0

32) 응용 프로그램 ~ LAN 카드 → 33) 스위치 / 라우터 → 34) 웹 서버 LAN 카드 ~ 웹 서버 프로그램 까지의 흐름을 확인한다.

32) LAN 카드에서의 데이터 전달과 처리

네트워크 구성

  • 위의 경우 네트워크는 3개이다.
    - 192.168.1.0/24, 172.16.0.0/16, 192.168.10.0/24

  • 첫번째 그림과 같이 네트워크가 구성되었다고 가정하면, 위와 흐름으로 데이터가 전달된다.

다음과 같은 과정을 거쳐간다.

  1. 컴퓨터에서 응용 계층 → 물리 계층 순서로 캡슐화
  2. 스위치에서 데이터 링크 계층까지 역캡슐화해 가야할 곳(기본 게이트웨이, 라우터 A)으로 전달
  3. 라우터 A, B에서는 데이터가 올 때마다 네트워크 계층까지 역캡슐화하고 ip 주소 확인, 라우팅 작업
  4. 스위치 B에 도달해 데이터 링크 계층까지 역캡슐화, 웹 서버로 전송
  5. 웹 서버에서 응용 계층까지 역 캡슐화, 데이터 확인

컴퓨터의 데이터가 전기 신호로 변환되는 과정

첫 번째 과정에 대해 알아보자. 첫 번째 과정에서 캡슐화가 연속적으로 일어나며 데이터에 추가적인 정보가 붙고, 최종적으로 전기 신호로 변환된다.

  • 웹 브라우저에서 특정 url을 입력
    • 3-way handshake는 이미 완료되었다고 생각
    • 컴퓨터에서 응용 계층 → 물리 계층으로 캡슐화
    • 응용 계층에서 http 메세지가 작성된다.
    • 전송 계층으로 전달되고, 전송 계층에서는 목적지/출발지 포트 등과 같은 정보가 헤더에 담길 것.
      • 이 때 웹 브라우저는 1025이상의 포트 중 무작위 포트 선택. 3000이 선택됐다고 가정하자. 목적지는 http니 80으로 생각하자.
    • 네트워크 계층에서 ip 헤더 추가. 출발지, 목적지 ip 주소 등
    • 데이터 링크 계층에서 ethernet 헤더, 트레일러 추가. 맥 주소 정보, FCS 등
    • 물리 계층에서 LAN 카드를 통해 전기 신호로 변환 및 전송

최종 데이터는 다음과 같을 것

ETHERNET 헤더IP 헤더TCP 헤더HTTPETHERNET 트레일러
목적지/출발지 MAC출발지/목적지 IP출발지/목적지 PORT헤더 및 바디FCS
라우터A/컴퓨터192.168.1.10/192.168.10.53000/80GET /index.html …

33) 스위치와 라우터에서의 데이터 전달과 처리

스위치A에서의 데이터 전달과 처리

  • 컴퓨터에서 온 정보를 역 캡슐화 한다.
  • 목적지 확인 MAC 주소를 확인한다. 라우터 A의 MAC 주소이므로, 다시 캡슐화해 라우터 A로 보낸다.
ETHERNET 헤더IP 헤더TCP 헤더HTTPETHERNET 트레일러
목적지/출발지 MAC출발지/목적지 IP출발지/목적지 PORT헤더 및 바디FCS
라우터A/컴퓨터192.168.1.10/192.168.10.53000/80GET /index.html …

라우터A에서의 데이터 전달과 처리

  • 데이터 링크 계층에서 ethernet 헤더의 목적지 MAC 주소를 확인하고, 자신의 MAC 주소와 같은지 확인한다.
    • 같다면 네트워크 계층 역캡슐화를 진행한다. 아래의 데이터만 남을 것
IP 헤더TCP 헤더HTTP
출발지/목적지 IP출발지/목적지 PORT헤더 및 바디
192.168.1.10/192.168.10.53000/80GET /index.html …
  • 네트워크 계층에서 자신의 라우팅 테이블과 목적지 IP 주소를 비교, 라우팅한다. 라우터 B로 보내야함을 여기서 알게 된다. → 확인
  • 출발지 IP 주소를 라우터의 외부 IP 주소로 변경한다.
IP 헤더TCP 헤더HTTP
출발지/목적지 IP출발지/목적지 PORT헤더 및 바디
172.16.0.1/192.168.10.53000/80GET /index.html …
  • 출발지 MAC 주소를 자기 자신인 라우터 A, 목적지 MAC 주소를 라우터 B로 하여 ethernet 헤더를 붙여주고, 물리 계층을 통해 전송한다.
ETHERNET 헤더IP 헤더TCP 헤더HTTPETHERNET 트레일러
목적지/출발지 MAC출발지/목적지 IP출발지/목적지 PORT헤더 및 바디FCS
라우터B/라우터A172.16.0.1/192.168.10.53000/80GET /index.html …

라우터B에서의 데이터 전달과 처리

  • 데이터 링크 계층에서 ethernet 헤더의 목적지 MAC 주소를 확인하고, 자신의 MAC 주소와 같은지 확인한다.
    • 같다면 네트워크 계층 역캡슐화를 진행한다. 아래의 데이터만 남을 것
IP 헤더TCP 헤더HTTP
출발지/목적지 IP출발지/목적지 PORT헤더 및 바디
172.16.0.1/192.168.10.53000/80GET /index.html …
  • 네트워크 계층에서 자신의 라우팅 테이블과 목적지 IP 주소를 비교, 라우팅한다. 내부 네트워크에 있는 웹 서버로 보내야함을 여기서 알게 된다. → 확인
  • 출발지 IP 주소를 라우터의 내부 IP 주소로 변경한다.
IP 헤더TCP 헤더HTTP
출발지/목적지 IP출발지/목적지 PORT헤더 및 바디
192.168.10.1/192.168.10.53000/80GET /index.html …
  • 출발지 MAC 주소를 자기 자신인 라우터 B, 목적지 MAC 주소를 웹서버로 하여 ethernet 헤더를 붙여주고, 물리 계층을 통해 전송한다.
ETHERNET 헤더IP 헤더TCP 헤더HTTPETHERNET 트레일러
목적지/출발지 MAC출발지/목적지 IP출발지/목적지 PORT헤더 및 바디FCS
웹서버/라우터B192.168.10.1/192.168.10.53000/80GET /index.html …

스위치A에서의 데이터 전달과 처리

  • 라우터B에서 온 정보를 역 캡슐화 한다.
  • 목적지 확인 MAC 주소를 확인한다. 웹서버의 MAC 주소이므로, 다시 캡슐화해 웹서버로 보낸다.
ETHERNET 헤더IP 헤더TCP 헤더HTTPETHERNET 트레일러
목적지/출발지 MAC출발지/목적지 IP출발지/목적지 PORT헤더 및 바디FCS
웹서버/라우터B192.168.1.10/192.168.10.53000/80GET /index.html …

34) 웹 서버에서의 데이터 전달과 처리

웹 서버에서의 데이터 전달과 처리

역캡슐화가 연속적으로 일어나며 각 헤더를 확인하고, 알맞은 프로세스까지 데이터를 전달한다.

  • LAN 카드에서 전기 신호 수신
    • 물리 계층에서 LAN 카드를 통해 데이터로 변환
    • 데이터 링크 계층에서 ethernet 헤더, 트레일러 확인
      • MAC 주소가 자신의 MAC 주소와 같은지 확인
    • 네트워크 계층에서 ip 헤더 확인
      • 목적지 IP 주소와 자신의 IP 주소가 같은지 확인
    • 전송 계층에서 목적지 포트 확인
      • 해당 포트에 바인딩된 포트로 전달
    • 응용 계층에서 http 메세지 해석, 데이터 제공할 준비
profile
응애

0개의 댓글