모두의 네트워크 정리 - 네트워크 전체 흐름

mainsain·2022년 3월 11일
0

CS

목록 보기
12/20

랜 카드에서의 데이터 전달과 처리

2 ~ 7장까지 OSI 모델의 계층에 대해 설명했다. 이번엔 웹 사이트에 방문했을 때 이루어지는 전체적인 데이터 처리 과정에 대해 알아보자.


네트워크의 구성

웹 사이트에 접속할 때 OSI 모델 상위 응용 계층부터 하위 물리 계층까지에서 각각 어떤 일이 일어나는지 살펴볼 것이다.
그림과 같이 컴퓨터, 스위치, 라우터, 웹 서버로 구성된 네트워크가 있다고 가정해보자. 이 구성은 192.168.1.0/24, 172.16.0.0.16, 192.168.10.0/24로 총 3개의 네트워크로 나누어져 있다.
이를 OSI 모델로 나타내면 그림과 같이 구성된다.


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

OSI 모델의 전체적인 관점으로 데이터가 전달되고 처리되는 과정을 살펴볼 것이다. 구체적으로 컴퓨터의 웹 브라우저에 URL을 입력할 때부터 웹 서버에 도착할 때까지 이루어지는 OSI 모델의 캡슐화역캡슐화를 살펴 볼 것이다.

  • 먼저 컴퓨터에서 OSI 모델의 캡슐화가 이루어진다. 웹 사이트에 접속해야 하므로 응용 계층에서 시작한다. 그림과 같이 웹 브라우저에 URL을 입력하고 엔터키를 누르면 캡슐화가 시작된다. 단, 3 - way 핸드셰이크는 이미 완료되어 연결이 확립되어 있다고 가정한다.

  • 컴퓨터에서 웹 브라우저를 이용하여 웹 서버의 쉡 사이트에 접속하귀 위한 요청을 보낼 때 사용하는 게 HTTP인데, 응용 계층에서는 웹 서버에 있는 html 데이터를 얻어야 하므로 위 그림처럼 'GET(데이터를 보내달라)/index.html HTTP/1.1~'과 같은 HTTP 메시지를 보낸다.
    이 데이터는 전송 계층에 전달된다.

  • 전송 계층에서 TCP 헤더가 붙고, TCP 헤더에서 출발지 포트 번호목적지 포트 번호로 어느 애플리케이션에 데이터를 보내야 하는지 식별한다.
    출발지 포트 번호는 잘 알려진 포트가 아닌 포트(1025번 이상인 포트) 중에서 무작위로 선택된다. 목적지 포트 번호는 HTTP이므로 80번 포트가 된다.
    TCP 헤더를 가진 데이터는 세그먼트인데, 그림과 같이 헤더가 붙어 세그먼트가 된다.
    이 데이터는 네트워크 계층에 전달된다.

  • 네트워크 계층에서는 전송 계층에서 전달받은 세그먼트(데이터)에 IP 헤더를 붙인다. 그 IP 헤더에 출발지 IP 주소목적지 IP 주소가 추가되고, 이 IP 헤더가 붙은 데이터를 IP 패킷이라고 한다.
    이 데이터는 데이터 링크 계층에 전달된다.
  • 데이터 링크 계층에서는 이더넷 헤더가 추가되고, 이더넷 헤더가 있는 데이터를 이더넷 프레임이라고 한다.
    그 다음으로 물리 계층에서 전기 신호로 변환되어 네트워크로 전송된다.

여기까지가 컴퓨터에서 데이터 링크 계층까지의 캡슐화 흐름이다.
추가적으로, 물리 계층에서 전기 신호로 변환할 때는 랜 카드가 사용된다.


정리

  • 웹에 접속할 때는 OSI 모델의 상위 계층부터 캡슐화가 이루어진다.
  • 웹 서버에 요청을 보낼 때는 HTTP를 사용한다.
  • 웹 서버에 있는 html 파일을 요청하는 경우에는 GET /index.html HTTP/1.1과 같은 HTTP 메시지를 보낸다.
  • 전송 계층에서는 TCP 헤더가 추가되며 이를 세그먼트라고 부른다.
  • 네트워크 계층에서는 IP 헤더가 추가되며 이를 IP 패킷이라고 부른다.
  • 데이터 링크 계층에서는 이더넷 헤더트레일러(FCS)가 추가되며 이를 이더넷 프레임이라고 부른다.
  • 물리 계층에서는 데이터가 전기 신호로 변환되어 전송된다.

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

