프로토콜의 3 구성요소
데이터 통신에서 프로토콜에 대한 이해는 중요하다
프로토콜은 네트워크 내에서 사전에 약속된 규약 일체라고 할 수 있으며 구문, 의미, 타이밍으로 구성된다.
프로토콜의 3 구성요소 구문(Syntax), 의미(Semantic), 타이밍(timing) |
1. 구문(Syntax) - "데이터의 형식이나 부호화 및 신호 레벨을 규정한 것"
송수진 데이터의 포맷이나 문법과 같은 형식적인 측면을 말한다.
자연어처럼 프로그램에 사용되는 각종 프로토콜도 표준화된 문법과 규칙을 따라야 할 필요가 있다.
문법을 다 무시하고 대뜸 'you, coffee?' 라고 하면 커피를 마실 거냐고 묻는 건지 네가 커피냐는 건지 (...)
발화 의도를 정확히 파악할 수 없고 원활한 의사소통이 불가능하다.
이와 같이 프로토콜 작성에 있어서도 정해진 문법과 구조를 따르는 것이 필수적이다.
2. 의미(Semantic) - "전송의 조작이나 오류 제어를 위한 제어 정보에 대한 규정"
데이터의 각 항목이 무엇을 뜻하는지, 문장의 의미는 무엇인지와 같은 내용적 측면을 말한다.
사람 간 대화 뿐만 아니라 프로그램 작성 시에도 문법적으로 오류는 없으나
의도하는 바가 무엇인지 정확히 파악이 어려워 의사소통이 원활하지 않은(제어가 잘 되지 않는) 상황이 있다.
영국인이 'fancy a cuppa?' 라고 묻길래 'yes, please'를 외쳤는데 커피를 가져다 주지 않아서 실망했다면
이는 영국에서 cuppa는 언제나 tea를 의미한다는 것을 알지 못했기 때문이다.
각 항목의 개념이나 전체 시스템에 대한 구조에 대한 이해 없이 전해진 메세지는 그 의미가 왜곡될 우려가 있다.
3. 순서(timing) - "접속되어 있는 개체 간의 통신 속도의 조정이나 메세지의 순서 제어 등을 규정"
데이터 송수신 동작 방식을 정의한 것으로 무엇을 전달할지 보다는 어떻게 전달할 지에 초점을 맞춘다.
송신과 수신측의 전달 속도를 제어하거나 초기 연결을 위한 메세지 순서 등을 규정하는 것 등이 포함된다.