Web

TCP와 UDP

TedDev 2024. 9. 6. 16:30
728x90

TCP와 UDP는 네트워크 통신의 중요한 전송 계층 프로토콜이다. 이들은 각기 다른 방식으로 데이터를 전송하며 다양한 상황에서 최적의 선택을 하도록 설계되어있다. 아래는 TCP와 UDP의 차이점과 각각의 특징들에 대한 내용이다.

 

 

전송 계층(Transport Layer)

네트워크 모델에서 전송 계층은 컴퓨터 간 데이터를 안전하고 효율적으로 전송하는 역할을 한다. TCP와 UDP는 이 계층에서 동작하며 데이터를 주고받는 방식에 따라 다르다.

 

TCP (Transmission Control Protocol)

  • 신뢰성 보장 : TCP는 데이터를 안전하게 전달하기 위해 연결 기반(Connection-oriented) 방식으로 동작한다. 데이터가 손실되거나 손상되면 이를 재전송하여 데이터의 신뢰성을 보장한다.
  • 3-way 핸드셰이크 : TCP는 연결을 성립하기 위해 3-way 핸드셰이크 과정을 거친다. 클라이언트와 서버가 서로 통신을 시작할 준비가 되었는지 확인한 후 데이터를 전송한다. 이 과정은 안정적인 연결을 위한 필수 절차이다.
    • 클라이언트가 서버에 연결 요청(SYN) 메시지를 보냄
    • 서버가 이를 수락하고 응답(SYN-ACK) 메시지를 보냄
    • 클라이언트가 다시 응답(ACK)을 보내 연결이 성립됨
    •  
  • 데이터 순서 보장 : TCP는 데이터가 전송된 순서대로 도착하도록 관리하며 순서가 어긋난 경우 재조정한다.
  • 플로우 제어 및 오류 제어 : TCP는 흐름 제어(Flow Control)를 통해 송신자와 수신자의 처리 속도 차이를 조정하며 오류 제어를 통해 데이터 손실이나 손상을 방지한다. 이 과정에서 데이터가 손실되면 재전송을 요청하여 보완한다.
  • 적용 예시 : 웹 브라우징(HTTP/HTTPS), 이메일(SMTP), 파일 전송(FTP) 등 신뢰성이 중요한 서비스에서 주로 사용된다.
  • 단점 : TCP는 신뢰성을 보장하기 위해 다수의 제어 메시지를 주고받기 때문에 속도가 느리며, 전송 중 지연(Latency)이 발생할 수 있다.

 

UDP (User Datagram Protocol)

  • 비연결형 프로토콜 : UDP는 비연결형(Connectionless) 방식으로 동작하며 데이터를 보내기 전에 연결을 설정하지 않는다. 이는 빠른 데이터 전송을 가능하게 한다.
  • 데이터 신뢰성 미보장 : UDP는 데이터가 손실되거나 순서가 뒤바뀌더라도 재전송하지 않으며, 오류 제어 기능이 거의 없다. 즉, 데이터 신뢰성을 보장하지 않는다.
  • 간단한 구조 : UDP는 TCP보다 훨씬 단순한 구조를 가지고 있으며 데이터를 송신하고 나면 추가적인 확인 절차가 없다. 이로 인해 전송 속도가 빠르다.
  • 적용 예시 : UDP는 실시간 데이터 전송이 중요한 경우(영상 스트리밍, 음성 통화, 온라인 게임 등)에 주로 사용된다. 데이터 손실이 발생하더라도 전체적인 서비스 품질에는 큰 영향을 미치지 않는 상황에서 선택한다.
  • 장점 : 연결 설정 과정이 없기 때문에 속도가 빠르며 오버헤드가 적다.
  • 단점 : 데이터의 신뢰성이 떨어지고 손실된 데이터에 대한 재전송 요청이 없기 때문에 중요한 정보 전송에는 적합하지 않다.

 

TCP와 UDP의 비교

  • 연결 여부 : TCP는 연결 기반이며, UDP는 비연결형
  • 신뢰성 : TCP는 신뢰성을 보장하고, UDP는 속도를 중시하여 신뢰성을 보장하지 않음
  • 전송 속도 : TCP는 느리지만 데이터가 안전하게 전송되는 반면 UDP는 빠르지만 데이터 손실 위험이 있음
  • 응용 사례
    • TCP : 웹 브라우징, 파일 전송, 이메일과 같이 데이터 손실을 허용하지 않는 상황에 적합
    • UDP : 실시간 스트리밍, 온라인 게임, VoIP 등 실시간성과 속도가 중요한 서비스에 적합

 

 

TCP와 UDP는 각기 다른 용도와 상황에 맞게 설계된 프로토콜이다. TCP는 신뢰성 있고 안정적인 통신을 제공하지만 속도가 느리고 UDP는 빠르지만 데이터 신뢰성이 떨어진다. 따라서 두 프로토콜을 이해하고 적절한 상황에 맞게 선택하는 것이 중요하다.

반응형

'Web' 카테고리의 다른 글

HTTP 요청-응답 흐름의 개요  (1) 2024.09.12
API vs Library vs Framework  (0) 2024.09.09
OAuth 2.0의 개념과 동작방식  (0) 2024.09.04
인증(Authentication)과 인가(Authorization)  (0) 2024.09.03
RESTful  (0) 2024.08.30