프로그래밍/C++ 서버
TCP vs UDP
오늘의논리
2024. 5. 20. 08:10
728x90
TCP와 UDP는 모두 전송 계층에서 데이터를 보내기 위해 사용되는 프로토콜이다. 이 둘의 주요 차이점은아래와같다.
- TCP (Transmission Control Protocol): 신뢰성 Good, 속도 Bad
- 연결 지향적 프로토콜
- 데이터 전송 전에 통신할 두 단말이 연결을 설정하고 데이터 전송이 끝난 후 연결을 해제하는 과정을 거침.
- 데이터의 순서 보장, 오류 검출 및 수정 기능을 제공.
- 높은 신뢰성을 보장하며, 손실된 패킷이 있으면 이를 다시 보냄.
- 연결 설정과 해제를 위한 추가적인 오버헤드가 있어 속도가 느림.
- 웹 브라우징, 파일 전송, 원격 로그인 등에 사용됨.
- UDP (User Datagram Protocol): 신뢰성 Bad, 속도 Good
- 비연결 지향적 프로토콜.
- 연결 설정 없이 데이터를 바로 전송할 수 있음.
- 데이터의 순서 보장이나 오류 검출 및 수정 기능은 제공하지 않음.
- 빠른 전송이 가능하며, 연속성보다는 신뢰성이 중요한 서비스에 적합.
- 스트리밍 미디어, 도메인 이름 시스템 (DNS), 음성 통화 등에 사용됨.
- 경계(Boundary)의 개념이 있음.
이때 경계에 대해서 얘기를 조금 하면
TCP는 경계의 개념이 없어 HI와 HELLO를 보냈다고 했을 때 순서는 보장되지만 HLLO, EI 이런식으로 보내질 수 있음.
UDP는 경계의 개념이 있어 HI, HELLO를 보내면 순서가 뒤바뀔 수 있지만 HELLO, HI 이렇게 올 수 있음.
게임마다 다르겠지만 MMORPG의 경우 TCP를 많이 씀.
728x90