728x90

 

 

TCP란❓

TCP(Transmission Control Protocol)는 인터넷에서 데이터안정적으로 전송하기 위해 사용되는 프로토콜(통신 규약)입니다. 네트워크 통신에서 가장 널리 사용되며, IP(Internet Protocol)와 함께 TCP/IP 스택을 구성합니다.

즉, 서버클라이언트 간에 데이터신뢰성 있게 전달하기 위해 만들어진 연결지향 프로토콜

TCP의 주요 특징

1. 연결 지향(Connection-oriented)

  • 통신을 시작하기 전에 3-way handshake 과정을 통해 송신자와 수신자 간의 연결을 설정합니다.
  • 연결이 종료될 때는 4-way handshake를 사용해 연결안전하게 종료합니다.

2. 신뢰성 있는 데이터 전송 

  • 전송된 데이터가 손실되거나 손상된 경우, 재전송 메커니즘을 통해 복구합니다.
  • 데이터를 순서대로 수신할 수 있도록 순서 제어를 수행합니다.

3. 흐름 제어(Flow Control) 

  • 송신자가 수신자의 처리 속도에 맞춰 데이터를 전송하도록 조절합니다.
  • 수신자의 윈도우 크기를 기반으로 송신량을 조정합니다.

4. 혼잡 제어(Congestion Control)

  • 네트워크 혼잡을 방지하기 위해 전송 속도를 동적으로 조절합니다.
  • 일반적으로 슬라이딩 윈도우(Sliding Window)와 같은 알고리즘을 사용합니다.

5. 바이트 기반 스트림 전송

  • 데이터를 바이트 스트림으로 간주하며, 패킷 단위로 나누어 전송한 후, 수신 측에서 다시 재조립합니다.

TCP의 동작 과정

https://www.scaler.in/what-is-tcp-3-way-handshake/

 

1. 연결 설정 (3-Way Handshake)

  • 송신자수신자는 통신 전에 세션을 설정합니다.
    1. 송신자가 SYN 패킷 전송
    2. 수신자가 SYN+ACK 응답
    3. 송신자가 ACK를 전송하며 연결 완료

2. 데이터 전송

  • 데이터를 송신자가 패킷 단위로 전송하며, 수신자는 각 패킷에 대해 ACK(응답)를 보냅니다.
  • 패킷 손실 시, 해당 패킷만 재전송됩니다.

3. 연결 종료 (4-Way Handshake)

  • 연결 종료 시, 송신자와 수신자가 서로 FIN 패킷을 교환하며 연결을 안전하게 종료합니다.

 

TCP/IP 스택이란❓

TCP/IP는 전송계층TCP네트워크 계층의 IP프로토콜을 합친 프로토콜 모음으로, TCP데이터의 정확성 확인, IP패킷목적지까지 전송하는 역할을 합니다.

 

TCP/IP에선 OSI 7 Layer을 대체하는 TCP/IP 4 Layer가 있는데, 4Layer는 다음과 같습니다.

  1. 응용 계층: HTTP, FTP, DNS 등 실제 응용 프로그램 동작
  2. 전송 계층: TCP(신뢰성) / UDP(속도) 프로토콜
  3. 인터넷 계층: IP를 통한 패킷 라우팅
  4. 네트워크 접근 계층: 이더넷, Wi-Fi 등 물리적 연결

데이터는 상위에서 하위 계층으로 캡슐화되어 전송되며, 수신 시 역캡슐화 과정을 거칩니다.

 

UDP(User Datagram Protocol)란❓

UDP(User Datagram Protocol)는 TCP와 함께 전송 계층에서 사용되는 비연결형 통신 프로토콜입니다. 속도가 빠르고 간단한 구조를 가지고 있어, 데이터 손실을 허용할 수 있는 실시간 애플리케이션에서 주로 사용됩니다.

즉, 한쪽에서 일방적으로 보내는 방식의 통신 프로토콜

 

UDP의 주요 특징

1. 비연결형 (Connectionless)

  • 데이터 전송 전에 송신자와 수신자 간에 연결 설정 과정이 없습니다.
  • 데이터를 바로 전송하며, 송신자는 수신자가 데이터를 받았는지 확인하지 않습니다.

2. 신뢰성 없음

  • 데이터 손실이나 손상 시 재전송하지 않습니다.
  • 전송 순서를 보장하지 않으며, 중복 데이터 발생 가능성이 있습니다.

3. 빠른 속도

  • 연결 설정이나 상태 관리를 하지 않기 때문에 TCP보다 속도가 빠릅니다.
  • 네트워크 대역폭이 적게 사용됩니다.

4. 데이터그램 기반

  • 데이터를 개별 데이터그램(패킷)으로 처리하며, 각 데이터그램은 독립적으로 전송됩니다.

5. 간단한 헤더 구조

  • UDP 헤더는 8바이트로 매우 간단합니다.
  • 헤더 구조
    • 소스 포트 (2바이트)
    • 목적지 포트 (2바이트)
    • 길이 (2바이트)
    • 체크섬 (2바이트)

UDP의 동작 방식

https://nordvpn.com/ko/blog/tcp-udp-comparison/

  • 송신자가 데이터를 데이터그램으로 분리하여 네트워크에 전송합니다.
  • 수신자는 데이터를 수신하고, 손실되거나 손상데이터는 복구하지 않습니다.
  • 데이터 순서를 맞추거나 오류를 처리하는 책임은 애플리케이션에 있습니다.

UDP의 장단점

장점

1. 빠른 전송 속도

  • 연결 설정이 없고, 데이터 손실에 대한 처리를 하지 않아 지연이 적습니다.

2. 오버헤드가 적음

  • 단순한 구조로 인해 네트워크 리소스 소모가 적습니다.

3. 실시간 애플리케이션에 적합

  • 지연보다 속도가 중요한 서비스에 이상적입니다.

단점

1. 신뢰성 부족

  • 데이터 손실, 중복, 순서 뒤바뀜을 보장하지 않습니다.

2. 데이터 재전송 없음

  • 데이터가 손실되면 복구할 수 없습니다.

3. 애플리케이션의 추가 작업 필요

  • 신뢰성을 애플리케이션 레벨에서 구현해야 합니다.

TCP와 UDP비교

 

특징 TCP  UDP
연결 방식 연결 지향 (3-way handshake) 비연결 지향
신뢰성 데이터 전송 보장, 재전송 기능 제공 데이터 손실 허용, 재전송 없음
속도 느림 (오버헤드 있음) 빠름 (오버헤드 적음)
오류 제어 오류 검출 및 복구 오류 검출 및 복구 없음
전송 순서 보장 순서 보장 순서 보장하지 않음
사용 사례 웹, 이메일, 파일 전송 스트리밍, VoIP, 게임