본문 바로가기

프로그래밍/네트워크

네트워크(2) - internet protocol layers

글을 시작하기전에 우리들의 컴퓨터를 생각해보자.

 

 

 

만약 일체형 컴퓨터를 사용한다면, 모니터와 본체가 붙어있다. 그렇기에 하나라도 고장나면 전부 가져가야 한다.

일체형이 아니라 분리형 컴퓨터라면, 고장나면 고장난 것만 가져가면 된다.

즉, 각각 모듈별로 관리해주면 되기 때문에 유지보수가 편하다. 이렇기에 구조와 구획화는 중요하다.

 

 

네트워크는 어떻게 구획화를 해야할까?

네트워크는 매우 복잡하다. 이런 상황에서 어떻게 구조를 잘 만들까?

네트워크는 layer별로 구분을 해놓아서 각기 다른 기능을 수행해낸다.

 

 

 


네트워크는 전세계적으로 이용하기 때문에 전세계적으로 공통으로 만들어져야 한다. 그래서 reference model이 나오게 되었다. reference model에 들어가는 protocol도 공통되어야 한다.

 

우리는 두가지 reference model

OSI model 

TCP/IP model 

에 대해 알아보자.

 

 

 

 

 


 

Internet protocol layers

 

internet protocol stack

위 그림은 internet protocol layer이다.

 

application

- 실제 네트워크를 활용하는 application이 어떤 소프트웨어인가.

- 쓰이는 protocol : FTP, SMTP, HTTP

transport

- data 전송에 대한 process. 주로 하는 건 신뢰성 있는 전달.

- protocol : TCP, UDP

network

- 경로를 가르쳐주는 Routing. 데이터가 어디로 가야할지 알려준다.

- protocol : IP, routing protocols

link

- 매체가 무엇이냐에 따라 그 매체에 적합하게 데이터를 보낼 수 있게 하는 길.

- Ethernet, 802.11(WiFi), PPP

physical

- 실제 물리적인 매체

 

OSI model

ISO애서 만든 OSI reference model. 7개의 layer가 있다.

최초의 표준 reference model이다. Internet에서는 application, presentation, session을 묶어서 application layer이다.

 

source에서 destination까지 데이터를 보내는 과정은 다음과 같다.

- application을 거치면서 헤더가 붙고, transport를 거치고 헤더가 붙고, 붙고붙고... (각 계층의 정보(헤더)를 붙힌다.)

- switch에서 받고 어느 경로로 갈지 결정 (link계층까지만 헤더를 읽음) (router와 다름)

- router도 어느 경로로 갈지 결정 (network 계층까지만 헤더를 읽음)

- destination에서 다 읽음. M을 받음.

 

데이터 전송 완료 

 

TCP/IP model

그렇다면 TCP/IP 모델은 무엇일까? 우리가 범용적으로 사용하는 TCP 프로토콜과 IP 프로토콜을 OSI 7계층 형식에 맞추어 더 추상화(혹은 간략화) 시킨 모델이다. 그럼 TCP/IP모델을 통해서 실제 네트워크가 이루어지는 과정을 알아보자.

 

1. Application layer

Application layer

우리가 주소창에서 주소를 검색할 때 http를 붙이는데, 이 http는 전송 프로토콜을 의미한다.

내가 http라는 어플리케이션 프로토콜을 이용하여 도착지에 데이터를 보내겠다는 뜻이며 요청과 동시에 표현계층(OSI 6계층)으로 이동한다.

 

표현계층에서는 데이터를 가공/처리 한다. 만약 https 보안프로토콜을 사용한다면 어플리케이션계층의 데이터를 암호화하거나 혹은 바이너리로 들어온 데이터들을 JPG, PNG등 확장자에 맞추어 우리가 볼 수 있는 형식으로 변경해준다.

 

세션계층(OSI 5계층)에서는 데이터의 무결성이나 신뢰성을 확인한다. 계층을 위해 데이터를 끊어주거나 확인해준다라고 이해하면 된다.

 

결국 전송계층으로 데이터가 전달된다.

 

2. Transport layer

transport layer

전송계층에서는 TCP 프로토콜을 이용하며, 받은 데이터를 잘게 쪼갠 후 일련의 번호를 부여한다. 

후에 인터넷계층으로 데이터를 전달한다.

 

3. internet layer 

internet layer

인터넷 레이어에서는 IP프로토콜을 통해 라우터들을 이동하며 전달받은 데이터를 목적지로 전달한다.

그 후 과정

 

 


계층별 데이터

각각의 레이어를 거치면서 데이터의 양은 더 많아진다. 맨 처음 언급했던것처럼 상위계층으로부터 받은 데이터는 관여하지않고 자신의 계층에서의 추가 데이터만 계속 늘어가게 된다.