Rajout d'une partie sur la réception des paquets

This commit is contained in:
n07070 2020-05-12 16:49:24 +02:00
parent 81555b4c6a
commit ead5ba5f25

View File

@ -56,7 +56,9 @@ Lors de la réception d'un message, on effectue plusieurs vérifications. La pre
On passe ensuite à la validation de chaque TLV. On commence par créer un paquet vide, qui va nous servir lors du renvoi éventuel de paquets vers les pairs. Ensuite, l'un à la suite des autres, nous validons les TLVs.
Une fois qu'un TLV est valide, nous le traitons. Si nous avons besoin de renvoyer un paquet, nous allons soit envoyer un seul TLV dans un paquet dans certains cas spécifiques, soit agréger des TLVs dans un paquet. Celui-ci servira de buffer pour la fonction d'envoi, qui sera appelée lorsque le paquet ne peux plus accueillir de nouveaux TLV, suite à quoi le paquet sera réinitialisé afin de pouvoir le réutiliser pour des futurs envois.
La validation du TLV se fait selon plusieurs critères : est-ce que la taille annoncée correspond bien à la taille que l'on constate, est-ce que le type de TLV existe bien, ou encore est-ce que le TLV doit être traité (dans le cas du padding par exemple).
Une fois qu'un TLV est valide, nous le traitons. En fonctions des cas, nous allons recalculer les hash, ou mettre à jour des données. Si nous avons besoin de renvoyer un paquet, nous allons soit envoyer un seul TLV dans un paquet dans certains cas spécifiques, soit agréger des TLVs dans un paquet. Celui-ci servira de buffer pour la fonction d'envoi, qui sera appelée lorsque le paquet ne peux plus accueillir de nouveaux TLV, suite à quoi le paquet sera réinitialisé afin de pouvoir le réutiliser pour des futurs envois.
Après avoir traité tous les TLVs reçus, nous enverrons le paquet courant, qui peut encore contenir des TLVs non envoyés.