모두의 네트워크 8장. 네트워크 전체 흐름 살펴보기
Network

모두의 네트워크 8장. 네트워크 전체 흐름 살펴보기

모두의 네트워크 정리

이번 장에서는 OSI 모델의 각 계층 간에 데이터가 전달되고 처리되는 전체 과정에 대해 알아보자.

물리 계층
- 데이터를 전기 신호로 변환하는 데 필요하다.

데이터 링크 계층
- 랜에서 데이터를 송수신하는 데 필요하다.

네트워크 계층
- 다른 네트워크에 있는 목적지에 데이터를 전달하는 데 필요하다.

전송 계층
- 목적지에 데이터를 정확하게 전달하는 데 필요하다.

응용 계층
- 애플리케이션 등에서 사용하는 데이터를 송수신하는 데 필요하다.

모든 내용은 위 그림을 바탕으로 진행된다.

위 이미지에서 네트워크는 총 몇 개로 나누어져 있을까?

정답은, 192.168.1.0/24, 172.16.0.0/16, 192.168.10.0./24로 총 3개로 이루어져있다.

웹 사이트에 접속해야하므로 응용 계층에서 시작한다.

웹 브라우저에 URL을 입력하고 엔터를 누르면, 캡슐화가 시작된다. (3-way handshake는 이미 이루어져 연결되었다고 가정한다.) PC에서 웹 브라우저를 이용해 웹 서버의 웹 사이트에 접속하기 위한 요청을 보낼 때에는 HTTP 프로토콜을 사용한다. 요청 메서드, URI 등이 담긴 HTTP 메시지를 보낸다.

이 데이터는 전송 계층에 전달된다. 전송 계층에서는 TCP 헤더가 붙어 세그먼트가 된다. TCP 헤더에서 어느 애플리케이션에 데이터를 보내야 하는지 식별하기 위해서는 포트 번호가 필요하다. 즉, 출발지 포트 번호와 목적지 포트 번호가 필요하다. 출발지 포트 번호는 well-known 포트가 아닌 포트 중에서 무작위로 선택된다.

  • Q. Well-known 포트 범위는?

여기서는 3500번 포트를 사용했다고 가정해보자. 목적지의 포트 번호는 HTTP 프로토콜을 사용하기 때문에 80번이 된다.

그 다음에는 데이터가 네트워크 계층에 전달된다. 네트워크 계층에서는 IP 헤더가 붙는다. IP 헤더에는 출발지 PC와 목적지 PC의 IP가 추가된다. 이렇게 IP 헤더가 붙어 패킷이 된다.

다음으로는 데이터 링크 계층으로 전달된다. 데이터 링크 계층에서는 이더넷 헤더가 붙어 이더넷 프레임이 된다. 그리고 물리 계층에서 랜카드를 이용해 전기 신호로 변환되어 네트워크로 전송된다.

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

모든 내용은 위 그림을 바탕으로 진행된다. 출처: 모두의 네트워크 그림 8-2

다시 위 그림을 참고해서, 스위치 A를 보자. 스위치 A는 데이터링크 계층에서 데이터를 전기 신호로 변환해 라우터 A로 전송한다. 스위치 A에서 데이터가 전기 신호로 변환되어 케이블을 통해 흘러가, 라우터 A에 도착하면 라우터 A는 데이터 링크 계층에서 이더넷 프레임의 목적지 MAC 주소와 자신의 MAC 주소를 비교한다.

이 때, MAC 주소가 일치하면 이더넷 헤더와 트레일러를 분리하는 역캡슐화를 수행한다. 이후, 네트워크 계층에 전달하고 자신의 라우팅 테이블과 목적지 IP 주소를 비교한다. 라우터 A의 라우팅 테이블에서 목적지 IP 주소의 경로를 알 수 있기에, 라우팅을 할 수 있다.

위 그림에 따르면 출발지 IP인 192.168.1.10을 라우터 외부 IP인 172.16.0.1로 변경한다.

다음으로, 데이터 링크 계층으로 전달해 라우터 B로 보내도록 이더넷 헤더와 트레일러를 붙여 캡슐화를 수행한다. 이후 물리 계층에서 데이터를 전기 신호로 변환해 네트워크로 전송한다. (즉, 전기 신호 형태로 라우터 A에서 라우터 B로 전달된다.)

라우터 B에서부터 스위치 B까지의 동작 또한 스위치 A에서, 라우터 A로 가는 동작과 동일하게 진행된다.

이미지 출처: 모두의 네트워크 그림 8-3

즉, 데이터가 전송되는 과정에서는 위 사진과 같은 과정을 반복한다.

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

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

네트워크 계층에서는 목적지 IP 주소와 서버의 IP 주소를 비교하고, 일치하면 IP 헤더를 분리해 전송 계층에 전달한다.

전송 계층에서는 목적지 포트 번호를 확인해 어떤 애플리케이션으로 전달할 지 식별한 후 TCP 헤더를 분리해 응용 계층에 전달한다.

드디어.. 응용 계층에 도달했다!