오늘날 우리들은 인터넷을 통해 전세계 모든 사람들과 연결 되어있습니다!
이로 인해 지구 반대편에 있는 친구와도 통신이 가능하게 되었는데, 만약 인터넷을 통해 메신져로 아프리카에 있는 사용자와 대화를 하게 되었는데 서로 사용 하는 언어가 달라서 대화가 안된다면 우리는 서로 통신을 하고 있다고 할 수 있을까요?
한국어를 사용하는 한국인과 다른 언어를 사용하는 외국인이 서로 이해 할 수 없는 언어를 사용한다면 연결이 되어 있다라고 해도 대화 한다라고 말 할 수는 없을겁니다.
마찬가지로 컴퓨터와 컴퓨터, 장비와 장비간에 서로 통신을 하려고 할때 이해 할 수 없는 언어를 사용 한다면 당연히 통신이 안된 다고 할 수 있을것입니다.
| 프로토콜 또는 통신규약의 사전적인 의미는 컴퓨터나 원커리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계입니다. * 또는 외교상의 언어로써 의례나 국가간에 약속을 의미합니다. |
즉, 사람과 사람이 통신할 때 서로 이해할 수 있는 언어, 공용된 언어를 사용해 전세계 모든 사람과 대화 할 수 있다라고 하면, 컴퓨터와 컴퓨터도 서로 이해 할 수 있는 언어, 공용된 언어를 사용해야 한다는 것인데, 이것이 바로 프로토콜(Protocol) 입니다.
통신에서는 어떤 시스템이 다른 시스템과 통신을 원할하게 수용하도록 해주는 통신 규약, 약속 이라 보시면 됩니다.
프로토콜의 요소
프로토콜에서는 다음 3가지 요소를 포함하고 있습니다.
- 구문(Syntax) : 데이터의 형식이나 신호로, 부호화 방법 등을 정의합니다.
- 의미(Semantics) : 오류 제어, 동기 제어, 흐름 제어 같은 각종 제어 절차에 관한 제어 정보를 정의합니다.
- 순서(Timing) : 송/수신자 간 혹은 양단(End-to-End)의 통신 시스템과 망 사이의 통신 속도나 순서등을 정의합니다.
프로토콜의 기능
프로토콜의 대표적인 기능들은 다음과 같습니다.
- 세분화(or 단편화)와 재합성
데이터의 크기와 종류는 다양합니다. 대용량 크기의 파일은 그대로 전송할 수가 없어서 이를 작은 단위로 나누어 보내고 수신측에서는 재조합해야합니다. - 캡슐화
PDU는 SDU(Service Data Unit)와 PCI(Protocol Control Information)로 구성되어 있습니다.
*PDU : 프로토콜 데이터 단위로, 데이터가 전송될 때 일정 크기의 데이터 블록을 말합니다.
*SDU : 전송하려는 데이터를 의미합니다.
*PCI : 보통은 제어 정보를 의미합니다. 주소, 오류 검출 코드, 프로토콜 제어 정보등이 있습니다. 이러한 정보를 붙이는 것을 캡슐화라고 합니다. - 연결제어
다음과 같은 2가지 전송이 있습니다.
- 연결 지향형 데이터 전송(Connection Oriented Data Transfer) : 두 시스템이 서로 데이터를 교환할 때 연결을 설정하는 경우에 연결 설정, 데이터 전송, 연결 해제 3단계로 구성됩니다. 예로 TCP가 있습니다.
- 비연결 지향형 데이터 전송(Connectionless Data Transfer) : 연결을 설정하지 않는 경우로 예로 UDP가 있고 이렇게 전송되는 데이터를 '데이터그램' 이라고 합니다. - 오류제어
SDU나 PCI가 잘못되었을 경우 이를 발견하는 기법입니다.
패리티 비트(Parity bit), 잉여도 검사(CRC, Cyclic Rebundancy Check)를 통해 발견할 수 있습니다. 순서 검서나 일정 시간 안에 패킷을 받지 못하면 재전송을 요구하는 방식으로 이루어집니다. - 흐름제어
송신측 개체로부터 오는 데이터의 양이나 속도를 조절하는 기능입니다.
흔히 다음과 같은 두 가지 방법을 씁니다.
- 정지-대기(Stop and Wait) : 패킷에 대한 응답 후에 다음 패킷을 보냅니다.
- 슬라이딩 윈도우(Sliding Window) : 가용 데이터 분량의 패킷을 한꺼번에 보낸 후 응답 패킷을 받으면 다시 그만큼 데이터를 한꺼번에 보내는 방식입니다. - 동기화
데이터를 전송할 때 각 개체는 타이머 값이나 윈도우 크기 등을 기억해야 하는데, 이런 값을 공유하는 것을 말합니다. - 순서 결정
프로토콜 데이터 단위(PDU, Protocol Data Unit)가 전송될 때 보내지는 순서를 명시하는 기능이며, 연결 지향형(Connection-or-Iented)에만 사용됩니다.
순서를 지정하는 이유는 흐름 제어, 오류 제어 등을 위해서입니다. PDU는 상대한테 보내면 상대는 순서에 맞게 데이터를 재구성 하고 오류가 있을 시에는 재전송을 요청합니다.
*PDU(프로토콜 데이터 단위) : 데이터가 전송될 때 일정 크기의 데이터 블록을 말합니다. - 주소 설정
한 개체가 상대 개체에 데이터를 전송하려면 상대의 이름을 알아야 하는데, 프로토콜에는 각 전송 계층에 맞는 주소를 지정하는 기능이 있습니다. - 다중화
통신 선로 하나에서 여러 시스템이 동시에 통신할 수 있는 것을 말합니다. - 전송 서비스
우선순위 결정, 서비스 등급과 보안 요구 등을 제어하는 서비스 입니다.
'Network' 카테고리의 다른 글
| PDU & SDU 의 정리 (0) | 2021.10.26 |
|---|---|
| IEEE 802 란?? (0) | 2021.10.25 |
| 네트워크 캡슐화 & 역캡슐화 (encapsulation & decapsulation) (0) | 2021.10.25 |
| OSI 7 Layer 정리 (Open System Interconnection) (0) | 2021.10.25 |
| 네트워크란?? (0) | 2021.10.25 |