네트워크 전체 흐름

Yeji·2023년 10월 9일
0

네트워크

목록 보기
8/9

네트워크 물리계층부터 응용계층까지 전체적으로 어떻게 동작하는지 알아보자.

네트워크 구성

계층역할
응용 계층애플리케이션에서 사용하는 데이터 송수신
전송 계층목적지에 데이터를 정확하게 전달하는 방식 결정
네트워크 계층다른 네트워크에 있는 목적지에 데이터 전달
데이터 링크 계층랜에서 데이터 송수신
물리 계층데이터를 전기신호로 변환

네트워크 흐름

그림은 192.168.1.0/24 172.16.0.0/16 192.168.10.0/243개의 네트워크로 구성되어 있다.
그림을 바탕으로 컴퓨터A에서 웹서버까지 데이터가 도착하는 과정을 살펴보자.
과정을 살펴보기 이전에 3-way-handshake를 통해 연결이 수립되었다고 가정한다.


1. 컴퓨터 A

1️⃣ 웹브라우저에서 검색창에 URL을 입력하고 enter를 누른다.

  • 웹사이트에 접속했기 때문에 응용 계층(애플리케이션)에서 시작한다.
  • index.html 파일을 보내달라는 GET 요청을 HTTP 메세지로 보낸다.

2️⃣ 데이터가 전송 계층에 전달된다.

  • 전송 계층에서는 출발지 포트번호와 목적지 포트번호를 포함하는 TCP 헤더가 붙는다.
  • 웹브라우저는 잘 알려진 포트번호를 제외하고 1025번 이상인 출발지 포트번호를 랜덤으로 배정받는다.
  • 목적지 포트번호는 HTTP 프로토콜을 사용한 통신이기 때문에 80번이다.
  • TCP 헤더를 가진 데이터를 세그먼트라고 한다.

3️⃣ 데이터가 네트워크 계층에 전달된다.

  • 네트워크 계층에서는 출발지 IP 주소와 목적지 IP 주소를 포함하는 IP 헤더가 붙는다.
  • IP 헤더를 가진 데이터를 IP 패킷이라고 한다.

4️⃣ 데이터가 데이터 링크 계층으로 전달된다.

  • 데이터 링크 계층에서는 목적지 MAC 주소와 출발지 MAC 주소를 포함하는 이더넷 헤더가 붙는다.
  • 이더넷 헤더를 가진 데이터를 이더넷 프레임이라고 한다.

5️⃣ 물리 계층에서 데이터가 전기 신호로 변환되어 네트워크를 통해 스위치 A로 전송된다.


2. 스위치 A

1️⃣ 스위치 A의 물리 계층, 데이터 링크 계층을 거쳐 다시 물리 계층에서 데이터를 전기 신호로 변환해 라우터 A로 전송한다.

  • 데이터가 전기 신호로 변환되어 케이블을 타고 라우터 A에 도달한다.

3. 라우터 A

1️⃣ 라우터 A는 데이터 링크 계층에서 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교한다.

  • 주소가 같으면 이더넷 헤더와 트레일러를 분리하는 역캡슐화를 진행한다.

2️⃣ 네트워크 계층에 전달해 라우팅 테이블과 목적지 IP 주소를 비교한다.

  • 라우팅 테이블을 통해 목적지 IP 주소의 경로를 파악해 라우팅을 진행한다.

3️⃣ 출발지 IP 주소(192.169.1.10)를 라우터 외부 IP 주소(172.16.0.1)로 변경한다.

4️⃣ 데이터 링크 계층, 물리 계층를 타고 데이터를 전기 신호로 변환해 라우터 B로 전송한다.


4. 라우터 B

1️⃣ 라우터 B는 데이터 링크 계층에서 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교한다.

  • 주소가 같으면 이더넷 헤더와 트레일러를 분리하는 역캡슐화를 진행한다.

2️⃣ 네트워크 계층에 전달해 라우팅 테이블과 목적지 IP 주소를 비교한다.

  • 라우팅 테이블을 통해 목적지 IP 주소의 경로를 파악해 라우팅을 진행한다.

3️⃣ 출발지 IP 주소(172.16.0.1)를 라우터 내부 IP 주소(192.168.10.1)로 변경한다.

4️⃣ 데이터 링크 계층, 물리 계층를 타고 데이터를 전기 신호로 변환해 스위치 B로 전송한다.


5. 스위치 B

1️⃣ 스위치 B의 물리 계층, 데이터 링크 계층을 거쳐 다시 물리 계층에서 데이터를 전기 신호로 변환해 웹서버로 전송한다.


6. 웹서버

1️⃣ 웹서버는 데이터 링크 계층에서 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교한다.

  • 주소가 같으면 이더넷 헤더와 트레일러를 분리하는 역캡슐화를 진행하고 데이터를 네트워크 계층에 전달한다.

2️⃣ 네트워크 계층에서 목적지 IP 주소와 웹서버의 IP 주소를 비교한다.

  • 주소가 같으면 IP 헤더를 분리해 데이터를 전송 계층에 전달한다

3️⃣ 목적지 포트 번호를 확인하고 어떤 애플리케이션으로 전달해야 하는지 판단한다.

  • TCP 헤더를 분리하고 데이터를 응용 계층에 전달한다.

4️⃣ 데이터가 웹서버의 응용 계층에 도달한다.

참고

라우팅은 패킷을 목적지까지 최적의 경로를 통해 전송하는 것을 말한다. 라우팅에는 정적 라우팅과 동적 라우팅 두 종류가 있다.

정적 라우팅

관리자가 미리 라우팅 테이블에 경로를 수동으로 추가하는 방법

  • 목적지까지 경로를 고정하거나, 경로가 단 하나일 경우에 사용한다.
  • 네트워크에 존재하는 모든 목적지 네트워크 정보를 라우팅 테이블에 수동으로 등록하기 때문에 소규모 네트워크에 적합하다.
  • 라우팅 정보가 교환되지 않아 대역폭에 부담이 적고 보안을 유지하는 데 좋다.
  • 동적 반영이 되지 않기 때문에 어떤 경로에 장애가 발생해도 다른 경로로 우회할 수 없어 관리자가 직접 변경해야 한다.

동적 라우팅

네트워크 변경을 자동으로 감지해 라우팅 테이블을 업데이트하거나, 네트워크 장애가 발생했을 경우 라우터끼리 정보를 교환해 최적의 경로로 전환하는 방법

  • 네트워크 정보를 수동으로 등록할 필요가 없다.
  • 라우터에 많은 경로가 등록되어야 하는 대규모 네트워크에 적합하다.
profile
채워나가는 과정

0개의 댓글