Aunque las respuestas existentes proporcionan una descripción más o menos precisa de cómo es esta conexión continua, describen la función utilizando términos genéricos (IP, API, TCP+mantenimiento de vida), etc., que pueden ser ciertos, pero pasan por alto toda la cara "Apple" del asunto. Estas respuestas podrían explicar tanto Android como Windows y, en realidad, cualquier plataforma informática que mantenga conexiones receptivas a largo plazo.
El añadido importante que quiero añadir aquí - es que el "Sistema Operativo Base" de Apple - la parte compartida entre MacOS iOS tvOS, watchOS y demás - contiene varios subsistemas y APIs que permiten dicho comportamiento prácticamente "gratis" a cualquier desarrollador de software, siempre que utilicen los subsistemas "recomendados" del sistema operativo, y no meras APIs de red genéricas (como posix, etc.)
La capacidad de mantener una conexión receptiva a largo plazo no sólo es necesaria para los servicios basados en notificaciones (como "FindMy" y otros), sino también para todos los servicios de medios remotos: FaceTime, iTunes, Maps (Navigation) y, en realidad, también para todos sus competidores (Zoom, Viber, Slack y amigos).
Una característica importante que el OP NO mencionó - la capacidad de sobrevivir y renovar la conexión inmediatamente cuando se cambia de red, de pila de red y cuando se usan múltiples pilas de red e instalaciones simultáneamente - es importante también. un iPhone puede cambiar de Celular a WiFi, a Bluetooth e incluso usar los 3 juntos docenas de veces dentro de una sola llamada.
Los mecanismos importantes que hay que aprender son:
- El marco de SystemConfiguration (para la "Reachability" y la capacidad de no hacer pellizcos para mantener una conexión)
- CFNetwork Framework - el marco de la Core Foundation que implementa la mayoría de las interfaces de bajo y alto nivel para los servicios de red - donde se implementa todo el acceso a través de "proxy" o "firewall" o el mantenimiento de la conexión a largo plazo
- NSURLSession - las APIs Swift/Obj-C de nivel superior que permiten a los desarrolladores de aplicaciones mantener dichas conexiones.
Tuve que utilizar los tres cuando desarrollé software de audio/vídeo-conferencia, agentes de seguridad, herramientas de gestión de bases de datos remotas y muchos otros. Siempre me ha maravillado lo fáciles y eficientes que eran las APIs proporcionadas por Apple en comparación con las soluciones que construía para otras plataformas.
Sólo un pequeño ejemplo: Cuando "le dices al SO" que quieres mantener la conexión con un Servidor específico - y ser notificado de los cambios en su "Reachability", el SO lo hace por ti - pero NO dentro de tu propio proceso. Es un servicio del SO. Así que... su aplicación puede ser asesinada, y ser relanzada inmediatamente cuando la conexión sea restablecida. También - si 3 procesos necesitan mantener la conexión a algún dominio o servicio - el SO sólo rastrea ese dominio/servicio UNA VEZ para todos los "oyentes" registrados. lo que también mejora la eficiencia.
Así que - Cuando se conecta el cable de Ethernet dentro o fuera - OS no necesita "encuesta" en la cosa - que mantiene el hardware basado en interrupciones de todos modos. Se puede hacer mucho más eficiente! lo mismo para cuando se pierde la conexión celular.
Por último, te recomiendo que aprendas estos 3 frameworks de Apple y aprendas cómo se hace en esta plataforma.
Un buen comienzo puede ser ver este vídeo de la WWDC 2015 de Apple - Presentación de Network.framework: Una alternativa moderna a los Sockets