안녕하세요. 이번 포스트에서는 프로토콜이란 무엇인가에 대하여 알아보도록 하려고 합니다. 어떤 주제로 네트워크에 관련 된 포스트를 시작하면 좋을까 생각해 보고, 몇 가지 주제들을 추려 보았는데, 프로토콜은 저도 일을 하면서 들어보았고 여러가지 프로토콜을 사용해 보았지만, 정작 이게 어떤 의미인가에 대하여 제대로 생각을 해 본 적이 없었습니다.
그리하여, 제 사심 가득 담아 처음 포스트는 프로토콜이란 무엇인가에 대하여 알아보고, 그 후에 다양한 프로토콜의 종류에 대하여 찍먹 해보려고 합니다. 그럼 본격적으로 프로토콜이란 무엇인가에 대하여 알아보도록 하겠습니다.
프로토콜이란 ?
찍먹 해보기에 앞서, 프로토콜의 정의를 알아보도록 하겠습니다.
A protocol is a system of rules that define how data is exchanged within or between computers.
Communications between devices require that the devices agree on the format of the data that is being exchanged. The set of rules that defines a format is called a protocol.
출처: https://developer.mozilla.org/en-US/docs/Glossary/Protocol
모질라 웹사이트에 나와 있는 정의를 해석해 보면:
- 프로토콜은 컴퓨터 내에서, 혹은 컴퓨터들 사이 데이터 교환 방식을 정의하는 규칙들로 이루어진 시스템이다.
- 디바이스들간의 소통이 가능하게 하기 위해서는 교환 되는 데이터의 포맷이 일치하여야 한다.
- 포맷을 정의하는 규칙들의 모음을 프로토콜이라 한다.
위의 기술적인 정의 만으로는 아직 100% 확실하게 와닿는 것 같지가 않아서, 예를 한가지 들어보겠습니다.
저는 대한민국 사람이므로, 한국 말을 가장 잘 사용하지만, 영어도 조금 할 수 있습니다. 만약 제가 다른 나라로 여행을 가서 그 나라 현지인에게 한국 말로 대화를 시도한다면 상대방이 제 말을 이해 할 수 있는 확률은 얼마나 될까요? 물론 요즘은 K-Pop 의 영향으로 한국에 대한 관심이 높아져서 외국에서도 한국말을 공부하는 사람들이 점점 늘고 있지만, 아주 높은 확률로 그 사람은 제 말을 알아듣지 못할 것입니다. 따라서, 저와 상대방이 대화를 하기 위해서는 의미가 일치하는 다른 수단 (수화, 보디랭귀지 등) 이 필요합니다.
이렇게 예를 들어 확인해 보니 조금 더 명확해지는 것 같습니다. 프로토콜이 무엇인가에 대하여 알아보았으니, 이제 프로토콜의 종류를 찍먹 해보겠습니다.
프로토콜의 종류
많은 종류의 프로토콜이 있지만, 이번 찍먹 편에서는 조금 흔한 프로토콜들에 대해서만 알아보도록 하겠습니다.
TCP (Transmission Control Protocol)
TCP 는 네트워크상에서의 소통을 위해 사용되는 커뮤니케이션 프로토콜입니다. TCP 는 소스 쪽에서 메세지가 여러 패킷의 형태로 나뉘어져 데스티네이션 쪽으로 전달 되고 이 패킷 형태의 메세지들이 데스티네이션 쪽에서 다시 어셈블 되는 형식입니다.
IP (Internet Protocol)
IP 는 어드레스 프로토콜로서 대부분의 경우에 TCP 와 함께 사용됩니다. 패킷 안의 IP 주소는 네트워크 안의 다양한 노드들 중에서 데스티네이션에 도착 할 수 있도록 돕는 역할을 합니다. TCP/IP 는 가장 흔히 볼 수 있는 네트워크 연결 프로토콜입니다.
UDP (User Datagram Protocol)
UDP 는 TCP 의 대체 통신 프로토콜로서, 서로 다른 응용 프로그램들간의 손실 허용 (loss-tolerating) 과 저지연 연결 (low-latency linking) 을 생성하기 위해 구현 되었습니다.
SMTP (Simple Mail Transport Protocol)
SMTP 는 이름에서도 나와 있듯이, 외부로 이메일을 전송하고 배포하기 위하여 설계 되었습니다.
FTP (File Transfer Protocol)
FTP 는 다양한 종류의 파일을 장치들간에 전송시킬 때 사용 되는 프로토콜입니다.
HTTP (Hypertext Transfer Protocol)
HTTPS 는 가장 흔하게 접할 수 있는 프로토콜로서, 브라우저를 통해 웹사이트에 접속을 할 때 볼 수 있습니다. HTTP 는 클라이언트 시스템이 요청을 위해 서버 시스템과 연결을 설정할 수 있도록 하는 클라이언트-서버 원칙에 따라 설계 되었습니다. 서버는 클라이언트의 요청을 확인하고 그에 따라 필요한 자료들로 응답하게 됩니다.
HTTPS (Hypertext Transfer Protocol Secure)
HTTPS 는 HTTP 의 요청과 응답에 따른 데이터 전송이 암호화 된 형태입니다.
Telnet
Telnet 은 한 시스템을 다른 시스템과 연결하기 위해 설계 된 일련의 규칙입니다. 여기에서 연결 프로세스를 원격 로그인이라고 하는데, 연결을 요청하는 시스템은 로컬 컴퓨터이고, 연결을 수락하는 시스템은 원격 컴퓨터입니다.
이렇게 찍먹임에도 불구하고 프로토콜은 무엇인지, 어떠한 프로토콜들이 있는지에 대하여 알아보았는데요. 제가 프로토콜에 대해 잘 알지 못하기도 하였고, 공부 하면서 영어로 된 문서들을 읽으며 한글로 번역하느라 시간이 매우 오래 걸렸네요.. 부디 오래 걸린 만큼 이 포스트를 읽으시는 분들이 프로토콜이 무엇인지에 대하여 이해하신는 데 도움이 되길 바랍니다. 그럼 다음 포스트에서는 가장 유명한 프로토콜인 HTTP 와 HTTPS 에 대하여 작성해 보도록 하겠습니다. 그럼