Должны ли маршрутизаторами поддерживаться протоколы транспортного уровня

Обновлено: 06.07.2024

Содержание

Стек протоколов ТСР/IP

IP-сеть

IP-сеть (какой является Интернет) отличается от глобальных сетей тем, что является составной сетью из подсетей, число которых измеряется тысячами. Для Интернета характерно использование стека протоколов не эталонной модели OSI, а эталонной модели TCP/IP [1] [2] . На рис. 1 представлен стек протоколов TCP/IP и его соответствие уровням модели OSI. Отличительной особенностью TCP/IP является также то, что IP-пакеты могут передаваться с использованием различных технологий составных сетей, в том числе посредством уже рассмотренных глобальных сетей Х.25, FR и ATM, которые являются самостоятельными со своими протоколами, адресацией и др. Другой особенностью является то, что эталонная модель TCP/IP в отличие от эталонной модели OSI была разработана под конкретную составную сеть (интерсеть или internet). Подсети, составляющую эту составную сеть, соединяются между собой маршрутизаторами. Такими подсетями могут быть как локальные, так и глобальные сети различных технологий.


Транспортный уровень стека TCP/IP

Транспортный уровень стека TCP/IP (уровень 3) обеспечивает передачу данных между прикладными процессами. Транспортный уровень включает два протокола TCP и UDP. Протокол управления передачей TCP (Transmission Control Protocol) является надёжным протоколом с установлением соединения, позволяющим управлять потоком, т.е. без ошибок доставлять байтовый поток с одной машины на любую другую машину составной сети. Для того чтобы обеспечить надёжную доставку данных, протокол TCP предусматривает установление логического соединения. Это позволяет ему нумеровать пакеты, подтверждать их прием квитанциями, в случае потери организовывать повторные передачи, распознавать и уничтожать дубликаты, доставлять прикладному уровню в том порядке, в котором они были отправлены. Пакеты, поступающие на транспортный уровень, организуются в виде множества очередей к точкам входа прикладных процессов. В терминологии TCP/IP такие очереди, однозначно определяющие приложение в пределах хоста, называется портами. За портами каждого стандартного приложения определён номер например, порт TCP № 21 - за протоколом передачи файла FTP (File Transport Protocol). Номер порта в совокупности с номером сети и номером конечного узла имеет название сокет (socket). Каждое логическое соединение идентифицируется парой сокетов взаимодействующих процессов. Второй протокол транспортного уровня -протокол пользователей дейтаграмм UDP (User Data Protocol) является простейшим дейтаграммным протоколом (т.е. без установления соединения). К протоколу транспортного уровня относится протокол информационной безопасности SSL/TLS. Протоколы прикладного и транспортного уровней стека уровней TCP/IP устанавливаются на оконечных станциях (хостах) сети.

Межсетевой уровень стека TCP/IP

Межсетевой уровень стека TCP/IP (уровень 2), называемый также сетевым уровнем (по модели OSI), является стержнем всей архитектуры TCP/IP. Именно этот уровень, функции которого соответствуют сетевому уровню модели OSI, обеспечивает перенос пакетов данных в пределах всей составной сети. Протоколы межсетевого уровня поддерживают интерфейсы с вышележащим транспортным уровнем, получая от него запросы на передачу данных по составной сети. Основным протоколом межсетевого уровня является межсетевой протокол IP (Internet Protocol). Он обеспечивает продвижение пакета между подсетями - от одного пограничного маршрутизатора до другого, до тех пор, пока пакет не попадёт в сеть назначения. Протокол IP так же, как и протоколы функций коммутации глобальных сетей связи (FR, ATM и др.), устанавливается не только на оконечных пунктах (хостах), но и на всех маршрутизаторах сети. Маршрутизатор представляет собой процессор, который связывает между собой две сети (подсети). Протокол межсетевого уровня работает в режиме без установления соединения (дейтаграммный режим), в соответствии с которым он не отвечает за доставку пакета до узла назначения. При потере пакета в сети протокол IP не пытается восстановить его.

Пример переноса данных в IP-сети

