TCP와 UDP

전송 제어 프로토콜(TCP)

메시지 형식으로 인터넷을 통해 데이터를 전송하기 위해 IP와 함께 사용되는 프로토콜입니다.

TCP의 속성

  • 연결 지향
  • 높은 신뢰성 보장(예: 파일 전송)
  • 3방향 핸드셰이크 절차를 사용하여 연결 설정, 4방향 핸드셰이크 절차를 사용하여 연결 해제
  • 흐름 제어(송신자와 수신자 사이의 데이터 처리 속도 차이를 조절) 및 혼잡 제어(네트워크에서 패킷 수가 오버플로우되는 것을 방지)
  • UDP보다 느립니다.
  • 전이중, 점대점 방식
  • 서버와 클라이언트 사이에는 일대일 연결이 있습니다.
  • 스트리밍 서비스의 단점. (분실시 재전송을 요청하세요.)

사용자 데이터그램 프로토콜(UDP)

데이터그램 단위로 데이터를 처리하는 프로토콜

UDP의 속성

  • 비접속형 서비스(데이터그램 방식 제공)
  • 정보를 교환할 때 정보를 보내거나 받는 신호 프로세스가 없습니다.
  • 최소한의 오류는 UDP 헤더의 CheckSum 필드에서 감지됩니다.
  • 신뢰도가 낮습니다.
  • TCP보다 빠릅니다.
  • IP를 기반으로 데이터를 전송합니다.
  • 1:1, 1:N, N:M 통신

TCP와 UDP의 비교

TCP와 UDP의 비교
참조 : https://cocoon1787.757

  • TCP는 양쪽에서 질의응답 형식으로 일대일로 연결된다.
  • UDP는 한쪽에서만 데이터를 단방향으로 보냅니다.

3방향 핸드셰이크

TCP 통신을 연결할 때 사용합니다.
3방향 핸드셰이크
원천 : https://velog.io/@averycode/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-TCPUDP%EC%99%80-3-Way-Handshake4- 방법 악수

  1. 클라이언트 측은 SYN 메시지를 통해 서버 측에 연결 요청을 보냅니다.
  2. 서버 측이 SYN 메시지를 받으면 성공적으로 수신되었음을 나타내는 ACK 메시지와 함께 클라이언트와 협력하기 위해 SYN 요청도 보냅니다.
  3. 클라이언트 측에서 서버 측에서 보낸 SYN 메시지를 확인한 후 성공적으로 수신되었다는 ACK 메시지를 서버 측으로 보내 연결이 성립되었음을 알 수 있습니다.

4방향 핸드셰이크

4방향 핸드셰이크
원천 : https://velog.io/@averycode/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-TCPUDP%EC%99%80-3-Way-Handshake4- 방법 악수

  1. 클라이언트 측은 서버 측에 FIN 플래그를 보내 연결을 종료합니다.
  2. 서버 측은 클라이언트 측에 승인되었음을 나타내는 ACK 플래그를 보냅니다.
  3. 서버 측은 FIN 플래그를 클라이언트 측에 전송하여 연결도 종료하고 있음을 나타냅니다.
  4. 클라이언트 측은 서버 측에 확인되었음을 나타내는 ACK 플래그를 보내고 연결이 종료됩니다.

참조
Dear developer – TCP와 UDP의 특징과 차이점
코딩 연구 저널 – TCP와 UDP의 속성 및 차이점
averycode – TCP/UDP 및 3방향 핸드셰이크 및 4방향 핸드셰이크