Задача транспортного уровня состоит в предоставлении надежной и экономичной передачи данных от машины-источника машине-адресату вне зависимости от физических характеристик использующейся сети.
Транспортная служба подобна сетевой, но имеет и некоторые существенные отличия. Главное отличие состоит в том, что сетевая служба предназначена для моделирования сервисов, предоставляемых реальными сетями, со всеми их особенностями, в том числе и ненадежностью. Ориентированная на соединение транспортная служба, напротив, является надежной. Она предназначена для того, чтобы сглаживать несовершенство сетевого уровня, чтобы пользовательские процессы могли считать, что существует безошибочный поток битов.
Примерами примитивов транспортной службы являются:
LISTEN (ожидать)
CONNECT (соединить)
SEND (послать)
RECEIVE (получить)
DISCONNECT (разъединить)
Сообщения, которыми обмениваются транспортные службы объединяются в модули TPDU (Transport Protocol Data Unit – модуль данных транспортного протокола). Модули помещаются в пакеты, которыми обмениваются сетевые уровни.
Для установки соединения одна транспортная сущность должна отправить запрос на соединение, а другая – подтверждение. Однако сеть может потерять, задержать или дублировать пакеты с запросом и подтверждением.
Основная проблема заключается в наличии задержавшихся дубликатов. Например, пользователь устанавливает соединение с банком и посылает сообщение с требованием перевода крупной суммы денег. Из-за ненадежности соединения образуется дубликат сообщения, а в результате деньги могут быть переведены дважды.
Разработан механизм, уничтожающий устаревшие заблудившиеся пакеты и не позволяющий им существовать бесконечно долго. Время жизни пакета может быть ограничено следующими методами:
1. Проектирование сети с ограничениями. К этому способу относятся все методы, предотвращающие зацикливание пакетов, в комбинации с ограничением задержки.
2. Помещение в каждый пакет счетчика транзитных участков. Заключается в начальной установке счетчика с последующим его уменьшением на каждом маршрутизаторе. Сетевой протокол игнорирует все пакеты, значение счетчика которых дошло до нуля.
3. Помещение в каждый пакет временного штампа. В каждый пакет помещается время его создания, а маршрутизаторы игнорируют все пакеты, старше определенной величины. Недостаток метода в необходимости установки точного времени на каждом маршрутизаторе и применении алгоритма выяснения возраста пакета.