На примере IP-сети (рис. 2) покажем перенос данных оконечной станции А локальной вычислительной сети (подсети) Ethernet в оконечную станцию В сети (подсети) АТМ. Как видно из рисунка в эту составную сеть еще входит сеть (подсеть) Frame Relay. В основу приведенного упрощенного описания положен пример межсетевого взаимодействия сетей Ethernet и АТМ, приведенный в работе [3] . Дополнительно в эту составную сеть введена сеть (подсеть) Frame Relay. Принцип маршрутизации и краткое описание протоколов маршрутизации в сети Интернет приведены в следующей главе. Для того, чтобы технология TCP/IP могла решать задачу объединения сетей, ей необходима собственная глобальная система адресации, не зависящая от способов адресации узлов в отдельных подсетях. Таким адресом является IP-адрес, состоящий из адреса подсети (префикса) и адреса оконечного устройства (хоста). Приведем пример адресации подсети и хоста. IP-адрес 200.15.45.126/25 означает, что 25 старших бит из выделенных 4-х байт под адресацию являются адресом подсети, а оставшиеся 7 бит означают адрес хоста в этой сети.

Как видно из предыдущих глав, глобальные сети Frame Relay и АТМ имеют различные системы нумерации, которые отличаются от системы нумерации локальной вычислительной сети (ЛВС) технологии Ethernet. Каждый компьютер Ethernet имеет уникальный физический адрес, состоящий из 48 бит. Этот адрес называется МАС-адресом и относится к канальному уровню — управлению доступом к среде MAC (Media Access Control). Для организации межсетевого взаимодействия подсетей различной технологии и адресации используются маршрутизаторы, включающие IP-пакеты. В состав этих пакетов входят глобальные IP-адреса. Каждый интерфейс маршрутизатора IP-сети и оконечного устройства включает два адреса – локальный адрес оконечного устройства подсети и IP-адрес.


Рассмотрим продвижение IP-пакета в сети (рис. 2).

  1. Пользователь компьютера А сети Ethernet, имеющий IP-адрес (IP-адрес 1), обращается по протоколу передачи файла FTP к компьютеру В, подключенному к сети АТМ и имеющий IP-адрес (IP-адрес 6).
  2. Компьютер А формирует кадр Ethernet для отправки IP-пакета. По таблице маршрутизации в компьютере А на основании IP-адресов А и В определятся маршрутизатор М1 и входящий интерфейс для передачи этого IP-пакета. При этом становится известен IP-адрес интерфейса маршрутизатора М1(IP-адрес 2).
  3. Компьютер А отправляет по сети Ethernet IP-пакет, инкапсулированный в кадр Ethernet и включающий следующие поля (рис. 3).


Протоколы TCP/IP

Ниже приводится краткое описание протокола прикладного уровня SNMP и протокола транспортного уровня TCP архитектуры TCP/IP.

Протокол прикладного уровня SNMP

Большие сети не могут быть настроены и управляться вручную в плане изменения конфигурации сети, устранения неисправности в сети, сбора параметров о качестве обслуживания. Если в сети используется оборудование разных производителей, необходимость таких средств становится особенно необходимой. В связи с этим были разработаны стандарты сетевого управления. Одним из наиболее широко используемых является простой протокол управления сетью SNMP (Simple Network Management Protocol) [4] . Приведем краткие сведения об архитектуре сетевого управления. Система сетевого управления включает инструментальные средства для решения задач управления. При этом необходимо использование уже имеющегося оборудования путем внедрения в него дополнительных аппаратных и программных средств для управления сетью. Это программное обеспечение размещается в хостах, коммуникационных процессорах и других устройствах сети. Модель сетевого управления, используемая для SNMP состоит из следующих элементов:

  • станция управления, выполняющая роль интерфейса между сетевым администратором и системой сетевого управления. Станция управления позволяет осуществить мониторинг сети и управление сетью. В этой станции имеется база данных с информацией, полученной из информационных баз всех управляемых объектов сети;
  • агент управления (хосты, коммутаторы и др.), которые отвечают на запросы от станции управления. Агент обеспечивает информацией станцию и без запроса;
  • агент поддерживает базу данных, именуемую MIB (база управляющей информации, Management Information Base), в которой записаны конфигурация, характеристики и состояние устройств.

Обеспечение информационной безопасности протокола SNMP

В документе RFC 2574 [6] определяется модель USM (User Security Model – модель защиты пользователя) при использовании протокола SNMP. USM разрабатывалась с целью защиты от угроз следующих типов.

Протокол транспортного уровня TCP

Логическая связь относится именно к данной паре значения портов. В процессе связи каждый объект отслеживает сегменты TCP, получаемые от другой стороны или отправленные другой стороне, для того, чтобы регулировать поток сегментов и восстанавливать утерянные или поврежденные сегменты. Стандартный номер порта однозначно идентифицирует тип приложения, однако он не может однозначно идентифицировать прикладной процесс этого приложения. Одно приложение может одновременно осуществлять несколько процессов. Поэтому прикладной процесс однозначно определяется в пределах сети и в пределах отдельного компьютера парой (IP-адрес, номер порта) и называется сокетом (socket). Логическое TCP-соединение однозначно идентифицируется парой сокетов, определенных для этого соединения двумя взаимодействующими сокетами.

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

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

