Je veux écrire (mettre en œuvre) un protocole réseau de couche d'application au-dessus de TCP. Pouvez-vous me dire comment commencer à le faire? Tout didacticiel en ligne sera également utile Les gars dont j'ai aussi besoin d'un tutoriel de mise en œuvre SM. Je suis nouveau à cela et j'ai moins de temps aussi :( RFC est davantage sur les règles p>
4 Réponses :
La meilleure solution consiste à surveiller les solutions actuelles telles que Torrent, FTP, HTTP. Cela devrait vous donner du savoir. Puis le protocole disigné dépendra de votre imagination. p>
Commencez par lire un standard pour le protocole SMTP . Ceci est (à l'origine) un protocole très simple sans cordes attachées et pas de relevés déroutants ou faux. HTTP et FTP sont plus compliqués (pour débutant) car ils sont plus riches en fonctionnalités, non linéaires (dans de nombreux aspects), etc. P>
UPD: j'ai mis le lien vers le RFC 821 d'origine, qui est maintenant obsolète. Pourtant, il est beaucoup plus petit et plus facile à lire que le RFC le plus récent (et valide) pour SMTP. p>
Je suggérerais de ne pas le faire dans C. Il y a beaucoup plus de moyens d'y aller. Essayez de jeter un coup d'œil à: www.twistedmatrix.com et en regardant leur cadre Web pour Python. Si vous pouvez écrire C, vous pouvez certainement faire python sans sueur. En outre, Twisted prend soin de la majeure partie de la nezsitude qui est normalement associée à une programmation réseau dans des langages de niveau inférieur tels que C. P>
Conception de votre propre protocole n'est pas simple. Cependant, la construction sur TCP / IP facilite la tâche. Vous avez souligné que les RFC sont des règles sur un protocole et vous avez raison. Cependant, c'est généralement ce qu'un protocole est: un ensemble de règles et d'accords de la manière dont quelque chose doit être fait. La beauté ici est que vous obtenez spécifier vos propres règles. Certaines des choses que vous devez considérer sont le type (s) des données à envoyer, la longueur de chaque pièce et l'état (le cas échéant). HTTP Par exemple est un protocole apatride avec un en-tête qui définit la demande ou le résultat, et une charge utile définissant les données étant envoyées, ce qui pourrait être un poste de formulaire ou une page HTML.
Vous devrez donc définir les données à envoyer ou reçu, la longueur des données des octets pouvant être définis par le type de données ou la quantité de données attendue. S'il y a un état à votre protocole - c'est-à-dire que quelque chose doit d'abord être envoyé et reçu avant que quelque chose d'autre puisse - alors vous devez définir cet état. Au-delà de cela, c'est une programmation de réseau simple (d'envoi et de réception des données dans votre application). P>
par exemple un protocole simple pourrait avoir ceci: p> Cette réponse aide vraiment à solidifier ce que je dis. J'espère que ça aide!
https://stackoverflow.com/a/11658296/2498017 p> p>