I was reading about Google Cloud Messaging(GCM). The push notifications received by GCM Connection Servers are sent to GCM enabled Android device. I assume that internally it uses device Id(and then resolving to IP from MAC using ARP protocol) to send the push notifications. Which protocol GCM uses internally to deliver notifcations? If it is TCP/IP then how it resolves IP of the device(which is not unique given that a user switches wifi networks and mobiles data).
Can anyone help me understand the communication from GCM to the client?