본문 바로가기
컴퓨터/네트워크

[네트워크] 프로토콜(protocol)이란?

by 우유식빵 2020. 2. 10.

국제사회에서 통역가가 서로 다른 언어를 번역해 주듯이,

장치 간, 네트워크 간의 소통을 담당하는 통신규약을 프로토콜이라고 한다.

 

주소 설정, 순서제어, 데이터 대열의 단편화, 재조합

캡슐화, 연결제어, 흐름제어, 오류제어, 동기화, 다중화. 전송서비스 등

네트워크의 전반적인 일을 담당하고 있다고 생각한다.

 

OSI 7계층 속에서 각 계층의 프로토콜은 독립적으로 간주한다

1계층은 1계층 프로토콜, 2계층은 2계층끼리 통신할 수 있는 프로토콜이 있다

 

대표적인 프로토콜의 예는 인터넷에서 사용되고 있는 TCP/IP 가 있다.

이렇게 생각하면 프로토콜을 이해하기 전에 TCP/IP 가 뭔데 하고,

개념을 이해하려고 예시를 이해하려다 결국 더 깊은 구렁텅이로 빠져버리고 만다

 

그냥 어렵게 생각하지 말고 

앞으로 배울 네트워크 통신 전반적인 과정이

프로토콜이라 생각하면 될 것 같다.

 

 

프로토콜이 공통적으로 하는 일에 대해서 자세히 살펴보자면,

 

1. 주소 설정

정보를 보낼때 어디서 어디로 보내는지 알아야하기때문에

프로토콜에는 각 전송 계층에 맞게 이를 지정하는 기능이 있다.

 

2. 순서 제어

연결 지향형에만 사용하며, 순서를 지정하는 이유는 전달, 흐름제어, 오류제어를 하기위해서다.

연결지향형 프로토콜은 정보를 주고받는 개체사이에 연결을 유지한 상태로 연결을 한다. 

이 연결상태를 통해, 잘못된 정보가 전송된 경우 수신개체에서 송신개체에 재전송을 요구할 수 있다 (오류제어)

어느 정보에서 오류가 났는지는 순서정보가 있기 때문에 가능한 일.

 

비연결자향형 프로토콜은 정보를 일방적으로 보낸다는 느낌이다.

 

3. 흐름제어

송신개체로부터 오는 데이터의 양이나 속도를 조절하는 기능이다.

송신과 수신사이의 속도차이등으로 인한 정보유실을 방지한다.

흐름제어 방법으로는 Stop and Wait 방법과 Sliding Window 기법이 있는데,

Stop and Wait방법은 정보(패킷)을 하나보낸 후 받았다는 응답이 온 후에 다음 패킷을 전송하는 것이다.

Sliding Window방법은 한번에 여러개의 패킷을 보낸 후, 응답을 받으면, 다시 그만큼의 패킷을 전송하는 방법이다.

 

4. 오류제어

오류를 발견하는 것. 방법으로는 Parity bit나 Cyclic Redundancy Check (CRC) 가 있다.

순서를 검사하거나 특정 시간안에 받지 못하면 재전송을 요구하는 방식으로 진행된다. 

 

이렇게 보면 순서제어-흐름제어-오류제어는 하나의 그룹같다.

 

5. 단편화/재조합

대용량 파일을 한번에 전달하는 것은 불가능하다.

이때 단편화 및 재조합이 이루어진다. 전송 효율이 높은 작은 단위로 나누어 정보를 전송한뒤

수신측에서 이를 재조합 하는 것.

 

6. 캡슐화

전송하려는 데이터에 제어정보를 덧붙이는 것이다.

제어정보에는 송신자와 수신자 주소, 오류검출코드, 프로토콜제어정보등이 있다. 

예를 들자면 소포가 차를 타고 전달되다가 강을 만났을 때,

배에 옮겨 전송되다가 다시 육지를 만났을 때 차로 전달된다면

배를 통해 옮겨지는 과정이 캡슐화라고 보면 된다. 

 

7. 연결제어

위에서 언급한 것 처럼, 네트워크에는 연결 지향형 데이터 전송 과 비연결 지향형 데이터 전송이 있다.

연결 지향형의 경우, 연결 설정, 데이터 전송, 연결 해제라는 3단계로 구성된다. 

 

8. 동기화

데이터를 전송할 때, 두 개체가 동시에 정의된 인자 값을 공유하는 것을 동기화라고 한다.

 

이렇듯 프로토콜의 기능들은 모두 정보 전송의 과정에 영향을 주는 것들이고,

정보를 주고 받는 것이 네트워크이므로, 네트워크를 공부함은 각 프로토콜의 기능을 익힘으로 생각해도 될 것 같다.

 

댓글