На сетевом уровне сам термин " сеть " наделяют специфическим значением. В данном случае под "сетью" понимается совокупность компьютеров, соединенных между собой в соответствии с одной из стандартных типовых топологий, использующих для передачи данных один из протоколов канального уровня, определенный для этой топологии.

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

На сетевом уровне определяются два вида протоколов:

Протоколы сетевого уровня реализуются программными модулями операционной системы, а также программными и аппаратными средствами маршрутизаторов.

Транспортный уровень обеспечивает приложениям или верхним уровням модели - прикладному и сеансовому - передачу данных с той степенью надежности, которая им требуется.

Назначение транспортного уровня: обеспечение надежного, последовательного обмена данными между пользователями с использованием сетевого уровня и управление потоком данных, чтобы гарантировать правильный прием блоков данных.

Функции транспортного уровня:

Транспортный уровень оптимизирует использование имеющейся сетевой службы для обеспечения требуемых сеансовыми объектами характеристик передачи с минимальной стоимостью. На пути от отправителя к получателю пакеты могут быть искажены или утеряны. Хотя некоторые приложения имеют собственные средства обработки ошибок, существуют и такие, которые предпочитают сразу иметь дело с надежным соединением. Модель взаимодействия открытых систем определяет пять классов сервиса, предоставляемых транспортным уровнем. Эти виды сервиса отличаются качеством предоставляемых услуг:

  • срочностью;
  • возможностью восстановления прерванной связи;
  • наличием средств объединения нескольких соединений между различными прикладными протоколами через общий транспортный протокол;
  • способностью к обнаружению и исправлению ошибок передачи, таких как искажение, потеря и дублирование пакетов.

Функционирование транспортного уровня разбивается на три фазы:

  1. Фаза установления соединения.
  2. Фаза передачи данных.
  3. Фаза разъединения соединения.

В фазе установления соединения выполняется:

  • выбор сетевого соединения, наиболее удовлетворяющего требованиям сеансового объекта с учетом стоимости и качества обслуживания;
  • решение о целесообразности объединения или расщепления транспортного соединения с целью оптимизации использования сетевых соединений;
  • выбор оптимального размера транспортного блока данных протокола;
  • выбор функций, которые будут задействованы в фазе передачи данных;
  • отображение транспортных адресов в сетевые.

В фазе передачи данных осуществляется доведение транспортных блоков данных службы до сеансовых объектов-получателей по транспортному соединению передачей транспортных блоков данных протокола. При этом могут быть задействованы следующие функции, использование каждой из которых согласуется в фазе установления соединения:

  • упорядочение;
  • управление потоком;
  • обнаружение ошибок;
  • исправление ошибок;
  • передача срочных данных;
  • разграничение транспортных блоков данных службы;
  • идентификация транспортных соединений.

В фазе разъединения соединения выполняются следующие функции:

  • оповещение о причине разъединения;
  • идентификация разъединяемого транспортного соединения передачи данных.

Фазы функционирования транспортного уровня и выполняемые функции представлены на рис. 5.7.

Фазы транспортного уровня

Все протоколы, начиная с транспортного уровня и выше, реализуются программными средствами конечных узлов сети - компонентами их сетевых операционных систем.

Сеансовый уровень устанавливает, управляет и завершает сеансы взаимодействия между прикладными задачами.

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

Функции сеансового уровня:

  • формирование сквозного канала связи между взаимодействующими прикладными программами;
  • установление и расторжение сеансовых соединений;
  • выбор режима передачи между прикладными процессами;
  • управление очередностью передачи данных и их приоритетом;
  • обмен нормальными данными;
  • обмен срочными данными;
  • неделимая служба;
  • управление взаимодействием (маркеры);
  • синхронизация сеанса (контрольные точки);
  • восстановление сеанса.

Одна из задач сеансового уровня - преобразование имен в сетевые адреса, так что прикладные программы могут использовать имена для связи с устройствами.

Неделимая служба - услуга сеансового уровня, посредством которой сеансовые блоки данных службы, посланные по сеансовому соединению, не предоставляются представительному объекту-получателю до тех пор, пока это явно не разрешено представительным объектом-отправителем.

Управление взаимодействием - услуга сеансового уровня, позволяющая взаимодействующим представительным объектам явно управлять очередностью выполнения некоторых управляющих функций.

Выделяют следующие виды взаимодействия объектов:

