Programming/etc

TCP와 UDP와 IP 프로토콜

esoog Polaris 2023. 6. 20. 13:53
반응형

TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 인터넷 프로토콜 스위트의 두 가지 중요한 전송 프로토콜입니다. 다음은 TCP와 UDP의 주요 특징과 차이점을 자세히 설명한 것입니다:

1. TCP (Transmission Control Protocol):
   - 연결 지향적 프로토콜: TCP는 연결을 설정하고 유지하는 데 중점을 둔 연결 지향적인 프로토콜입니다.
   - 신뢰성: 데이터의 전달 신뢰성을 보장하기 위해 순차적이고 에러 검출 및 복구, 재전송 등의 메커니즘을 사용합니다.
   - 흐름 제어: 송신 측과 수신 측 간의 데이터 흐름을 조절하여 송신 측의 데이터 속도를 수신 측의 처리 속도에 맞추는 기능을 제공합니다.
   - 혼잡 제어: 네트워크 혼잡을 감지하고 회피하기 위한 알고리즘을 사용하여 네트워크 전체의 안정성과 성능을 유지합니다.
   - 패킷 오버헤드: TCP는 신뢰성과 흐름 제어, 혼잡 제어를 위한 추가적인 패킷 헤더를 사용하므로 일정한 오버헤드가 발생합니다.
   - 사용 사례: 대부분의 웹 애플리케이션, 이메일, 파일 전송 등의 신뢰성이 중요한 애플리케이션에 사용됩니다.

 

 


2. UDP (User Datagram Protocol):
   - 비연결성 프로토콜: UDP는 연결을 설정하지 않고 데이터를 전송하는 비연결성 프로토콜입니다.
   - 비신뢰성: 데이터 전달에 대한 보장을 제공하지 않고, 에러 검출을 위한 간단한 체크섬 기능만 제공합니다.
   - 흐름 제어 및 혼잡 제어 없음: UDP는 흐름 제어와 혼잡 제어 메커니즘이 없기 때문에 데이터 패킷의 전송 속도와 수신 측의 처리 속도를 조절하지 않습니다.
   - 패킷 오버헤드: TCP보다 작은 패킷 헤더를 사용하므로 오버헤드가 상대적으로 적습니다.
   - 사용 사례: 실시간 스트리밍, 음성 통화, 온라인 게임 등의 신속한 데이터 전송이 요구되는 애플리케이션에 사용됩니다.

주요차이점:
- 연결성: TCP는 연결을 설정하고 유지하는 반면, UDP는 연결을 설정하지 않고 비연결성으로 동작합니다.
- 신뢰성: TCP는 신뢰성 있는 데이터 전송을 보장하기 위해 재전송 및 에러 복구 메커니즘을 사용하지만, UDP는 신뢰성을 보장하지 않습니다.
- 흐름 제어 및 혼잡 제어: TCP는 흐름 제어 및 혼잡 제어 메커니즘을 갖추고 있지만, UDP는 이러한 기능을 제공하지 않습니다.
- 패킷 오버헤드: TCP는 신뢰성 및 흐름 제어를 위한 추가적인 헤더를 사용하여 패킷 오버헤드가 발생하나, UDP는 작은 헤더를 사용하여 오버헤드가 적습니다.

따라서, TCP는 신뢰성이 중요한 애플리케이션에 적합하고, UDP는 신속한 데이터 전송이 필요한 애플리케이션에 적합합니다. 선택은 애플리케이션의 요구사항에 따라 이루어져야 합니다.

 

 

 

3. IP(Internet Protocol):

IP는 인터넷 계층에서 사용되는 프로토콜로, 데이터의 패킷 전달과 라우팅을 담당합니다. IP는 각각의 장치에 고유한 IP 주소를 할당하고, 패킷을 출발지에서 목적지로 전달하기 위해 최적의 경로를 선택합니다. IP는 패킷의 분할과 재조립을 처리하며, 라우터들 사이에서 패킷의 전달을 위한 라우팅 프로토콜들과 상호작용합니다. IP는 비연결성 프로토콜로, 패킷을 독립적으로 전송하고, 패킷 손실이나 오류 발생 시 재전송을 담당하지 않습니다.

 

 

 

# TCP/IP 프로토콜 스택

인터넷에서 데이터 통신을 위해 사용되는 프로토콜 집합입니다. 이 프로토콜 스택은 다음 네 가지 계층으로 구성됩니다: 애플리케이션 계층, 전송 계층, 인터넷 계층, 그리고 링크 계층입니다.

 

1. 애플리케이션 계층:
애플리케이션 계층은 최상위 계층으로, 사용자가 네트워크를 통해 데이터를 송수신할 수 있는 인터페이스를 제공합니다. 이 계층에서는 다양한 프로토콜이 동작하며, 사용자 애플리케이션에 대한 서비스를 제공합니다. 예를 들어, 웹 브라우저는 HTTP(하이퍼텍스트 전송 프로토콜)를 사용하여 웹 서버와 통신합니다.(FTP, SNMP 등)

2. 전송 계층:
전송 계층은 애플리케이션 간의 데이터 전송을 관리합니다. 이 계층에서는 주로 TCP(전송 제어 프로토콜)와 UDP(사용자 데이터그램 프로토콜)가 사용됩니다. TCP는 신뢰성 있는 데이터 전송을 제공하며, 데이터의 순서와 손실 여부를 관리합니다. UDP는 비신뢰적이지만 실시간 통신과 같은 신속한 데이터 전송에 적합합니다.

3. 인터넷 계층:
인터넷 계층은 데이터의 패킷 전달을 관리하고 네트워크 간의 라우팅을 담당합니다. IP(Internet Protocol)가 가장 대표적인 프로토콜로 사용됩니다. IP는 패킷의 출발지와 목적지를 기반으로 데이터를 라우팅하고, 패킷 분할과 재조립을 처리합니다. 또한, 인터넷 계층에서는 ICMP(Internet Control Message Protocol)를 통해 네트워크 상태의 감지와 오류 메시지 전달 등을 수행합니다.

4. 링크 계층(물리계층, 네트워크 접속 계층, 미디어 접근 계층): 가장 밑바닥 계층
링크 계층은 네트워크와 물리적인 데이터 전송 매체를 연결하는 역할을 합니다. 이 계층에서는 이더넷, Wi-Fi, PPP(Point-to-Point Protocol) 등과 같은 프로토콜이 사용됩니다. 링크 계층은 데이터를 프레임으로 분할하고, 네트워크 인터페이스 카드(NIC)와 같은 하드웨어 장치와 상호작용하여 데이터를 전송합니다.

이렇게 계층적인 구조로 TCP/IP 프로토콜 스택이 구성되어 있으며, 각 계층은 자신의 역할에 따라 데이터를 처리하고 다음 계층으로 전달합니다. 이를 통해 인터넷에서 신뢰성 있는 데이터 통신이 가능해집니다.

728x90