본문 바로가기

Computer Science/Network

<네트워크> OSI모델의 흐름

1. 랜카드에서의 데이터 전달 및 처리

* 네트워크의 구성

 - 이번 포스팅에서는 지금까지의 내용을 총 정리해보자.

 

 - 웹 사이트에 접속하였을 때 OSI 모델 상위 응용 계층부터 하위 물리 계층까지의 작업을 정리해보자.

 

 - 응용 계층 : (세션 계층과 표현 계층 포함) 애플리케이션 등에서 사용하는 데이터를 송수신하는 데 필요

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

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

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

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

 

 - 컴퓨터, 스위치, 라우터, 웹 서버로 구성된 네트워크가 있다고 가정해보자.

 

 - 위 그림에서 네트워크는 총 세 개로 구성되어 있다.(192.168.1.0/24, 172.16.0.0/16, 192.168.10.0/24)

 

 - 위를 OSI 모델로 살펴보면 다음과 같다.

 

 

* 데이터에서 전기신호로

 - 이번에는 OSI 모델에서 데이터가 전달되고 처리되는 과정을 살펴보자.

 

 - 먼저 컴퓨터에서 OSI 모델의 캡슐화가 이루어 진다. 웹사이트에 접속해야 하므로 응용 계층부터 시작한다.

 

 - 웹 브라우저에 URL을 입력하고 접속하면 캡슐화가 시작된다. 단 여기서는 3-way 핸드셰이크는 이미 완료되어 연결이 확립되어있다고 가정한다.

 

 - 컴퓨텨에서 웹 브라우저를 이용해 웹 서버의 웹 사이트에 접속하기 위한 요청을 보낼 때 사용하는 것이 HTTP 프로토콜이었다. 응용계층에서는 웹 서버에 있는 html 데이터를 얻어야 하므로 'GET /index.html HTTP/1.1 ~~' 과 같은 HTTP 메시지를 보낸다.

 

 - 이어서 데이터가 전송 계층으로 전달된다. 여기서 'TCP헤더'가 붙는다. 여기서 중요한 점은 출발지 포트 번호와 목적지 포트 번호가 들어있다는 점이다. 3500번 포트에서 웹 서버 80번 포트 (HTTP이므로)로 데이터를 전송한다고 가정하자. TCP헤더를 가진 데이터는 '세그먼트'라고 한다.

 

 - 세그먼트는 이어서 네트워크 계층에 전달된다. 여기서는 'IP헤더'가 붙는다. 여기서 중요한 점은 출발지 IP주소와 목적지 IP가 들어있다는 점이다. IP헤더가 붙은 데이터는 'IP패킷'이라 한다.

 

 - 이어서 데이터 링크 계층으로 전달된다. 여기서는 '이더넷 헤더'가 붙으며 이더넷 헤더가 붙은 데이터를 '이더넷 프레임'이라 한다.

 

 - 이 다음으로 물리 계층에서 전기 신호로 변환되어 네트워크로 전송된다. 여기서 전기 신호로 변환하기 위해 '랜 카드'가 사용된다.

 

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

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

 - 가장 위에서 봤었던 그림을 보자. 먼저 스위치A부분이다. 스위치 A는 데이터 링크 계층에서 데이터를 전기신호로 변환하여 라우터 A로 전송한다.

 

 - 참고로 이더넷 헤더에는 목적지 MAC주소 출발지 MAC주소 A 라우터의 MAC주소 컴퓨터의 MAC 주소 등이 담겨있다.

 

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

 - 이번에는 위 그림에서 라우터A를 살펴보자.

 

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

 

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

 

 - 다음으로 네트워크 계층에 전달하고 자신의 라우팅 테이블과 목적지 IP 주소를 비교하게된다. 여기서는 목적지 IP주소가 192.168.10.5로 전달받았을 것이다.

 

 - 라우터 A의 라우팅 테이블에서 목적지 IP 주소의 경로를 알 수 있으므로 라우팅을 할 수 있다. 따라서 출발지 IP주소 192.168.1.10을 라우터의 외부 IP 주소(실제로는 왠 측)인 172.16.0.1로 변경한다.

 

 - 이제 다시 데이터 링크 계층으로 전달하여 라우터 B로 보내도록 이더넷 헤더와 트레일러를 붙인 후 물리계층에서 전기신호로 만들어 네트워크로 전달한다. 이 때 붙는 이더넷 헤더에는 컴퓨터의 MAC주소가 아닌 라우터 A의 MAC주소가 붙을 것이다.

 

 - 이제 라우터 B쪽을 살펴보자.

 

 - 먼저 라우터B 또한 이더넷 프레임의 목적지 MAC주소와 자신의 MAC주소를 비교한다.

 

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

 

 - 다음으로 네트워크 계층에 전달하고 자신의 라우팅 테이블과 목적지 IP 주소를 비교하게된다.

 

 - 라우터 B의 라우팅 테이블에서도 목적지 IP주소의 경로를 알 수 있으므로 라우팅을 할 수 있다. 따라서 현재의 출발지 IP 주소 172.16.0.1을 라우터 B의 내부 IP 주소(실제로는 랜 측)인 192.168.10.1로 변경한다.

 

 - 그 다음으로 데이터 링크 계층에 전달하여 스위치에 전달되도록 이더넷 헤더와 트레일러를 붙인 후 물리계층에서 전기신호로 만들어 네트워크로 전달한다. 이 때 이더넷헤더는 그대로 사용한다.

 

 - 이제 스위치 B쪽을 살펴보자.

 

 - 스위치 B는 물리계층에서 받은 데이터를 데이터 링크 계층에서 처리하고 웹 서버에 데이터를 전기 신호로 전달한다.

 

3. 웹 서버에서의 데이터 전달 및 처리

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

 - 지금까지 웹 서버까지의 데이터 전달 과정을 살펴 보았다. 이번에는 웹 서버에서 이루어지는 OSI 모델의 역캡슐화를 살펴보자.

 

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

 

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

 

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

 

 - 위 과정을 거쳐 비로소 웹 서버의 응용계층에 도착한다.

 

 

 


 

 

 

참고

 

 

 

모두의 네트워크

 

모두의 네트워크

10일 만에 배우는 네트워크 기초

www.gilbut.co.kr

 

'Computer Science > Network' 카테고리의 다른 글

<네트워크> 페이지 로딩 과정  (0) 2021.08.28
<네트워크> 무선 랜  (0) 2021.04.29
<네트워크> 응용 계층  (0) 2021.04.24
<네트워크> 전송 계층  (0) 2021.04.22
<네트워크> 네트워크 계층(2)  (0) 2021.04.17