2010-09-17 16 views
3

Je vais mettre en œuvre un protocole réseau (en particulier, SFTP) et je me demandais s'il y avait des règles générales à suivre? À l'heure actuelle, cela semble être une tâche gigantesque et je ne sais pas par où commencer.Mise en œuvre des protocoles réseau

Je suis à la recherche pour:

  • Conseils
  • Meilleures pratiques
  • patterns de conception possibles
  • Expériences

Essayez de le garder applicable aux protocoles de réseau en général.

Merci!

Répondre

1

Je recommanderais certainement d'utiliser des bibliothèques bien testées si possible. Surtout pour le côté SSH de SFTP - car des erreurs dans la mise en œuvre pourraient conduire à des failles de sécurité. Cela dit, vous semblez être une personne expérimentée, et vous pouvez trouver qu'aucune bibliothèque (SharpSSH etc.) n'est appropriée, vous devriez envisager de séparer votre implémentation réseau dans sa propre bibliothèque et l'ouvrir pour deux raisons:

  1. Si cela vous est utile, il peut être utile à quelqu'un d'autre.
  2. Vous pourriez obtenir une revue de code utile

Compte tenu de tout cela, d'autres directives à suivre serait semblable à d'autres développements, mais peut-être avec plus de rigueur en matière de sécurité et de test. S'assurer que vous exécutez l'analyse statique et que vous testez l'unité pour les cas d'échec.

Également: Utilisez, mais ne faites pas confiance les couches inférieures du OSI model qui sont fournies pour vous. S'il y a un scénario qui casse votre code, vous pouvez parier que le réseau le trouvera finalement.

Espérons que cela aide.

1

Je suggère de regarder SharpSSH bibliothèque, qui comprend le support pour SFTP et a été publié sous une licence de style BSD, de sorte que vous pourriez être en mesure de réutiliser le code source ou au moins des idées de ce projet. Une autre réponse ici sur SO (que j'ai vu il y a quelques mois) a mentionné quelques problèmes avec le support SFTP, mais je ne sais pas si ceux-ci sont toujours pertinents et de toute façon ce pourrait être un bon point de départ au moins .