프로토콜이란 서로 다른 하드웨어와 운영체제가 공존하는 네트워크에서 어떤 과정에서 어떻게 단일의 데이터를 다룰지 합의된 원칙(규칙)을 의미합니다.
우리가 사는 세상에도 프로토콜이 존재합니다.
이것은 매너? 예의? 혹은 도덕적 원리? 라는 용어로 대체될 수 있습니다.
우리는 살아가면서 다양한 상황에 처하게 되는데, 만약 해당 여건에 이해 당사자들간 합의된 원칙이 없다면 어떻게 될까요, 모두들 어떻게 문제를 해결할지 혼란에 빠지겠죠,
얼굴을 가릴 용도로 가면을 쓰기도 하지만, 가면 그 자체로도 의미를 표현합니다. 기분이 좋을 경우, "웃는 가면"을 사용하면 되고, 우울할 경우, "우울가면"을, 화가 날 경우 '화난 가면"을 쓰면 됩니다. 다시 말해, 프로토콜(가면)은 다양한 상황(기분)에 맞게 사용하면 됩니다(쓰면 됩니다). 마찬가지로 프로토콜(가면)을 사용한다는 건 어떤 의미를 사용(표현)한다는 의미이기 때문이다.
영화에서 나올 법한 이야기지만, 어떤 행위를 하기 위해서는 해당 움직임을 정의한 프로토콜을 사용하면 됩니다.
예를 들어 걷기 위해서는 "걷는 프로토콜"을, 뛰기 위해서는 "뛰는 프로토콜"을, 더 나아가 축구하기 위해서는 "축구 프로토콜"을 사용해야 합니다.
두 컴퓨터(클라이언트,서버)가 어떤 서비스(이벤트)를 하는 경우 이에 해당하는 방법을 모아둔 무엇(프로토콜)을 사용한다고 생각해 봅시다.
네트워크에는 다양한 규격의 디바이스가 존재하며 주고 받는 데이터 또한 다양합니다.이렇게 이종의 컴퓨터끼리 통신하려면, 어떻게 작업을 하면 될까요?
그것은 각 케이스 별로 데이터를 전달/연결방식을 (미리) 정의하고 이를 따르도록 만들면(강제하면) 됩니다.
미리 선언된 무엇이 있다면 컴퓨터가 그 내용(원칙)대로 작동하면 됩니다. 이것이 바로 컴퓨터에게 해당 프로토콜을 따르도록 하는 것 입니다.
쉽게 말해, 해당 케이스(이벤트)별로 프로토콜을 사용하도록 하면, 그 내용을 동작한다는 의미입니다.
해당 프로토콜을 사용한다는 것은 어떤 동작을 실행하겠다는 컴퓨터들(클라이언트와 서버)의 의지적인 표현입니다.
그럼 컴퓨터들이 데이터를 주고받는 이벤트는 무엇이 있을까요
다음과 같습니다.
- 이메일을 보내기,
- 파일을 업로드/다운로드하기
- 인터넷으로 (영상)통화
- 인터넷 하기
그리고 각 이벤트가 사용하는 프로토콜은 다음과 같습니다.
- 이메일을 보내기(SMTP/POP)
- 파일을 업로드/다운로드하기(FTP)
- 인터넷으로 (영상)통화(VOIP)
- 인터넷 하기(HTTP)
이야기를 정리하면 프로토콜을 사용한다는 것은 두 컴퓨터(클라이언트/서버)가 어떤 액션/이벤트/서비스 를 하는 중이라고 말 할 수 있습니다.
왜냐하면 프로토콜은 어떤 서비스/상황를 수행하기 위해 여러 과정원칙을 정의한 내용이기 때문입니다.
인터넷을 한다고 하면 클라언트와 서버는 HTTP 프로토콜을
이메일을 보낸다면 SMTP/POP 을,
파일을 업로드/다운로드하면 FTP 를 사용하기 때문입니다.
다다음 글에서 다룰 내용이지만, 프로토콜은 애플리케이션 계층에 위치해 프로그램의 서비스 영역을 다룬다.
왜냐하면 이메일, 인터넷, 파일업로드/다운로드, [음성]영상통화는 서비스의 종류이기 때문이다.