2024.02.26 - [컴퓨터공학] - [운] MAC주소와 IP 주소
TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 인터넷 프로토콜 스위트의 핵심 요소입니다. 이들은 데이터를 네트워크상의 다른 컴퓨터로 전송하는 방법을 정의하며, 각각 고유한 특성과 사용 사례를 가지고 있습니다. 이 글에서는 TCP와 UDP의 개념, 기능, 차이점, 그리고 장단점을 상세히 비교하고 설명하겠습니다.
앞에서 설명한 MAC 주소와 IP주소는 목적지를 정확히 찾아가기 위하여 주소 제공이 목적이었지만 4계층에서 동작하는 프로토콜은 만들어진 목적이 2, 3계층 프로토콜과 다릅니다. 목적지 단말 안에서 동작하는 여러 애플리케이션 프로세스 중 통신해야 할 목적지 프로세스를 정확히 찾아가고 패킷 순서가 바뀌지 않도록 잘 조합해 원래 데이터를 잘 만들어내기 위한 역할을 합니다. 이 글에서는 TCP/IP 프로토콜 스택의 4계층에서 동작하는 TCP와 UDP 프로토콜에 관해 설명하겠습니다. 실제 서비스는 출발지에서 목적지로의 경로를 찾는 것이 끝이 아니라 애플리케이션이 정상적으로 돌아가기 위한 다양한 작업에 문제가 없어야만 서비스를 정상적으로 제공할 수 있습니다. 또한, 로드밸런서나 방화벽을 비롯한 4계층 이상의 장비도 인프라 구성의 주요 요소이므로 4계층 관련된 학습이 필요합니다.
TCP(Transmission Control Protocol)
TCP는 연결 지향적 프로토콜로, 데이터 전송을 시작하기 전에 통신할 두 장치 간에 연결을 설정합니다. 이 프로토콜은 데이터가 목적지에 정확하고 순서대로 도착하도록 보장합니다. 또한, 데이터 손실이나 중복, 오류를 감지하고 수정하는 메커니즘을 제공합니다. TCP는 신뢰성이 매우 중요한 애플리케이션에 적합합니다.
TCP의 주요 특징:
- 신뢰성: 데이터가 손실되지 않고 목적지에 도착함을 보장합니다.
- 순서 보장: 데이터 패킷들이 전송된 순서대로 도착합니다.
- 오류 검출 및 수정: 전송 중 오류가 발생하면 재전송을 통해 수정합니다.
- 흐름 제어: 송신자와 수신자 간의 데이터 처리 속도 차이를 조절합니다.
- 혼잡 제어: 네트워크 혼잡 시 데이터 전송 속도를 조절하여 혼잡을 완화합니다.
UDP(User Datagram Protocol)
UDP는 비 연결 지향적 프로토콜로, 연결 설정 없이 데이터를 전송합니다. 이는 TCP보다 더 빠른 데이터 전송을 가능하게 하지만, TCP와 달리 데이터의 신뢰성이나 순서를 보장하지 않습니다. UDP는 실시간 애플리케이션(예: 스트리밍, 온라인 게임)에서 자주 사용됩니다.
UDP의 주요 특징:
- 비 연결성: 사전 연결 설정 없이 데이터를 전송합니다.
- 속도: 오버헤드가 낮아 TCP보다 빠른 데이터 전송이 가능합니다.
- 신뢰성 없음: 데이터 손실이 발생해도 재전송하지 않습니다.
- 순서 보장 없음: 패킷이 전송된 순서와 다를 수 있습니다.
- 경량 프로토콜: 최소한의 프로토콜 오버헤드를 가집니다.
TCP의 장단점 상세 설명
장점
- 신뢰성: TCP는 데이터가 손실되지 않고 목적지에 정확히 도착하도록 보장합니다. 이는 데이터 패킷의 순서를 유지하고, 손실된 패킷을 재전송하는 메커니즘을 통해 이루어집니다. 이에 따라 중요한 데이터 전송에 매우 적합합니다.
- 데이터 무결성: 오류 검출 기능을 통해 데이터가 변경되거나 손상된 경우 이를 감지하고 수정합니다. 이는 데이터의 무결성을 유지하는 데 필수적입니다.
- 흐름 제어 및 혼잡 제어: 송신자와 수신자 간의 데이터 처리 속도 차이를 조절하고, 네트워크 혼잡이 발생했을 때 데이터 전송률을 조절합니다. 이는 네트워크의 안정성을 유지하고 효율적인 데이터 전송을 가능하게 합니다.
단점
- 속도와 오버헤드: 연결 설정, 오류 검사, 흐름 제어 등으로 인한 추가적인 데이터 패킷 교환과 처리 과정은 전송 속도를 저하하고 오버헤드를 증가시킵니다. 이는 특히 실시간 데이터 전송이 중요한 애플리케이션에서는 불리할 수 있습니다.
- 자원 사용량: 연결을 유지하기 위해 사용되는 자원(예: 메모리, CPU 시간)이 더 많으며, 동시에 많은 연결을 관리할 때 서버에 부담을 줄 수 있습니다.
UDP의 장단점 상세 설명
장점
- 속도: 연결 설정과 종료 과정이 없으며, 최소한의 프로토콜 오버헤드만을 가지고 있어 데이터 전송 속도가 매우 빠릅니다. 이는 실시간 애플리케이션에서 지연 시간을 최소화하는 데 유리합니다.
- 간단한 프로토콜 구조: UDP는 간단한 프로토콜 구조를 가지고 있어 구현이 쉽고, 자원 사용이 적습니다. 이는 네트워크 장비나 애플리케이션에서의 부담을 줄여줍니다.
- 멀티캐스팅과 브로드캐스팅: UDP는 멀티캐스트(한 소스에서 여러 목적지로 데이터를 전송)와 브로드캐스트(네트워크상의 모든 장치로 데이터를 전송)를 지원합니다. 이는 대규모 네트워크 서비스에 유용합니다.
단점
- 신뢰성 부족: 데이터 패킷의 손실이나 순서 변경이 발생해도 이를 자동으로 복구하지 않습니다. 이에 따라 애플리케이션 개발자가 애플리케이션 계층에서 이러한 문제를 처리해야 할 수 있습니다.
- 데이터 무결성 및 보안: UDP는 데이터 무결성 검사나 보안 메커니즘을 기본적으로 제공하지 않습니다. 따라서, 이러한 기능이 필요한 경우 애플리케이션 레벨에서 별도로 구현해야 합니다.
TCP와 UDP는 이와 같은 장단점을 기반으로 서로 다른 애플리케이션 요구 사항을 충족시키기 위해 고안되었습니다. 따라서 애플리케이션의 특성과 요구 사항을 정확히 이해하고 적절한 프로토콜을 선택하는 것이 중요합니다.
'컴퓨터공학' 카테고리의 다른 글
[운] 서브네팅, 게이트웨이 (0) | 2024.02.29 |
---|---|
[운] ARP, RARP, GARP (0) | 2024.02.28 |
[운] MAC주소와 IP 주소 (0) | 2024.02.28 |
[운] 네트워크 연결 구분 (0) | 2024.02.28 |
[운] 캡슐화와 역 캡슐화 (0) | 2024.02.28 |