Сегментирование сообщений

В большинстве современных сетей с коммутацией пакетов передающий хост разбивает длинные сообщения, генерируемые приложениями, на более мелкие пакеты. Эти пакеты доставляются адресату, из которых тот собирает исходные сообщения. Не удивительно, если вы уже задались вопросом: для чего нужно разбиение на пакеты? Не является ли эта работа бесполезной? Несмотря на то что подобный механизм усложняет процесс обмена как для передатчика, так и для приемника, еще «на заре» коммутации пакетов разработчики пришли к выводу о том, что преимущества разбиения на пакеты гораздо важнее недостатков. Перед тем как начать разговор об этом, необходимо ввести несколько новых терминов. Если в сети с коммутацией пакетов не производится сегментирование исходных сообщений (сообщения передаются целиком), то говорят, что сеть функционирует в режиме коммутации сообщений. Таким образом, коммутация сообщений является частным случаем коммутации пакетов.

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

18.png

На рис. 1.9 показана схема передачи того же сообщения по тому же пути, однако в предположении, что сообщение разбивается на 4 пакета. Как можно видеть, рисунок соответствует моменту времени, когда первый пакет уже достиг адресата, второй и третий пакеты находятся в процессе передачи, а последний, четвертый, пакет еще не отправлен. Механизм промежуточного накопления требует средств для временного хранения целого пакета до начала его дальнейшей передачи. Когда сообщение разбито на пакеты, говорят о конвейерной передаче сообщения, то есть параллельной (одновременной) передаче его фрагментов (пакетов) по различным линиям связи. Термин «конвейер» заимствован из области компьютерной архитектуры, однако вполне уместен в данной ситуации.

19.png

Важное преимущество разбиения на пакеты заключается в том, что время передачи сообщения, как правило, значительно сокращается по сравнению с передачей сообщения целиком. Рассмотрим это преимущество на следующем примере. Пусть необходимо передать сообщение длиной 7,5 х 10е бит. Пусть между передатчиком и приемником находятся два коммутатора и три линии связи, каждая из которых обеспечивает скорость передачи 1,5 Мбит/с. Рассчитаем время передачи сообщения без предварительного сегментирования в предположении, что сеть не перегружена. Для передачи сообщения первому коммутатору требуется 7,5 х 106 бит / (1,5 Мбит/с) = 5 с. До тех пор пока все сообщение не окажется в коммутаторе, дальнейшая передача, как было сказано ранее, невозможна. Аналогично, для передачи сообщения между первым и вторым коммутаторами, а также между вторым коммутатором и приемником требуется 5 с. Таким образом, искомое время составляет 5с + 5с +5с = 15 с. Иллюстрация к задаче приведена на рис. 1.10.

110.png

Теперь предположим, что исходное сообщение было разбито на 5000 пакетов длиной 1500 бит. Теперь снова рассчитаем время передачи пакета, предположив отсутствие перегрузок в сети. Как показано на рис. 1.11, время передачи пакета по каждой из линий связи составляет 0,001 с. Однако сразу после того, как первый пакет будет отправлен во вторую линию связи, возникает возможность использовать освободившуюся первую линию для передачи второго пакета. Таким образом, второй пакет достигнет первого коммутатора за 0,002 с. Продолжая подсчет, мы придем к выводу, что последний пакет будет передан первому коммутатору за 5000 х 0,001 = 5 с. Таким образом, время передачи сообщения составит 5,002 с.

111.png

Как видно из примера, сегментирование позволило сократить время передачи сообщения в 3 раза! Однако почему удалось добиться такого результата? Чем механизм передачи с сегментированием отличается от механизма передачи целого сообщения? Главное отличие состоит в том, что передача сообщения целиком является по сути последовательной, а сегментированная передача — параллельной. При последовательной передаче активным является лишь один из трех узлов (передатчик или коммутатор), а при параллельной передаче все три узла активны на протяжении почти всего сеанса связи.

Сегментация сообщений обладает еще одним важным достоинством. Как мы убедимся позже, при передаче пакетов по сети иногда возникают искажения отдельных битов. Как правило, при обнаружении ошибки коммутатор удаляет соответствующий пакет. В случае если передаче подлежит целое сообщение большого размера, любое искажение приведет к необходимости повторной посылки всего сообщения. Если же сообщение разбито на пакеты, то будет достаточно осуществить повторную передачу искаженного пакета.
Разумеется, сегментирование сообщений помимо достоинств имеет и недостатки. Позже мы увидим, что кроме полезных данных каждый пакет данных несет в себе массив контрольной информации. Контрольная информация, заключенная в заголовке сообщения, может содержать такие сведения, как адреса отправителя и получателя, а также идентификатор пакета (например, некоторое число). Поскольку при сегментировании возникает необходимость снабжения заголовком каждого пакета, объем контрольной информации, приходящейся на единицу полезных данных, по сравнению с коммутацией сообщений выше.

Перед тем как продолжать изучение нового материала, мы настоятельно рекомендуем вам обратиться к Java-апплету, посвященному сегментированию сообщений. Апплет доступен на сайте _http://www.awl.com/kurose-ross. Он позволит вам самостоятельно поэкспериментировать с количественными моделями передачи сообщений. Заметим, что модели немного усложнены по сравнению с рассмотренным материалом, что позволяет учесть задержку распространения сигнала.

Данная статья "Сегментирование сообщений" размещена на сайте Компьютерные сети и многоуровневая архитектура интернета (conlex.kz) в ознакомительных целях.

Уточнения, корректировки и обсуждения статьи "Сегментирование сообщений" - под данным текстом, в комментариях.

Ответственность, за все изменения, внесённые в систему по советам данной статьи, Вы берёте на себя.

Копирование статьи "Сегментирование сообщений", без указания ссылки на сайт первоисточника Компьютерные сети и многоуровневая архитектура интернета (conlex.kz), строго запрещено.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *