Exemples de fusion de segments de réception
Cette section illustre l’algorithme de fusion en utilisant des exemples de segments reçus dans l’ordre et traités dans un seul appel de procédure différée (DPC).
Cette page utilise X et X' pour l’étiquetage des segments successifs. Tous les autres champs de segment et d’unité unique (SCU) sont décrits dans Règles de fusion des segments TCP/IP.
Exemple 1 : segments de données
Segment Description
10 segments successifs appartenant à la même connexion TCP sont traités. Toutes les conditions suivantes sont remplies pour chacune d’elles :
X'. SEQ == X.NXT
X'SEQ > X.SEQ
X'. ACK == X.ACK
Aucun de ces segments ne génère d’exception.
Résultats
Un seul SCU est formé à partir des 10 segments. Cela est indiqué sous la forme d’une seule NET_BUFFER dans une seule NET_BUFFER_LIST.
Exemple 2 : segments de données, suivis d’une exception, suivis de segments de données
Segment Description
5 segments successifs appartenant à la même connexion TCP sont traités. Toutes les conditions suivantes sont remplies pour chacune d’elles :
X'. SEQ == X.NXT
X'SEQ > X.SEQ
X'. ACK == X.ACK
Aucun de ces segments ne génère d’exception. Le 6e segment est un segment ACK en double avec une option TCP SACK et génère une exception basée sur la règle numéro 3 dans Rules for Coalescing TCP/IP Segments.
Note Dans ce cas, la règle d’exception pour la gestion d’une option TCP est prioritaire et remplace donc la règle de fusion.
2 segments successifs appartenant à la même connexion TCP sont traités. Toutes les conditions suivantes sont remplies pour chacune d’elles :
X'. SEQ == X.NXT
X'SEQ > X.SEQ
X'. ACK == X.ACK
Aucun de ces segments ne génère d’exception.
Résultats
Un seul SCU est formé à partir des 5 premiers segments. Le 6e segment ne forme pas de SCU.
Les 7e et 8e segments forment ensemble une SCU.
Une chaîne NET_BUFFER_LIST est indiquée avec trois structures NET_BUFFER_LIST ayant chacune une seule NET_BUFFER. L’ordre des segments reçus est conservé.
Exemple 3 : segments de données, suivis de plusieurs mises à jour de fenêtres
Segment Description
5 segments successifs appartenant à la même connexion TCP sont traités. Toutes les conditions suivantes sont remplies pour chacune d’elles :
X'. SEQ == X.NXT
X'SEQ > X.SEQ
X'. ACK == X.ACK
Aucun de ces segments ne génère d’exception. Le 6e segment est un ACK pur qui est une mise à jour de fenêtre avec SEG. WND = 65535, comme indiqué dans l’organigramme suivant.
Le 7e segment est un ACK pur qui est une mise à jour de fenêtre avec SEG. WND = 131070 comme indiqué dans le même organigramme.
Résultats
Un seul SCU est formé à partir des 7 segments. Cela est indiqué sous la forme d’une seule NET_BUFFER dans une seule NET_BUFFER_LIST.
The SCU. WND = 131070, et la somme de contrôle est mise à jour en fonction de cette valeur.
Exemple 4 : Kits de contrôle d’accès (ACL) piggybacked mélangés à des segments de données
Segment Description
3 segments successifs appartenant à la même connexion TCP sont traités. Toutes les conditions suivantes sont remplies pour chacune d’elles :
X'. SEQ == X.NXT
X'SEQ > X.SEQ
X'. ACK == X.ACK
Aucun de ces segments ne génère d’exception. 2 segments successifs appartenant à la même connexion TCP sont traités. Toutes les conditions suivantes sont remplies pour chacune d’elles :
X'. SEQ == X.NXT
X'SEQ > X.SEQ
X'. ACK == X.ACK
Aucun de ces segments ne génère d’exception.
Résultats
Un seul SCU est formé à partir des 5 segments. Cela est indiqué sous la forme d’une seule NET_BUFFER dans une seule NET_BUFFER_LIST. The SCU. ACK est défini sur le dernier SEG.ACK.