Синхронизация сеансового соединения - услуга сеансового уровня, позволяющая представительным объектам определять и идентифицировать точки синхронизации, осуществлять повторную установку сеансового соединения в заранее определенное состояние и согласовывать точку повторной синхронизации.

На сеансовом уровне обеспечиваются средства, необходимые для организации и синхронизации диалога между взаимодействующими представительными объектами и для управления информационным обменом между ними. Для этого на сеансовом уровне устанавливаются сеансовые соединения между двумя представительными объектами и поддерживается взаимодействие по обмену данными. Сеансовые соединения устанавливаются по запросу представительного объекта, передаваемому в сеансовой точке доступа к службе, и разъединяются либо представительными, либо сеансовыми объектами. В установленном сеансовом соединении поддерживается диалог между представительными объектами даже при возможных потерях данных на транспортном уровне.

В каждый момент времени между сеансовыми и транспортными соединениями существует взаимно однозначное соответствие.

Передача срочных сеансовых блоков данных службы обычно производится с использованием передачи срочных транспортных данных.

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

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

Разъединение сеансового соединения в нормальных условиях производится без потерь данных по запросу представительных объектов. Сеансовый уровень также содержит функции для преждевременного разъединения сеансового соединения с возможными потерями данных.

Сеансовые протоколы могут осуществлять некоторые функции по управлению уровнем, такие, как активация и контроль ошибок.

На практике немногие приложения используют сеансовый уровень , и он редко реализуется в виде отдельных протоколов, обычно функции этого уровня объединяют с функциями прикладного уровня и реализуют в одном протоколе.

Представительный уровень ( уровень представления данных ) отвечает за то, чтобы информация , посылаемая из прикладного уровня одной системы, была читаемой для прикладного уровня другой системы.

Назначение представительного уровня - обеспечение независимости прикладных взаимодействующих объектов от использования конкретного синтаксиса (кодирования) передаваемой информации.

Функции представительного уровня:

  • запрос установления сеанса;
  • выбор синтаксиса;
  • согласование и повторное согласование синтаксиса;
  • преобразование синтаксиса;
  • передача данных;
  • запрос завершения сеанса.

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

При необходимости представительный уровень осуществляет трансляцию между множеством форматов представления информации путем использования общего формата представления информации.

На представительном уровне обеспечивается общее представление данных, используемых между прикладными объектами. Таким образом обеспечивается независимость прикладных объектов от используемого синтаксиса (т. е. правил кодирования передаваемой информации). Синтаксическая независимость может быть достигнута двумя способами:

  1. Представительный уровень обеспечивает общие синтаксические элементы, используемые прикладными объектами;
  2. Прикладные объекты могут использовать любой синтаксис, а на представительном уровне в этом случае осуществляется преобразование между различными формами синтаксиса и общим синтаксисом, необходимым для связи между прикладными объектами. Это преобразование выполняется в открытой системе прозрачно для других открытых систем и поэтому не оказывает влияния на стандартизацию протоколов представительного уровня.

В среде взаимодействия открытых систем не существует единого синтаксиса передачи данных. Используемый в представительном соединении синтаксис передачи согласовывается между взаимодействующими представительными объектами. Для представительного объекта необходимо определить как синтаксис соответствующего прикладного объекта, так и согласованный синтаксис передачи. Для протокола представительного уровня необходимо задать только синтаксис передачи.

Для удовлетворения требований прикладных объектов на представительном уровне может использоваться любой синтаксис передачи, подходящий для этой цели. Для достижения других целей (например, уменьшения объема данных, включающего снижение стоимости передачи) может производиться преобразование синтаксиса.

Прикладной уровень является границей между процессами сети и прикладными (пользовательскими) процессами.

Назначение прикладного уровня - обеспечить доступ прикладных процессов к среде передачи информации для обеспечения их взаимодействия при решении общей задачи.

Функции прикладного уровня:

  • идентификация партнеров, предполагающих взаимодействовать (например, с помощью имен, адресов, описаний);
  • определение текущей готовности партнеров, предполагающих взаимодействовать;
  • установление полномочий для передачи;
  • согласование механизма секретности;
  • аутентификация партнеров, предполагающих взаимодействовать;
  • определение методологии назначения цен, достаточности ресурсов, приемлемого качества обслуживания (например, времени ответа, подходящего уровня ошибок);
  • синхронизация взаимодействующих приложений;
  • выбор дисциплины диалога, включающей процедуры инициализации и завершения;
  • передача прикладных данных;
  • согласование ответственности за обнаружение ошибок и процедур управления целостностью данных;
  • идентификация ограничений по синтаксису данных (множество символов, структуры данных).

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

