CS

TCP와 UDP의 차이점

koka 2025. 3. 6. 20:00

TCP란?

TCP란 Transmission Control Protocol의 약자로 '전송을 제어하는 규약' 이라는 뜻.

 

TCP의 특징

1. 연결형(connection-oriented) 서비스로 연결이 성공해야 통신이 가능하다.

2. 데이터의 경께를 구분하지 않음 (byte stream service)

3. 데이터의 전송 순서를 보장한다. 데이터의 순서유지를 위해 각 바이트마다 번호가 부여됨.

4. 신뢰성 있는 데이터를 전송 (Sequence Number, Ack Number)

   4-1 Sequence Number : TCP 세그먼트의 연속된 데이터 번호

   4-2 Ack Number : 상대방으로부터 받아야하는 다음 TCP 세그먼트 데이터 번호

5. 데이터 흐름 제어(수신자 버퍼 오버플로우 방지) 및 혼잡 제어(패킷 수가 과도하게 증가하는 것을 방지)

6. 연결의 설정 (3-way handshaking), 해제(4-way handshacking)

 

 

TCP 단점 

1. 데이터로 보내기 전에 반드시 연결이 되어야 함

2. 1:1 통신 가능

3. 고정된 통신 선로가 최단선이 아닐 경우 상대적으로 UDP보다 데이터 전송속도가 느림

 

TCP HandShake 란?

TCP HandShake 는 3-way HandShake 와 4-way HandShake가 존재한다.

3-way HandShake는 연결을 설정하고 4-way HandShake는 연결을 해제한다.

 

3-way HandShake 방식(SYN, ACK)

3 way HandShake방식은 서로의 통신을 위해 관문(port)를 확인하고 연결하기 위해 3번의 요청/응답(SYN, ASK)이 되는 것을 말한다.

 

4-way HandShake 방식

4-way Handshake은 연결을 해제 (Connecntion Termination)하는 과정이다. 여기서는 FIN 플래그를 이용한다.

1. FIN (finish) : 세션을 종료시키는데 사용되며, 더 이상 보낸 데이터가 없음을 나타냄

 

 

UDP란?

UDP(User Datagram Protocol)는 전송계층의 '비연결 지향적 프로토콜'을 의미함

'비연결 지향적'이란 데이터를 주고받을 때 연결 절차 없이 발신자가 일방적으로 데이터를 발신하는 방식을 의미

연결 과정이 없기 때문에 TCP보다 빠른 전송이 가능하지만 데이터가 유실 될 수 있다.

데이터 패킷을 순차적으로 보내더라도 보낸 패킷이 느린 선로를 통해 전송될 경우 나중에 전송된 패킷보다 늦게 수신될 수 있음

 

UDP의 특징

1. 비연결형 서비스로 연결 없이 통신이 가능하며 데이터그램 방식을 제공

  1-1 데이터그램 방식은 데이터 전송전에 송/수신자 사이에 가상회선이라 불리는 논리적 경로를 설정하지 않고, 패킷들이 각기 독립적으로 전송되는 방식 (OSI 7계층에서 네트워크 계층에서 사용)

2. 데이터 경계를 구분 (데이터그램 서비스)

3. 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않음

4. 신뢰성 없는 데이터를 전송

5. 패킷관리가 필요

6. 패킷 오버헤드가 적어 네트워크 부하가 감소되는 장점

7. 상대적으로 TCP보다 전송속도가 빠름

 

UDP 단점

1. 데이터의 신뢰성이 없다.

2. 의미있는 서버를 구축하기위해서는 일일이 패킷을 관리해주어야 함

 

TCP/UDP 공통점과 차이점

프로토콜 종류 TCP UDP
연결방식 연결형 서비스 비연결형 서비스
패킷 교환 방식 가상 회선 방식 데이터그램 방식
전송 순서 전송 순서 보장 전송 순서 변경 가능
수신 여부 확인 수신 여부를 확인 수신 여부 비확인
통신 방식 Point to Point(1:1) N:N 통신
신뢰성 높다 낮다
속도 느리다 빠르다

 

참고사이트

tistory - 방구의 개발냄새

velog - @devharrypmw