본문으로 바로가기

[Network] TCP와 UDP의 차이점

category 기타 TIP 2021. 3. 8. 03:45

TCP와 UDP를 알기전에 먼저 알아야 할 부분이 있다.

 

IP 프로토콜의 한계

• 비연결성

  • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송

 

• 비신뢰성

  • 중간에 패킷이 사라지면?

  • 패킷이 순서대로 안오면?

 

• 프로그램 구분 • 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?

 

아래와 같이 문제점들이 발생할 수 있습니다.

1. 대상이 서비스 불능, 패킷 전송 상태를 알수 없음

2. 패킷 전달 순서 문제 발생

 

이것을 개선하기 위해 나온것이 TCP입니다.

 

인터넷 프로토콜 4계층은 아래와 같습니다.

 

TCP 특징

• 연결지향 - TCP 3 way handshake (가상 연결)

• 데이터 전달 보증 (데이터를 전송했으면 데이터를 잘 받았다고 확인이 가능합니다)

• 순서 보장 (패킷을 순서대로 받을 수 있습니다)

신뢰할 수 있는 프로토콜

• 현재는 대부분 TCP 사용

 

 

TCP 3 way handshake (가상 연결) 에 대해 알아 봅시다.

 

사실 논리적으로 가상회선을 수립하는 단계입니다.

1. 클라이언트가 서버한테 SYN (접속요청) 을 하면

2. 서버에서 응답을 합니다. SYN+ACK (접속요청과, 응답)을 같이 해줍니다.

3. 마지막으로 클라이언트에서 ACK (응답)을 합니다.

 

UDP 특징

사용자 데이터그램 프로토콜(User Datagram Protocol)

• 하얀 도화지에 비유(기능이 거의 없음)

• 연결지향 - TCP 3 way handshake X

• 데이터 전달 보증 X

• 순서 보장 X

• 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름

• 정리

  • IP와 거의 같다. +PORT +체크섬 정도만 추가

   -> 예를 들자면 개인이 한 pc에서 음악들으면서, 게임도하고, 웹서핑도하고, 유투브도 시청하고 여러개를

        사용 중일경우  이 때 바로 UDP가 사용됩니다!

 

  • 애플리케이션에서 추가 작업 필요