TCP/UDP 특징과 차이

YANG쓰·2022년 10월 31일

컴퓨터

목록 보기
3/8

TCP(Transmission Controll Protocol)

전송을 제어하는 프로토콜. 데이터를 메세지 형태로 보내기 위해 IP와 함께 사용하는 프로토콜입니다.

연결형 서비스를 지원하고 인터넷 환경에서는 기본적으로 사용하는 방식입니다.

IP와 보통 같이 사용 합니다.

IP는 배달을 한다면 TCP는 패킷을 추적 및 관리를 합니다. 패킷을 전송을 성공하면 ACK(acknowledgment)라는 신호를 날립니다. 제 시간에 도착을 하지 않는 다면 TIMEOUT이 발생하고 패킷손실이 발생한 패킷은 재전송을 합니다.

특징

  • 연결형 서비스라 연결에 성공해야 통신이 가능합니다.
  • 데이터 경계를 구분하지 않는다.(Byte-Stream Service)
  • 데이터 전송 순서를 보장합니다.
  • 신뢰성이 있는 데이터를 전송합니다.
  • 데이터 흐름을 제어하고 혼잡제어에 용이합니다.
  • 3way handshake로 연결 설정, 4 way handshake로 해제

TCP 3way handshake

TCP장치 사이에 논리적인 접속을 성립하기 위해서 사용함.
데이터를 전송하기전에 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미함.

과정

Client ===> Server : SYN(Synchronize Sequence Numbers) 패킷을 보낸다.
SYN_SENT상태로 대기
Server ===> Client : SYN ACK(요청을 수락하겠다는 패킷)을 발송한다. 클라이언트가 다시 ACK로 응답하기를 기다린다. SYN_RECEIVED상태
Client ===> Server : ACK를 보내고 연결이 이루어지고 데이터가 오가게 된다. ESTABLESHED상태로 변경

4way handShake (DisConnection)

과정

Client ===> Server : 연결을 종료하겠다는 클라이언트가 FIN flag를 서버에 전송

Server ===> Client : 서버는 확인 메세지 전송 통신이 끝날때까지 대기 (TIME_WAIT)

Client ===> Server : 서버가 통신이 끝났다고 클라이언트에게 FIN flag 전송

Server ===> Client : 클라이언트는 확인했다고 서버에 전송

UDP(User Datgram Protocol)

비연결 지향적인 프로토콜이고 연결이 되지 않고 전송하는 방식이라 TCP보단 빠르지만 데이터 전달의 신뢰성이 굉장히 떨어진다. 패킷손실이 발생한 패킷은 재전송을 해주지 않는다는 특징이 있다.

둘의 차이점

TCP(Transfer Control Protocol)

  • 연결이 성공해야 통신 가능(연결형 프로토콜)
  • 데이터의 경계를 구분하지 않음(Byte-Stream Service)
  • 신뢰성 있는 데이터 전송(데이터의 재전송 존재)
  • 일 대 일(Unicast) 통신 일 대 일, 일 대 다(Broadcast),

UDP(User Datagram Protocol)

  • 비연결형 프로토콜(연결 없이 통신이 가능)
  • 데이터의 경계를 구분함(Datagram Service)
  • 비신뢰성 있는 데이터 전송(데이터의 재전송 없음)
  • 다 대 다(Multicast) 통신
profile
양쓰

0개의 댓글