Прикладной уровень содержит все функции, отсутствующие на более низких уровнях, но необходимые для взаимодействия открытых систем. Когда предполагается взаимодействие конкретных экземпляров прикладных процессов, процесс-инициатор вызывает экземпляр прикладного объекта своей открытой системы. Затем устанавливается ответственность этого экземпляра прикладного объекта за установление соединения с экземпляром прикладного объекта открытой системы-получателя. Этот процесс осуществляется путем вызова экземпляров объектов на нижних уровнях. После установления соединения между прикладными объектами прикладные процессы могут взаимодействовать.

Прикладной объект состоит из элемента пользователя и элемента прикладной службы. Выделяются два типа элементов прикладной службы:

Прикладной уровень определяет сетевые прикладные программы, которые обслуживают файлы. Многие сетевые программы-утилиты являются частью прикладного уровня.

1. Два важных протокола на транспортном уровне


  1. Протокол пользовательских датаграмм UDP ( User Datagram Protocol )
  2. Протокол управления передачей TCP ( Transmission Controll Protocol )

2. Номер порта транспортного уровня.

3. Протокол пользовательских дейтаграмм UDP.

UDP только добавляет к службе дейтаграмм IP функции мультиплексирования, демультиплексирования и обнаружения ошибок.

3.1 Возможности UDP


3.2 Формат заголовка UDP



Первая часть всего 8 байт

3.3 Контрольная сумма UDP


  1. Перед дейтаграммой пользователя UDP должен быть добавлен 12-байтовый псевдозаголовок. При вычислении контрольной суммы он временно добавляется перед UDP. Псевдозаголовок не загружается и не передается.
  2. Контрольная сумма UDP предназначена для совместной проверки заголовка и части данных.Используя несколько 16-разрядных слов обработки двоичного дополнения, при отсутствии ошибки результат равен 1. Это отличается от контрольной суммы IP.

4. Протокол управления передачей TCP.

4.1 Возможности TCP


  1. Протокол транспортного уровня с установлением соединения : Перед использованием TCP необходимо установить TCP-соединение.
  2. Связь точка-точка : Каждый протокол TCP может иметь только две конечные точки.
  3. Надежный сервис : Данные подключены через TCP, без ошибок, без потерь, без дублирования и поступают в порядке.
  4. Полнодуплексная связь : Разрешить процессам обеих сторон отправлять данные в любое время после TCP-соединения Оба конца TCP-соединения имеют буфер отправки и буфер приема для временного хранения данных для двусторонней связи.
  5. Ориентирован на байтовый поток : Поток Относится к последовательности байтов в процессе и из него.

4.2 TCP-соединение

4.2.1 TCP и сокеты
  1. TCP Ставить связь Так как Самая простая абстракция .
  2. Конечная точка TCP называется сокетом (номер порта сокета соединяется с IP-адресом).
  3. Socket: socket -> номер порта соединяется с IP-адресом, который представляет собой IP-адрес в десятичной дроби, а номер порта записывается и разделяется двоеточием, например 192.168.1.5: 80.
  4. Socket socket = (IP-адрес: номер порта)
  5. TCP-соединение :: = =

4.3 Принцип надежной передачи

4.3.1 Прекратить ожидание протокола


4.3.2 Протокол непрерывного ARQ


  1. смысл : Все 5 пакетов в окне отправки могут отправляться непрерывно, не дожидаясь подтверждения другой стороны.Получатель использует метод кумулятивного подтверждения.
  2. Недостаток : Невозможно передать отправителю информацию обо всех пакетах, которые получатель получил правильно.

4.4 Формат заголовка сегмента TCP

5. Реализация надежной передачи TCP.

5.1 Скользящее окно в байтах





быть осторожен :

  1. В то же время окно отправки отправителя и окно приема получателя не всегда имеют одинаковый размер, что зависит от сетевой среды.
  2. TCP обычно временно буферизует данные, которые поступают не по порядку в окне приема, и ожидает получения недостающих байтов в потоке байтов, прежде чем доставить их по порядку на уровень приложения.
  3. TCP требует, чтобы получатель имел функцию накопления подтверждений и отправки подтверждений, когда это необходимо.


5.2 Выбор времени для тайм-аута повторной передачи

5.3 Выберите для подтверждения SACK

  1. В основном для обработки прерывистой сегментной передачи
  2. Чтобы использовать SACK подтверждения выбора, при установлении TCP-соединения добавьте его к параметрам в заголовке TCP, и обе стороны должны согласовать заранее.
  3. Длина опции заголовка TCP составляет до 40 байтов, поэтому может быть указана информация о границах максимум из 4-х байтовых блоков, всего 8 границ.
  4. Большинство по-прежнему повторно передали все неподтвержденные блоки данных.

