Aller au contenu principal

2.3. Window Size for Overlapping Requests

2.3. Window Size for Overlapping Requests

La notification SET_WINDOW_SIZE indique que l'émetteur peut conserver l'état de plusieurs échanges en cours, permettant au destinataire d'envoyer plusieurs requêtes avant la première réponse. Les données associées DOIVENT faire 4 octets et contenir, en grand-boutiste, le nombre de messages que l'émetteur s'engage à mémoriser. La taille de fenêtre reste 1 jusqu'à la fin des échanges initiaux.

Une extrémité IKE DOIT attendre la réponse à chaque message avant d'en envoyer un autre, sauf si elle a reçu un Notify SET_WINDOW_SIZE indiquant que le pair peut gérer plusieurs messages en suspens pour améliorer le débit.

Après établissement de l'IKE SA, pour maximiser le débit IKE, une extrémité PEUT émettre plusieurs requêtes avant toute réponse, jusqu'à la limite du SET_WINDOW_SIZE du pair. Les requêtes peuvent se croiser sur le réseau. Une extrémité DOIT être prête à accepter et traiter une requête pendant qu'une autre est en cours, pour éviter l'interblocage. Elle PEUT aussi accepter plusieurs requêtes pendant qu'une sienne est en cours.

Une extrémité NE DOIT PAS dépasser la fenêtre déclarée du pair. Si le répondant a déclaré N, lorsqu'il faut envoyer la requête X, l'initiateur DOIT avoir reçu les réponses jusqu'à X-N. Chaque extrémité DOIT conserver (ou régénérer exactement) chaque requête envoyée jusqu'à la réponse, et conserver autant de réponses passées que la taille de fenêtre déclarée, au cas où la réponse serait perdue et la requête retransmise.

Une extrémité avec fenêtre supérieure à 1 devrait traiter les requêtes entrantes dans le désordre pour limiter l'impact des pannes ou du réordonnancement.

La taille de fenêtre est en principe une propriété d'implémentation (configurable), sans lien avec le contrôle de congestion (contrairement à TCP). Le comportement si le répondant reçoit un SET_WINDOW_SIZE plus petit que la valeur en vigueur n'est pas défini : on ne peut pas réduire la fenêtre d'une IKE SA existante, seulement l'augmenter. Lors d'un rekey, la nouvelle IKE SA repart à 1 jusqu'à un nouveau SET_WINDOW_SIZE.

INVALID_MESSAGE_ID est envoyé lorsqu'un Message ID est hors fenêtre. Ce Notify NE DOIT PAS figurer dans une réponse ; la requête invalide NE DOIT PAS être acquittée. Il faut informer l'autre extrémité par un échange INFORMATIONAL avec les données de notification contenant les 4 octets du Message ID invalide. L'envoi est OPTIONNEL ; ces notifications DOIVENT être limitées en débit.

<|tool▁calls▁begin|><|tool▁call▁begin|> StrReplace