Самый простой способ понять значение термина размер TCP окна (TCP Window Size), это представить разговор двух человек. Один человек говорит, а второй кивает головой или говорит да, тем самым подтверждая, что он понял, а по сути, получил все слова, которые ему были сказаны. После этого разговор продолжается. Если мы встречаем особо говорливого человека, то наша голова быстро загружается, и мы начинаем терять нить разговора или переспрашивать нашего собеседника. Тоже самое происходит и в Матрице — в мире цифр и машин.
Размер TCP окна (TCP Window Size) – количество октетов (начиная с номера подтверждения), которое принимающая сторона готова принять в настоящий момент без подтверждения. На стадии установления соединения рабочая станция и сервер обмениваются значениями максимального размера TCP окна (TCP Window Size), которые присутствуют в пакете и эти значения можно легко увидеть, воспользовавшись захватом трафика.
Как изменить размер окна прогамм в windows
Например, если размер окна получателя равен 16384 байта, то отправитель может отправить 16384 байта без остановки. Принимая во внимание, что максимальная длина сегмента (MSS) может быть 1460 байт, то отправитель сможет передать данный объем в 12 фреймах, и затем будет ждать подтверждение доставки от получателя и информации по обновлению размера окна. Если процесс прошел без ошибок, то размер окна может быть увеличен. Таким образом, реализуется размер скользящего окна в стеке протокола TCP.
В зависимости от состояния каналов связи, размер окна может быть больше или меньше. Каналы связи могут быть высокоскоростными (большая пропускная способность) и протяженными (большая задержка и возможно потери), поэтому при небольшом размере TCP окна мы будем вынуждены отправлять один или несколько фреймов и ждать подтверждения от получателя, затем процесс повторяется. Таким образом, наши приложения будут неэффективно использовать доступную полосу пропускания. Пакетов будет много, но реального полезного трафика будет передано не много. Чтобы получить максимальную пропускную способность, необходимо использовать оптимально установленный размер передающего и принимающего окна для канала, который вы используете.
Для расчёта максимального размера окна (т.е. максимальный объем данных, которые могут передаваться одним пользователем другому в канале связи) рассчитывается по формуле:
Полоса пропускания (бит/сек) * RTT (круговое время передачи по сети) = размер окна в битах
Таким образом, если ваши два офиса соединяет канал связи в 10 Мбит/сек и круговое время составляет 85 миллисекунд, то воспользовавшись данной формулой, мы получим значение окна равное:
10 000 000 * 0,085 / 8 = 106250 байт
Размер поля Window в заголовке TCP составляет 16 бит; это означает, что узел TCP может указать максимальный размер TCP окна 65535 байт. Таким образом, максимальная пропускная способность составляет:
Как изменить размер окна раз и навсегда. Фиксируем размер окна.
65535 * 8 / 0,085 = 6,2 Мбит/сек
т.е. чуть больше 50% от реально доступной полосы пропускания канала.
В современных версиях операционных систем можно увеличить размер окна TCP Window Size и включить динамическое изменение окна в зависимости от состояния канала связи. В предложении RFC 1323 дано определение масштабирования окон, позволяющего получателю указывать размер окна больше 65535 байт, что позволит применять большие размеры окон и высокоскоростные каналы передачи.
Параметр TCP Window Scale указывает коэффициент масштабирования окна, который в сочетании с 16-битным полем Window в заголовке TCP может увеличивать размер окна приема до максимального значения, составляющего примерно 1 ГБ. Параметр Window Scale отправляется только в сегментах синхронизации (SYN) при установке соединения. На нашем скриншоте из WireShark он составляет 256. Устройства, общающиеся друг с другом, могут указывать разные коэффициенты масштабирования для TCP окон.
Таким образом, активировав масштабирование окон TCP и уменьшив круговое время передачи по сети, мы сможем повысить эффективность использования доступной полосы пропускания и как следствие скорость работы приложений. А проверить это можно захватив пакеты, и посмотреть о каких значениях размера окна и коэффициенте масштабирования договорились устройства в момент установки соединения. Это динамическое увеличение и уменьшение размера окна является непрерывным процессом в TCP и определяет оптимальный размер окна для каждого сеанса. В очень эффективных сетях размеры окна могут стать очень большими, потому что данные не теряются. В сетях, где сетевая инфраструктура перегружена, размер окна, вероятно, останется маленьким.
См. также:
- Какие параметры влияют на производительность приложений? Часть 2. Полоса пропускания и использование канала связи
- 5 недостатков Wireshark: в чём бесплатный сниффер проигрывает коммерческим аналогам?
- Какие функциональные возможности должны быть у решения для мониторинга производительности сети?
Источник: networkguru.ru
Оптимальный размер окна программы
Какое самое оптимальное разрешение окна и как сделать чтобы окно было полноценным при любом разрешении монитора и при этом его размеры можно было менять?
Trust no one.
Регистрация: 07.04.2009
Сообщений: 6,526
Какое самое оптимальное разрешение окна |
Сканируем размер текущего разрешения и выставляем размер окна на предыдущее, например:
Экран Приложение
800*600640*480
1024*786800*600
и т.д.
SQUARY PROJECT — НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK — УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Пользователь
Регистрация: 20.04.2009
Сообщений: 65
ну я хотела чтобы для всех разрешений стоял один размер окна,но чтобы на маленьком разрешении оно было видно целым или хотябы поставить выравнивание по рабочей области но при этом чтобы пользователь мог уменьшать окно
Регистрация: 28.01.2009
Сообщений: 20,999
посмотрите как у меня сделано окно.
как видите ему уютно на любом разрешении.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пользователь
Регистрация: 20.04.2009
Сообщений: 65
и как же ты ее так реализовал?
Регистрация: 28.01.2009
Сообщений: 20,999
св-ва Anchors у компонентов(там справа панель)
а так же у формы ограничители размеров(минимальных)
вроде св-во Constrains->Min***
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Источник: www.programmersforum.ru
[Win32] Как определить оптимальный размер окна?
Каким образом можно пересоздать главное окно приложения, чтобы не прерывать цикл обработки сообщений и не завершать само приложение?
Например, при смене полноэкранного режима в оконное?
DestroyWindow() прерывает цикл обработки , в итоге всё приложения закрывается.
#1
14:25, 25 мар 2013
#2
14:27, 25 мар 2013
#3
16:13, 25 мар 2013
Как определить оптимальный размер окна?
Допустим при первом запуске игры она запускается в окне. (Либо при смене фуллсткрина на окононный режим) Как лучше всего определить оптимальный размер окна относительно разрешения десктопа? Чтобы оно было не слишком маленьким и не слишком большим?
- 1 frag / 2 deaths
- Участник
#4
16:22, 25 мар 2013
Riddik
> Как лучше всего определить оптимальный размер окна относительно разрешения
> десктопа? Чтобы оно было не слишком маленьким и не слишком большим?
ClientWidth := Screen.Width div 2
ClientHeight := Screen.Height div 2
Правка: запутался в долбаных англосаксонских widhthdht, lengththt, heigththth
#5
17:34, 25 мар 2013
TarasB
Спасибо, а то я после бессоници что-то совсем способность думать потерял. )
#6
19:12, 25 мар 2013
>Спасибо, а то я после бессоници что-то совсем способность думать потерял. )
Следующим вопросом будет собственно как получить разрешение экрана? 🙂
Источник: gamedev.ru