네트워크에서 protocol 프로토콜이란?
protocol이란?
protocol이란 한 마디로 통신에서 데이터를 주고받는데 있어서의 일종의 규약이라고 할 수 있다.
사람 사이에서도 human protocol이 존재한다. 간단한 예시로 인사를 건네면 인사가 돌아오는 등의 형식을 기대할 수 있다. 이와 비슷하게 protocol을 네트워크에서도 적용할 수 있다. 여기서 말하는 protocol은 기계 사이에 규약이라고 할 수 있다. 매체로만 연결되어 있는 두 device 사이에 의도를 메시지와 함께 보내야 한다. 예를 들어, 이 디바이스가 다른 디바이스에게 파일을 넘겨달라고 할 때 connection request를 보내고 이후 connection response를 받게 된다. 그러면 그 때 get이라는 명령어를 통해 파일에 대한 정보를 주면서 다시 메시지를 보내면 file을 받을 수 있는 형식이다. 이런 식으로 정해놓은 룰을 통신 protocol이라고 하는 것이다.
인터넷 상에서 일어나는 모든 communication activity는 철저히 protocol에 의해서 관리되고 관장되는 것이다. 네트워크 사이에서 주거니 받거니 하는 메시지 형태, 양식을 정하기, 포맷을 정하기, 순서를 정하기, 메시지를 받고 나서 다음에 취해야 하는 action이 무엇인가 등등을 철저히 정하는 것이 protocol이라고 할 수 있다.
다시 말해, protocol은 두 개 이상의 entity 사이의 데이터 교환을 전체적으로 관장하는 규칙들의 set이라고 볼 수 있다. 따라서 데이터 교환을 해야 하기 때문에 같은 언어로 통신을 해야 한다.
protocol의 요소
1. syntax :
메세지들의 포맷, 길이, 그 안에 들어가 있는 데이터의 내용 등을 포함
2. semantics:
메세지들의 의미. 메세지의 의미에 따라서 취해지는 액션이 달라지고 이에 따라 응답해야 하는 이벤트들도 달라진다. 이렇게 메세지의 의미와 그에 따라 취해야 하는 액션을 정의한 것이 semantics 요소에 포함된다.
3. timing:
메세지를 언제 버릴지, 언제 재전송을 해야 하는지 등의 시간을 결정하는 것이 timing 요소이다.
이렇게 protocol은 통신을 원할하게 만들기 위한 상호 rule이기 때문에 통신에서 가장 중요한 개념이라고 해도 무방하다.
표준 구축
그러면 이러한 protocol은 누가 만드는 것일까? 분명 rule이기 때문에 표준이 필요할 것이다. 우리가 익숙한 TCP, IP, HTTP, Skype, 802.II 모두 이러한 표준의 대표적인 예시이다. 그렇기 때문에 protocol은 이러한 규칙을 표준화시키는 국제기구가 존재한다. 인터넷 표준 단체는 IETF (Internet Engineering Task Force) 라고 한다. 여기서 인터넷 관련 모든 protocol을 표준화시키면서 개정하는 것이다.
protocol을 정할때는 모두가 모여서 표준화시키는 것이 아니라 각자 자신의 protocol을 제출해 자기것이 얼마나 좋은지에 대한 설득을 하는 과정을 거친다고 한다. RFC (Request for comment) 는 비평을 기다리는 문서라는 뜻으로, 컴퓨터과학자들은 RFC 메모의 형태로 생각을 출판하게 된다. IETF는 일부 RFC를 표준으로 지정하기도 하며 'RFC 몇번' 이런 식으로 표준을 발표한다.
Cellular network은 인터넷 쪽에서 만드는 것이 아니라 3GPP(3rd generation partnership project)에서 표준화한다.
LAN은 802.11위원회에서 표준화시켜서 거기서 나오는 모든 표준화 protocol은이 위원회에서 만든 LAN protocol이 돌아가고 있다.