공부/STM32

🌐TCP vs UDP: 네트워크에서 두 프로토콜의 차이점 이해하기

projectlim 2025. 3. 16. 18:35
728x90
반응형
SMALL

이미지 출처 :  https://www.redeszone.net/

 


네트워크에서 데이터를 주고받을 때, 우리가 가장 많이 접하는 두 가지 프로토콜은 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)입니다. 이 두 프로토콜은 각각의 특징과 용도에 따라 다르게 작동합니다. 오늘은 TCPUDP의 차이점과, 각각의 장단점에 대해 자세히 알아보겠습니다! 💡


1. TCP란 무엇인가요? 🔄

TCP(Transmission Control Protocol)는 연결 지향형 프로토콜입니다. 말 그대로, 데이터를 전송하기 전에 서로 연결을 먼저 수립하고, 데이터가 제대로 전송되었는지 확인한 후에 다시 연결을 종료합니다. 📡

TCP의 특징:

  • 연결 지향: 데이터를 전송하기 전에 송신자와 수신자가 연결을 먼저 설정합니다. 이 과정은 3-way handshake라고도 불립니다.
  • 신뢰성: 데이터를 순차적으로 전송하고, 수신자가 데이터를 제대로 받았는지 확인 후 다시 전송합니다. 만약 패킷 손실이 발생하면, 송신자는 손실된 데이터를 재전송합니다.
  • 흐름 제어: 네트워크 상태에 따라 데이터를 얼마나 빠르게 보낼지를 조절하여 네트워크 과부하를 방지합니다.
  • 혼잡 제어: 네트워크의 혼잡 상태에 따라 데이터 전송 속도를 조절합니다.

예시:

  • 웹 브라우징 (HTTP, HTTPS): 웹 페이지를 요청하고 받아오는 데 사용됩니다.
  • 파일 전송 (FTP, SFTP): 파일을 안전하게 전송할 때 사용됩니다.

TCP의 장점:

  • 데이터의 순서 보장: 패킷이 순서대로 도착합니다.
  • 신뢰성 보장: 데이터가 정확히 전송되었는지 확인합니다.
  • 오류 검출 및 복구: 패킷 손실이나 오류를 감지하고 재전송합니다.

단점:

  • 느린 속도: 데이터의 정확성을 보장하기 위해 여러 번 확인을 하기 때문에 속도가 상대적으로 느립니다.
  • 오버헤드: 연결 설정, 흐름 제어, 혼잡 제어 등이 필요하므로 추가적인 오버헤드가 발생합니다.

2. UDP란 무엇인가요? ⚡

UDP(User Datagram Protocol)는 비연결 지향형 프로토콜로, TCP와는 다르게 데이터를 보내기 전에 연결을 설정하지 않습니다. 데이터는 전송된 후 바로 끝이 납니다. 🔥

UDP의 특징:

  • 비연결 지향: 송신자는 데이터를 바로 전송하며, 수신자는 이를 수신합니다. 연결을 설정하거나 종료하는 과정이 없습니다.
  • 빠른 속도: 연결 설정이나 데이터 확인 과정이 없기 때문에 속도가 빠릅니다.
  • 신뢰성 없음: 데이터를 보낼 때 순서 보장이나 오류 검사, 재전송 등의 과정이 없습니다. 데이터가 손실되면 그대로 끝입니다.
  • 오버헤드 없음: 연결 및 흐름 제어나 혼잡 제어가 없어서 오버헤드가 적습니다.

예시:

  • 비디오 스트리밍 (YouTube, Netflix 등): 영상 데이터를 실시간으로 전송할 때 사용됩니다.
  • 온라인 게임: 빠른 데이터 전송이 중요하며, 약간의 데이터 손실이 게임에 큰 영향을 미치지 않기 때문에 사용됩니다.
  • VoIP (음성 통화): 실시간 통화 시 데이터 손실이 있더라도 크게 문제가 되지 않는 경우가 많습니다.

UDP의 장점:

  • 빠른 속도: 연결 과정이 없고 데이터 확인 절차도 없기 때문에 전송 속도가 매우 빠릅니다.
  • 낮은 오버헤드: 프로토콜 자체가 간단하고 오버헤드가 적습니다.

단점:

  • 신뢰성 부족: 데이터 손실이나 순서 뒤바뀌기가 발생할 수 있습니다.
  • 오류 검출 없음: 패킷 손실이 발생하면, 이를 감지하거나 복구하지 않습니다.

3. TCP와 UDP의 주요 차이점 🆚

이제 TCP와 UDP의 주요 차이점을 한눈에 비교해볼까요? 📊

특성 TCP UDP

연결 방식 연결 지향형 (3-way handshake) 비연결 지향형
데이터 신뢰성 신뢰성 있음 (전송 확인, 재전송) 신뢰성 없음 (손실되면 그대로)
속도 상대적으로 느림 (오버헤드 있음) 빠름 (오버헤드 없음)
데이터 순서 순서 보장 순서 보장 없음
오류 처리 오류 검출 및 복구 있음 오류 검출 없음
용도 파일 전송, 웹 브라우징, 이메일 등 실시간 스트리밍, 온라인 게임 등
흐름 제어/혼잡 제어 있음 없음

4. 언제 TCP를 사용하고, 언제 UDP를 사용할까요? 🤔

TCP정확성과 신뢰성이 중요한 애플리케이션에서 사용됩니다.

예를 들어, 웹 브라우징이나 파일 전송에서는 데이터가 정확하게 전송되어야 하므로 TCP가 필요합니다.

반면에 UDP속도가 중요한 실시간 애플리케이션에서 사용됩니다.

비디오 스트리밍, 온라인 게임, 음성 통화 등에서는 약간의 데이터 손실이 문제가 되지 않기 때문에 UDP를 사용합니다.


5. 마치며 🏁

TCP와 UDP는 각기 다른 장점과 특징을 가지고 있습니다.

신뢰성정확성이 중요한 작업에는 TCP가, 속도실시간성이 중요한 작업에는 UDP가 적합합니다.

네트워크 프로그래밍에서 이 두 프로토콜을 잘 이해하고 선택하는 것은 매우 중요합니다. 🔍

이제 TCP와 UDP의 차이를 명확히 이해하셨겠죠?

각 프로토콜의 특성을 잘 활용해 더 효율적인 네트워크 설계를 할 수 있을 거예요! 🌟

728x90
반응형
LIST