Entrega de mensagem ordenada SCTP

user1511417

É possível forçar o SCTP a enviar todos os dados completamente ordenados?

Vamos fazer esta experiência:

1) Pegue este SCTP-discard-server e este SCTP-client .

2) Deixe o cliente contar muitas vezes até 100 e enviar um byte a cada vez, respectivamente, para o servidor.

for(long i=0; i< 1000000000; i++){
    char temp = (char)(i%100) + 1;
    usrsctp_sendv(
        sock, (void *)&temp, 1,
        NULL, 0, NULL, 0, SCTP_SENDV_NOINFO, 0
    );
}

3) Deixe o servidor contar da mesma forma e compare seu número com o recebido.

printf("%d %d\n", (int)buffer[0], (int)(test));
if ((int)test != (int)buffer[0]) break;

Alguns segundos depois:

66 66
67 67
68 68
69 69
51 70

Voila!

Eu compilei isso $ gcc discard_server.c -Wall -lusrsctpusando gcc7.3.0 em minha máquina Ubuntu 18.04 . E sim, eu já tentei desativar todos os tipos de algoritmos nagel via SCTP_NODELAY.

O que eu perdi? Agradecemos antecipadamente por qualquer dica.

user1511417

Eu descobri, que usrsctp_sendv(..)pode falhar, se o buffer de soquete estiver cheio, por exemplo. Isso é o que aconteceu.

Tentei while(usrsctp_sendv(..) < 0)e agora cliente e servidor contam da maneira certa.

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Semântica de entrega de mensagem Kafka

Garantia de entrega de mensagem do aplicativo ServiceFabric nodejs

SQS aciona Lambda na entrega de atraso de mensagem individual

Akka: Tentando entender a ordem de entrega da mensagem entre Atores

Como identificar a mensagem em uma notificação de entrega?

Por que o tempo de entrega da mensagem Elixir é proporcional ao tamanho da mensagem?

JMS entrega mensagem mais tarde

Que tipo de garantia de entrega de mensagem a Aeron pode oferecer?

Data de formatação usando date_i18n para mensagem de entrega WooCommerce

Detectando erro de entrega de mensagem Socket.IO no lado do cliente

Como rastrear a mensagem de entrega da grade de eventos do azure com falha / expirada?

Como faço para atrasar a entrega de uma mensagem JMS usando o HornetQ?

Por que o Spring Integration QueueChannel é executado sequencialmente com a mensagem de entrega atrasada no kafka

Mensagem de saída do SalesForce do motivo da falha na entrega

node rd kafka repete relatórios de entrega desde o início para cada mensagem

Posso definir uma matriz de mensagem mista ordenada em proto3?

MySQL obtém lista ordenada de contatos por última mensagem enviada / recebida

Firebase Cloud Messaging - Identifique o status de entrega de uma determinada mensagem de notificação por push

Firebase Cloud Messaging - Identifique o status de entrega de uma determinada mensagem de notificação por push

Pacotes de entrega no Go?

Regulador de entrega RabbitMQ

O D-Bus garante a entrega da mensagem?

leitura do consumidor __consumer_offsets entrega mensagem ilegível

SendGridApiClient obter resposta de entrega

Status de entrega AWS SNS

Entrega de argumento C # InstaSharper

Entrega garantida de pacotes UDP

Quando uma mensagem de email falha nas verificações do MTA-STS, ela não deve ser entregue; o remetente será informado sobre a falha na entrega? Quando?

pesquisa de matriz ordenada girada