6. Управление потоком TCP

Пусть скорость отправки отправителя не будет слишком высокой, чтобы получатель мог получить вовремя. Контроль двухточечной связи - это сквозная проблема.

6.1 Использование скользящего окна для управления потоком

6.2 Эффективность передачи TCP

Когда отправлять TCP

  1. Алгоритм Нэгла :
  2. Синдром запутанного окна :
  3. Объедините два.

7. Контроль перегрузки TCP

скопление : Спрос на определенный ресурс в сети превышает доступную часть, которую ресурс может предоставить, и производительность сети ухудшится.

7.1 Принципы контроля перегрузки

  1. Контроль перегрузки : Предотвращение попадания слишком большого количества данных в сеть, чтобы маршруты и ссылки в сети не были перегружены.Этот процесс является глобальным.
  2. Управление без обратной связи : Когда сеть задействована, факторы, которые могут вызвать перегрузку, рассматриваются заранее, и сеть работает усиленно, но не может быть изменена в середине.
  3. Замкнутый контур управления : Основано на концепции обратной связи.

7.2 Методы контроля перегрузки

Четыре алгоритма контроля перегрузки TCP

  1. Медленный старт .
  2. Предотвращение перегрузки .
  3. Быстрая ретрансляция .
  4. Быстрое восстановление .


7.2.1 Медленный запуск и избежание перегрузок

Основанием для оценки перегрузки сети является тайм-аут.Для предотвращения окна перегрузки также необходимо установить переменную порогового состояния медленного старта.

Принцип алгоритма медленного старта : После каждого раунда передачи значение окна перегрузки удваивается.
Принципы алгоритма предотвращения перегрузки : Позвольте окну перегрузки медленно увеличиваться, и увеличивайте окно перегрузки отправителя на +1 после каждого RTT, вместо того, чтобы удваивать стадию медленного старта.
Обработка тайм-аута перегрузки : После того, как отправитель определяет, что сеть перегружена, порог медленного старта устанавливается равным половине окна перегрузки, а окно перегрузки начинается с 1. Переходит в стадию медленного старта.

Использование порога медленного старта :

  1. Когда значение окна перегрузки порога медленного старта, используйте алгоритм предотвращения перегрузки;
  2. Когда значение окна перегрузки> порога медленного старта, можно использовать как алгоритм медленного старта, так и алгоритм предотвращения перегрузки;
  1. После того, как происходит быстрая повторная передача, этап медленного запуска не начинается, но выполняется этап быстрого восстановления.
  2. В это время отправитель настраивает пороговое значение на половину окна перегрузки, устанавливает значение окна перегрузки равным пороговому значению и выполняет алгоритм предотвращения перегрузки.

Верхний предел окна отправителя = Мин [значение окна получателя, значение окна перегрузки];


7.2.2 Активное управление очередью AQM

Влияние сетевого уровня --- глобальная синхронизация

Активное управление очередью AQM :

  1. Чтобы решить Глобальная синхронизация проблема.
  2. Когда пара маршрутизации достигает определенного значения предупреждения, продолжайте Стратегия падения хвоста , Запускает медленный запуск частичной отправки.

8. Управление транспортным соединением TCP.

8.1 Установление TCP-соединения

Руководство по стеку протоколов TCP/IP для начинающих

Cтек протоколов TCP/IP широко распространен. Он используется в качестве основы для глобальной сети интернет. Разбираемся в основных понятиях и принципах работы стека.

Основы TCP/IP

Стек протоколов TCP/IP (Transmission Control Protocol/Internet Protocol, протокол управления передачей/протокол интернета) — сетевая модель, описывающая процесс передачи цифровых данных. Она названа по двум главным протоколам, по этой модели построена глобальная сеть — интернет. Сейчас это кажется невероятным, но в 1970-х информация не могла быть передана из одной сети в другую, с целью обеспечить такую возможность был разработан стек интернет-протоколов также известный как TCP/IP.

Разработкой этих протоколов занималось Министерство обороны США, поэтому иногда модель TCP/IP называют DoD (Department of Defence) модель. Если вы знакомы с моделью OSI, то вам будет проще понять построение модели TCP/IP, потому что обе модели имеют деление на уровни, внутри которых действуют определенные протоколы и выполняются собственные функции. Мы разделили статью на смысловые части, чтобы было проще понять, как устроена модель TCP/IP:


Уровневая модель TCP/IP

