2010-02-22 3 views
0

클라이언트가 응용 프로그램을 통해 서버에 많은 데이터 그램을 보내는 것으로 가정하십시오. 서버 측의 응용 프로그램이 작동을 멈추고 데이터 그램을 수신 할 수 없지만 클라이언트가 여전히 UDP 프로토콜을 통해 더 많은 데이터 그램을 서버에 보내면 그 데이터 그램은 어디로 이동합니까?클라이언트가 UDP 포트를 수신하지 않는 경우 데이터 그램은 어디에 있습니까?

클라이언트가 인터넷을 통해 1000 개의 데이터 그램 (각각 1K)을 PC에 보내면 1000 개의 데이터 그램이 이동한다는 것을 알고 싶기 때문에이 질문을합니다. 아무도 그 데이터를 듣지 않아도 (대역폭을 소비하는) 인터넷을 통해?

대답이 '예'인 경우 어떻게해야합니까? 서버가 작동을 멈 추면 UDP를 사용하여 사실을 알게되고 추가 전송이 중단됩니다.

감사

답변

1

나는 클라이언트가 인터넷을 통해 PC에 1,000 그램 (1K 각)를 보내는 경우 알고 싶어요 때문에 그 천 개 그램이 인터넷을 통해 갈 것이다,이 질문을 (대역폭을 소모) 아무도 그 데이터를 듣지 않더라도? 예

을 마친 경우

는, 어떻게 이런 일을 중지해야합니까? 서버가 작동을 멈 추면 UDP를 사용하여 사실을 알게되고 추가 전송이 중단됩니다.

프로토콜 수준 제어 루프가 필요합니다. 즉,이 상황을 처리하기 위해 프로토콜을 구현해야합니다. UDP는 연결 지향이 아니므로이 오류 모드를 설명하기 위해 UDP를 사용하는 것은 "응용 프로그램"에 달려 있습니다.

+0

답장을 보내 주셔서 감사합니다. 그래서 서버가 인터넷을 사용하지 않고 인터넷에 연결되어 있고 udpclient를 사용하여 100MB 데이터를 보내면 서버의 OS가 여전히이를 수신하게됩니까? 그리고 나는 여전히 100MB의 데이터를 서버에 소비 할 것인가? – Jack

+0

네가 그 사이에있는 것을 제외하고 뭔가를 제외하면 네. 그것은 서비스 거부를 생성하는 한 가지 방법입니다 ... – jldupont

+0

감사. 그래서 실제로 어떤 서버에 100MB의 UDP 데이터를 보내면 해당 서버의 OS가 전송을 탐지하고 서버에 아무도 수신하지 않으면 DoS가 생성됩니까? – Jack

0

UDP 자체는 클라이언트가 메시지를 성공적으로 수신했는지 여부를 판단 할 수있는 기능을 제공하지 않습니다. UDP를 통해 데이터를 보낸 후에 안정적인 연결을 설정하려면 TCP가 필요합니다.

0

가장 낮은 오버 헤드 솔루션은 제안 된 jdupont와 같은 연결 유지 형입니다. 이 기능을 제공하는 tcp를 사용하도록 변경할 수도 있습니다.

관련 문제