Pergunta

Eu estou pensando em usar SCTP em vez de TCP para uma aplicação p2p escrito em C. Should Eu faço? Também como é que a velocidade da SCTP comparar com a velocidade do TCP?

EDIT: Descobri que SCTP pode ser encapsulado sobre UDP com o único problema a ser encapsulado SCTP não é interoperável com SCTP untunneled.

Foi útil?

Solução

Se é para uma rede de área local, com certeza ir para ele.

Note, porém, que, se você pretende usá-lo na Internet aberta muitos firewalls classe de consumidores não são suficientes flexível para permitir protocolos IP não reconhecidos através deles.

Outras dicas

Você considerou se os seus sistemas de destino serão todos têm SCTP pré-instalado em si, ou se a sua aplicação terá de incluir em si SCTP? Na minha experiência, eu não esperaria que todos os sistemas de ter SCTP instalado neles, e eu esperaria que eles não se fosse do Windows.

Se você incluir SCTP na própria então aplicativo que irá mais do que dobrar o número de mensagens que está sendo passado para uma fora do Kernel que irá afetar o desempenho quando comparado com o uso do pré-instalado TCP.

Você considerou os benefícios que você quer de SCTP? Você mencionou a tolerância a falhas, mas para que isso funcione com SCTP que exige a aplicação de ter várias portas ethernet e e endereços IP. É este o provável em seu aplicativo?

Por mais que eu amo SCTP (!) Eu consideraria seriamente degola com TCP menos que tenha certeza SCTP é necessário ou menos que você controle os anfitriões seu aplicativo é implantado em.

Saudações

Como isso ajudá-lo?

Você está P2P, assim que cada par deve ter pelo menos uma tomada aberta a todos os outros pares.

Se você tem uma tomada aberta, então você pode fazer tudo o que você precisa fazer sobre isso. Se você tomou a abordagem de uma tomada por arquivo e você tem vários arquivos sendo tranferred simultaneamente entre dois pares dadas, em seguida, SCTP você vai economizar uma tomada por arquivo. No entanto, em uma rede P2P normal de qualquer tamanho, você vai quase não ter vários arquivos que estão sendo transferidos simultaneamente entre dois pares.

Basta ter um soquete e ter o seu próprio protocolo de pouco; enviar um pacote com um cabeçalho, o cabeçalho indica o tipo de conteúdo, por exemplo um comando, ou parte de um arquivo -. e em caso afirmativo, qual arquivo e que intervalo de bytes

É claro, você tem um pouco de sobrecarga para que, enquanto se você tiver um soquete para comandos e um por arquivo, você é mais eficiente. É a poupança de uma tomada por peer (assumindo um download de cada vez) vale o tempo / aborrecimento / complexidade de usar SCTP?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top