스위치와 라우터에서 데이터가 처리되는 과정을 알아보자.


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

스위치 A의 과정을 보자.
그림과 같이 스위치 A는 데이터 링크 계층에서 데이터를 전기 신호로 변환하여 라우터 A로 전송한다.


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

계속해서 데이터는 스위치 A에서 라우터 A로 전기신호로 전달된다.
라우터 A에서의 캡슐화와 역캡슐화에 대해 살펴보자.
그림과 같이 스위치 A에서 데이터가 전기 신호로 변환되어 케이블을 통해 흘러가 라우터 A에 도착한다. 라우터 A는 데이터 링크 계층에서 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교한다.
이때 주소가 같으면 이더넷 헤더와 트레일러를 분리하는 역캡슐화를 수행한다.
다음으로 네트워크 계층에 전달하고 자신의 라우팅 테이블목적지 IP 주소를 비교한다.

라우터 A의 라우팅 테이블에서 목적지 IP 주소의 경로를 알 수 있으므로 라우팅을 할 수 있다.
그래서 그림과 같이 현재 출발지 IP 주소 192.168.1.10을 라우터의 외부 IP 주소인 172.16.0.1로 변경한다.
그런 다음 데이터 링크 계층으로 전달하여 라우터 B로 보내지도록 이더넷 헤더와 트레일러를 붙인 후에 물리 계층에서 데이터를 전기 신호로 변환하여 네트워크로 전달한다.


그 다음 데이터는 전기 신호 형태로 라우터 A에서 라우터 B로 전달된다.
라우터 B에서 이루어지는 OSi 모델의 역캡슐화와 캡슐화를 살펴보자.
데이터가 전기 신호로 변환되어 라우터 B에 도착하면 라우터 B는 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교한다.
주소가 같으면 이더넷 헤더와 트레일러를 분리하는 역캡슐화를 수행한다. 그 다음 네트워크 계층으로 전달되면 자신의 라우팅 테이블과 목적지 IP 주소를 비교한다.
(라우터 A와 마찬가지로 라우터 B도 목적지의 네트워크를 알아야 하기 때문에 라우팅 테이블을 확인한다.)

라우터 B의 라우팅 테이블을 확인해 보면 목적지 IP 주소의 경로를 알 수 있으므로 라우팅을 할 수 있다.
이전 과정과 같이 IP 주소를 바꾸고, 데이터 링크 계층에 전달, 스위치에 전달되도록 이더넷 헤더와 트레일러 붙인 후 물리 계층에서 데이터를 전기 신호로 변환하여 네트워크로 전달.


전기 신호 형태의 데이터가 라우터 B에서 스위치 B로 전달된다. 스위치 B를 보자.
그림과 같이 전기 신호를 데이터 링크 계층에서 처리하고 웹 서버에 데이터를 전기 신호로 전달한다.


정리

  • 스위치 내에 대응되는 OSI 모델의 계층은 물리 계층과 데이터 링크 계층이다.
  • 라우터 내에 대응되는 OSI 모델의 계층은 물리 계층, 데이터 링크 계층, 네트워크 계층이다.

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

웹 서버에서 이루어지는 데이터 처리 과정을 알아보자.


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

스위치 B에서 웹 서버로의 데이터 전달 과정을 살펴보았다. 이번엔 웹 서버에서 이루어지는 OSI 모델의 역캡슐화를 살펴보자.

  • 데이터가 전기 신호로 웹 서버에 도착하면 웹 서버는 데이터 링크 계층에서 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교한다. 주소가 같으면 이더넷 헤더와 트레일러를 분리하고 네트워크 계층에 전달한다.

  • 네트워크 계층에서는 목적지 IP 주소와 웹 서버의 IP 주소가 같은지 확인한다. 주소가 같으면 IP 헤더를 분리하고 전송 계층에 전달한다.

  • 전송 계층에서는 목적지 포트 번호를 확인 하여 어떤 애플리케이션으로 전달해야 되는지 판단하고 TCP 헤더를 분리하여 응용 계층에 전달한다.

  • 웹 서버의 응용 계층에 도착!


