본문 바로가기

프로그래밍/네트워크 프로그래밍

[네트워크] UDP, TCP 란?

 

UDP(User Datagram Protocol) 정의

UDP는 User Datagram Protocol로 TCP와 함께 OSI 모델 4계층인 전송 계층에 포함되는 프로토콜이다.

IP를 사용하는 네트워크 내에서 컴퓨터간 메시지들이 교환될 때 제한된 서비스만 제공하는 프로토콜이다.

TCP와 마찬가지로 데이터그램이라는 데이터 단위를 받기 위해 IP를 사용한다. 그러나 차이점이 있다면

TCP와 달리 메시지를 데이터그램으로 나누고, 반대편에서 재조립, 순서 조정 등의 서비스는 하지 않는다.

UDP는 IP 계층에서 제공하지 않는 서비스도 제공하는데, IP내 사용자 구분을 위한 포트 번호 부여

데이터 손상 여부 확인에 쓰이는 체크섬 서비스다.

 

* 데이터그램(Datagram) 

데이터그램은 송수신 컴퓨터 그리고 전송 네트워크 사이에, 이전의 데이터 교환과 관계없이 송신지로부터 

수신지 컴퓨터로 전송(비연결성)되는 충분한 정보를 갖는 독립적인 데이터 실체이다. 대게 패킷이라는 용어로 교체되어 쓰인다.

 

 

UDP 특징

1. UDP는 TCP와 달리 데이터 전송 시 절차를 거치지 않는다. - 비연결성, 전송 방식 단순

2. UDP는 데이터 전송 시 제대로 주고받았는지 확인하지 않고 일방적으로 통신한다. - 신뢰성과 안정성 떨어짐

3. IP 계층과 다른 점은 포트 번호와 데이터 손상 여부를 확인하기 위한 체크섬 기능이다.

 

 

TCP

TCP는 Transmission Control Protocol로 UDP와 함께 OSI 모델 4계층인 전송 계층에 포함되는 프로토콜이다.

TCP는 네트워크상의 컴퓨터들 사이에서 데이터를 메시지 형태로 보내기 위해 IP와 함께 사용되는 프로토콜이다. 

이때 IP는 실제로 데이터를 전송하고 TCP는 데이터 패킷을 추적 관리한다.

 

예를 들어 데이터 송신시 TCP는 데이터를 여러 개의 패킷으로 나누고 번호를 붙인 다음 IP 계층으로 보낸다.

수신받는 다른 한쪽의 TCP는 이 패킷을 재조립하고 사용자에게 하나의 완전한 파일로 보낼 수 있을 때까지 기다린다.

 

TCP는 메시지가 교환되는 시간 동안 연결을 확립하고 유지한다.(연결지향성)

 

 

TCP 연결 절차

1) 서버는 bind() - listen() 진행하고 클라이언트로부터 연결 요청을 대기한다.

2) 클라이언트는 서버로부터 연결 요청을 한다.

3) 서버는 클라이언트로부터 연결 요청을 판단하고 승인한다.

4) 연결이 성립되며 서로 데이터 송수신을 한다.

 

TCP 특징

1. TCP는 데이터 전송 시 연결 절차 과정이 필요하다. - 연결성, 전송 방식 존재

2. TCP는 손상되거나, 중복되거나, 순서가 틀어져서 전달되는 데이터를 복구하며 재전송한다. - 신뢰성과 안정성 높음

3. TCP는 송신자가 보낸 데이터의 양을 제어하는 흐름 제어 기능이 가능하다. 

 

 

UDP와 TCP의 차이점

UDP와 TCP 간 차이점이지만 서로의 특성 및 장점이다.

 

UDP : 데이터 전송 절차가 없어(비연결성) 간단하고, 일방적으로 데이터를 주고받기 때문에 신뢰성과 안정성은

        떨어지지만 처리 속도가 빠른 프로토콜이다.

 

TCP : 데이터 전송 절차가 존재하며(연결 지향성), 데이터 전송 과정에서 발생하는 손실, 중복, 순서 틀어짐 등을 확인하고

       재조합 및 재전송한다. 그로 인해 처리 속도는 UDP에 비해 느리지만 신뢰성과 안정성이 높은 프로토콜이다. 

 

 

참고

https://musclebear.tistory.com/11?category=773007

 

UDP(User Datagram Protocol)란? (기본 개념과 설명)

UDP (User Datagram Protocol)란? UDP는 비연결형, 신뢰성 없는 전송 프로토콜이라고 한다. UDP는 Host - Host, Process - Process 통신을 제공하는것 이외에는 IP 서비스에 추가하는 것이 아무 것도 없다. 그리고..

musclebear.tistory.com