문제

인터넷에 공개 서비스를 제공하는 경우가있는 경우가 있으며 서버가 필요할 때 일반 홈 네트워크에 앉아있는 특별한 설계 내장 장치에 연락 할 수있는 기능을 원합니다.

장치는 서버를 업데이트 등을 확보 할 수 있지만 1) 서버가 무언가를 할 때와 업데이트를위한 장치 설문 조사 사이에 지연이있을 것입니다. 2) 많은 쓸모없는 트래픽 (시간이 지남에 따라)이 생성됩니다.

누구 든지이 작업을 수행하는 방법에 대한 제안이 있습니까? 내 초기는 임베디드 장치가 UPNP를 사용하여 홈 라우터에서 포트 포워드 규칙을 생성 한 다음 해당 포트를 서버에 등록하도록하는 것입니다. 그런 다음 서버는 해당 주소에 대한 HTTP 요청을 생성 할 수 있으므로 (HTTP가 방화벽 등에 의해 차단되지 않고 라우팅 될 수 있도록). 장치가 전진 규칙을 만들 수 없으면 폴링 방법으로 다시 리소스됩니다.

이것은 맞습니까? 누구든지 이런 종류의 일과 공유 할 수있는 경험이 있습니까? (클라이언트는 내장 된 Linux, Server .NET에서 C ++입니다).

도움이 되었습니까?

해결책

많이 사용될 것이라고 생각하는 장치 / 네트워크 수와 소프트웨어 / 구성을 통해 어떤 컨트롤이 있는지에 달려 있습니다.

UPNP에 대해 이야기하기 때문에 클라이언트 네트워크가 많이있을 것임을 의미합니다. 라우터 구성 / 하드웨어를 제어하지 않으면 UPNP 솔루션을 안정적으로 작동시키는 데 많은 문제가 있습니다.

또한, 당신은 포트 포워드를 언급하면서 내장 된 장치에 실제 IP 주소가 없음을 시사합니다.

당신은 당신이 HTTP를 사용하여 차단되는 것을 피하려고한다고 말하지만 대부분의 방화벽/라우터 등은 그다지 스마트하지 않습니다. 차단은 순전히 포트 번호에서 수행됩니다. NAT 라우터 뒤에 여러 장치가있는 경우 HTTP 컨텐츠를 기반으로 컨트롤러를 구현하지 않는 한 비표준 포트를 사용하여 장치를 해결해야합니다.

내가 볼 수있는 유일한 실용적인 솔루션은 임베디드 장치가 서버에 연결되어 이벤트가 발생할 때까지 기다리는 것입니다.

씨.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top