Caso de uso 1: Equilibrio de carga SMPP
米隆de mensajes cortos se intercambian diariamente entre individuos y proveedores de servicios de valor agregado, como bancos, anunciantes y servicios de directorio, mediante el protocolo de mensajes cortos peer to peer (SMPP). A menudo, la entrega de mensajes se retrasa porque los servidores están sobrecargados y el tráfico no se distribuye de manera óptima entre los servidores. Citrix ADC admite el equilibrio de carga SMPP y proporciona una distribución óptima de mensajes entre los servidores, lo que evita un rendimiento deficiente y las interrupciones.
Citrix ADC realiza el equilibrio de carga en el lado del servidor cuando se reciben mensajes de clientes y en el lado del cliente cuando se reciben mensajes de servidores.
El equilibrio de carga de los mensajes SMPP por Citrix ADC proporciona las siguientes ventajas:
- Mejor distribución de la carga en los servidores, lo que se traduce en un tiempo de respuesta más rápido para los usuarios finales
- Supervisión del estado de los servidores y mejores capacidades de conmutación por error
- Adición rápida y sencilla de nuevos servidores (centros de mensajes) sin cambiar la configuración del cliente
- Alta disponibilidad
Introducción a SMPP
SMPP es un protocolo de capa de aplicación para la transferencia de mensajes cortos entre entidades externas de mensajes cortos (ESME), entidades de redirección (RE) y centros de mensajes (MC) a través de conexiones TCP de larga duración. Se utiliza para enviar mensajes de servicio de mensajes cortos (SMS) entre amigos, contactos y terceros como bancos (banca móvil), anunciantes (comercio móvil) y servicios de directorio. Los mensajes de una ESME (entidad no móvil) llegan al MC, que los distribuye a entidades de mensajes cortos (PYME), como teléfonos móviles. SMPP también es utilizado por las PYME para enviar mensajes cortos a terceros (por ejemplo, para la compra de productos, el pago de facturas y la transferencia de fondos). Estos mensajes llegan al MC y se reenvían al MC de destino o ESME.
El siguiente diagrama muestra las diferentes entidades SMPP: ESMES, Res y MCs, en una red móvil.
Descripción general de la arquitectura de las diferentes entidades SMPP en una red móvil
Nota: Los términos cliente y ESME se utilizan indistintamente en todo el documento.
Un ESME (cliente) abre una conexión al MC en uno de los tres modos: Como transmisor, receptor o transceptor. Como transmisor, solo puede enviar mensajes para su entrega. Como receptor, solo puede recibir mensajes. Como transceptor, el ESME puede enviar y recibir mensajes. El ESME envía al MC uno de los tres mensajes (también conocidos como PDU): Bind_transmitter, bind_receiver o bind_transceiver. El MC responde con bind_transmitter_resp, bind_receiver_resp o bind_transceiver_resp, según corresponda para la solicitud.
Una vez establecida la conexión, el ESME puede, dependiendo del modo en el que esté enlazado al MC, enviar un mensaje submit_sm o data_sm, recibir un mensaje deliver_sm o data_sm, o enviar y recibir cualquiera de estos tipos de mensajes. El ESME también puede enviar mensajes auxiliares, como query_sm, replace_sm y cancel_sm, para consultar el estado de una entrega de mensajes anterior, reemplazar un mensaje anterior por un mensaje nuevo o cancelar un mensaje no entregado.
Si no se entrega un mensaje porque un ESME no está disponible o un suscriptor móvil no está conectado, el mensaje se pone en cola. Más tarde, cuando el MC detecta que el suscriptor móvil es ahora accesible, envía una PDU de notificación de alerta a la ESME a través de una sesión de receptor o transceptor, solicitando la entrega de cualquier mensaje en cola.
Cada PDU de solicitud tiene un número de secuencia único. La PDU de respuesta tiene el mismo número de secuencia que la solicitud original. Dado que el intercambio de mensajes a través de SMPP puede estar en modo asíncrono, un ESME o un MC pueden enviar varias solicitudes a la vez. El número de secuencia juega un papel crucial en la devolución de la respuesta en la misma sesión SMPP. En otras palabras, el número de secuencia hace posible la coincidencia de solicitudes y respuestas.
El siguiente diagrama muestra cómo el flujo de tráfico utiliza las distintas PDU cuando ESME se vincula como transceptor.
Limitación:
El dispositivo Citrix ADC no admite operaciones salientes. Es decir, un centro de mensajes no puede iniciar una sesión SMPP con un ESME a través del dispositivo Citrix ADC.
Cómo funciona el equilibrio de carga SMPP en Citrix ADC
Un ESME (cliente) envía un mensaje de enlace para abrir una conexión con Citrix ADC. El ADC autentica cada ESME y, si tiene éxito, responde con un mensaje apropiado. Citrix ADC establece una conexión con cada centro de mensajes y equilibra la carga todos los mensajes entre estos centros de mensajes. Cuando el ADC recibe un mensaje de un cliente, vuelve a utilizar una conexión abierta al centro de mensajes o envía una solicitud de enlace a un centro de mensajes si no hay disponible una conexión abierta.
El ADC puede equilibrar la carga mensajes procedentes de los clientes y de los servidores. Puede supervisar el estado de los centros de mensajes y manejar mensajes concatenados. También proporciona compatibilidad con el cambio de contenido para los centros de mensajes.
Mensajes que se originan desde los eMES
Cada ESME debe agregarse como usuario en Citrix ADC para la autenticación. El cliente establece una conexión TCP con un servidor virtual SMPP configurado en el ADC mediante el envío de una solicitud de enlace. El ADC autentica el cliente y, si tiene éxito, analiza el mensaje de enlace. A continuación, el ADC envía la solicitud al centro de mensajes seleccionado por el método de equilibrio de carga configurado. Si una conexión con el centro de mensajes no está disponible para su reutilización, el ADC abre una conexión TCP con el centro de mensajes enviando una nueva solicitud de enlace al centro de mensajes.
Antes de reenviar la respuesta (submit_sm_resp o data_sm_resp) desde el centro de mensajes al cliente, el ADC agrega un identificador de servidor personalizado al identificador del mensaje para identificar el centro de mensajes para operaciones auxiliares, como consultar, reemplazar o cancelar solicitudes de un mensaje, realizadas por el cliente. Las solicitudes de otros clientes se equilibran de la misma manera.
En la solicitud de enlace original, un cliente especifica el rango de direcciones que puede servir. Este intervalo se utiliza para reenviar mensajes deliver_sm o data_sm desde los centros de mensajes a los clientes.
Mensajes que se originan desde un centro de mensajes
Los ESME que pueden manejar un intervalo de direcciones específico se agrupan en un clúster. Todos los nodos de un clúster proporcionan las mismas credenciales. Dentro de un clúster, solo se utiliza el método round robin para el equilibrio de carga. Para entregar mensajes móviles originados (MO), el centro de mensajes envía un mensaje deliver_sm al Citrix ADC. Si un clúster que puede servir el intervalo de direcciones de destino (por ejemplo, números que comienzan por 998) está enlazado al ADC, selecciona ese clúster y, a continuación, equilibra la carga el mensaje entre los nodos ESME de ese clúster.
如果联合国艾思梅喝水servir mensajes deliver_sm para el intervalo de direcciones no está enlazado al ADC y la cola de mensajes está habilitada, el mensaje se pone en cola hasta que dicho cliente se vincule al ADC en un modo receptor o transceptor. Puede especificar el tamaño de la cola.
El siguiente diagrama ilustra el flujo interno de PDU entre ESMES, Citrix ADC y los centros de mensajes. Para simplificar, solo se muestran dos ESMES y dos centros de mensajes.
Flujo de mensajes (PDU):
- ESME1 envía una solicitud de enlace a NetScaler
- NetScalerenvía una solicitud de enlace a MC1
- MC1 envía una respuesta de enlace a NetScaler
- NetScalerenvía una respuesta de enlace a ESME1
- ESME1 envía submit_sm (1) a NetScaler
- ESME1 envía submit_sm (2) a NetScaler
- NetScalerreenvía submit_sm (1) a MC1
- NetScalerenvía una solicitud de enlace a MC2
- MC2 envía una respuesta de enlace a NetScaler
- NetScalerreenvía submit_sm (2) a MC2
- MC1 envía submit_sm_resp (1) a NetScaler
- MC2 envía submit_sm_resp (2) a NetScaler
- NetScalerreenvía submit_sm_resp (1) a ESME1
- NetScalerreenvía submit_sm_resp (2) a ESME1
- ESME2 envía una solicitud de enlace a NetScaler
- NetScalerenvía una respuesta de enlace a ESME2
- ESME2 envía submit_sm (3) a NetScaler
- NetScalerreenvía submit_sm (3) a MC1
- MC2 envia deliver_sm NetScaler (ESME2 sirve el我ntervalo de direcciones especificado en el mensaje)
- MC1 envía submit_sm_resp (3) a NetScaler
- NetScalerreenvía submit_sm_resp (3) a ESME2
- NetScalerreenvía deliver_sm a ESME2
- ESME2 envía deliver_sm_resp a NetScaler
- MC1 envía alert_notification a NetScaler (ESME1 sirve el intervalo de direcciones especificado en el mensaje)
- NetScalerreenvía deliver_sm_resp a MC2
- NetScalerreenvía la alert_notification a ESME1
Supervisión de Salud de Centros de Mensajes
De forma predeterminada, un monitor TCP_Default está enlazado a un servicio SMPP, pero puede enlazar un monitor personalizado de tipo SMPP. El monitor personalizado abre una conexión TCP al centro de mensajes y envía un paquete enquire_link. En función del éxito o el fallo del sondeo, el servicio se marca hacia arriba o hacia abajo.
Cambio de contenido en centros de mensajes
洛涛公司de mensajes含量aceptar瓦利亚斯锥xiones (o enlazar solicitudes) de ESMES. Puede configurar Citrix ADC para cambiar contenido estas solicitudes en función de los parámetros de enlace de SMPP. A continuación se presentan algunas expresiones comunes para configurar métodos para seleccionar un centro de mensajes:
- Basado en el intervalo de direcciones: En la siguiente expresión de ejemplo, el ADC selecciona un centro de mensajes específico si el intervalo de direcciones comienza en 988.
Ejemplo:
SMPP.BINDINFO.ADDRESS_RANGE.CONTAINS(“^988”)
- Basado en el ID de ESME: En la siguiente expresión de ejemplo, el ADC selecciona un centro de mensajes específico si el ID de ESME es igual a ESME1.
Ejemplo:
SMPP.BINDINFO.SYSTEM_ID.EQ (“ESME1”)
- Basado en el tipo ESME: En la siguiente expresión de ejemplo, el ADC selecciona un centro de mensajes específico si el tipo ESME es VMS. VMS significa sistema de correo de voz.
Ejemplo:
SMPP.BINDINFO.SYSTEM_TYPE.EQ (“VMS”)
- Según el tipo de número (TON) de ESME: En la siguiente expresión de ejemplo, el ADC selecciona un centro de mensajes específico si TON es igual a 1 (1 significa un número internacional).
Ejemplo:
SMPP.BINDINFO.ADDR_TON.EQ (1)
- Basado en el indicador de plan numérico (NPI) de ESME: En la siguiente expresión de ejemplo, el ADC selecciona un centro de mensajes específico si NPI es igual a 0 (0 representa una conexión desconocida).
Ejemplo:
SMPP.BINDINFO.ADDR_NPI.EQ (0)
- Basado en el tipo de enlace: En la siguiente expresión de ejemplo, el ADC selecciona un centro de mensajes específico si el tipo de enlace es TRANSCEPTER. (Un transceptor puede enviar y recibir mensajes.)
Ejemplo:
SMPP.BINDINFO.TYPE.EQ (TRANSCEPTOR)
Manejo de mensajes concatenados
Un SMS puede contener un máximo de 140 bytes. Los mensajes más largos deben dividirse en partes más pequeñas. Si el móvil de destino es capaz, los mensajes se combinan y se entregan como un SMS largo. Citrix ADC reenvía los fragmentos de un mensaje al mismo centro de mensajes. Cada mensaje contiene un número de referencia, un número de secuencia y el número total de fragmentos. El número de referencia es el mismo para cada fragmento de un mensaje largo. El número de secuencia especifica la posición del fragmento en particular en el mensaje completo. Después de recibir todos los fragmentos, ESME combina los fragmentos en un mensaje largo y entrega el mensaje al suscriptor móvil.
Si un cliente se desconecta de una conexión activa, la conexión al centro de mensajes no se cierra. Se reutiliza para solicitudes de otros clientes.
Limitación
Los ID de mensaje, desde el centro de mensajes, no son compatibles con más de 59 bytes. Si la longitud del identificador del mensaje devuelto por el centro de mensajes es superior a 59 bytes, las operaciones auxiliares fallan y Citrix ADC responde con un mensaje de error.
Configuración del equilibrio de carga SMPP en Citrix ADC
Realice las siguientes tareas para configurar el equilibrio de carga SMPP en el ADC:
- Agregue un usuario SMPP. El ADC autentica al usuario antes de aceptar una solicitud de enlace del usuario. El usuario suele ser un ESME.
- Agregue un servidor virtual de equilibrio de carga, especificando el protocolo como SMPP.
- Agregue un servicio, especificando el protocolo como SMPP y un identificador de servidor personalizado que sea único para cada servidor. Enlace el servicio al servidor virtual de equilibrio de carga creado anteriormente.
- Opcionalmente, cree un grupo de servicios y agregue servicios al grupo de servicios.
- Opcionalmente, agregue un monitor de tipo SMPP-ECV y vincularlo al servicio. Un monitor TCP predeterminado está enlazado de forma predeterminada.
- Establezca los parámetros SMPP, como el modo cliente y la cola de mensajes.
Para configurar el equilibrio de carga SMPP mediante la línea de comandos
En el símbolo del sistema, escriba:
add smpp user -password add service SMPP –customserverID add lb vserver SMPP bind lb vserver set smpp param
Ejemplo
add smpp user smppclient1 -password c03ebb540695b6110eb31172f32245a1 -encrypted -encryptmethod ENCMTHD_2 add smpp user smppclient2 -password c03ebb540695b6110eb31172f32245a1 -encrypted -encryptmethod ENCMTHD_2 add service smmpsvc 10.102.84.140 SMPP 2775 -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -useproxyport YES -sp ON -cltTimeout 180 -svrTimeout 360 -CustomServerID ab -CKA NO -TCPB NO -CMP NO add service smmpsvc2 10.102.81.175 SMPP 2775 -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -useproxyport YES -sp ON -cltTimeout 180 -svrTimeout 360 -CustomServerID xy -CKA NO -TCPB NO -CMP NO add lb vserver smppvs SMPP 10.102.239.179 2775 -persistenceType NONE -cltTimeout 180 bind lb vserver smppvs smmpsvc2 bind lb vserver smppvs smmpsvc set smpp param -addrrange "d*"
Para configurar el equilibrio de carga SMPP mediante la utilidad de configuración
- Vaya aSistema > Administración de usuarios > Usuarios de SMPPy agregue un usuario SMPP.
- Vaya aAdministración del tráfico > Equilibrio de carga > Configurar parámetros SMPPy establezca los parámetros según lo requiera la implementación.
- Vaya aAdministración del tráfico > Equilibrio de carga > Servidores virtualesy agregue un servidor virtual de tipo SMPP.
- Haga clic en la sección Servicio, agregue un servicio de tipo SMPP y especifique un ID de servidor.
En este artículo
- Introducción a SMPP
- Descripción general de la arquitectura de las diferentes entidades SMPP en una red móvil
- Cómo funciona el equilibrio de carga SMPP en Citrix ADC
- Mensajes que se originan desde los eMES
- Mensajes que se originan desde un centro de mensajes
- Supervisión de Salud de Centros de Mensajes
- Cambio de contenido en centros de mensajes
- Manejo de mensajes concatenados
- Limitación
- Configuración del equilibrio de carga SMPP en Citrix ADC