Каков максимальный размер окна в сегментах TCP-соединения? - PullRequest
5 голосов
/ 06 марта 2011

Рассмотрим одно соединение TCP (Reno), которое использует ссылку 10 Мбит / с .Предположим, что эта ссылка не буферизует данные и что приемный буфер получателя намного больше, чем окно перегрузки.Пусть каждый сегмент TCP будет иметь размер 1500 байт , а двусторонняя задержка распространения соединения между отправителем и получателем будет 200 мсек .Кроме того, предположим, что TCP-соединение всегда находится в фазе предотвращения перегрузки (игнорируйте медленный запуск).

Каков максимальный размер окна в сегментах, которого может достичь это TCP-соединение?Пропускная способность соединения и задержка, я думаю, что мы можем иметь возможность манипулировать следующей формулой, чтобы мы могли найти Размер окна.* RTT = Размер окна

10 Мбит / с * 200 мс = Размер окна

Я не уверен, правильно ли это.Мне трудно найти что-то еще, что относится к размеру окна, кроме этой формулы.

Ответы [ 3 ]

2 голосов
/ 30 апреля 2014

Максимальный размер окон в разрезе сегментов может составлять до 2 ^ 30 / MSS, где MSS - максимальный размер сегмента.2 ^ 30 = (2 ^ 16 * 2 ^ 14) происходит через это, как Майкл упомянул вас в своем ответе.Если пропускная способность сети и продукт задержки превышают размер окна получателя TCP, тогда для соединения TCP включена опция масштабирования окна, и большинство ОС поддерживают эту функцию.Масштабирование поддерживает до 14-битного мультипликативного сдвига для размера окна.Вы можете прочитать следующее для лучшего объяснения:

http://en.wikipedia.org/wiki/TCP_window_scale_option

http://www.ietf.org/rfc/rfc1323.txt

2 голосов
/ 09 марта 2011

Я думаю, что вы спрашиваете, как данные я могу получить от конца до конца по проводам. В этом случае вы близки. Пропускная способность * RTT [единицы измерения: B / S * S] - это то, сколько провод удерживает провод. Игнорируя PMTU, издержки пакета, аппаратное кодирование и т. Д., Тогда пропускная способность * RTT / PacketSize даст вам оценку. Но подожди, я использовал RTT. Мое окно получения действительно о том, сколько может поместиться на проводе в одном направлении, поэтому разделите его пополам.

Если ваша реализация не поддерживает масштабирование окна, то мин. С 2 ^ 16. Если это так, то вы мин это с 2 ^ 30.

1 голос
/ 02 января 2016

Пакеты будут отброшены, если максимальная скорость отправки превышает пропускную способность канала

(максимальный размер окна * размер 1 сегмента) / RTT = емкость канала
( максимальный размер окна *1500* 8) / 200 * 10 ^ -3 = 10 * 10 ^ -6
Вы можете решить эту проблему для максимального размера окна .

Мы делим на RTT, потому что по истечении этого времени будет получен ACK, чтобы отправитель мог отправить больше сегментов без необходимости увеличения размера окна.

...