24.12.20 TIL TCP/UDP

신성훈·2024년 12월 20일
0

TIL

목록 보기
104/162

1. 개요

TCP (Transmission Control Protocol)

  • 신뢰성을 보장하는 연결 지향형 프로토콜
  • 데이터의 정확한 전송과 순서를 보장
  • 주요 특징: 데이터 손실이 허용되지 않는 애플리케이션에서 사용

UDP (User Datagram Protocol)

  • 빠른 전송을 목표로 한 비연결형 프로토콜
  • 데이터 손실이나 순서 보장을 하지 않음
  • 주요 특징: 실시간 전송이 중요한 애플리케이션에서 사용

2. TCP의 특징

1) 연결 지향 (Connection-Oriented)

  • 데이터 전송 전에 3-way Handshake 과정을 통해 송신자와 수신자 간 연결을 설정

2) 신뢰성 (Reliable)

  • 데이터가 손실되거나 손상되면 재전송
  • 패킷 순서를 보장

3) 흐름 제어 및 혼잡 제어

  • 송신 속도를 조정해 네트워크 혼잡을 방지

4) 사용 사례

  • 파일 전송(FTP), 이메일(SMTP), 웹 브라우징(HTTP/HTTPS) 등 데이터 손실이 허용되지 않는 애플리케이션

3. UDP의 특징

1) 비연결형 (Connectionless)

  • 데이터 전송 전에 연결을 설정하지 않음

2) 빠른 전송 속도

  • 패킷 손실이나 순서에 신경 쓰지 않아 전송 속도가 빠름

3) 신뢰성 부족

  • 데이터 손실에 대한 재전송이 없으며 순서를 보장하지 않음

4) 사용 사례

  • 스트리밍(비디오, 음악), VoIP(음성 통화), 온라인 게임 등 실시간 성능이 중요한 애플리케이션

4. TCP와 UDP의 주요 차이점

특징TCPUDP
연결 방식연결 지향형 (3-way Handshake)비연결형
데이터 신뢰성보장 (패킷 손실 시 재전송)보장하지 않음
데이터 순서순서 보장순서 보장하지 않음
속도느림빠름
사용 사례파일 전송, 이메일, 웹스트리밍, VoIP, 게임

5. TCP 3-Way Handshake

TCP 연결을 설정하는 과정은 다음 세 단계로 이루어짐:
1. SYN: 클라이언트가 서버에 연결 요청을 보냄
2. SYN-ACK: 서버가 요청을 받고 연결 허가 신호를 보냄
3. ACK: 클라이언트가 서버의 응답을 확인하고 데이터 전송 시작


6. 마무리

TCP와 UDP는 각각의 장단점이 있으며, 애플리케이션의 요구사항에 따라 선택이 달라집니다. TCP의 안정성과 UDP의 속도를 비교하며 각각의 특징을 활용하는 것이 중요합니다. 실시간 서비스와 데이터 신뢰성이 중요한 시스템의 차이를 설계 단계부터 고려해야겠다는 점을 배웠습니다.

profile
조급해하지 말고, 흐름을 만들고, 기록하면서 쌓아가자.

0개의 댓글