프로토콜은 네트워크에서 데이터를 교환하고 통신하는 데 사용되는 약속이다. 프로토콜은 데이터를 어떻게 전송하고 받을지, 통신이 어떻게 이루어질지에 대한 규칙을 제공한다.
1. 프로토콜이 필요한 이유
![notion image](https://inblog.ai/_next/image?url=https%3A%2F%2Fwww.notion.so%2Fimage%2Fhttps%253A%252F%252Fprod-files-secure.s3.us-west-2.amazonaws.com%252F404a9fb6-ab9b-45cc-8074-ee63a3334890%252F0d23125f-87d5-43e8-843e-4be20e73b996%252FUntitled.png%3Ftable%3Dblock%26id%3D1d7800dc-ffe0-4947-b68e-2aa8c8eacbc9%26cache%3Dv2&w=3840&q=75)
그림처럼 웹서버에서 클라이언트에게 데이터가 이동한다고 가정한다. 바이트 스트림을 타고 데이터가 전달되는 과정은 아래의 블로그에서 설명해놓았다.
웹서버의 데이터는 바이트 스트림을 통해 전달되기 때문에 바이트 단위로 분해된다.
분해된 데이터는 다시 바이트 스트림에서 클라이언트에게 전달될 때 다시 재조립이 발생한다.
근데 예를 들어 8Byte 단위로 전송했는데 4Byte 단위로 처리하게 되면 남은 데이터는 소멸되게 된다.
같은 프로토콜을 사용하면 컴퓨터의 기종이 달라도 컴퓨터 상호 간에 통신할 수 있고, 데이터의 의미를 일치시켜 원하는 동작을 시킬 수 있다.
2. 프로토콜의 요소
구문 (Syntax)
데이터가 교환되는 형식, 단위 등을 정하는 것
의미 (Semantics)
원활한 소통을 위해 전달되는 메세지가 어떤 행위를 할지 정하는 것
타이밍 (Timing)
메세지의 전송 시간, 응답 시간 , 대기 시간 등을 정하는 것
3. 프로토콜의 종류
프로토콜의 종류 중 몇 가지를 소개하겠다.
- HTTP (Hypertext Transfer Protocol): 웹에서 정보를 주고받기 위한 프로토콜로, 주로 웹 브라우저와 웹 서버 간의 통신에 사용된다.
- HTTPS (Hypertext Transfer Protocol Secure): HTTP의 보안 버전으로, SSL 또는 TLS 프로토콜을 사용하여 데이터를 암호화하여 보안을 강화합니다. 주로 온라인 상에서 민감한 정보를 전송할 때 사용된다.
- FTP (File Transfer Protocol): 파일을 전송하기 위한 프로토콜로, 클라이언트와 서버 간의 파일 전송을 지원한다.
- TCP/IP (Transmission Control Protocol/Internet Protocol): 네트워크 통신을 위한 기본 프로토콜 스택으로, 인터넷에서 데이터를 주고받기 위해 사용한다.
- DNS (Domain Name System): 호스트 이름을 IP 주소로 해석하거나, 그 반대로 IP 주소를 호스트 이름으로 변환하기 위해 사용한다.
- IP (Internet Protocol): 컴퓨터 간의 주소 지정과 데이터 패킷 라우팅 역할을 한다. IPv4와 IPv6가 주로 사용됨.
4. 프로토콜의 기능
- 데이터 형식 및 구조 정의
프로토콜은 어떻게 데이터를 구성하고 표현할지에 대한 규칙을 정의
- 오류 검출 및 복구
프로토콜은 전송되는 데이터에 오류가 있는지 확인하고, 오류가 발견되면 이를 복구하거나 해당 데이터를 재전송
- 흐름 제어
데이터 흐름을 관리하고 송신 측과 수신 측 간의 데이터 전송 속도를 조절하여 네트워크 혼잡을 방지
- 연결 관리
연결 지향적인 프로토콜은 통신을 시작하고 종료하는 방법을 제어하여 안정적인 연결을 관리
- 주소 지정 및 라우팅
프로토콜은 컴퓨터나 장치를 식별하기 위한 주소 지정 방법을 정의하며, 데이터를 목적지까지 안전하게 전달하기 위한 라우팅 규칙을 포함
- 보안 및 암호화:
일부 프로토콜은 데이터의 안전성을 강화하기 위해 암호화 및 보안 기능을 제공
Share article