GiYeong

TCP/UDP 본문

CS/네트워크

TCP/UDP

gy2710 2022. 6. 22. 02:23

TCP(Transmission Control Protocol)

TCP는 전송을 제어하는 프로토콜이라는 뜻으로, 인터넷 상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜이다.

IP가 데이터의 전달을 처리한다면, TCP는 패킷을 추적 및 관리한다.

패킷(Packet)
인터넷 내에서 데이터를 보내기 위한 라우팅(경로 배정)을 효율적으로 하기 위해 데이터를 여러 조각으로 나누어 전송을 하는데, 이 조각을 패킷이라고 한다.

 

TCP는 연결형 서비스를 지원하는 프로토콜로서 인터넷 환경에서 기본으로 사용한다. 

 

TCP의 특징

  • 연결형 서비스로서 가상 회선 방식을 제공한다.
  • 3-way handshaking 과정을 통해 연결을 설정하고 4-way handshaking을 통해 연결을 해제한다.
  • 흐름 제어 및 혼잡 제어, 오류 제어
  • 높은 신뢰성을 보장한다.
  • UDP보다 속도가 느리다.
  • 전이중(Full-Duplex), Point to Point 방식

TCP가 가상 회선 방식을 제공한다는 것은 발신지와 수신지를 연결하여 패킷을 전송하기 위한 논리적 경로를 배정한다는 것이다. 

3-way handshaking 과정은 목적지와 수신지를 확실히 하여 정확한 전송을 보장하기 위해 세션을 수립하는 과정을 의미한다.

TCP가 위와같은 특징을 지니는 이유는 연결형 서비스로서 신뢰성을 보장하기 때문이다. 따라서 3-way handshaking 과정을 사용하고, 데이터의 흐름 제어나 혼잡 제어, 오류 제어와 같은 기능을 하는 것이다. 하지만 이러한 기능으로 인해 UDP보다 속도가 느릴 수 밖에 없다.

위와 같은 이유로 TCP는 연속성보다 신뢰성있는 전송이 중요할 때 사용하는 프로토콜이다. (ex. 파일 전송)

 

흐름 제어(Flow Control)
데이터를 송신하는 곳과 수신하는 곳의 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지하는 것.

혼잡 제어(Congestion Control)
네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지하는 것으로서, 정보의 소통량이 과다해지면 패킷을 조금만 전송하여 혼잡 붕괴 현상이 일어나는 것을 막는다.

 

3-way handshacking
데이터를 전송하기 전에 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정이다.

  1. 클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보내고 SYN/ACK 응답을 기다리는 SYN_SENT 상태가 된다.
  2. 서버는 SYN 요청을 받고 클라이언트에 요청을 수락한다는 ACK와 SYN flag가 설정된 패킷을 발송하고, 클라이언투가 다시 ACK으로 응답하기를 기다리며 SYN_RECEIVED 상태가 된다.
  3. 클라이언트는 서버에 ACK를 보내고, 이후부터는 연결이 이루어져 데이터가 오가게 된다. 이때 서버의 상태는 ESTABLISHED가 된다.

4-way handshacking

세션을 종료하기 위해 수행되는 절차이다.

  1. 클라이언트가 연결을 종료하겠다는 FIN flag를 전송하고 FIN-WAIT 상태가 된다.
  2. 서버는 FIN flag를 받으면 클라이언트에 ACK를 보내고 자신의 통신이 끝날때까지 기다리며 CLOSE_WAIT 상태가 된다.
  3. 서버가 연결을 종료할 준비가 되면, 클라이언트에게 FIN flag를 전송하고 LAST-ACK 상태가 된다.
  4. 클라이언트는 해지 준비 가 되었다는 ACK를 서버에 보내고 TIME-WAIT 상태가 된다.

 

UDP(User Datagram Protocol)

UDP는 사용자 데이터그램 프로토콜이라는 뜻으로, 데이터를 데이터그램(독립적인 관계를 지니는 패킷) 단위로 처리하는 프로토콜이다.

TCP와 달리 UDP는 비연결형 프로토콜로서, 연결을 위해 할당되는 논리적인 경로가 없다. 따라서 각각의 패킷은 다른 경로로 전송되고, 각각의 패킷은 독립적인 관계를 지니게된다. 따라서 데이터를 서로 다른 경로로 독립적으로 처리하게 된다.

 

UDP의 특징

  • 비연결형 서비스로서 데이터그램 방식을 제공한다.
  • 정보를 주고 받을 때, 정보를 보내거나 받는다는 신호절차를 거치지 않는다.
  • UDP  헤더의 CheckSum 필드를 통해 최소한의 오류만 검출한다.
  • 신뢰성이 낮다.
  • TCP보다 속도가 빠르다.

 

  TCP UDP
연결 방식 연결형 서비스 비연결형 서비스
패킷 교환 방식 가상 회선 방식 데이터그램 방식
전송 순서 전송 순서 보장 전송 순서 바뀔 수 있음
수신 여부 확인 수신 여부를 확인함 수신 여부를 확인하지 않음
통신 방식 1:1 통신 1:1 또는 1:N 또는 N:N 통신
신뢰성 높음 낮음
속도 느림 빠름

'CS > 네트워크' 카테고리의 다른 글

TCP/IP 4 계층  (0) 2022.06.27
OSI 7 계층  (0) 2022.06.27
REST  (0) 2022.06.25
GET / POST  (0) 2022.06.24
HTTP / HTTPS  (0) 2022.06.24
Comments