[네트워크] TCP와 UDP
Network

[네트워크] TCP와 UDP

728x90

네트워크 OSI 7계층을 기억하시나요?

응표가 한세트하고 달래 에서 "트"를 담당하는 "Transport, 전송계층"에서 대표적인 프로토콜로 TCP와 UDP가 있다고 했었죠. 오늘은 이 TCP와 UDP에 대해서 알아봅시다!


TCP (Transmission Control Protocol)

TCP는 신뢰성있는 데이터 전송을 지원하는 연결형 프로토콜입니다! 일반적으로 TCP는 IP와 함께 사용되는데, IP가 데이터의 전송을 처리한다면, TCP는 패킷을 추적하고 관리하게 됩니다.

 

패킷(Packet)이 뭐에요?

인터넷으로 데이터를 보낼때 효율적으로 하기 위해서 보내는 데이터를 조각조각으로 나누어 전송하는데 이 조각을 패킷이라고 부릅니다!

 

패킷을 추적하고 관리한다는 뜻은 뭔가요?

패킷이 데이터 조각이라고 했었죠. 예를 들어 제가 전송하려는 데이터를 3조각 A, B, C로 나누어서 전송한다고 가정해봅시다. 받는쪽한테 어떤 패킷이 도착해야되는지 알려주지 않으면, A, B 패킷만 도착해도 다 도착한줄알고 결국 데이터 유실이 일어난 상태로 전송이 될것입니다. 따라서 TCP는 패킷에 1,2,3 처럼 번호를 부여해서 분실된 패킷이 있는지 확인합니다.

 

TCP의 특징

  • 연결형 서비스
    • 연결형 서비스로 가상 회선 방식을 제공합니다. 가상회선 방식이란 데이터를 패킷단위로 나누어 전송하고 모든 패킷의 경로를 일정하게 유지하는 것입니다. 따라서 패킷의 출발/도착 순서가 일정합니다 (먼저 출발한 패킷이 먼저 도착)
    • 3-way handshaking 방식으로 연결을 설정하고, 4-way handshaking 방식으로 연결을 해제합니다.
  • 흐름제어
    • 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지합니다
  • 혼잡제어
    • 네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지합니다
  • 신뢰성이 높은 전송
    • 패킷 이상을 감지하거나, 일정시간동안 수신을 못할경우 재전송을 요청합니다.
  • 전이중/점대점 방식 지원 (브로드캐스팅 지원안함)
    • 전이중(Full duplex): 전송이 양방향으로 동시에 일어날 수 있다.
    • 점대점(point to point): 각 연결이 정확히 2개의 조단점을 가지고 있다.

잠깐 3-way handshaking이 뭐에요?

신뢰성있는 데이터 전송을 위해 3번의 통신이 일어나는 과정을 뜻합니다.

3-way handshaking

  • SYN(Synchronize Sequence Number): 연결 확인을 위해 보내는 무작위 숫자값
  • ACK(Acknowledgement): SYN에 1을 더해 SYN을 잘 받았다는 값

저 그림을 간단하게 말하면 다음과 같습니다

  • Client -> Server: 야 내말 들려?
  • Server -> Client: 들려어어엌!!! 내말은 들려??
  • Client > Server: 나도 들려어어엌!!!

라고 한다음 연결이 이루어지고 데이터 전송이 이루어집니다.

 

연결을 해제할때는 4-way handshaking이라는데 뭐가 달라요?

항상 모든것의 시작은 클라이언트로 부터 시작됩니다.

모든 데이터 전송이 끝나고 이제 TCP 연결을 해제할때는 다음과 같은 과정이 일어납니다.

  • Client -> Server: 야 나 데이터 다보냈어 이제 끊을게??
  • Server -> Client: 아 그래?? 야 나도 끊을게 잠시만 준비되면 말할게
  • Server -> Client: 이제 끊는다!!
  • Client -> Server: 오케이~!!

이러한 방식으로 안전하게 연결을 종료하게됩니다


UDP(User Datagram Protocol)

TCP는 연결형 프로토콜이었죠? UDP는 비연결형 프로토콜입니다. 연결없이 어떻게 보내냐고요? 그래서 보내는 쪽에서 일방적으로 데이터를 전달하는 통신프로토콜입니다.

 

UDP의 특징

  • 비연결형 서비스
    • TCP가 가상회선 방식으로 패킷의 경로가 일정하게 유지되고, 순서가 유지되었다면 UDP는 데이터그램 방식으로 패킷을 독립적으로 각각 다른경로를 이용해서 전송합니다. 따라서 먼저 출발한 패킷이 먼저 도착한다는 보장이 없습니다.
  • 속도가 빠름
    • 흐름제어를 하지않고, 연결이나 해제과정에서 3-way, 4-way handshaking 과정이 없기때문에 상대적으로 데이터 전송이 빠릅니다.
  • 비신뢰성 데이터 전송
    • 수신자에게 답이 없어도 데이터 재전송하지 않음 
  • 브로드캐스팅, 멀티캐스팅 지원
    • 브로드캐스팅(Broadcasting): 1:N
    • 멀티캐스팅(Multicasting): N:N
    • 일대일도 지원

 


그림 요약

 

출처:
- [TCP/UDP] TCP와 UDP의 특징과 차이
- TCP 와 UDP 차이를 자세히 알아보자
- [네트워크] TCP 3-way & 4-way handshake란?
- [Network] TCP와 UDP의 특징과 차이점
728x90