CS

[CS] TCP/UDP

programmer-faust 2025. 9. 3. 11:55
  • 순서
    1. TCP란?
    2. TCP의 특징
    3. TCP의 장단점
    4. UDP란?
    5. UDP의 특징
    6. UDP의 장단
    7. TCP와 UDP의 차이
    8. IP
    9. ICMP 프로토콜
    10. ARP 프로토콜
    11. ACK
    12. UE에서의 UDP
  • TCP란?
    1. 서버와 클라이언트간에 데이터를 신뢰성 있게 전달할 수 있도록 하는 프로토콜
    2. 두 호스트 간의 연결을 설정하고, 데이터 패킷이 손실 없이 올바른 순서대로 전달되도록 보장하며, 네트워크의 혼잡을 제어하는 등 다양한 기능을 수행하여 인터넷 통신의 핵심적인 역할을 함
  • TCP의 특징
    1. 연결지향: 통신을 시작하기 전에 3-way handshake를 통해 연결을 수립
    2. 신뢰성 보장: 전송한 데이터가 도착했는지 확인, 손실된 패킷 재전송, 순서 보장
    3. 순서 보장: 데이터가 바이트 스트림으로 전달됨, 패킷 단위가 아닌 연속된 데이터 흐름으로 처리됨
    4. 흐름 제어: 송신 속도를 조절하여 수신 버퍼가 오버플로우되는 것을 방지함
    5. 혼잡 제어: 네트워크 혼잡 시 송신 속도 감소
    6. 사용 예
      • 웹 브라우징, 이메일, 파일 전송, 데이터베이스 통
  • TCP의 장단점
    1. 장점
      • 데이터 손실, 순서 뒤바뀜, 중복 등 문제 해결 > 신뢰성 높음
      • 스트림 기반으로 대용량 데이터 전송에 적합
    2. 단점
      • 연결 설정 과정 필요 > 초기 지연 발생
      • 헤더가 크고 관리해야 할 정보가 많음 > 오버헤드 증가
      • 실시간 전송보다는 신뢰성 위주 > 속도 느릴 수 있음
  •  UDP란?
    1. 인터넷 통신에서 데이터를 빠르고 효율적으로 전송하기 위한 프로토콜 신뢰성보다 연속성이 있는 전송이 중요할 때 사용
    2. 데이터가 전송되기 전에 연결을 설정하지 않아 속도가 빠르지만, TCP와 달리 데이텅의 순서나 도착 여부를 보장하지 않음.
  • UDP의 특징
    1. 비연결: 연결 수립 없이 데이터를 바로 전송
    2. 비신뢰성: 전송 확인, 재전송, 순서 보장 없음
    3. 메시지 기반: 데이터그램 단위로 전송하며, 한 번 보낸 패킷이 손실될 수 있음
    4. 헤더 간단: TCP보다 오버헤드가 적음 > 빠른 전송 가능
    5. 사용 예
      • 실시간 스트리밍, 온라인 게임, DNS 질의, 방송/멀티캐스트
  • UDP의 장단점
    1. 장점
      • 속도가 빠르며 오버헤드가 적음
      • 간단하고 실시간 전송에 적합함
    2. 단점
      • 패킷 손실, 순서 뒤바뀜, 중복 발생 가능 > 신뢰성 없음
      • 응용 프로그램에서 직접 오류 처리 필요함
  • TCP와 UDP의 차이
특징 TCP UDP
연결 여부 연결 지향 비연결
신뢰성 있음(재전송, 순서 보장) 없음
전송 방식 스트림 기반 메시지(데이터그램) 기반
속도 상대적으로 느림 빠름
헤더 크기 20바이트 이상 8바이트
흐름 제어/혼잡 제어 있음 없음
사용 예 HTTP, FTP, SMTP, 이메일 DNS, VoIP, 게임, 스트리밍
  • IP
    1. IP란 Internet Protocol 즉 인터넷 규약을 의미함. OSI의 3계층인 네트워크 계층에 해당함
    2. 인터넷 상의 호스트를 식별하고, 데이터가 담긴 패킷의 목적지 주소를 지정하며, 네트워크 내에서 데이터의 경로를 찾는 라우팅을 담당함.
    3. 호스트 간 라우팅/포워딩과 주소 지정을 담당하여 최선형, 비연결성, 무상태를 전달
  • ICMP 프로토콜
    1. ICMP는 Internet Control Message Protocol의 약자로 인터넷 제어 메시지 프로토콜임.
    2. TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알리거나, 진단 등과 같이 IP 계층에서 필요한 기타 기능들을 수행하기 위한 프로토콜
    3. IP와 하나의 쌍을 이루며 동작함
    4. IP 상위 계층의 프로토콜처럼 행동하나 IP계층의 일부이며 IP 데이터그램의 데이터 부분에 포함되어 전달됨
  •  ARP
    1. 주소결정 프로토콜로 IP 주소를 물리적 네트워크 주소(MAC)로 대응시키기 위해 사용되는 네트워크 계층 프로토콜임.
  •  ACK
    1. 통신 과정에서 데이터가 성공적으로 수신되었음을 확인하고 응답하는 신호 또는 메시지를 의미함
    2. 패킷의 수신 여부를 확인하여 데이터의 신뢰성을 높이는 역할을 함
    3. 신뢰성이 있는 TCP에는 존재하나 UDP 자체에는 ACK가 없음. 하지만 필요하다면 애플리케이션 레벨에서 구현할 수 있음.
  • UE에서의 UDP
    1. UE에서는 기본적으로 UDP 통신이 사용되는데 Reliable을 사용하면 작동 방식이 어떻게 이루어 질까?
      • RPC에서 Reliable옵션을 사용하게 되면 데이터가 손실되지 않고 순서대로 수신될 때까지 재전송을 시도하고 패킷을 정렬하는 매커니즘을 통해 UDP 위에서 TCP와 유사한 신뢰성을 보장함
      • 패킷 분할 및 시퀀스 번호 할당: RPC 호출로 여러개의 패킷으로 분할되어 각 패킷에 고유한 시퀀스 번호가 부여됨
      • 수신 확인: 패킷을 성공적으로 받았음을 ACK를 통해 확인함
      • 재전송: 응답을 받지 못했다면 패킷 재전송을 통해 반드시 도달하도록 함
      • 패킷 정렬: 데이터를 수신한 쪽에서 패킷의 시퀀스 번호를 확인하여, 순서와 누락을 파악하고 재정렬 후 최종 호출함
      • 채널 관리: UDP 트랜스포트 계층 위에 구축된 언리얼 엔진의 네트워크 채널 시스템 내에서 관리되며, NetConnection이 이 패킷 처리의 핵심 역할을 함

'CS' 카테고리의 다른 글

[CS] RVO  (0) 2025.09.05
[CS]뮤텍스와 세마포어  (3) 2025.08.28
[CS]리틀 엔디안과 빅 엔디안  (1) 2025.08.28
[CS]스택 오버 플로우  (2) 2025.08.28
[CS]busy-waiting  (3) 2025.08.28