TCP решает задачу надежного обмена данными путем установления логических соединений. Соединение однозначно идентифицируется парой сокетов.
TCP-соединение является дуплексным, оно устанавливается в результате переговорного процесса о максимальном размере единицы передачи, максимальном объеме данных, которые можно передавать без получения подтверждения, о начальном порядковом номере байта, с которого начинается отсчет потока данных в рамках данного соединения. При создании соединения ОС выделяет каждой стороне определенные системные ресурсы для организации буферов, таймеров, счетчиков.
Процедура приема протоколами TCP/UDP данных, поступающих от различных прикладных служб, называется мультиплексированием. Обратная процедура распределения протоколом TCP/UDP поступающих от сетевого уровня пакетов между набором высокоуровневых служб называется демультиплексированием. Протокол UDP реализует демультиплексирование с помощью сокетов, a TCP — с помощью соединений.
Для управления потоком в рамках TCP-соединения используется специфический вариант алгоритма скользящего окна. Сторона-получатель передает стороне-отправителю размер окна приема в байтах. При этом она исходит из того, с какой скоростью сможет обрабатывать присылаемые данные. Однако управлять окном приема может и отправитель. Если отправитель фиксирует ненадежную работу линии связи, то он может по собственной инициативе уменьшить окно.
Протоколы маршрутизации генерируют для каждого маршрутизатора согласованные таблицы маршрутизации, то есть такие, которые позволят обеспечить доставку пакета по рациональному маршруту от исходной сети в сеть назначения за конечное число шагов. Для этого маршрутизаторы сети обмениваются специальной информацией о топологии составной сети.
Различают статическую и адаптивную (динамическую) маршрутизацию:
□ при статической маршрутизации таблицы составляются и вводятся в память каждого маршрутизатора вручную администратором сети;
□ адаптивная (динамическая) маршрутизация обеспечивает автоматическое обновление таблиц маршрутизации после изменения конфигурации сети.
Адаптивные протоколы маршрутизации делятся на две группы, каждая из которых связана с одним из следующих типов алгоритмов:
□ в дистанционно-векторных алгоритмах каждый маршрутизатор периодически и широковещательно рассылает по сети вектор, компонентами которого являются расстояния отданного маршрутизатора до всех известных ему сетей;
□ алгоритмы состояния связей обеспечивают каждый маршрутизатор информацией, достаточной для построения точного графа связей сети.
Протоколы маршрутизации Интернета делятся на внешние и внутренние. Внешние протоколы (EGP) переносят маршрутную информацию между автономными системами, а внутренние (IGP) применяются только в пределах определенной автономной системы.
Протокол RIP является наиболее старым протоколом маршрутизации сетей TCP/IP. Несмотря на его простоту, определенную простотой дистанционно-векторного алгоритма, RIP успешно работает в небольших сетях с количеством промежуточных маршрутизаторов не более 15.
RIP-маршрутизаторы при выборе маршрута обычно используют самую простую метрику — количество промежуточных маршрутизаторов между сетями, то есть хопов.
В сетях, работающих по протоколу RIP и имеющих петлевидные маршруты, могут наблюдаться достаточно длительные периоды нестабильной работы, когда пакеты «зацикливаются» в маршрутных петлях и не доходят до адресатов. Для борьбы с этими явлениями в RIP-маршру- тизаторах предусмотрено несколько приемов (расщепление горизонта, замораживание изменений, триггерные обновления), которые сокращают в некоторых случаях периоды нестабильности.
Протокол OSPF был разработан для эффективной маршрутизации IP-пакетов в больших сетях со сложной топологией, включающей петли. Он основан на алгоритме состояния связей, который устойчив к изменениям топологии сети.