본문 바로가기
CS 지식/네트워크

[네트워크] TCP & UDP

by CSEGR 2024. 9. 1.
728x90
전송 계층(Transport Layer)은 송신자와 수신자를 연결하는 통신 서비스를 제공하는 계층으로, 데이터를 전달하는 역할을 한다. 이 계층에서는 IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 수행한다. 전송 계층에서 데이터를 전달하기 위해 사용하는 프로토콜이 있는데, 그 프로토콜들에는 TCP와 UDP가 있다. 

 

 

✔️ TCP (Transmission Control Protocol, 전송 제어 프로토콜)

TCP(Transmission Control Protocol) 란, 인터넷을 통해 디바이스에서 웹 서버로 데이터를 전송하는 연결 지향형 네트워크 프로토콜이다. 장치들 사이에 논리적인 접속을 성립하기 위해 연결을 설정하여 신뢰성을 보장하는 연결형 서비스이다. TCP프로토콜을 이용하면 네트워크에 연결된 컴퓨터에서 실행되는 프로그램 간에 패킷을 안정적으로 순서대로 에러 없이 교환할 수 있다. 

 

   ➕ TCP 의 특징

  • 연결 지향 방식으로 패킷을 교환한다. 
  • 3-way handshaking 과정을 통해 연결을 설정하고, 4-way handshaking을 통해 연결을 해제한다. 
  • 신뢰성이 높다. 
    • 송신 측에서 보낸 패캣을 수신 측에서 받지 못 하면 재전송한다. 
    • Tirple-Duplicate-ACK-based Retransmission : 송신 측에서 동일한 ACK을 3개 이상 받았을 경우 해당 패킷은 손실됐다고 판단해 재전송을 요청한다. 
    • Timeout-based Retransmission : 송신자는 일정 시간동안 수신자로부터 ACK를 받지 못하면 손실 됐다고 판단해 재전송을 요청한다. 
  • 흐름 제어 
    • : 송신자의 데이터 전송 속도를 조절하여 수신자의 버퍼 오버플로우를 방지하는 기법이다. 
    • 예시로는 Stop and Wait, 슬라이딩 윈도우가 있다. 
  • 혼잡 제어 
    • : 네트워크 내의 패킷 수가 넘쳐 네트워크를 혼잡해지는 것을 방지하는 기법이다. 
    • 예시로는 AIMD, slow start, fast retransmit 등이 있다. 
  • 단점
    • 데이터로 보내기 전에 반드시 연결이 형성되어야 한다. 
    • 1:1 통신만 가능하다. 
    • 상대적으로 UDP보다 데이터 전송 속도가 느리다. 
  • 주요 TCP 제어 비트(Flag Bit) 
종류 내용
ACK 상대방으로부터 패킷을 받았다는 걸 알려주는 패킷, 클라이언트가 보낸 최초의 SYN 패킷 이후에 전송되는 모든 패킷은 이 플래그가 설정되어야 한다. 
SYN TCP 연결을 요청하는 패킷
FIN TCP 연결을 종료 요청하는 패킷

 

✔️ UDP (User Datagram Protocol)

UDP(User Datagram Protocol)은 인터넷을 통해 디바이스에서 웹 서버로 데이터를 전송하는 비연결 지향형 네트워크 프로토콜이다. 연결을 위해 할당되는 논리적인 경로 없이, 각각의 패킷은 다른 경로로 전송되어 독립적인 관계를 지니게 된다. 이렇게 데이터를 서로 다른 경로로, 독립적인 처리하는 프로토콜을 UDP 라고 한다. 

 

  ➕ UDP 의 특징

  • 비연결형 서비스로 연결 없이 통신이 가능하며 데이터그램 방식을 제공한다. 
  • 신뢰성 없는 데이터를 전송한다. 
  • 데이터를 주고 받을 때, 데이터를 보내거나 받는다는 신호(TCP의 경우, ACK/SYN 등)가 필요없다. 
  • 패킷 관리가 필요하다.
  • 상대적으로 TCP 보다 전송 속도가 빠르다. 
  • 단점
    • 데이터의 신뢰성이 없다. 
    • TCP와는 다르게 데이터를 쪼개 주지 않아 애플리케이션 단에서 패킷을 쪼개야한다. 

출처 : https://gyoogle.dev/blog/computer-science/network

  • Source port : 출발지 포트 
  • Destination port : 도착지 포트
  • Length : 패킷 길이
  • Checksum : 오류 검출 

 

✔️ TCP    VS    UDP 

  ➕ 공통점

  • 포트 번호를 이용하여 주소를 지정한다. 
  • 데이터 오류 검사를 위한 체크섬이 존재한다.

  ➕ 차이점

  TCP UDP
연결 방식 연결  비연결
패킷 교환 방식 가상 회선 방식 데이터그램 방식
전송 순서 전송 순서 보장 전송 순서 바뀔 수 있음
수신 여부 확인  수신 여부 확인함(ACK) 수신 여부 확인하지 않음
통신 방식 1:1 통신만 가능 1:1 / 1:N / N:N 통신 모두 가능
신뢰성 높음  낮음 
속도 상대적으로 느림 상대적으로 빠름

 

 

 

https://gyoogle.dev/blog/computer-science/network/UDP.html

https://steady-coding.tistory.com/516

728x90