Qu'est-ce que le Silly Window Syndrome - Explication et prévention

Les données(Data) sont transférées sur le réseau et sur Internet(Internet) à l'aide du TCP/IP Protocol . Le TCP/IP n'est pas parfait mais est plus facile à mettre en œuvre par rapport à d'autres protocoles théorisés pour la communication de données… comme le modèle ISO OSI(ISO OSI) . Comme pour toute chose technique, TCP/IP a aussi quelques défauts et Silly Window Syndrome est une création de l'un de ces défauts. Pour comprendre ce qu'est le Silly Window Syndrome ou SWS , vous devez d'abord comprendre le mécanisme sous-jacent de la communication de données dans TCP/IP .

Syndrome de la fenêtre stupide

syndrome de la fenêtre stupide

Comprendre la fenêtre et sa taille

Lorsque deux points communiquent sous TCP/IP , cela implique un mécanisme d'acquittement. Ce mécanisme de reconnaissance est ce qui cause le Silly Window Syndrome , comme expliqué plus loin. Les points peuvent faire référence à deux ordinateurs, client et serveur, etc.

SWS is caused by the receiver advancing the right window edge whenever it has any new buffer space available to receive data and by the sender using any incremental window, no matter how small, to send more data. The result can be a stable pattern of sending tiny data segments, even though both sender and receiver have a large total buffer space for the connection, says MSDN.

Lorsqu'un ordinateur, disons A, envoie un paquet de données à un autre ordinateur B, ce dernier doit accuser réception et répondre qu'il a reçu le paquet de données. Avec l'accusé de réception, il doit également envoyer la taille du tampon mis à part pour ce fil de communication. Il s'agit généralement du nombre d'octets libérés pour la communication.

Ainsi, lorsque B dit que 100B est disponible pour le prochain message, le 100B est la fenêtre dans Silly Window Syndrome . C'est-à-dire qu'il s'agit de la taille de la mémoire tampon. Avec son propre défaut, le mécanisme TCP/IP peut réduire la taille de la mémoire tampon pour chaque communication/données provenant de A. Autrement dit, chaque fois que A envoie un message, B suppose que la taille de la mémoire tampon est réduite et envoie un plus petit nombre. Ainsi, la taille de la fenêtre continue de se réduire et à un moment donné, la communication s'arrête lorsque B envoie 0B comme taille de fenêtre.

Comment fonctionne le syndrome de la fenêtre idiote

Selon l'exemple ci-dessus de A et B, si B envoie 1000B comme taille de fenêtre, A le divisera en deux 500B et enverra deux paquets de 500B. À la réception du premier paquet, B enverra un accusé de réception indiquant que 500B est disponible pour la fenêtre car le deuxième paquet n'a pas encore été reçu. A suppose que 500B est la taille de la fenêtre et envoie deux paquets de 250B en conséquence. Alors qu'en B, 500B est utilisé et que 500 vient d'être reçu, il enverra 0B comme disponible. À ce stade, A supposera qu'aucune fenêtre n'est disponible bien qu'il puisse arriver que le tampon soit vide car le processeur y a utilisé les données. A enverra toujours un paquet plus petit pour voir si une fenêtre est disponible. Si le contenu du tampon en B n'est pas encore supprimé, il recevra toujours 0 comme réponse/acquittement.

Ainsi, la taille de la fenêtre continue de se réduire à mesure que B envoie un accusé de réception chaque fois qu'il reçoit un paquet de A. Cette taille est généralement inférieure à l'accusé de réception précédent car B reçoit des paquets de données par parties. Il n'y aurait aucun problème si A pouvait envoyer un paquet suffisamment grand pour couvrir la taille de la mémoire tampon sur B à la fois. Mais cela nécessiterait des mécanismes supplémentaires et donc le Silly Window Syndrome . La communication s'arrête après que A reçoive 0 deux ou trois fois.

Comment prévenir le Silly Window Syndrome ( SWS )

Il existe un algorithme simple à implémenter pour se débarrasser de SWS . Lors de la réception du paquet initial, B envoie la moitié de l'espace réellement disponible en tant que fenêtre. Cela obligera A à envoyer des paquets plus petits. Par conséquent, lorsque les paquets deviennent trop petits, B envoie la taille totale du tampon afin que A puisse recommencer à envoyer des octets de données plus gros.

En d'autres termes, si 1000B est disponible, B envoie 500B comme accusé de réception. En conséquence, A envoie 250B x ​​2 paquets. Pour cela, A reçoit 100B comme accusé de réception. Lorsqu'il reçoit le paquet 50B, B envoie 1000B - 50B à A. Cela rend à nouveau toute la conversation opérationnelle. Cela peut induire un léger retard dans le traitement, mais empêchera le Silly Window Syndrome de se produire et d'arrêter toute la conversation.

Pour résumer, SWS est basé sur la taille de la mémoire tampon disponible pour le destinataire et la taille supposée calculée par l'expéditeur. Pour empêcher SWS , un délai est introduit et une taille de fenêtre délibérément plus petite est réciproque jusqu'à ce que la taille du paquet devienne trop petite. Ensuite, le destinataire divulgue la taille de fenêtre réellement disponible. L'ensemble du processus se répète jusqu'à ce que la communication soit terminée.

Bien que j'aie peut-être utilisé les mots fenêtre et tampon de manière interchangeable. Je ne veux pas dire de différence entre eux. Dans les études SWS , le tampon est la fenêtre.



About the author

Je suis un ingénieur en informatique avec plus de 10 ans d'expérience dans l'industrie du logiciel, plus précisément dans Microsoft Office. J'ai écrit des articles et des tutoriels sur divers sujets liés à Office, y compris des conseils sur la façon d'utiliser ses fonctionnalités plus efficacement, des astuces pour maîtriser les tâches bureautiques courantes, etc. Mes compétences en tant qu'écrivain font également de moi une excellente ressource pour ceux qui souhaitent en savoir plus sur Office ou qui ont simplement besoin de conseils rapides.



Related posts