44. Напишите программу, моделирующую компьютерную сеть с дискретным временем. Первый пакет в очереди каждого маршрутизатора преодолевает по одному транзитному участку за интервал времени. Число буферов каждого маршрутизатора ограничено. Прибывший пакет, для которого нет свободного места, игнорируется и повторно не передается. Вместо этого используется сквозной протокол с тайм-аутами и пакетами подтверждения, который, в конце концов, вызывает повторную передачу пакета маршрутизатором-источником. Постройте график производительности сети как функции интервала сквозного времени ожидания при разных значениях частоты ошибок.
45. Напишите функцию, осуществляющую пересылку в IP-маршрутизаторе. У процедуры должен быть один параметр — IP-адрес. Имеется доступ к глобальной таблице, представляющей собой массив из троек значений. Каждая тройка содержит следующие целочисленные значения: IP-адре^ маску подсети и исходящую линию. Функция ищет IP-адрес в таблице, используя CIDR, и возвращает номер исходящей линии.
46. Используя программы traceroute (UNIX) или tracert (Windows), исследуйте маршрут от вашего компьютера до различных университетов мира. Составьте список трансокеанских линий. Вот некоторые адреса:
www.berkeley.edu (Калифорния) www.mit.edu (Массачусетс) www.vu.nl (Амстердам) www.ucl.ac.uk (Лондон) www.usyd.edu.au (Сидней) www.u-tokyo.ac.jp (Токио) www.uct.ac.za (Кейптаун)
Глава 6
Транспортный уровень
Вместе с сетевым уровнем транспортный уровень составляет сердцевину всей иерархии протоколов. Сетевой уровень обеспечивает сквозную доставку пакетов при помощи дейтаграмм и виртуальных каналов. Основанный на сетевом уровне транспортный уровень отвечает за передачу данных от процесса на машине-источнике до процесса на машине-адресате, предоставляя необходимый уровень надежности вне зависимости от физических характеристик использующихся сетей. Он создает абстракции, с помощью которых приложения могут работать в сети. Без транспортного уровня вся концепция многоуровневых протоколов потеряет смысл. В данной главе мы подробно рассмотрим транспортный уровень, включая его сервисы и выбор подходящей схемы API, позволяющей решить проблемы надежности, подключения и перегрузок, а также протоколы (такие как TCP и UDP) и производительность.
6.1. Транспортный сервис
В следующих разделах мы познакомимся с транспортным сервисом. Мы рассмотрим виды сервисов, предоставляемых прикладному уровню. Чтобы наш разговор не был слишком абстрактным, мы разберем два набора базовых операций транспортного уровня. Сначала рассмотрим простой (но не применяемый на практике) набор, просто чтобы показать основные идеи, а затем — реально применяемый в Интернете интерфейс.
6.1.1. Услуги, предоставляемые верхним уровням
Конечная цель транспортного уровня заключается в предоставлении эффективных, надежных и экономичных услуг (сервисов) передачи данных своим пользователям, которыми обычно являются процессы прикладного уровня. Для достижения этой цели транспортный уровень пользуется услугами, предоставляемыми сетевым уровнем. Программа и/или аппаратура, выполняющая работу транспортного уровня, называется транспортной подсистемойили транспортным объектом( transport entity). Транспортная подсистема может располагаться в ядре операционной системы, в библиотечном модуле, загруженном сетевым приложением, в отдельном пользовательском процессе или даже в сетевой интерфейсной плате. Первые два варианта чаще всего встречаются в сети Интернет. Логическая взаимосвязь сетевого, транспортного и прикладного уровней проиллюстрирована на рис. 6.1.

Рис. 6.1. Сетевой, транспортный и прикладной уровни
Сервисы транспортного уровня, как и сервисы сетевого уровня, делятся на сервисы с установлением соединения и сервисы без установления соединения. Транспортный сервис с установлением соединения во многом похож на аналогичный сетевой сервис. В обоих случаях соединение проходит три этапа: установление соединения, передача данных и разъединение. Адресация и управление потоком на разных уровнях также схожи. Более того, похожи друг на друга и сервисы без установления соединения разных уровней. Однако следует обратить внимание на то, что реализовать комбинацию транспортного сервиса без установления соединения и сетевого сервиса с установлением соединения часто достаточно трудно, так как для этого придется разрывать только что созданное соединение сразу же после отправки пакета.
Читать дальше
Конец ознакомительного отрывка
Купить книгу