CS/네트워크

프로토콜(protocol)이란?

Timha 2023. 1. 3. 15:09

통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다. 즉 상호간에 미리 약속된 통신 규약 및 약속이다.

프로토콜은 데이터를 송수신하기 위한 규칙을 말한다.

손님이 주문을 받는 사람에게 대뜸 찾아가, 외계어로 주문을 할 수 없다.

주문을 하기 위해서는 꼭 지켜야 하는 약속이 몇가지 존재한다.

통신하기 위한 다양한 방법이 존재한다.

직원에게 주문, 앱에서 주문, 키오스크 주문을 할 수 있다.

이러한 방법 하나하나를 전부 프로토콜이라고 할 수 있다.프로토콜은 각각의 프로토콜마다 지켜야 하는 규약이 존재한다.

MDN에서의 “HTTP 메시지” 라는 항목을 잘 살펴보면, HTTP 만의 규칙이 있음을 발견할 수 있다.

송신자와 수신자 사이에 "데이터 구조는 이런식으로하고", "그건 이런 의미이고", "속도는 어느 정도로 보내고" 그런식으로 보내기로하자. 라고 약속을 한 것

프로토콜의 기본 요소

  • 구문(Syntax) : 전송하고자 하는 데이터의 형식(Format), 부호화(Coding), 신호 레벨(Signal Level) 등을 규정
  • 의미(Semantics) : 두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보를 규정 (제어정보를 통해 에러처리)
  • 시간(Timing) : 두 기기 간의 통신 속도, 메시지의 순서 제어 등을 규정 (시스템간의 정보전송을 위한 속도와 시간순서 관리)

프로토콜 종류

프로토콜의 기능

**단편화(Fragmentation)와 재합성(Assembly)**단편화 : 송신 측에서는 긴 데이터 블록을 손쉽게 전송할 수 있도록 크기가 똑같은 작은 블록으로 나누어 전송재합성 : 수신 측에서 쪼개진 작은 데이터 블록을 재합성하여 원래의 메시지로 복원하는 기능

(패킷 단위로 나눠진 데이터들을 규약에 따라 다시 재조합하거나 , 패킷단위로 나누는것)

**캡슐화(Encapsulation)**각 프로토콜에 적합한 데이터 블록을 만들려고 데이터에 정보를 추가하는 것플래그, 주소, 제어 정보, 오류 검출 부호 등을 부착하는 기능

(각각의 데이터블록의 내용들을 소형 상장에 담아 큰 상자에 넣어준 뒤 필요 데이터를 헤더에 담아서 보냄 )

**연결 제어(Connection Control)비연결 데이터 전송(데이터그램)과 연결 위주 데이터 전송(가상회선)을 위한 통신로를 개설·유지·종결하는 기능흐름 제어(Flow Control)데이터양이나 통신속도 등이 수신 측의 처리 능력을 초과하지 않도록 조정하는 기능오류 제어(Error Control)데이터 전송 중 발생할 수 있는 오류나 착오 등을 검출하고 정정하는 기능순서 결정(Sequencing)**연결 위주의 데이터를 전송할 때 송신 측이 보내는 데이터 단위 순서대로 수신 측에 전달하는 기능

(각 데이터의 전송 시간과 양을 조절한다)

동기화

**주소 설정(Addressing)발생지, 목적지 등의 주소를 명기하여 데이터를 정확하게 전달하는 기능동기화(Synchronization)두 통신 객체의 상태(시작, 종류, 검사 등)를 일치시키는 기능다중화(Multiplexing)하나의 통신로를 여러 개로 나누거나 회선 여러 개를 하나의 통신로로 변환시켜 다수의 가입자가 동시에 사할 수 있도록 하는 기능전송 서비스(Transmission Service)**통신 객체를 사용하기 쉽도록 별도로 추가 서비스(패리티 검사, 보안도, 서비스 등급, 우선순위 등)를 제공하는 기능

(어떤 통신을 통해서 데이터를 보내고 싶은지와 어디로 보낼지 위치표시)

 

 

OSI 7 Layer 테코톡- 영상

OSI 7 Layer별 주요 프로토콜 설명

  • OSI 7 계층을 보면 네트워크에 대한 개념을 알 수 있다.
  • 데이터 통신은 OSI 참조 모델에 의한 ‘단계와 순서’로 이해한다.
  • ISO 단체에서 네트워크 계층에 대한 표준을 만들었다.
  • OSI 참조 모델은 일곱개의 계층으로 나뉘어 있으며, 각각은 독립해 있다.
  • OSI 7 계층은 기종이 서로 다른 컴퓨터 간의 정보 교환을 위해 네트워크를 이루고 있는 구성 요소를 계층적으로 나누고 각 계층을 표준화 한 것이다.
  • 계층을 구분하는 이유는 모듈화를 함으로써 문제가 생겼을 때 해당 계층만 수정할 수 있기 때문이다.OSI는 상위 계층(7~4)과 하위 계층(1~3)이 있다.
  • 하위 계층은 상위 계층을 위해 일하고 상위 계층은 하위 계층에 대해 관여하지 않는다.

응용 계층 (Application)

사용자가 OSI 환경에 접근할 수 있도록 서비스를 제공프로토콜을 이용해서 서비스를 사용하는 것을 의미한다.

표현 계층 (Presentation)

알아 볼 수있게 표현해주는 계층응용 계층에서 받은 데이터를 세션 계층에 맞게 변환하거나, 세션 계층에서 받은 데이터를 응용 계층에 맞게 변환한다.코드 변화, 데이터 암호화, 데이터 압축, 구문 검색, 정보 형식 변환

세션 계층 (Session)

송수신측 간의 관련성을 유지시킨다.송수신측 간의 대화 제어를 담당한다.동기 제어, 데이터 교환 관리

전송 계층 (Transport)

전송 할 수 있게 연결을 설정 및 해제데이터가 실제 전송되는 구간관련 장비 : 게이트웨어(출입문)

네트워크 계층 (=망계층) (Network)

네트워크 연결을 관리한다. (경로 설정, 연결, 해제, 패킷 전송)데이터 교환의 중계한다.관련 장비 : 라우터(네비게이션, 최적의 경로 찾아준다.)

데이터 링크 계층 (Data Link)

두 개의 인접한 개방 시스템들 끼리 신뢰성있고 효율적인 정보 전송 가능하게 한다.흐름 제어, 프레임 동기화, 오류 제어, 순서 제어 기능링크(찾아가는 길) 확립, 유지, 단절을 제공한다.관련 장비 : 랜카드, 브리지, 스위치

물리 계층 (Physical)

전송에 필요한 두 장치간 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성을 정의한다.전기 신호를 전송한다. (만든다.)제어 신호를 전송한다.클럭 신호를 전송한다.관련 장비 : 리피터(증폭기), 허브