2013-03-09 3 views
0

예를 들어, 30이나 10과 같이 쿼리 할 때 작은 수를 반환하지만 어떤 경우라도 최대 5 개 정도의 요청을 처리해야하는 서비스의 경우 TCP 또는 UDP가 더 나은 프로토콜 ? 나는 UDP에 기대고 있지만, 몇 가지 전문가 의견을 원했습니다. 비교적 빠른 응답 시간도 찾고 있습니다. 이런 서비스에 대해 각각의 장점이 무엇인지 말해 줄 수 있습니까? 감사.간단한 서비스를위한 TCP 또는 UDP

+2

UDP를 필요로하지 않는다면 TCP를 선택하십시오. 처리하기가 더 쉽습니다. – Joe

답변

3

TCP는 안정적인 연결 기반 프로토콜입니다. 따라서 데이터를 보내고 받았다는 보장을받습니다. 다른 쪽에서 수신 확인을받지 못하면 패킷이 자동으로 다시 전송됩니다. 그러나 연결을 설정하기 위해 3 방향 핸드 셰이크의 오버 헤드가 있습니다.

TCP는 일회성 정보 교환 (HTTP 요청 및 응답)이있는 HTTP와 같은 프로토콜에 사용됩니다.


UDP는 신뢰할 수없는 연결없는 프로토콜입니다. 따라서 패킷을 보내고받을 수는 있지만 상대방이 메시지를 받았는지 확인하는 방법은 없습니다 (자동, OS 스택 제공). 당신이 신경 쓰는다면, 당신은 스스로 어떤 종류의 ACK를 구현해야만합니다.

UDP는보다 지속적인 "스트리밍"유형의 프로토콜에 자주 사용됩니다. 예를 들어, 많은 온라인 멀티 플레이어 게임은 UDP를 사용하여 호스트와 게임 정보를 교환합니다. 그들은 정기적이고 주기적으로이를 수행합니다. 따라서 패킷이 손실되는 경우 큰 업데이트가 아닙니다. 다른 업데이트가 곧있을 것이기 때문입니다. 게임 플레이가 재발행 될 때까지 기다리지 않으면 게임 플레이가 훨씬 더 어려워 질 것입니다.

DNS는 UDP를 통해 구현됩니다.


궁극적으로 선택 사항은 귀하의 것입니다. 대부분의 경우 TCP로 기본 설정하고 설명 된 시나리오에서만 UDP를 사용합니다.

+0

좋은 소리가납니다. TCP가 가야 할 것 같지만 서버가 동일한 포트를 통해 여러 개의 연결을 유지할 수 있습니까? 한 번에 두 개 이상의 요청을 처리 할 수 ​​있기 때문에 – Iowa15

+0

저는 직접 대답 해 드리겠습니다. 힌트 : 다른 사람과 동시에 웹 사이트를 방문한 적이 있습니까? –

+2

+1 : TCP는 거의 항상 ** 올바른 대답입니다. 예외는 거의 없지만 UDP는 사용자가 원하는 것을 거의 제공하지 않습니다. –

관련 문제