Bonjour à tous,
Pour un projet de fin d'année en réseau, je dois réaliser une implémentation du protocole TFTP en C (selon la norme RFC 1350 : https://tools.ietf.org/html/rfc1350) avec les gestion des options (norme RFC 2347 https://tools.ietf.org/html/rfc2347).
J'ai un problème pour construire un paquet OACK. Sur mon sujet, le prototype de la fonction est fourni comme suit :
int tftp_make_oack(char *buffer, size_t *length, uint16_t bloc, size_t nbytes, size_t nblocks);
D'après ce que j'ai compris :
buffer correspond au tampon qui contiendra le paquet.length contient la taille du tampon et contiendra la taille finale du paquet.bloc ?nbytes contient le nombre d'octets de chaque bloc.nblocks RFC 2348 http://www.rfc-editor.org/rfc/rfc2348.txt
Donc mon problème c'est l'argument bloc, je ne comprends pas son utilité.
Pour rappel, voici la forme d'un paquet OACK :
+-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+
| opc | opt1 | 0 | value1 | 0 | optN | 0 | valueN | 0 |
+-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+
Où :
opc est l'opcode du paquet (6 pour un OACK).opt1 est le nom de la première option.value1 est la valeur de la première option.
Les 0 sont le caractère de fin de chaîne.
Vous avez une idée de ce que peut-etre l'argument bloc dans la fonction ? Je vois pas du tout à quoi il peut servir parce que j'arrive à construire le paquet sans cet argument. Je doute que ce soit une erreur du sujet.
Merci 
Message édité le 24 avril 2016 à 20:30:48 par ZZeetopp