[네트워크] TCP vs UDP

이정연·2023년 5월 6일
0

ComputerScience

목록 보기
9/13

TCP는 데이터의 신뢰성이 중요한 웹, 이메일, 파일 시스템 등에서 UDP는 데이터의 속도가 중요한 온라인 게임, 스트리밍 등에서 가져다 쓰인다.

TCP와 UDP는 OSI 7계층의 "전송 계층"에 해당하는 프로토콜이다.

연결 방식

TCP는 연결 지향(Connection-oriented) 프로토콜입니다. 연결 지향 프로토콜은 데이터를 전송하기 전에 수신측과의 연결 설정을 먼저 수행합니다.

이에 반해, UDP는 비연결 지향(Connectionless) 프로토콜입니다. 연결 설정 과정이 없기 때문에 데이터 전송이 빠르지만, 데이터의 신뢰성이 낮아집니다.

3 way handshake

  1. 클라이언트에서 서버로 요청 패킷을 보낸다.
  2. 서버가 클라이언트에게 알겠다는 응답 패킷을 보낸다. 이 때, 기존 패킷에 'ACK'를 추가하여 보낸다.
  3. 클라이언트는 최종적으로 이를 수락하는 응답 패킷을 보낸다.

위 3개의 과정을 3 way handshake라고 부른다.

데이터 전송 방식

TCP는 신뢰성 있는 데이터 전송을 보장하기 위해, 데이터를 순차적으로 전송하고, 수신측에서 데이터를 확인한 후에만 다음 데이터를 전송합니다. 또한, 데이터 전송 중에 손실이 발생하면 재전송을 수행하여 신뢰성을 보장합니다.

반면에, UDP는 빠른 전송을 위해 데이터를 최대한 빠르게 전송합니다. 이에 따라, 데이터 손실이 발생할 수 있습니다.

헤더 구조

TCP와 UDP는 각각 다른 헤더 구조를 가지고 있습니다. TCP의 헤더는 20바이트의 고정 크기를 가지며, 제어 정보, 송신자와 수신자의 포트 정보, 순서 정보, 검사 합 등의 정보를 포함합니다.

반면에, UDP의 헤더는 8바이트의 고정 크기를 가지며, 포트 정보, 데이터 길이, 검사 합 등의 정보를 포함합니다.

사용 용도

TCP는 데이터의 정확성과 신뢰성이 중요한 웹 페이지, 이메일, 파일 전송 등의 애플리케이션에서 사용됩니다.

반면에, UDP는 실시간으로 데이터를 전송해야 하는 애플리케이션에서 주로 사용됩니다. 예를 들어, VoIP, 온라인 게임, 스트리밍 등의 애플리케이션이 있습니다.


따라서, TCP와 UDP는 각각 다른 특징과 용도를 가지고 있으며, 사용하는 애플리케이션의 특성에 따라 적절한 프로토콜을 선택하여 사용해야 합니다.

Reference

https://velog.io/@cis07385

profile
0x68656C6C6F21

0개의 댓글