Три верхних уровня — прикладной, транспортный и сетевой — присутствуют как в RFC, так и у Таненбаума и других авторов. А вот стоит ли говорить только о канальном или о канальном и физическом уровнях — нет единого мнения. В RFC они объединены, поскольку выполняют одну функцию. В статье мы придерживаемся официального интернет-стандарта RFC и не выделяем физический уровень в отдельный. Далее мы рассмотрим четыре уровня модели.

Канальный уровень (link layer)

Предназначение канального уровня — дать описание тому, как происходит обмен информацией на уровне сетевых устройств, определить, как информация будет передаваться от одного устройства к другому. Информация здесь кодируется, делится на пакеты и отправляется по нужному каналу, т.е. среде передачи.

Этот уровень также вычисляет максимальное расстояние, на которое пакеты возможно передать, частоту сигнала, задержку ответа и т.д. Все это — физические свойства среды передачи информации. На канальном уровне самым распространенным протоколом является Ethernet, но мы рассмотрим его на примере в конце статьи.

Межсетевой уровень (internet layer)

Каждая индивидуальная сеть называется локальной, глобальная сеть интернет позволяет объединить все локальные сети. За объединение локальных сетей в глобальную отвечает сетевой уровень. Он регламентирует передачу информации по множеству локальных сетей, благодаря чему открывается возможность взаимодействия разных сетей.

Межсетевое взаимодействие — это основной принцип построения интернета. Локальные сети по всему миру объединены в глобальную, а передачу данных между этими сетями осуществляют магистральные и пограничные маршрутизаторы.

Маска подсети и IP-адреса


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

Протокол интернета — IP (Internet Protocol) используется маршрутизатором, чтобы определить, к какой подсети принадлежит получатель. Свой уникальный IP-адрес есть у каждого сетевого устройства, при этом в глобальной сети не может существовать два устройства с одинаковым IP. Он имеет два подвида, первым был принят IPv4 (IP version 4, версии 4) в 1983 году.

IPv4 предусматривает назначение каждому устройству 32-битного IP-адреса, что ограничивало максимально возможное число уникальных адресов 4 миллиардами (2 32 ). В более привычном для человека десятичном виде IPv4 выглядит как четыре блока (октета) чисел от 0 до 255, разделенных тремя точками. Первый октет IP-адреса означает его класс, классов всего 4: A, B, C, D.

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

Так как IPv6 адреса длинные, их разрешается сокращать по следующим правилам: ведущие нули допускается опускать, например в адресе выше :00FF: позволяется записывать как :FF:, группы нулей, идущие подряд тоже допустимо сокращать и заменять на двойное двоеточие, например, 2DAB:FFFF::01AA:00FF:DD72:2C4A. Допускается делать не больше одного подобного сокращения в адресе IPv6.

IP предназначен для определения адресата и доставки ему информации, он предоставляет услугу для вышестоящих уровней, но не гарантирует целостность доставляемой информации.

ICMP и IGMP


ICMP никогда не вызывается сетевыми приложениями пользователя, кроме случаев диагностики сети, к примеру, пинг (ping) или traceroute (tracert). ICMP не передает данные, это отличает его от транспортных TCP и UDP, расположенных на L3, которые переносят любые данные. ICMP работает только с IP четвертой версии, с IPv6 взаимодействует ICMPv6.

Сетевые устройства объединяются в группы при помощи IGMP, используемый хостами и роутерами в IPv4 сетях. IGMP организует multicast-передачу информации, что позволяет сетям направлять информацию только хостам, запросившим ее. Это удобно для онлайн-игр или потоковой передаче мультимедиа. IGMP используется только в IPv4 сетях, в сетях IPv6 используется MLD (Multicast Listener Discovery, протокол поиска групповых слушателей), инкапсулированный в ICMPv6.

Транспортный уровень (transport layer)

Постоянные резиденты транспортного уровня — протоколы TCP и UDP, они занимаются доставкой информации.

TCP (протокол управления передачей) — надежный, он обеспечивает передачу информации, проверяя дошла ли она, насколько полным является объем полученной информации и т.д. TCP дает возможность двум хостам производить обмен пакетами через установку соединения. Он предоставляет услугу для приложений, повторно запрашивает потерянную информацию, устраняет дублирующие пакеты, регулируя загруженность сети. TCP гарантирует получение и сборку информации у адресата в правильном порядке.

UDP (протокол пользовательских датаграмм) — ненадежный, он занимается передачей автономных датаграмм. UDP не гарантирует, что всех датаграммы дойдут до получателя. Датаграммы уже содержат всю необходимую информацию, чтобы дойти до получателя, но они все равно могут быть потеряны или доставлены в порядке отличном от порядка при отправлении.

