Два источника и маршрутизатор с буферами ограниченной емкости
Давайте внесем в предыдущую ситуацию несколько изменений (рис. 3.40). Во-первых, будем считать объем буферного пространства маршрутизатора конечным. Это сделает ситуацию более реалистичной, поскольку пакеты, достигающие маршрутизатора с заполненным буфером, будут теряться. Во-вторых, мы предположим, что каждое из соединений является надежным, то есть транспортный уровень осуществляет повторную передачу каждого потерянного пакета. Мы снова обозначим через λ(вх) скорость передачи данных приложения через сокет, а через λ'(вх) — скорость передачи транспортным уровнем сегментов, включающих как новые, так и повторно передаваемые данные. Величину λ'(вх) часто называют прилагаемой нагрузкой.
Теперь качество обслуживания в значительной степени зависит от механизма повторной передачи. Можно представить невыполнимый на практике вариант, когда хост А некоторым образом определяет, заполнен ли буфер маршрутизатора, и осуществляет передачу только в том случае, если в буфере имеется достаточно свободного места. Такой механизм позволяет полностью избежать потерь, поэтому значения λ(вх) и λ'(вх) окажутся равными, и через соединение пройдет λ(вх) данных.
На рис. 3.41, а данному случаю соответствует верхняя из двух прямых. С точки зрения производительности приведенный механизм является идеальным — все передаваемые пакеты достигают хоста назначения. Обратите внимание на то, что максимальная скорость, с которой хост может передавать данные, не превышает R/2, поскольку потери пакетов не допускаются.
Теперь представим себе немного более реалистичный механизм, осуществляющий повторную передачу только тогда, когда факт потери пакета достоверно установлен. (Разумеется, это допущение тоже идеализирует ситуацию. Тем не менее можно сделать интервал ожидания квитанции настолько большим, что его истечение с высокой вероятностью будет свидетельствовать о потере пакета.) График, характеризующий качество обслуживания для такого механизма, приведен на рис. 3.41, б. Представьте, что происходит, когда значение λ(вх) (скорость новых и повторных передач) равно R/2. Согласно графику, производительность в этом случае равна R/3. Таким образом, суммарная скорость 0,5/R делится на две составляющие: одна, равная 0,333/R, характеризует передачу новых данных, а другая, равная 0,166/R, относится к повторным передачам. Здесь мы наблюдаем еще одно негативное влияние перегрузки на качество обслуживания: потери пакетов, обусловленные переполнением буферов маршрутизатора, вынуждают передающую сторону делать повторные передачи.
Наконец, рассмотрим случай, когда задержки пакета могут вызывать получение квитанции передающей стороной после истечения интервала ожидания (пакет при этом не теряется). Это приводит к дублированию пакетов на принимающей стороне и, следовательно, к удалению копий. Таким образом, при передаче копии успешно принятого пакета маршрутизатор не совершает полезной работы; вместо повторной передачи он мог бы использовать ресурс линии связи для передачи пакета с новыми данными. Мы сталкиваемся с еще одним негативным влиянием перегрузок: повторные передачи в сочетании со значительными задержками ожидания приводят к бесполезной трате значительной доли пропускной способности линий связи. Нижняя прямая на рис. 3.41, а иллюстрирует производительность передачи, когда каждый пакет посылается в среднем 2 раза. Как видно из графика, максимальная производительность такой передачи составляет приблизительно R/4.