Comment ça vous aide?
Vous êtes P2P, donc chaque pair doit avoir au moins un socket ouvert à tous les autres pairs.
Si vous avez un socket ouvert, alors vous pouvez faire tout ce que vous devez faire par-dessus. Si vous avez pris l'approche d'un socket par fichier et que plusieurs fichiers sont transférés simultanément entre deux homologues, SCTP vous fera économiser un socket par fichier. Cependant, sur un réseau P2P normal de n'importe quelle taille, vous aurez presque jamais avoir plusieurs fichiers en cours de transfert simultanément entre deux pairs.
Ayez juste un socket et avez votre propre petit protocole; envoyer un paquet avec un en-tête, l'en-tête indique un type de contenu, par ex. une commande, ou une partie d'un fichier - et si oui, quel fichier, et quelle gamme d'octets.
Bien sûr, vous obtenez un peu de surcharge pour cela, alors que si vous avez un socket pour les commandes et un par fichier, vous êtes plus efficace. L'enregistrement d'une socket par pair (en supposant un téléchargement à la fois) vaut-il le temps/la complexité de l'utilisation de SCTP?
OP a également demandé à propos de SCTP tunnelisé sur UDP, cela résout le problème avec les pare-feu? Qu'en est-il de la perforation pour NAT traversal? est-ce possible dans le cas de SCTP? –
Tunneling permettrait de résoudre le problème de pare-feu. La perforation dépendrait du tunnel qui passe sur un port bien connu et constant. – Alnitak
Voir http://tools.ietf.org/html/draft-ietf-behave-sctpnat-05 pour l'état actuel de SCTP sur NAT et la proposition pour le corriger. SCTP a un mauvais support de protocole pour le moment, et le support réel mis en œuvre est pire - au point de ne pas fonctionner avec de nombreux appareils de qualité grand public. – Bwooce