UDP обычно не используется, если требуется надежная передача информации. Использовать UDP имеет смысл там, где потеря части информации не будет критичной для приложения, например, в видеоиграх или потоковой передаче видео. UDP необходим, когда делать повторный запрос сложно или неоправданно по каким-то причинам.

Протоколы L3 не интерпретируют информацию, полученную с верхнего или нижних уровней, они служат только как канал передачи, но есть исключения. RSVP (Resource Reservation Protocol, протокол резервирования сетевых ресурсов) может использоваться, например, роутерами или сетевыми экранами в целях анализа трафика и принятия решений о его передаче или отклонении в зависимости от содержимого.

Прикладной уровень (application layer)

В модели TCP/IP отсутствуют дополнительные промежуточные уровни (представления и сеансовый) в отличие от OSI. Функции форматирования и представления данных делегированы библиотекам и программным интерфейсам приложений (API) — своего рода базам знаний. Когда службы или приложения обращаются к библиотеке или API, те в ответ предоставляют набор действий, необходимых для выполнения задачи и полную инструкцию, каким образом эти действия нужно выполнять.

Зачем нужен порт и что означает термин сокет

IP присваивается каждому компьютеру межсетевым уровнем, но обмен данными происходит не между компьютерами, а между приложениями, установленными на них. Чтобы получить доступ к тому или иному сетевому приложению недостаточно только IP, для идентификации приложений применяют порты. Комбинация IP-адреса и порта называется сокетом или гнездом (socket). Поэтому обмен информацией происходит между сокетами. Нередко слово сокет употребляют как синоним для хоста или пользователя, также сокетом называют гнездо подключения процессора.

Из привилегий у приложений на прикладном уровне можно выделить наличие собственных протоколов для обмена данными, а также фиксированный номер порта для обращения к сети. Администрация адресного пространства интернет (IANA), занимающаяся выделением диапазонов IP-адресов, отвечает еще за назначение сетевым приложениям портов.


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

Стек протоколов, снова канальный уровень

После ознакомления с уровневой структурой модели становится понятно, что информация не может передаваться между двумя компьютерами напрямую. Сначала кадры передаются на межсетевой уровень, где компьютеру отправителя и компьютеру получателя назначается уникальный IP. После чего, на транспортном уровне, информация передается в виде TCP-фреймов либо UDP-датаграмм.

На каждом этапе, подобно снежному кому, к уже имеющейся информации добавляется служебная информация, например, порт на прикладном уровне, необходимый для идентификации сетевого приложения. Добавление служебной информации к основной обеспечивают разные протоколы — сначала Ethernet, поверх него IP, еще выше TCP, над ним порт, означающий приложение с делегированным ему протоколом. Такая вложенность называется стеком, названным TCP/IP по двум главным протоколам модели.

Point-to-Point протоколы


Отдельно расскажем о Point-to-Point (от точки к точке, двухточечный) протоколе также известном как PPP. PPP уникален по своим функциям, он применяется для коммуникации между двумя маршрутизаторами без участия хоста или какой-либо сетевой структуры в промежутке. При необходимости, PPP обеспечивает аутентификацию, шифрование, а также сжатие данных. Он широко используется при построении физических сетей, например, кабельных телефонных, сотовых телефонных, сетей по кабелю последовательной передачи и транк-линий (когда один маршрутизатор подключают к другому для увеличения размера сети).

У PPP есть два подвида — PPPoE (PPP по Ethernet) и PPPoA (PPP через асинхронный способ передачи данных — ATM), интернет-провайдеры часто их используют для DSL соединений.

PPP и его старший аналог SLIP (протокол последовательной межсетевой связи) формально относятся к межсетевому уровню TCP/IP, но в силу особого принципа работы, иногда выделяются в отдельную категорию. Преимущество PPP в том, что для установки соединения не требуется сетевая инфраструктура, а необходимость маршрутизаторов отпадает. Эти факторы обуславливают специфику использования PPP протоколов.

Заключение

Стек TCP/IP регламентирует взаимодействие разных уровней. Ключевым понятием в здесь являются протоколы, формирующие стек, встраиваясь друг в друга с целью передать данные. Рассмотренная модель по сравнению с OSI имеет более простую архитектуру.

Сама модель остается неизменной, в то время как стандарты протоколов могут обновляться, что еще дальше упрощает работу с TCP/IP. Благодаря всем преимуществам стек TCP/IP получил широкое распространение и использовался сначала в качестве основы для создания глобальной сети, а после для описания работы интернета.

Читайте также: