프로토콜(Protocol)
*주의: 정확한 정보가 아닌 필자가 주관적으로 검색하고 이해한 내용을 적은 것
프로토콜
개념: 통신을 하기 위한 약속
구성: 물리적/논리적
-물리적 측면:
장비와 단자, 회선의 규격 등
-논리적 측면
데이터를 표현하기 위해 필요한 요소들
-표현 형식
-형식의 단위
-전송하는 절차
논리적 측면 세분화
-폐쇄적: 자사의 장치들끼리 통신, 위협에 상대적 안전
-공개적 여러 장치에 쓰이는 플로토콜, 위협에 상대적 취약
프로토콜의 기본 요소
1. 구문(단위, 형식, 신호)
다른 매체와 어떻게 통신할 것인지
단위, 형식, 신호를 미리 정의하는 것이 필요함
(여담. 모든 사회과학 포함 과학 분야 국룰)
2. 의미
다른 매체와 통신하기 위해서는 각 매체에서 이해될 수 있어야 하므로, 미리 결정해야 함
오류발생, 혹은 데이터 속도 이슈에 대한 제어 등을 통해 원활한 소통이 되어야함
3. 타이밍
형식과 방식을 정했다면, 그다음으로 데이터를
어떤 순서, 어떤 속도로 전송할지 정해야함
=> 종합하자면 "어떤 데이터를 어떤 순서와 속도로 보내줘. 그러다 오류가 발생하면 ~~하게 제어해줘."
프로토콜의 기능
1. 세분화/재합성(쪼개고, 쪼갠거 다시합침)
데이터가 크면 쪼개서 보내고, 쪼개서 받은 데이터를 다시 합침(재조합)
(여담. 자유의 여신상 같은 느낌인데, 임의로 조합할수 있음. 예를들어 횃불 안든 자유의 여신상도 ok)
2. 요약하기
데이터 주소, 오류 제어방식, 전송 형식 등의 정보를 요약해서 캡슐처럼 갖고있음
3. 연결 제어(연결 할말)
시스템 연결해서 -> 안전하게 데이터 전송 or 연결 없이 -> 받든말든 노상관으로 빠르게 데이터 전송
2 중 택 1 하는 기능
4. 오류 발견하고 대비
오류가 발생하면 이걸 찾아내서 확인하고 -> 해당 오류를 수정 -> 추후 데이터 손실되지 않게 대비
5. 속도 조절(데이터 흐름 관리)
데이터 주고받을 때 한쪽만 너무 빠르지 않게 조절
6. 순서 정하기(우선순위 관리)
데이터 어떤 순서로 보낼지 결정, 이것은 오류 발생시 어느 지점에서 발생했는지 쉽게 확인하는 데 좋음
(여담. 트래킹 느낌)
7. 동기화
데이터 주는 쪽, 받는 쪽 모두 시작시간, 검사시간, 데이터 종류에 대한 정보 갖고있게끔 같은 상태 유지함
8. 주소 정하기
보내는 주소/ 받는 주소 정해서 데이터 전달
9. 여러명 사용 가능하게 하기
여러 사용자들이 동시에 사용할 수 있게함