[다시하는 백엔드 기초 공부] OSI 7계층
OSI 모델
OSI는 Open Systems Interconnection의 약자로 OSI 모델이란 네트워크 연관 기술들을 설명할 때 해당 기술의 역할을 네트워크의 동작 방식에 따라 구체적으로 설명하고 이해할 수 있도록 하기 위해 국제 표준화 기구(ISO)에서 정의한 이론 모델이다.
OSI 모델은 7개의 계층(layer)으로 나뉘어져 있어서 국내에서는 ‘OSI 7계층’으로 더 자주 표현한다.
7가지 계층
네트워크의 흐름에 따라 데이터가 어떻게 만들어지고, 전달되고, 도착하는지 동작을 직관적으로 파악할 수 있도록 OSI 모델은 7가지 계층으로 추상화 되어있다.
7계층 - 응용 계층 (Application Layer)
사용자와 가장 가까운 계층으로 사용자가 브라우저나 이메일 서비스와 같은 어플리케이션을 통해 데이터를 송수신 할 수 있도록 도와주는 HTTP, FTP, SMTP, DNS 같은 프로토콜 또는 시스템이 여기에 속한다. (여기에서 브라우저와 같은 어플리케이션은 응용 계층에 속하는 기술을 활용하는 프로그램일 뿐 정확히 응용 계층에 속하는 기술은 아니므로 헷갈리지 말자)
사용자가 브라우저를 통해 https://example.com 이라는 url에 접근할 때 브라우저가 HTTP 요청 메시지를 구성하고 url의 도메인 명을 IP로 변환하기 위해 DNS 조회를 하는 과정이 응용 계층에 속한다.
6계층 - 표현 계층 (Presentation Layer)
표현 계층은 전송되는 데이터의 표현 방식을 변환하고 압축, 암호화/복호화 등을 거치는 단계이다. 응용 프로그램 간 데이터 표현이 다르더라도 독립성을 제공하고 소통에 문제가 없도록 해주며 영어로는 Translation Layer 라고 부르기도 한다.
데이터를 나타내기 위한 TEXT, GIF, JPG, MPEG 등의 인코딩 포맷과 그것을 구분하기 위한 MIME 프로토콜, 보안을 위한 TLS/SSL 프로토콜 등이 해당 계층에 포함된다.
5계층 - 세션 계층 (Session Layer)
응용 프로세스가 연결을 생성, 유지/관리, 종료하기 위한 방법을 정의하는 단계이다. 여기엔 전송 중단시 재시작 및 복구 기능이나 체크포인트를 통한 데이터 동기화 등의 기능도 포함된다.
TCP/IP 세션을 만들고 없애는 과정이나 HTTP Keep-Alive를 통한 연결 유지, TLS 세션 재개 등이 속한다.
4계층 - 전송 계층 (Transport Layer)
종단간(End-to-End) 통신 과정에서 데이터의 신뢰성 및 완결성의 보장을 책임지는 단계로 상위 계층들이 데이터 전달의 유효성이나 효율성을 고려하지 않도록 해준다. 데이터를 작은 조각(segment)으로 분할하고 분할하여 전달된 데이터의 순서 보장 및 재조합, 오류 검출 및 재전송과 메시지가 지정된 주소로 올바르게 전달되도록 하는 기능들을 한다.
대표적인 프로토콜로 TCP와 UDP가 있다.
3계층 - 네트워크 계층 (Network Layer)
네트워크 계층의 주요 역할은 데이터를 정확한 목적지까지 안전하고 빠르게 전달할 수 있도록 물리적인 경로를 결정하는 것이다. 이 과정을 라우팅(routing)이라고 하는데 여기에 사용하는 프로토콜의 종류나 라우팅 기술은 다양하다.
대표적으로 사용되는 프로토콜로 논리 주소 지정을 위한 IPv4, IPv6가 있고, 라우터는 IP 주소를 활용해 패킷을 최적의 경로로 전달하는 대표적인 네트워크 장비이다.
2계층 - 데이터 링크 계층 (Data Link Layer)
데이터 링크 계층은 노드와 노드 사이에서 물리계층을 통해 전달되는 메시지의 흐름을 관리하여 오류 없이 안전하게 정보가 전달되도록 하는 책임을 진다.
해당 계층에서는 물리적 주소인 맥(MAC) 주소를 사용하여 통신이 이루어지며 네트워크 계층으로부터 전달받은 패킷을 프레임이라는 전송 단위로 나누어 사용한다.
이더넷이나 와이파이가 해당 계층에 속한다.
1계층 - 물리 계층 (Physical Layer)
전기나 빛을 사용한 신호 및 기계적 특성을 사용해서 물리적으로 데이터를 전송하는 계층으로 1과 0으로 나타내어지는 비트 단위를 사용한다.
해당 계층에서는 데이터를 전달만 할 뿐 데이터가 무엇인지, 오류가 있는지 등에는 신경쓰지 않는다.
대표적인 장비로는 허브, 리피터, 케이블, 모뎀 등이 존재한다.
실무에서의 응용
OSI 7계층은 네트워크를 구성하는 기술의 설명을 위해 정의된 것이긴 하지만 각 단계를 흐름에 따라 파악하고 있을 때 얻을 수 있는 이점이 있다. 통신 과정에서 오류가 발생했을 때 특정 단계에서 문제를 파악할 경우 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상을 해결할 수 있고 보안 설계 및 성능 최적화에도 계층 별 지식을 응용할 수 있기 때문에 해당 개념을 이해하는 것이 중요하다.