Что такое Сильный синдром окна - Объяснение и профилактика

Оглавление:

Что такое Сильный синдром окна - Объяснение и профилактика
Что такое Сильный синдром окна - Объяснение и профилактика

Видео: Что такое Сильный синдром окна - Объяснение и профилактика

Видео: Что такое Сильный синдром окна - Объяснение и профилактика
Видео: Как подключить и настроить два монитора к компьютеру на WIndows 10, 8 или 7 📺🖥️📺 - YouTube 2024, Марш
Anonim

Данные передаются по сети и через Интернет, используя Протокол TCP / IP, TCP / IP не идеален, но проще реализовать по сравнению с другими протоколами, теоретизированными для передачи данных … такими как модель ISO OSI. Как и любая техническая вещь, TCP / IP имеет некоторые недостатки и Сильный синдром является созданием одного из этих недостатков. Чтобы понять, что такое Silly Window Syndrome или SWS, вам сначала нужно понять базовый механизм передачи данных в TCP / IP.

Сильный синдром

Image
Image

Понимание окна и его размер

Когда две точки общаются по протоколу TCP / IP, он включает механизм подтверждения. Этот механизм подтверждения является причиной синдрома Сильного окна, как объясняется далее. Точки могут относиться к двум компьютерам, клиенту и серверу и т. Д.

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.

Когда компьютер, скажем A, отправляет пакет данных на другой компьютер B, последний должен подтвердить и ответить, что он принял пакет данных. Наряду с подтверждением, он также должен отправить размер буфера, выделенного для этого потока связи. Это, как правило, количество байтов, доступных для связи.

Поэтому, когда B говорит, что 100B доступно для следующего сообщения, 100B - это окно в Silly Window Syndrome. То есть, это размер буфера. С собственным недостатком механизм TCP / IP может уменьшить размер буфера для каждой связи / данных, поступающих с A. То есть, всякий раз, когда A отправляет сообщение, B предполагает, что размер буфера уменьшается и отправляет меньшее число. Таким образом, размер окна продолжает уменьшаться и в точке, связь просто останавливается, так как B посылает 0B как размер окна.

Как работает синдром синдрома

Согласно приведенному выше примеру A и B, если B отправляет 1000B в качестве размера окна, A разделит его на две 500B и отправит два пакета по 500B. После приема первого пакета B отправляет подтверждение, что 500B доступно для окна, поскольку второй пакет еще не принят. A предполагает, что 500B - это размер окна и, соответственно, отправляет два пакета из 250B. В то время как в B используется 500B, а 500 только что получен, он отправит 0B как доступный. На этом этапе A не предполагает, что окно доступно, хотя может случиться, что буфер пуст, поскольку процессор использовал данные там. A все равно отправит меньший пакет, чтобы узнать, доступно ли какое-либо окно. Если содержимое буфера в B еще не удалено, оно все равно получит 0 в качестве ответа / подтверждения.

Таким образом, размер окна продолжает уменьшаться, поскольку B отправляет подтверждение каждый раз, когда он получает пакет от A. Этот размер обычно меньше предыдущего подтверждения, так как B принимает пакеты данных по частям. Не было бы проблем, если бы A мог отправить пакет достаточно большой, чтобы покрыть размер буфера на B за раз. Но это потребует дополнительных механизмов и, следовательно, Сильного синдрома окна. Связь прекращается после того, как A получает 0 два или три раза.

Как предотвратить синдром Silly Window (SWS)

Для избавления от SWS существует простой алгоритм. Получив исходный пакет, B отправляет половину реально доступного пространства в качестве окна. Это приведет к отправке меньших пакетов. Следовательно, когда пакеты становятся слишком маленькими, B отправляет общий размер буфера, чтобы A мог снова начать отправлять большие байты данных.

Другими словами, если доступно 1000B, B отправляет 500B в качестве подтверждения. Соответственно, A отправляет 250B x 2 пакетов. Для этого A принимает 100B в качестве подтверждения. Когда он получает пакет 50B, B отправляет 1000B - 50B в A. Это заставляет весь разговор работать снова. Это может вызвать небольшую задержку в обработке, но предотвратит синдром Silly Window Syndrome и прекратит весь разговор.

Подводя итог, SWS основана на размере буфера, доступном для получателя, и предполагаемом размере, рассчитанном отправителем. Чтобы предотвратить SWS, вводится задержка и преднамеренный размер меньшего размера возвращаются, пока размер пакета не станет слишком маленьким. Затем получатель раскрывает фактически доступный размер окна. Весь процесс продолжает повторяться до тех пор, пока сообщение не будет завершено.

Хотя я, возможно, использовал слова window и buffer взаимозаменяемо. Я не имею в виду разницу между ними. В SWS-исследованиях буфер представляет собой окно.

Если вам нужна дополнительная информация, здесь вы найдете подробное объяснение на tcpipguide.com.

Рекомендуемые: