protocol(프로토콜)

인생한접시·2023년 3월 11일
0

기본 지식

목록 보기
1/3

protocol의 의미

처음에는 누가 누군가에게 무엇을 붙이다 의 의미에서 시작됐지만 확장 됩니다.

외교 문서

각각의 문화,언어, 인종 등을 가지고 있는 여러 나라
함께 살아가기 위해 지켜야 하는 약속을 공식화한 것

데이터 통신 규약

각각의 프로그램, DB , 파일 서비스 등을 가지고 있는 여러 컴퓨터 네트워크
데이터를 주고 받기 위해 지켜야 하는 약속을 공식화 한 것

portocol의 기능

1. 분할 및 재조립

현실 세계
가구집에서 구매자집으로 책장을 보냅니다.
구매자의 아파트에는 엘리베이터가 있습니다.
하지만 책장의 부피가 커서 엘리베이터에 들어가지 못합니다.
그래서 책장을 파츠들로 쪼개 택배에 담은 후, 구매자의 집에서 책장을 조립합니다.

데이터 세계
덩어리가 큰 데이터를 전송하는 것은 비효율적이기 때문에 데이터를 분해해 전송합니다.
그리고 분해 된 데이터를 다시 조립해 사용합니다.

프로토콜의 이런 기능을 분할 및 재조립이라고 합니다.
그리고 이렇게 분해된 각각의 데이터를 패킷 이라고 부릅니다.

2. 캡슐화

현실세계
부품은 그냥 배송하지 않고 포장해서 보냅니다. 개별로 포장을 해야겠죠?
책장의 판떼기는 판떼기 끼리 포장을 하고, 나사는 나사끼리 포장을 하고,
공구는 공구끼리 포장을 합니다.
그리고 포장을 한것끼리 또 포장(택배)을 합니다.
보낼 때 우체국에서 파손주의 메시지가 담긴 스티커를 같이 붙여줍니다.
그리고 배송지까지 적습니다

이렇게 데이터를 전송할 수 있도록 포장하는 과정을 프로토콜 에서는
캡슐화 라고 말합니다. 캡슐화는 여러번 일어날 수 있습니다.
나사는 나사끼리 비닐팩(캡슐화)에 담고, 공구는 공구끼리 비닐팩(캡슐화)에 담고,
이 비닐팩들을 또 모와 택배(캡슐화)에 담습니다.

데이터 세계
캡슐화가 일어 날 때마다 필요한 정보를 붙이듯이 헤더에 포함시켜 캡슐화 합니다.

포장을 풀 때(역 캡슐화)는 캡슐화의 역 순서로 진행됩니다.

3. 연결 제어

한편

현실세계
배송기사님은 미리 배송지에 연락 해 배송시간을 약속해야 합니다.
예상시간보다 빠르거나 너무 늦게 오면 문제가 되기 때문입니다.

데이터세계
이처럼 프로토콜에서 데이터 전송의 시간과 양을 조절하는 것을 연결제어 라고합니다.

4. 동기화

현실세계

여기 문제가 있습니다.
판매자에게는 배송중 , 하지만 구매자에게는 배송 대기
이렇게 보내는사람, 받는사람이 알고 있는 택배 배달 상태가 다르면
문제가 되겠죠?
문제를 해결 하기 위해서는
송신자. 수신자의 택배 배달 상태가 서로 일치해야 합니다.
서로 일치하게 만든는 수단을 동기화 라고 합니다.

5. 순서 제어

현실 세계
구매자는 송장번호로 택배가 언제오는지 계속 확인하면서 기다렸습니다.
드디어 택배가 도착했습니다~~! (짜잔)
하지만.. 어떻게 이 책상을 어떻게 조립해야 할까요..? 생각하던 찰나
조립설명서가 들어있었습니다.
조립설명서에 따라 부품들의 개수가 정확한지( 개수가 부족하면 환불 해야죠)
확인 합니다.
어쩌면 조립설명서가 부품들의 개수를 기재하여 컨트롤 하고 있는 것처럼 보입니다.

