Вопрос из
книги Таненбаума про компьютерные сети к главе 1 «Введение», цитата:
16. Система обладает n-уровневой иерархией протоколов. Приложения обмениваются сообщениями длиной M байт. На каждом из уровней добавляется заголовок из h байт. Какой процент пропускной способности занят заголовками?
Это довольно простая задача, если представлять, о чем идет речь. Подробно об этом написано в книге Таненбаума, в подразделе 1.3.1, который называется «Иерархия протоколов».
«Система» представляет собой две машины (два компьютера), общающихся через сеть. Сообщение проходит через стопку (стек) уровней на одной машине (от верхнего уровня к нижнему), затем по физической среде передачи на другой компьютер, где проходит через такую же стопку (стек) уровней, только в обратном порядке (от нижнего уровня к верхнему). Все это объясняется в книге Таненбаума и иллюстрируется понятными картинками.
В данной задаче ситуация сильно упрощена по сравнению с реальным сетевым обменом сообщениями. Например, в реальной системе заголовки, добавляемые к сообщению на каждом уровне, могут быть разного размера, а не одинакового, как в обсуждаемой задаче.
Итак, в нашей упрощенной системе сообщение проходит на машине-источнике через стопку слоев от верхнего к нижнему, постепенно увеличиваясь в размерах из-за добавления очередного заголовка на каждом из слоев:
Размер сообщения на верхнем слое = h + M байт
Размер сообщения на слое, который лежит ниже верхнего = h + h + M байт
...
Размер сообщения на нижнем слое = n * h + M байт
После этого сообщение размером n * h + M байт проходит по физической среде передачи на машину-приемник, а там проходит через стопку слоев от нижнего к верхнему, постепенно уменьшаясь до M байт на самом верхнем слое (на каждом слое от сообщения отнимается соответствующий заголовок в h байт).
Предполагается, что физическая среда, по которой передаются сообщения, постоянно полностью занята передачей сообщений размером n * h + M байт. А это значит, что содержание заголовков в этом потоке сообщений сопоставимо содержанию заголовков в одном-единственном сообщении, то есть равно следующему отношению:
n * h
----------
n * h + M
Здесь в числителе - длина заголовка сообщения, передаваемого по физической среде от одной машины к другой, а в знаменателе - общая длина этого сообщения. Это и есть ответ. Для получения именно процента следует умножить это отношение на 100.