logo태영이의 공부방

TCP vs. UDP

2022년 11월 06일

TCP와 UDP

TCP와 UDP는 OSI 모형의 4번째 계층인 **전송 계층(Transport Layer)**에서 사용되는 프로토콜로 데이터를 보내기 위해 사용한다.

TCP, UDP 미리보기

🗣️ 데이터를 누락 없이, 확실히 주고 받고 싶어! — TCP

🗣️ 다 필요 없고 데이터 전송 속도가 중요해! — UDP

용어 정리

TCP와 UDP에 대해 알아보기 전에 용어를 먼저 정리해보자. 모르는 용어가 너무 많았다..

💡 연결 지향형 프로토콜

: 클라이언트와 서버가 연결된 상태에서 데이터를 주고 받는 프로토콜

💡 비연결형 프로토콜

: 전송 전에 미리 연결을 설정하지 않고 발신자가 일방적으로 데이터를 전달하는 프로토콜

💡 흐름 제어

: 송신과 수신의 데이터 처리 속도 차이를 조절해주는 것

💡 혼잡 제어

: 네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지하는 것

💡 패킷

: 인터넷 내에서 데이터를 주고받을 때 라우팅을 효율적으로 하기 위해 나눈 데이터 조각

💡 전이중 전송방식 Full Duplex

: 데이터를 항상 양방향으로 동시에 전송 가능

💡 점대점 방식 Point to Point

: 양 노드 또는 네트워크가 1 : 1로 연결된 구조

Transmission Control Protocol, TCP

TCP(전송 제어 프로토콜)는 연결 지향형 프로토콜로 신뢰성을 보장한다. 일반적으로 IP와 함께 사용되며 IP는 데이터 전송의 처리를, TCP는 패킷 추적 및 관리를 담당한다.

특징

  • 전송되는 데이터의 신뢰성 보장 (흐름 제어, 혼잡 제어, 오류 제어)
  • 가상 회선을 만들어 신뢰성을 보장
  • 데이터의 전송 순서를 보장 (각 바이트마다 번호 부여)
  • 데이터의 경계를 구분하지 않음 (Byte Stream 서비스)
  • 전이중 (Full Duplex), Point to Point 서비스
  • 1 : 1 통신만 가능
  • UDP 보다 상대적으로 데이터 전송 속도가 느림

사용

  • 서버 연결
  • 이메일 전송
  • 파일 전송

작동

1. 연결 생성 (3-way handshaking 사용)

SYN : 클라이언트가 서버에게 SYN 메시지 전송

SYN-ACK : 서버가 클라이언트에게 SYN-ACK 메시지로 응답

ACK : 클라이언트가 서버에게 ACK 메시지 전송

정해진 시간이 지났거나 중복 ACK가 도착하면 재전송 시도

2. 자료 전송

3. 연결 종료 (4-way handshaking 사용)

TCP 세그먼트 구조

IP Datagram 안에 TCP 세그먼트가 캡슐화 되어있다. 세그먼트는 헤더데이터 섹션으로 구성되며 헤더는 10개의 필수 필드 및 옵션 확장 필드들을 포함한다. 몇 개만 알아보자.

Checksum

: 헤더 및 데이터의 에러 확인

Sequence number

: 순서 번호로 순서가 어긋나지 않도록 함

Acknowledgement number

: 확인 응답 번호로 실제 수신 여부 확인 및 그 다음 순서를 지시, 데이터에 대한 응답 포함 X

User Datagram Protocol, UDP

UDP(사용자 데이터그램 프로토콜)은 비연결형 프로토콜로 데이터를 데이터그램 단위로 처리한다. TCP보다 빠른 전송이 가능하지만 데이터 전달의 신뢰성은 떨어진다.

특징

  • 신뢰성 없는 데이터 전송 (데이터 재전송과 데이터 순서 유지를 위한 작업을 하지 않음)
  • 연결 없이 통신 가능
  • 패킷 오버헤드가 적어 네트워크 부하 감소
  • 데이터의 경계 구분 (Datagram 서비스)
  • 패킷 관리 필요
  • Checksum 필드로 최소한의 오류만 검출
  • TCP 보다 상대적으로 데이터 전송 속도가 빠름

사용

  • 주로 실시간 서비스
  • 도메인 이름 서비스 DNS
  • 음성 인터넷 프로토콜 VoIP
  • 온라인 게임

작동

TCP vs. UDP

-TCPUDP
연결 방식연결형 서비스비연결형 서비스
패킷 교환 방식가상 회선 방식 (데이터 경계 구분 X)데이터그램 방식 (데이터 경계 구분 O)
전송 순서 보장OX
수신 여부 확인OX
통신 방식일대일 통신일대일, 일대다, 다대다(Multicast) 통신
신뢰성높음 (데이터 재전송 O)낮음 (데이터 재전송 X)
속도느림빠름

💡

이 게시물은 coding-factory.tistory.com, mangkyu.tistory.com 사이트를 참고하였습니다.