데이터 세계
프로토콜도 패컷 전송을 효율적으로 관리 하기 위해
페킷(현실 세계에서는 각각의 파츠들)에 번호를 붙여 관리합니다.
이것을 순서 제어라고 합니다.

6. 오류 제어

현실 세계
엇. 판데기 하나가 금이 가 있어요.
아까 설명서에 적힌 고객센터 번호로 전화를 겁니다. 다시 배송을 받아야 합니다.

데이터 세계
프로토콜 에서는 전송과정에서 발생한 문제의 관리방법을 오류제어 라고 합니다.

그외 기능들

주소 설정,다중화,전송 서비스 여러 가지 기능들을 가질 수 있습니다.

지금까지 설명한 모든 기능들을 프로토콜이 가질 필요는 없습니다.

각 프로토콜의 기능과 특성에 따라 필요한 기능들을 가지면 됩니다.

프로토콜의 3가지 기능

이러한 기능들을 바탕으로 프로토콜은 3가지 기능을 가지게 됩니다.

  1. syntax(형식)
    데이터를 어떻게 구성할 것인지, 어떻게 해석할 것인지 등에
    형식을 규정하는 것을 말합니다.

2.semetic(의미)
데이터를 어떻게 제어할 것인지,오류는 어떻게 처리할 것인지 등을 말합니다.

  1. timing(순서)
    통신 하는 속도와 속도의 조절, 데이터 전송의 순서 관리

프로토콜이 활용되는 사례

1. URL

우리가 쉽게 프로토콜을 볼 수 있는 곳은 URL 입니다.

URL은 브라우저에서 필요한 텍스트, 이미지, 동영상 등의 리소스의 위치를 말합니다.

맨 처음 프로토콜의 어원이 붙이다 였다는 것을 기억 하시나요?

URL 맨 앞에 붙이는 것을 스킴 이라고 합니다.
스킴은 어떤 프로토콜을 사용해야 하는지 알려줍니다.

http:// HTML 문서를 주고 받는데 사용하는 프로토콜 입니다.
https:// http에 보안이 강화된 버전을 https:// 라고 합니다. HTTP + Secure
ftp:// 이메일을 위한 프로토콜
rtsp:// 실시간 스트리밍을 위한 프로토콜

이런식으로 URL 맨 앞에 프로토콜을 명시 해줘,
브라우저에서 표현할 리소스를 가져오는데 적합한 프로토콜을 사용할 수 있습니다.

2. TCP/UDP


OSI 7계층에서 4계층인 Transport Layer가 있습니다.
4계층은 TCP와 UDP로 구분 할 수 있습니다.

TCP는 데이터 전송의 신뢰성을 보장합니다.
데이터 전송과정에서 데이터가 손실되는 것을 방지 할 수 있습니다.
그래서 TCP는 email이나 파일전송 등의 신뢰성이 필수인 데이터 전송에서 사용합니다.

반면
UDP는
속도가 중요한 곳에서 사용됩니다.
예를들어 실시간 스트리밍, 전화 가 있습니다.
실시간 스트리밍 같은 경우, 손상된 패킷이 전송 돼었을 때,
그 부분만 끊어 가면 됩니다.
만약 신뢰성 보장을 위해 모든 패킷을 주고 받기 원한다면
시간도 오래걸리고, 스트리밍이 잠깐.. 끊기는게 아니라 멈춰 버릴 수도 있습니다.

이렇게 필요에 따라 프로토콜을 선택해 사용할 수 있습니다.

마무리 하며

코인판에서의 프로토콜이 있을까요?

코인 세계에서 프로토콜은 간단하게만 말하면 코인을 안전하게 거래하기 위한 규칙이라고 볼 수 있습니다.

profile
plan11plan

0개의 댓글