본문 바로가기
CS/Network

[Network] 프로토콜

by 원만사 2021. 11. 25.
반응형
데이터 통신에서 데이터를 교환할 때 이를 원활하게 교환할 수 있도록 미리 정해놓은 여러 가지 통신규칙이나 방법

 

프로토콜의 3가지 구성 요소

 프로토콜은 구문(syntax), 의미(semantic), 타이밍(timing)으로 구성되어 있다.

 

1. 구문(syntax) : 데이터의 형식이나 부호화 및 신호 레벨을 규정한 것

 송수신 데이터의 포맷이나 문법과 같은 형식적인 측면을 의미한다. 사람들끼리의 의사소통에서도 정해진 문법과 규칙을 따라야만 원활한 의사소통이 가능하다. 문법과 규칙을 벗어난 말은 상대방에게 혼란을 줄 수 있다.

 데이터 통신에서도 이는 마찬가지다. 데이터를 보내고 받는 쪽 모두 데이터에 대한 공통된 형식을 공유하고 있어야 데이터의 원활한 교환이 가능하다.

 

2. 의미(semantic) : 전송의 조작이나 오류 제어를 위한 제어 정보에 대한 규정

 데이터의 각 항목이 무엇을 뜻하는지, 문장의 의미는 무엇인지와 같은 내용적 측면을 말한다. 문법적으로 오류는 없으나 의도하는 바가 정확하지 않으면 의사소통이 원활하지 않을 수 있다.

 각 항목의 개념이나 전체 시스템에 대한 구조에 대한 이해 없이 전해진 메세지는 의미가 왜곡될 우려가 있다.

 

3. 타이밍(timing) : 접속되어 있는 개체 간의 통신 속도의 조정이나 메세지의 순서 제어 등을 규정

 데이터 송수신 동작 방식을 정의한 것으로 무엇을 전달할지 보다는 어떻게 전달할 지에 초점을 맞춘다. 송신과 수신측의 전달 속도를 제어하거나 초기 연결을 위한 메세지 순서 등을 규정하는 것이 포함된다.

 

프로토콜의 기능

1. 주소 설정(Addressing)

 한 개체가 상대 개체에 데이터를 전송하려면 상대의 이름을 알아야 하는데, 프로토콜에는 각 전송 계층에 맞는 주소를 지정하는 기능이 있다.

 

2. 순서 제어(Sequence Control)

 프로토콜 데이터 단위(Protocol Data Unit, PDU)가 전송될 때 보내지는 순서를 명시하는 기능이며 연결 지향형에만 사용된다.

 순서를 지정하는 이유는 흐름 제어, 오류 제어 등을 위해서이다. PDU를 상대한테 보내면 상대는 순서에 맞게 데이터를 재구성하고, 오류가 있을시에는 재전송을 요청한다. 

 

※ 프로토콜 데이터 단위 : 데이터가 전송될 때 일정 크기의 데이터 블록을 말한다.

 

3. 단편화 및 재조합(Framentation & Reassembly)

 데이터의 크기와 종류는 다양하다. 데이터를 보낼 때 이를 작은 단위 나누어 보내고 수신측에서는 이를 재조합해야한다. 

 

4. 캡슐화(Encapsulation)

 PDU는 SDU(Service Data Unit)와 PCI(Protocol Control Information)로 구성되어 있다.

 SDU는 전송하려는 데이터, PCI는 제어 정보이다.

 PCI에는 주소, 오류 검출 코드, 프로토콜 제어 정보 등이 있다. 이러한 정보를 붙이는 것을 캡슐화라고 한다.

 

5. 연결 제어(Connection Control)

 다음과 같은 2가지 전송 방식이 있다.

 

  • 연결 지향형 : 두 시스템이 서로 데이터를 교환할 때 연결을 설정하는 경우. 연결 설정, 데이터 전송, 연결 해제 3단계로 구성. TCP가 이에 해당. 연결 제어 패킷을 이용하여 네트워크 연결을 끊을 수도, 해당 세션을 빼앗을 수도 있다.
  • 비연결 지향형 : 연결을 설정하지 않는 경우. UDP가 이에 해당. 이렇게 전송되는 데이터를 데이터그램이라고 한다.

6. 흐름 제어(Flow Control)

 송신측 개체로부터 오는 데이터의 양이나 속도를 조절하는 기능. 흔히 다음과 같은 두 가지 방법을 사용한다.

 

  • 정지-대기(Stop and wait) : 패킷에 대한 응답 후에 다음 패킷을 보냄
  • 슬라이딩 윈도우(sliding window) : 가용 데이터 분량의 패킷을 한번에 보낸 후 응답 패킷을 받으면 다시 그만큼 데이터를 한 번에 보내는 방식

7. 오류 제어(Error Control)

 SDU나 PCI가 잘못되었을 경우 이를 발견하는 기법이다. 순서 검사나 일정 시간 안에 패킷을 받지 못하면 재전송을 요구하는 방식으로 이루어진다.

 

8. 동기화(Synchronization)

 데이터를 전송할 때 각 객체는 타이머 값이나 윈도우 크기 등을 기억해야 한다. 이런 값을 공유하는 것을 말한다.

 

9. 다중화(Multiplexing)

 통신 선로 하나에 여러 시스템이 동시에 통신할 수 있는 것을 말한다.

 

 

 

※ 참고

- https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=shj1126zzang&logNo=220051877155

- https://baileyworld.tistory.com/7

 

 

반응형

댓글