OSI는 개방형 시스템 간의 상호 연결을 의미합니다. 국제 표준화 기구인 ISO에서 개발한 모델로 컴퓨터 네트워크의 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것입니다.
간단하게 네트워크에서 통신이 일어나는 과정을 총 7단계로 나누어서 설명한 모델이라고 이해하면 됩니다.
1계층은 물리 계층입니다. 물리적인 네트워크 하드웨어와 데이터를 전송하는 데 사용되는 기술을 정의합니다. 전기적, 기계적, 물리적인 특성을 다루는데 사용됩니다.
물리 계층은 네트워크 OSI 모델에서 가장 낮은 계층으로 하드웨어 전송 기술로 구성됩니다. 하드웨어 장비로는 케이블, 리피터, 허브가 있으며, 네트워크에서 물리적으로 데이터를 전송하는 역할을 수행하게 됩니다.
2계층은 데이터 링크 계층입니다. 데이터 링크 계층은 네트워크에서의 직접적인 연결 부분을 담당하며, 물리적인 메체를 통해 안전하고 오류 없이 프레임을 전송하는 역할을 합니다.
물리 계층을 통해 데이터를 전송하는 과정에서 데이터가 제대로 도착하지 못하고 중도 분실되거나 데이터의 내용이 깨져서 변형되는 등 물리적 오류가 발생할 수 있는데요, 이러한 오류들을 데이터 링크 계층에서 감지하고 제어할 수 있습니다.
그리고 포인트 투 포인트 간의 신뢰성 있는 전송을 보장합니다. 송신 호스트와 수신 호스트 사이에 데이터 전송 속도 차이가 크다면 이에 대한 흐름 또한 제어가 가능합니다.
LAN 카드에 내장된 물리적 주소인 MAC(Medium Access Control) 주소는 네트워크 카드가 만들어질 경우 할당받습니다.
네트워크 장비 중 브릿지나 L2(Layer 2) 스위치가 이 계층에서 동작합니다. 데이터 링크 계층에서 전송되는 데이터의 단위를 프레임이라고 부릅니다.
3계층은 네트워크 계층입니다. 네트워크 계층은 여러 네트워크를 통해 데이터를 전송하기 위한 경로를 설정하고 제어합니다. 라우팅과 패킷 전달 역시 이 계층에서 담당하게 됩니다.
네트워크 계층은 여러 개의 서버(노드)를 거치는 경우마다 경로를 찾아주는 역할을 합니다. 상위 계층인 전송 계층에게 데이터 전송 시 서비스의 품질을 제공하는 여러 수단을 제공합니다.
데이터가 기본적으로 전송이 될려면 여러 경로를 거쳐서 가야하는데 이 경로 배정 기능을 라우터가 수행하게 됩니다. 또한 네트워크 계층에서는 네트워크 간에 데이터를 연결하여 인터넷이 가능하도록 해줍니다. 논리적인 IP(Internet Protocol) 주소가 있고, 네트워크 계층에서 전송되는 데이터 단위는 패킷이라고 부릅니다.
네트워크 계층에는 IPv4/IPv6, ICMP(Internet Control Message Protocol), ARP(Address Resolution Protocol, IP 주소를 데이터 링크 계층의 MAC 주소로 변환하는 기능을 수행합니다.) 등등 여러 프로토콜이 있습니다.
4계층은 전송 계층입니다. 전송 계층에서는 데이터의 신뢰성과 흐름 제어를 담당하며, 데이터 전송을 처리합니다.
전송 계층에서는 엔드 투 엔드의 사용자들이 신뢰성 있는 데이터를 주고받을 수 있게 합니다.
송신자와 수신자를 연결하는 통신 서비스 역시 전송 계층에서 제공하며, 신뢰성 있고 효율적인 데이터를 전송하고 오류 검출, 오류 복구, 흐름 제어, 중복 검사 등등을 수행합니다.
전송 계층에서는 두 가지로 나뉩니다. 바로 연결형 서비스(TCP)와 비연결형 서비스(UDP)가 있는데요, 한 번 알아봅시다
전송계층에서 사용되는 프로토콜인 TCP 신뢰성이 필요한 애플리케이션에 적합합니다.
연결 지향적 프로토콜 : 데이터를 주고받기 전에 논리적인 연결을 설정하고, 데이터 전송 후에는 연결을 해제합니다. 이러한 연결 설정과 해제를 통해 데이터의 신뢰성을 보장합니다.
신뢰성 있는 전송 : 데이터 전송 시에 순서를 보장하고, 손실된 패킷을 재전송하여 데이터의 신뢰성을 유지합니다.
흐름 제어 및 혼잡 제어 : 데이터의 흐름을 제어하여 송신자와 수신자 간의 속도 차이를 조절하고, 혼잡한 네트워크 상황에 대역폭을 효율적으로 사용합니다.
TCP의 예시로는 웹 브라우징, 파일 전송, 이메일 전송 등의 과정이 있습니다.
UDP는 빠른 전송 속도와 단순한 통신이 요구되는 경우에 적합합니다.
비연결성 프로토콜 : 연결 설정 및 해체 과정 없이 데이터를 전송합니다. 따라서 UDP는 TCP보다 빠른 속도를 제공하지만, 데이터의 손실이나 송수신 순서 변경 과정에서 TCP보다 보장이 되지 않는 특성을 지닙니다.
신속한 전송 : TCP와 달리 추가적인 연결 설정 및 해제 과정이 생략되므로 빠른 데이터 전송이 가능합니다.
브로드캐스트와 멀티캐스트 지원 : UDP는 다수의 호스트에게 동시에 데이터를 보낼 수 있는 브로드캐스트와 멀티캐스트를 지원합니다.
UDP의 예시로는 동영상 스트리밍, DNS(Domain Name System) 조회 등의 과정이 있습니다.
5계층은 세션 계층입니다. 세션 계층은 데이터 교환을 관리하고 동기화하는 작업을 수행합니다. 또한 세션 계층에서는 세션의 시작, 유지, 종료의 과정 역시 담당합니다.
세션 계층은 양 끝단의 응용 프로세스가 통신을 관리하는 방법입니다. 송수신 방식에는 동시 손수신, 반 이중, 전 이 중 방식 등이 있으며 통신하는 사용자들을 동기화하고 오류 복구 명령을 일괄적으로 다룹니다.
6계층은 표현 계층입니다. 표현 계층은 데이터의 표현 형식을 정의하고 암호화, 압축, 변환 등의 기능을 수행하여 응용 프로그램에 맞게 데이터를 준비하죠.
표현 계층에서는 인코딩이나 암호화 동작이 이루어집니다. 이 계층에서는 데이터를 표현하기 위한 문맥 계층이라 불립니다.
마지막인 7계층은 응용 계층입니다. 여기서는 사용자와 직접적으로 상호작용하는 계층으로, 네트워크 서비스를 사용하기 위한 인터페이스를 제공합니다.
응용 계층은 응용 프로세스 간의 기능을 제공합니다. OSI 모델 중에서는 가장 상위 계층으로 추상홛된 계층이라고 말할 수 있습니다.
응용 계층은 원격 로그인에 대한 텔넷부터 파일 전송인 FTP(File Transfer Protocol), 전자 메일에 대한 SMTP(Simple Main Transfer Protocol) 등등 여러 프로토콜이 있습니다.
예시로 우리가 PC방에서 롤이라는 게임을 하고있다가 연결이 끊겼다고 가정합시다. 어디에 문제가 있는지 확인하기 위해서는 7계층을 통해 확인이 가능하죠
먼저 모든 PC에 문제가 있는 경우 3계층인 네트워크 계층이거나 회사의 회선 문제인 1계층으로 특정지을 수 있습니다.
근데 이런 상황이 아닌 내가 게임하는 컴퓨터에서만 문제가 있다면 다음과 같이 분류가 가능합니다. 롤 소프트웨어가 문제가 있다면 7계층 어플리케이션의 문제인 것이고, 소프트웨어에 문제가 없고, 스위치에 문제가 생기는 경우라면 2계층 데이터 링크 계층의 문제일 것입니다. 7계층으로 나누었기에 문제가 생길 경우 다른 계층에 있는 장비나 소프트웨어를 건들지 않고 해결할 수 있다는 장점이 있습니다.