[ TERMS 03 ] 프로토콜
1. 프로토콜(Protocol)의 정의
프로토콜은 컴퓨터, 통신장비 간의 원활한 소통을 위한 약속이다. 본래 프로토콜은 외교상의 의례나 약속을 의미했지만, 인터넷의 발달로 그 의미가 확대되었다.
2. 프로토콜은 어디서 접하게 될까?
> TCP / IP
TCP와 IP는 인터넷에서 가장 중요한 역할을 하는 프로토콜이다. 과거 냉전 시절, 미국에서 서킷 통신의 단점을 보완하고자 패킷 통신을 고안하였다. 서킷 통신은 일대일로 연결되는 방식이며, 선이 연결되어있어야 하고 교환원을 통해서 연결을 해야한다. 반면 패킷 통신은 데이터를 보낼 때 잘게 쪼개서 보낸다. 데이터를 쪼개서 보내면 도착할 때는 순서나 데이터가 달라질 수 있다. 이를 보완하기 위해서 TCP / IP가 등장한다.
IP는 보내고자 하는 데이터를 잘라서 순서와 관계없이 빠르게 보내는 역할을 수행한다. 그 후 전송이 누락되었거나 순서가 맞지 않는 데이터를 다시 요청하는 것이 TCP의 역할이다. TCP가 IP 위에서 동작하기에 TCP/ IP라고 부른다.
> HTTP
하이퍼텍스트(HyperText)는 텍스트를 초월한 문서이다. 그리고 이것을 전송하는 프로토콜이 HTTP이다. 우리가 흔히 접하는 웹 사이트 대부분이 이 프로토콜을 따르고 있다. 인터넷 주소의 'https://'는 HTTP라는 프로토콜을 이용해서 문서를 받겠다는 약속이다.
> FTP
단어 그대로 파일을 전송하기 위해 사용하는 프로토콜이다. 대용량 파일을 전송하거나 불특정 다수에게 배포하는데 용이해서 게임이나 소프트웨어 회사들이 주로 이용했다. 구조가 단순한 만큼 보안이 취약하다는 단점도 있다. 이를 보완하여 SFTP가 탄생하기도 하였다. FileZilla, 알드라이브와 같은 FTP 클라이언트/서버를 이용하면 전문 지식이 없어도 GUI로 쉽게 파일을 주고 받을 수 있다.
> SMTP
많은 이메일 전송 시스템이 TCP상에서 동작하는 SMTP를 사용한다. 하지만 SMTP는 텍스트밖에 전송되지 않기 때문에 이를 보완하기 위해 'MIME'이라는 프로토콜이 등장한다.
3. 프로토콜 알아보기
> 구문(Syntax)
언어에 문법이 있듯이, 구문은 프로토콜에서 문법과 같은 역할을 한다. 데이터를 구성하는 형식(Format), 부호화(Coding), 신호 레벨(Signal Levels), 순서와 같은 정보들을 정의한다. 즉 자연어와 달리 컴퓨터는 프로토콜이라는 약속을 지켜, 정해진 형식으로만 소통이 가능하다.
> 의미(Semantic)
각 데이터가 무엇을 의미하는지를 정의. 또한 받은 데이터가 왜곡된 데이터가 아닌지 확인하고, 왜곡되었다면 다시 복구하는 제어 데이터를 담을 수도 있다. 대표적인 제어 데이터는 체크섬(CheckSum), 패리티(Parity)등이 있다.
> 타이밍(Timing)
통신을 주고받을 때의 속도나 순서를 규정하는 것이다. 통신 속도가 다르거나 여러 사람이 동시에 순서없이 대화한다면 상대는 제대로된 정보를 받을 수 없다. 따라서 프로토콜로 원활한 의사소통을 하려면 순서를 정하는 규칙이 필요하다.
4. 프로토콜을 알아야 하는 이유
프로토콜은 통신장비 간의 원활한 소통을 위해 만들어진 규칙이다. 프로토콜은 다른 사람에게 물건을 보내는 것과 비슷하다. 어떤 물건은 빠르게 도착되고, 어떤 물건은 수취인에게 직접 전달되거나 택배를 통해서 전달된다. 여기서 물건은 데이터, 전달 방법은 프로토콜이다. 프로토콜이 없다면 데이터를 주고받는 게 굉장히 불편할 것이고 주고받은 데이터의 신뢰성 또한 떨어질 것이다. 세상에는 수 많은 프로토콜이 존재한다. 각 회사, 정부에 의해 많은 프로토콜이 만들어져 사용되고 있다. 프로토콜은 겁을 먹을 요소가 아니라 편하게 소통하기 위해 만들어 놓은 약속으로 받아들여야 한다.
5. 프로토콜 더 알아보기
> 함께 알아 두면 좋은 용어
- OSI 7계층
- 패킷
- 체크섬
- 패리티
'IT 도서 리뷰 > 개발자가 되기 위해 꼭 알아야 하는 IT 용어' 카테고리의 다른 글
[PART2] 네트워크/통신/데이터 - TERMS 5 (0) | 2024.12.16 |
---|---|
[PART2] 네트워크/통신/데이터 - TERMS 4 (1) | 2024.12.06 |
[PART2] 네트워크/통신/데이터 - TERMS 2 (2) | 2024.11.20 |
[PART2] 네트워크/통신/데이터 - TERMS 1 (0) | 2024.11.17 |
[PART1] 웹/디자인 - TERMS 16 (3) | 2024.11.10 |