Mar 24

Push vs pull?

My understanding of Ethernet is still pretty hazy, but I did learn that a TCP packet is 20-50 bytes (typ closer to 20). So a “got data?” query, and a “no” ack, could be a total of about 50 bytes. This reduces my initial rough bw calcs by more than order of magnitude.

I have been trying to think of a simple, unversal mechanism for async data push from a driver to a device, but can’t so far find anything as simple as periodic polling of the server, from the device side.

The base architecture assumption so far is that there will always be a router (typically the user’s DSL modem). That the aiosphere gateway (which bridges the Ethernet and Zigbee networks) is an Ethernet device on the home LAN.

The problem: the aiosphere gateway cannot be reached from the internet without configuring the router to 1. reserve a fixed IP address for the gatway, and 2. forward a specific port to that IP address. To do this, the user would need to know the address, login and password for their router. We would need to be able to provide the user with a set of instructions to perform these actions, for every router out there.

Compare this to a Pull system, where the gateway polls the server periodically for data. In this system, the user does nothing but plug the hardware in. As long as the user logs into their account and configures their system from home (the same external IP address) then their gateway and all devices are found automatically.

The problem is that the bandwidth requirements of such a system are higher. If we want low-latency reaction time between connected devices, then we need to poll frequently. Every ten seconds? Every minute?

Certainly when the system is young, such an approach is no problem. But it may be that if there were a million gatways out there, the scheme would strain the network. And obviously the aiosphere servers!

But for the moment it seems to me that the effortlessness of the polling system (where the user just plugs it in and it works), as compared to the lower-bandwidth push system (which requires the user to log onto their router, configure their lan for static Ips, and then configure the router to forward a specific port onto a specific lan ip address) outweighs the higher bandwidth cost.

Still, I need to find some information about appropriate use of the network, and get a better sense of the scale of the impact I am proposing.

No Comments

Leave a comment