컴퓨터나 기타 기기들이 리소스를 공유하거나 데이터를 주고 받기 위해 유선 혹은 무선으로 연결된 통신체계를 말하는 네트워크는 아래와 같은 여러가지 기능들을 제공한다.
이렇게 네트워크에서 제공하는 통신기능들이 제대로 동작하기 위해서는 통신에 참여하는 참여자들 사이에서 약속된 통신 방법이 있어야한다. 여기서 말하는 약속된 통신 방법을 네트워크 프로토콜이라고 한다.
[네트워크 프로토콜]
네트워크 통신을하기 위해서 통신에 참여하는 주체들이 따라야하는 형식, 절차, 규약 등을 말한다.
인터넷에서 컴퓨터들이 정보를 주고받는 데 사용되는 프로토콜의 집합이다. 이를 TCP/IP 4계층 모델로 설명하거나 OSI 7계층 모델로 설명한다.
네트워크 구조를 OSI 7계층이나 TCP/IP 4계층처럼 여러 계층으로 나누어 정의한 이유는 통신이 일어나는 과정에서 데이터의 흐름을 한눈에 파악하기 쉽고 통신 과정 중 문제 발생시 다른 단계의 장비 및 소프트웨어를 건드리지 않고 통신 장애를 일으킨 단계에서 해결할 수 있기 때문이다. 또한, 변경에 유연하도록 하기 위함이다. 각 계층들은 다른 계층에 영향을 받지 않도록 설게되어 있어 독립적으로 발전해 나아갈 수 있다. 즉, 다양한 유형의 프로토콜에 적응할 수 있는 유연성을 제공한다.
OSI 7계층은 네트워크가 프로토콜을 통해 통신하는 과정을 7단계로 나누어 계층 간 상호 작용하는 방식을 정해놓은 것을 말한다. ISO(국제표준화기구)에서 개발한 네트워크 표준 모델이다. OSI 7계층을 OSI 참조 모델이라고도 부르는데, 누구나 OSI 7계층을 참조에 모든 통신 장치를 만들기 때문이다. 모델의 각 계층은 독립되어있기 때문에 특정 계층에 이상이 생기더라도 다른 계층에 영향을 주지 않는다.
[OSI 7계층 모델]
[OSI 7계층 특징]
최상위 계층으로 사용자들이 사용하는 애플리케이션 목적에 맞는 통신 방법을 제공하는 계층이다. 이 계층은 사용자가 응용 프로그램을 통해 네트워크 서비스에 접근할 수 있도록 사용자 인터페이스를 제공한다.
파일 전송에 사용되는 FTP, 이메일전송에 사용되는 SMTP 그리고 웹 브라우저를 사용해서 웹 서버에 접속할 때 사용하는 HTTP 등 실제 응용 프로그램에서 사용하는 프로토콜들이 응용계층에서 동작한다.
[응용 계층에서 동작하는 대표적인 프로토콜]
HTTP, DNS SMTP, FTP 등
애플리케이션간의 통신에서 데이터 표현의 차이를 해결하기 위해 서로 다른 형식으로 변환해주거나 공통 형식을 제공하는 등 데이터의 표현방식을 결정해주는 계층이다.
송신측에서는 수신자가 이해할 수 있는 형태로 데이터를 변환(인코딩)하며 수신측에서는 응용 계층에 맞는 형태로 변환한다. 그래픽 정보를 JPEG 형태로 변환하거나 동영상을 MPEG 형태로 변환하여 송수신하는 작업이 수행된다. 또한, 데이터의 효율적인 전송을 위한 데이터 압축 및 데이터 보안을 위한 데이터 암호화와 복호화 기능을 제공한다.
[표현 계층에서 동작하는 대표적인 프로토콜]
JPEG, MPEG 등
[표현 계층에서 데이터를 변환하는 이유]
이렇게 데이터의 형식을 변환하는 이유는 통신하는 두 기기가 특성이 같다는 보장이 없기 때문이다. 따라서 기기의 종류에 관계없이 이해할 수 있는 공통 표준 형식으로 데이터를 변환하여 수신자에게 보내고 수신자는 자신에게 맞는 형태로 해당 데이터를 다시 변환하게 된다.
세션계층은 애플리케이션간의 통신에서 세션을 관리하며 포트를 기반으로 통신을 연결한다. 네트워크 장치간의 통신 방식을 결정할 수 있으며, 세션을 연결하고 해제하며 전송 중단시 동기화 기능을 통해 데이터를 복구할 수 있다.
[세션 계층에서 동작하는 대표적인 프로토콜]
SSH, TLS 등
[동기화 기능]
데이터 전송시 오류가 발생했을 경우 제일 최근에 데이터 전송이 성공한 시점인 동기점부터 다시 데이터를 재전송하여 작업을 이어갈 수 있도록 하는 기능
[통신방식]
- 전이중 방식(Full duplex) : 양방향 통신 방식으로 송신선과 수신선이 각각 존재하여 양쪽이 동시에 통신할 수 있는 방식이다. 현대의 고속 이더넷은 이방식을 사용한다.
- 반이중 방식(Half duplex) : 양방향 통신 방식이지만 회선 하나로 송신과 수신을 번갈아가면서 하는 방식이다.
- 단방향 방식(Simplex) : 한쪽에서만 데이터를 전송하는 방식이다.
전송 계층은 데이터 전송을 담당하는 계층으로 포트번호를 기반으로 송신자와 수신자 간의 신뢰성있고 효율적인 데이터를 전송하기 위해 흐름제어, 오류제어 등의 기능을 제공한다.
[전송 계층에서 동작하는 대표적인 프로토콜]
TCP, UDP 등
실제 네트워크 간 라우팅을 담당하는 계층이다. IP주소등을 통해 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 역할을 하며 라우터를 통해 경로를 선택하여 경로에 따라 패킷을 전달한다. 상대방이 제대로 받았는지에 대해서는 보장하지 않는 비연결형적인 특징을 가지고 있다.(낮은 신뢰성 -> 상위 계층에서 패킷 분실시 오류 복구)
[라우팅]
IP 주소를 기반으로 통신 데이터를 보낼 최적의 경로를 선택하는 과정으로 라우터에서 담당한다.
[네트워크 계층에서 동작하는 대표적인 프로토콜]
IP, ARP 등
장비의 고유 주소인 MAC주소를 이용하여 노드간 데이터를 전송하는 계층이다. IP 주소를 가지고 MAC 주소를 찾거나(ARP) MAC 주소를 가지고 IP주소를 찾아준다.(RARP) 그 과정에서 이더넷 프레임을 통해 에러확인, 흐름제어, 접근제어 등의 기능을 수행한다. 이를 통해 안전한 정보의 전달을 수행할 수 있도록 해준다.
[데이터링크 계층에서 동작하는 대표적인 프로토콜]
ARP, RARP 등
최하위 계층으로 하드웨어같은 물리적인 매체를 통해 bits 단위로 데이터를 전송한다. 데이터 링크 계층으로부터 프레임을 받아 0과 1로 이루어져 있는 전기적 신호로 데이터를 변환하여 구리나 광섬유 또는 무선 통신 매체를 통해 전송한다.
물리 계층은 단순히 데이터 전달의 역할만을 수행하며 오류제어등의 기능은 수행하지 않는다.
OSI 7계층 구조는 장비 개발과 네트워크 통신 표준화를 위한 개념적인 성향의 모델이다. 반면 TCP/IP 스택(4계층)은 실제 인터넷 통신시 기반이 되는 모델이다. 애플리케이션, 전송, 인터넷, 링크 4계층으로 이루어져있으며 링크 계층을 데이터링크와 물리 계층으로 나누어 5계층으로 구분하기도 한다.
OSI 7계층에서 5,6,7 계층에 해당한다.
OSI 7계층에서 4계층인 전송 계층에 해당한다.
OSI 7계층에서 3계층인 네트워크 계층에 해당한다.
OSI 7계층에서 1, 2계층인 물리, 데이터 링크 계층에 해당한다. 1, 2 계층을 나누어 5계층으로 구분하기도 한다.
[Reference]
[네트워크] OSI 7계층
OSI-7계층 레이어의 특징