Basic Concept
Protocol 이란?
정확히 3가지를 기억하면 된다.
많은 블로그에서는 프로토콜이란 Sender, Receiver의 상호 간의 규약 (통신을 효율적으로 혹은 특정 목적을 달성하기 위한) 이라고 명시를 해둔다. 그렇다면 그 규약이 무엇을 정의하고 있는지가 중요할텐데, 그것이 위의 3가지 키워드이다.
통신에 있어서 메세지의 형식이 어떠한지
네트워크 개체 간에 해당 메세지를 어떤 순서로 받을 것인지
자신이 해당 메세지를 받거나 전달했을 때 어떤 행동을 수행할 것인지
를 명시한 것이 Protocol 입니다.
결과적으로...
protocol layering이란?
특정 프로토콜로 사용자와 통신을 하는 과정에서 메세지의 Delivery가 발생했다고 하면, Delivery외의 잡다한 일을 한 장치에서 모두 수행하지 않는다. 이 때 프로토콜이 수행하는 특정 행위 외의 모든 것들을 하위 프로토콜에게 맡긴다.
그렇다면 하위 프로토콜은 다시 하위 프로토콜에게 위임하고... 이런 Recursive Relationship이 발생하는데, 이 때의 논리구조를 Protocol Stack이라고 부른다. (층층이 둔다는 Layering의 의미와 동일)
그렇다면 Layering이 필요한 이유는 무엇인지 Single Layer 구조와 Triple Layer 구조를 통해 살펴보자.
Single Layer Protocol (대면의 경우로 생각하자)
이 때의 요구 조건은 서로가 만났을 때 인사를 해야하며, 서로의 관계에 따른 할 말을 골라야하며, 상대가 말할 때는 침묵을 해야하고, 서로가 헤어질 때는 잘가라는 인사를 해줘야 한다.
Triple Layer Protocol (비대면의 경우로 생각하자)