프로토콜 정리

강정우·2024년 3월 25일
0

네트워크

목록 보기
31/32

컴퓨터 네트워크와 웹 개발에서 사용되는 프로토콜은 매우 다양하며, 각각은 데이터 교환과 통신을 위해 설계된 규칙과 표준의 집합이다.

1. 네트워크 계층 프로토콜

1. IP (Internet Protocol):

인터넷에서 데이터를 전송하기 위한 주요 프로토콜이다. IP 주소를 사용하여 데이터 패킷을 송수신한다.

2. ICMP (Internet Control Message Protocol):

네트워크 장치 간의 오류 메시지와 운영 정보를 전달하기 위한 프로토콜이다.

3. ARP (Address Resolution Protocol):

IP 주소를 물리적 MAC (Media Access Control) 주소로 변환하는 데 사용된다.

2. 전송 계층 프로토콜

전송 계층 프로토콜들은 네트워크 계층의 프로토콜들과 상호작용하여 데이터를 안정적으로 전송한다.
전송 계층의 주요 프로토콜인 TCP (Transmission Control Protocol)와 UDP (User Datagram Protocol)는 주로 IP (Internet Protocol)를 사용하여 데이터를 전송한다.

1. TCP (Transmission Control Protocol):

신뢰성 있는 데이터 전송을 보장하는 연결 지향적 프로토콜이다.
데이터의 순서 보장 및 오류 검출 기능을 포함한다.

IP (Internet Protocol): TCP는 IP 위에서 작동한다. TCP는 데이터를 세그먼트로 분할하고, 각 세그먼트에 순서 번호를 할당한 후 IP를 통해 전송한다. 수신 측에서는 이 순서 번호를 기반으로 데이터를 재조립한다.
IP는 데이터 패킷의 전송을 담당하지만, 패킷의 순서나 신뢰성은 보장하지 않는다. TCP는 이러한 기능을 제공하여 신뢰성 있는 데이터 전송을 보장한다.

2. UDP (User Datagram Protocol):

연결 없이 데이터를 전송하는 프로토콜로, 빠른 전송을 위해 신뢰성이나 순서 보장 기능을 제공하지 않는다.

IP (Internet Protocol): UDP 역시 IP 위에서 작동합니다. UDP는 TCP와 달리 연결을 설정하지 않고 데이터를 전송한다. 이 때문에 UDP는 TCP보다 빠르지만, 신뢰성이 낮다. UDP는 데이터를 데이터그램 단위로 전송하며, 각 데이터그램은 독립적으로 처리된다. IP는 UDP 데이터그램을 목적지까지 전송하는 역할을 한다.

3. SCTP (Stream Control Transmission Protocol):

신뢰성과 순서 보장을 제공하는 동시에 다중 스트림 전송을 지원하는 프로토콜이다.

IP (Internet Protocol): SCTP도 IP를 사용하여 데이터를 전송한다. SCTP는 TCP의 신뢰성 있는 데이터 전송 기능과 UDP의 다중 스트리밍 기능을 결합한 프로토콜이다.
SCTP는 여러 스트림을 통해 동시에 데이터를 전송할 수 있으며, IP 네트워크를 통해 이 데이터를 전송한다.

이처럼, 전송 계층 프로토콜들은 주로 IP를 기반으로 하여 작동한다.
IP는 데이터의 전송과 라우팅을 담당하는 핵심 네트워크 계층 프로토콜로서, 전송 계층 프로토콜들이 데이터를 신뢰성 있게 전송할 수 있도록 기반을 제공한다. 각 전송 계층 프로토콜은 IP의 기능을 활용하여 특정 목적에 맞는 데이터 전송 방식을 구현한다.

3. 응용 계층 프로토콜

응용 계층 프로토콜은 다양한 네트워크 서비스와 애플리케이션을 위해 설계되었다. 이러한 프로토콜들은 데이터 전송의 신뢰성, 속도, 순서 등의 요구 사항에 따라 TCP(Transmission Control Protocol) 또는 UDP(User Datagram Protocol)와 같은 특정 전송 계층 프로토콜을 사용한다.

1. HTTP (HyperText Transfer Protocol):

웹 페이지와 같은 리소스를 전송하기 위한 프로토콜이다.

