이 프로토콜(Protocol)이라는 의미를 찾아보면 외교 분야에서 국가 간의 약속을 정한 의정서 또는 국가 간의 교류를 원활하게 하는 외교상의 의례
라는 뜻입니다.
통신 네트워크 분야에서도 이 의미와 비슷합니다.
통신할 때의 규약을 나타내며, 송신자와 수신자 사이의 데이터(정보)를 주고받을 때 통신방법에 대한 규칙과 약속
이기 때문에 의미는 크게 다르지 않습니다.
프로토콜은 어떤 표준협회나 어떤 회사에서 사용하냐에 따라 특징이 제각기 달랐지만 요즘에는 복잡한 프로토콜 기술이 이더넷-TCP/IP 기반 프로토콜들로 변경되고 있습니다.
물리적 측면 : 데이터 전송 매체, 신호 규약, 회선 규격 등, 이더넷이 널리 쓰입니다.
논리적 측면 : 장치들끼리 통신하기 위한 프로토콜 규격, TCP/IP가 널리 쓰입니다.
적은 컴퓨팅 자원과 매우 느린 네트워크 속도를 이용해 최대한 효율적으로 통신하는 것이 목표이기 때문에 대부분의 프로토콜은 문자 기반이 아닌 2진수 비트(Bit) 기반
으로 만들어졌습니다.
애플리케이션 레벨의 프로토콜은 문자 기반 프로토콜들이 많이 사용되고 있으며, HTTP와 SMTP와 같은 프로토콜이 대표적입니다. 비트로 메시지를 전달하지 않고 문자 자체를 이용해 헤더와 헤더 값, 데이터를 표현하고 전송합니다.
TCP/IP
는 프로토콜이라 부르지 않고 프로토콜 스택이라고 부릅니다.
TCP와 IP는 나중에 설명할 OSI 7계층에서 별도의 레이어에서 동작하는 프로토콜이지만 함께 사용하고 있는데, 이런 프로토콜 묶음을 프로토콜 스택이라고 부릅니다.
실제로 TCP/IP
프로토콜 스택에는 TCP와 IP뿐만 아니라 UDP, ICMP, ARP, HTTP, SMTP, FTP와 같은 다양한 애플리케이션 계층 프로토콜들이 있습니다.
TCP/IP
프로토콜 스택은 총 4개 부분으로 나뉘며, 물리 부분인 이더넷 외에 데이터가 목적지를 찾아가도록 해주는 네트워크 계층, 잘린 패킷을 데이터 형태로 잘 조합하도록 도와주는 전송 계층과 애플리케이션 계층으로 구성됩니다.
아래의 이미지는 TCP/IP 프로토콜 스택을 간략하게 표현한 것입니다.
그러면 OSI 7계층과 위에서 살짝 설명한 TCP/IP 프로토콜 스택에 대해서 간단히 조금 더 설명하고 넘어가겠습니다.
OSI 7계층과 TCP/IP 프로토콜 스택은 복잡한 네트워크를 단계별로 나누어 이해하기 쉽도록 도와줍니다.
과거에 통신용 규약이 표준화되지 않았기 때문에 호환되는 시스템이나 애플리케이션이 많아서 통신이 불가능했습니다.
이를 하나의 규약으로 통합하려는 노력이 현재 OSI 7계층
입니다.
OSI 7계층
은 네트워크 동작을 나누어 이해하고 개발하는 데 많은 도움이 되므로 네트워크 주요 래퍼런스 모델로 활용되고 있지만 현재는 대부분 프로토콜이 TCP/IP 프로토콜 스택 기반으로 되어 있습니다.
복잡한 데이터 전송 과정을 OSI 7계층으로 나누어 보면 이해하기 쉽습니다.
OSI 7계층은 다시 두 가지 계층으로 나눌 수 있습니다.
1 ~ 4 계층 : 데이터 플로 계층(Data Flow Layer) / 하위 계층(Lower Layer)
5 ~ 7 계층 : 애플리케이션 계층(Application Layer) / 상위 계층(Upper Layer)
데이터 플로 계층
은 데이터를 상대방에게 잘 전달하는 역할을 가지고 있습니다.
애플리케이션 개발자는 애플리케이션 계층
프로토콜을 개발할 때 하위 데이터 플로 계층을 고려하지 않고 데이터를 표현하는 데 초점을 맞춥니다.
반대로 네트워크 엔지니어는 애플리케이션 계층을 일반적으로 심각하게 고려하지 않습니다
현대 네트워크는 대부분 TCP/IP
와 이더넷
으로 이루어져 있습니다.
기술과 표준을 만들 때 만들어진 역사적 배경이나 만든 조직, 프로토콜이 만들어진 목표에 따라 성향이 많이 반영되는데 TCP/IP
는 이론보다 실용성에 중점을 둔 프로토콜입니다.
TCP/IP
모델은 4계층으로 구분합니다.
OSI 7계층
은 데이터 플로 계층과 애플리케이션 계층으로 구분할 수 있으며, 이 두 계층의 구분은 데이터를 만드는 애플리케이션 부분과 데이터를 잘 전달하는 데 집중하는 하부 계층으로 구분하는 것이 목적이었습니다.
그러다 보니 자연스럽게 애플리케이션 개발자가 고려해야 할 부분과 서버 엔지니어나 네트워크 엔지니어가 고려해야 할 부분이 구분되었는데 TCP/IP
모델은 그 구분이 더 확연히 드러납니다.
상위 3개 계층을 하나의 애플리케이션 계층으로 묶고, 1, 2계층 즉 물리 계층과 데이터 링크 계층을 하나의 네트워크 계층으로 구분합니다.
이상으로 프로토콜에 대해서 간단히 알아봤습니다.