본문 바로가기
네트워크

TCP vs UDP

by 책 읽는 개발자_테드 2022. 1. 23.
반응형

목차

· Transpost Layer

· TCP(Transfer Control Protocol)

   - 세그먼트

   - TCP Header 

   - TCP의 3-way handshake 절차(Connection 연결) 

   - TCP의 4 way-hansdsake 절차(Connection close) 

   - TCP의 문제점 

· UDP(User Datagram Protocol) 

  - User Datagram 

  - UDP Header 

  - UDP의 데이터 전송 방식 

· TCP, UDP를 공부하는 이유

· TCP vs UDP: 요약


Transpost Layer

· End Point간 신뢰성있는 데이터 전송을 담당하는 계층이다.

- 신뢰성: 데이터의 순차적, 안정적인 전달

- 전송: 포트 번호에 해당하는 프로세스에 데이터를 전달

· TCP와 UDP는 OSI 7 계층 중 전송 계층(Transport Layer)에 속하는 프로토콜이다. 

- 두 프로코톨을서로 다른 특성을 가지고 있기 때문에, 이것을 잘 이해해야 상황에 따라 적절한 프로토콜을 사용할 수 있다.

 

 TCP(Transfer Control Protocol)

· 신뢰성있는 데이터 통신을 가능하게 해주는 프로토콜

· Connection(3 way-handshake) - 양방향 통신

· 데이터의 순차 전송 보장

· Flow Control (흐름 제어)

· Congestion Control (혼잡 제어)

· Error Detection (오류 감지)

 

세그먼트

· TCP의 PDU(Protocol Data Unit,  데이터의 전송 단위)

· 데이터가 전송될때, TCP 프로토콜 내부적으로 데이터를 자른 후 TCP 헤더를 추가한다. 이것을 세그먼트라 한다.

 

TCP Header

· 포트 번호: 특정 네트워크 서비스 또는 프로세스를 식별하는 논리 단위로 사용

· Sequence number: 순차 전송 보장

· 9개의 flag 필드 : TCP 연결 제어 및 데이터 관리

 

TCP의 3-way handshake 절차(Connection 연결)

https://mindnet.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-22%ED%8E%B8-TCP-3-WayHandshake-4-WayHandshake

1. SYN(신) 비트를 1로 선정해 패킷 송신

2. SYN, ACK(애크)비트를 1로 설정해 패킷 송신

3. ACK 비트를 1로 설정해 패킷 송신

 

TCP 데이터 전송 절차

1. Client가 패킷 송신

2. Server에서 ACK 송신

3. ACK를 수신하지 못하면 재전송

 

TCP의 4 way-hansdsake 절차(Connection close)

https://mindnet.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-22%ED%8E%B8-TCP-3-WayHandshake-4-WayHandshake

1. 데이터를 전부 송신한 Client가 FIN을 1로 설정하고, 송신

2. Server가 ACK를 1로 설정하고, 송신

3-1. Server에서 남은 패킷 송신 (일정 시간 대기)

3-2. Server가 FIN을 1로 설정하고, 송신

4. Client가 ACK를 1로 설정하고, 송신

 

TCP의 문제점

· 매번 Connection을 연결해서 시간 손실 발생 (3 way-handshake)

· 서비스에 지장이 없을 만큼 패킷을 조금만 손실해도(예: 이미지의 아주 작은 부분) 재전송 

 

UDP(User Datagram Protocol)

· TCP보다 신뢰성이 떨어지지만 전송 속도가 일반적으로 빠른 프로토콜

· 순차 전송 x, 흐름 제어 x, 혼잡 제어 x 

· Connectionless

·비교적 데이터의 신뢰성이 중요하지 않을 때 사용 ex) 영상 스트리밍

 

User Datagram

· User의 PDU(Protocol Data Unit,  데이터의 전송 단위)

   - TCP와 다르게 데이터를 나누지 않으므로, 유저 어플리케이션 부분에서 직접 나누어야 한다.

 

UDP Header

https://ko.wikipedia.org/wiki/사용자_데이터그램_프로토콜

 

UDP의 데이터 전송 방식

https://www.cloudflare.com/ko-kr/learning/ddos/glossary/user-datagram-protocol-udp/

1. Client가 패킷 송신

- 오류 검출이 없으므로 데이터가 오지 않을 수도 있다.

 

TCP, UDP를 공부하는 이유 

· TCP, UDP의 특성을 파악하고 상황에 따라 적절한 프로토콜을 사용할 수 있다.

· TCP, UDP 헤더에 대해 파악하고 성능 개선에 이용할 수 있다.

 

TCP vs UDP: 요약

  TCP UDP
연결 방식 연결성 서비스 비연결형 서비스
패킷 교환 가상 회선 방식 데이터그램 방식
전송 순서 보장 보장함 보장하지 않음
신뢰성 높음 낮음
전송 속도 느림 빠름

 

출처

우아한 테크 https://www.youtube.com/watch?v=ikDVGYp5dhg

반응형

댓글