TCP: 웹 페이지와 다른 웹 컨텐츠를 전송하기 위한 주요 프로토콜이다.
HTTP는 신뢰성 있는 데이터 전송을 필요로 하기 때문에 TCP를 사용한다. TCP를 통해 데이터의 순서와 무결성이 보장된다.

2. HTTPS (HTTP Secure):

HTTP에 SSL/TLS 보안 계층을 추가한 프로토콜로, 암호화된 통신을 제공한다.

TCP: HTTP의 보안 버전으로, SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security)를 사용하여 암호화된 연결을 제공한다. HTTPS 역시 신뢰성 있는 데이터 전송을 위해 TCP를 사용한다.

3. FTP (File Transfer Protocol):

파일 전송을 위한 프로토콜.

TCP: 파일 전송을 위한 프로토콜로, 데이터와 제어 정보의 신뢰성 있는 전송이 필요하기 때문에 TCP를 사용한다.
FTP는 파일 전송 중에 발생할 수 있는 오류를 감지하고 수정할 수 있어야 한다.

4. SMTP (Simple Mail Transfer Protocol):

이메일 전송을 위한 프로토콜.

TCP: 이메일 전송을 위한 프로토콜. 이메일은 신뢰성 있는 전송이 필요하기 때문에 SMTP는 TCP를 사용한다.
TCP를 통해 이메일 데이터가 순서대로 정확하게 전송된다.

5. POP3 (Post Office Protocol version 3) 및 IMAP (Internet Message Access Protocol):

이메일을 받기 위한 프로토콜로, 서로 다른 기능과 이점을 제공.

TCP: 이메일을 받기 위해 사용되는 프로토콜이다. 사용자의 이메일 클라이언트가 이메일 서버에 연결하여 이메일을 다운로드하고, 필요에 따라 서버에서 메일을 삭제한다. 신뢰성 있는 데이터 전송이 필요하기 때문에 POP3는 TCP를 사용한다. POP3는 상대적으로 간단한 프로토콜로, 메일을 로컬 장치에 저장한 후 서버에서 삭제하는 '메일 가져오기' 방식을 기본으로 한다.

6. DNS (Domain Name System):

도메인 이름을 IP 주소로 변환하는 데 사용.

UDP & TCP: 도메인 이름을 IP 주소로 변환하는 데 사용된다. 대부분의 DNS 쿼리는 속도가 중요하고 응답 크기가 작기 때문에 UDP를 사용한다. 하지만, DNS 메시지가 UDP의 단편화 제한(512 바이트)을 초과하는 경우나 DNS 영역 전송과 같은 특정 상황에서는 신뢰성이 중요해지므로 TCP를 사용한다.

7. SSH (Secure Shell):

네트워크 서비스를 안전하게 운영하기 위한 프로토콜.

TCP: 네트워크 프로토콜 중 하나로, 특히 보안이 중요한 원격 컴퓨터와의 안전한 데이터 통신(명령 실행, 파일 전송 등)을 제공한다.
SSH는 암호화를 통해 데이터의 기밀성과 무결성을 보장한다. 신뢰성 있는 연결과 데이터 전송의 안정성이 필수적이므로 SSH는 TCP를 사용한다.

8. WebSocket:

실시간 양방향 통신을 위한 프로토콜로, 웹 애플리케이션에서 주로 사용.

TCP: 웹 애플리케이션을 위한 고급 프로토콜로, 클라이언트와 서버 간에 지속적인 양방향 통신 채널을 제공한다. HTTP 연결을 통해 초기 핸드셰이크를 수행한 후, 연결이 업그레이드되어 WebSocket 연결로 전환된다. 이를 통해 서버와 클라이언트는 실시간으로 데이터를 빠르게 교환할 수 있다. WebSocket은 실시간 웹 애플리케이션에 적합하며, 신뢰성 있는 연결을 위해 TCP를 사용한다.

응용 계층 프로토콜들은 각각의 목적과 요구 사항에 따라 TCP 또는 UDP를 선택한다. TCP는 신뢰성 있는 연결이 필요한 경우에 사용되며, UDP는 낮은 지연시간과 효율성이 더 중요한 경우에 선호된다. 이처럼 응용 계층 프로토콜은 전송 계층 프로토콜과의 상호작용을 통해 인터넷의 다양한 서비스와 애플리케이션을 가능하게 한다.

reference

http://www.jidum.com/jidums/view.do?jidumId=415

profile
智(지)! 德(덕)! 體(체)!

0개의 댓글