이번에 전체적으로 살펴본 내용은 요청 한 번에 대한 것이다.
이 다음에는 컴퓨터로 응답을 보내야 한다.
웹 사이트를 볼 때 컴퓨터와 웹 서버 사이에는 몇 번이고 요청과 응답의 교환이 이루어지고 있다.


정리

  • 웹 서버 내에 해당하는 OSI 모델 계층은 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 응용 계층이다.

보강

정적 라우팅과 동적 라우팅
라우팅은 패킷을 목적지 컴퓨터까지 보낼 때 최적의 경로를 선택하여 전송하는 것을 뜻한다. 라우팅은 크게 정적 라우팅과 동적 라우팅이라는 두 가지 방법으로 나뉜다.

  • 정적 라우팅
    정적 라우팅은 관리자가 미리 라우팅 테이블에 경로를 수동으로 추가하는 방법이다. 목적지까지의 경로를 고정하거나 목적지까지의 경로가 하나로 한정되는 경우에 사용한다.
    정적 라우팅에서는 네트워크에 존재하는 모든 목적지 네트워크의 정보를 라우터에 알려 줘야 한다. 그것을 관리자가 수동으로 설정해야 하므로 소규모 네트워크에서 사용된다.
    라우팅 정보가 교환되지 않아 대역폭에 대한 부담이 적다는 장점이 있다. 라우팅 정보가 네트워크로 전달되지 않으므로 보안을 유지하는 데도 좋다.
    물론 단점도 있다. 동적으로 반영되지 않으므로 어떤 경로에 장애가 발생해도 다른 경로로 우회할 수 없다. 이럴 때는 관리자가 설정을 하나하나 변경해야 해서 번거롭다.

  • 동적 라우팅
    동적 라우팅은 네트워크 변경을 자동으로 감지하여 라우팅 테이블을 업데이트하거나 네트워크 장애가 발생했을 때 라우터끼리 정보를 교환하여 최적의 경로로 전환하는 기능을 한다.
    관리자는 정적 라우팅처럼 라우팅 테이블에 경로를 수동으로 추가할 필요가 없다. 대규모 네트워크에서는 라우터에 많은 경로가 등록되기 때문에 정적 라우팅을 지원하지 않고 동적 라우팅을 사용하여 경로를 자동으로 업데이트한다.


용어 정리

  • OSI 모델(Open Standards Interconnection model) : 국제표준화기구(ISO)가 1977년에 정의한 국제 통신 표준 규약이다. 네트워크의 기본 구조를 일곱 개 계층으로 나눠서 표준화한 통신 규약으로 현재 다른 모든 통신 규약의 기반이 된다.
  • 헤더(header) : 저장되거나 전송되는 데이터의 맨 앞에 위치하는 추가적인 정보 데이터를 말한다. 데이터의 내용과 성격을 식별 또는 제어하는 데 사용한다.
  • 트레일러(trailer) : 데이터의 맨 뒤에 위치하는 정보로 데이터의 무결성을 보장하는 데 사용한다.
  • 라우팅(routing) : 네트워크에서 패킷을 목적지까지 보낼 수 있는 여러 경로 중 한 가지 경로를 설정해 주는 과정을 말한다.
  • 스위치(switch, 스위칭 허브) : 랜을 구성할 때 단말기 간 스위칭 기능을 가진 통신망 중계 장치를 뜻한다. 컴퓨터(호스트)에서 특정한 단말기로 패킷을 보낼 수 있는 기능을 갖고 있어 통신 효율이 향상된다.
  • 라우터(router) : 서로 다른 네트워크를 연결해 주는 장치로 한 네트워크에서 다른 네트워크로 패킷을 전송할 수 있도록 한다.
profile
새로운 자극을 주세요.

0개의 댓글