C#/네트워크

[c#][서버] TCP vs UDP

goliot 2024. 6. 7. 14:12
반응형

게임 서버에서 예시

  • 이동 패킷 ((3, 2) 좌표로 이동하고 싶다)
    • (15 3 2) 라고 패킷이 이루어 진다고 가정
    • 15, 3, 2가 모두 손실없이 서버에 전달되어야 온전히 실행될 것
  • TCP의 경우, 패킷이 100바이트 일때, 이게 온전히 전달된다는 보장이 없음
    • 서버에 혼잡이 너무 심해 일부분만 보내거나 할 수 있음(흐름제어)

TCP vs UDP

  • TCP와 UDP의 차이
    • TCP / 안전한 트럭, 전화 연결 방식
      • 연결형 서비스
        • 연결을 위해 할당되는 논리적 경로가 있음
        • 전송 순서가 보장 O
      • 신뢰성 Good, 속도 Bad
        • 분실이 일어나면 책임지고 다시 전송
        • 물건을 주고 받을 상황이 아니면 일부만 보냄(흐름, 혼잡 제어)
        • 고려할 것이 많으니 속도가 느림
    • UDP / 위험한 퀵서비스, 우편 전송 방식(순서가 뒤바뀔 수 있는)
      • 비연결형 서비스
        • 연결이라는 개념이 없다
        • 전송 순서가 보장 X
      • 신뢰성 Bad, 속도 Good
        • 분실에 대한 책임 없음
        • 일단 보내고 생각
        • 단순하여 속도가 빠름
  • 보통 MMORPG같은 안정성이 중요한 게임에서는 TCP가 주로 사용
  • 모바일 게임 같이 연결이 끊길 가능성이 있는 것들은 UDP를 사용하기도
반응형