구글의 C2DM의 원리가 궁금합니다.

디바이스의 각각 ip를 파악하고 있다가 메시지를 보내주는건가요?

해당앱이 꺼져있는 상태에서도 메시지를 받을 수 있는 시스템인데 원리가 궁금합니다. 


독자적인 push서버를 제작하려면 어떠한 방법이 가장 좋은지도 아시는분이 계시면 답변부탁드립니다.

XQTT나 이런것도 보긴했는데 실제로 규모가 커졌을때 쓰기 적합한지 그냥 C2DM을 쓰는것이 좋은지도 궁금하구요.