Цитата(Glupen' @ Jul 4 2008, 14:12)

3. Удаленное устройство держит поднятой GPRS-сессию, если валится, то тут же заново поднимает.
Тогда устройство имеет свой "адрес, порт" в сети Internet, и вы можете слать команды/запросы в этот порт.
Насколько я понимаю, проще, если в качестве сервера будет выступать стационарный компьютер. Получить фиксированный адрес от сотового провайдера значительно сложнее...
Тогда удаленному девайсу придется либо периодически выходить в интернет, устанавливать соединение с удаленным компом и спрашивать "есть ли что новое", либо постоянно держать соединение и восстанавливать его при потере связи\включении девайса.
Что касается протокола - то в простейшем случае можно просто пихать в tcp\ip свои собственные структуры, предваряя их полем типа и дополняя CRC.