Рубрика:
Карьера/Образование /
Пятая пара
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
ОЛЕГ РУДЗЕЙТ, студент группы информатики и вычислительной техники, кафедра информационных систем управления, ДВФУ, Владивосток, rudzeyt18@mail.ru
АННА СМЫШЛЯЕВА, студентка группы информатики и вычислительной техникиа, кафедра информационных систем управления, ДВФУ, Владивосток, AnyaC957@mail.ru
SCTP: надстройка протокола TCP для улучшения эффективности его работы
Переход от протокола TCP к протоколу SCTP будет наименее безболезненным потому, что многие функции TCP поддерживаются и в SCTP
В настоящее время очень популярным протоколом передачи данных в сети Интернет является TCP/IP, который гарантирует надежную передачу пакетов между двумя участниками интернет-соединения. Из-за своей давней разработки данный протокол является устаревающим, т.к. какой бы ширины ни был канал передачи данных, протокол TCP/IP не способен полностью его загрузить по причине потери пакетов в результате различных физических явлений и ихпостоянных переотправлений.
Описание протокола TCP/IP
В 70-х годах ХХ века потребовалось создать протокол, который смог бы безопасно передавать данные. Поэтому при создании TCP все усилия были направлены на создание механизма надежной, а не скоростной передачи. В те годы не было мобильных и спутниковых сетей, а единственный трансатлантический канал из США в Европу имел скорость 64 Кбит/с. TCP был разработан так, чтобы скорость передачи данных была обратно пропорциональна расстоянию между двумя конечными точками. В случае потери пакетов TCP считает, что канал перегружен, и самостоятельно уменьшает скорость передачи. Производительность TCP снижается с ростом расстояния между конечными точками и из-за низкого качества сети [1]. Чем больше расстояние, тем больше задержка и ниже скорость передачи. Маршрутизатору требуется время на обработку пакета, а если роутер настроен неправильно или перегружен, передаваемые пакеты могут быть утеряны. Чем больше пакетов утрачено, тем более затратной по времени становится передача. На рис. 1 показано, что TCP имеет хорошую производительность в локальных сетях относительно доступной пропускной способности сети, ночем больше время задержки и потеря пакетов, тем ниже будет производительность передачи данных. Также производительность протокола не растет с увеличением канала.
Рисунок 1. Производительность TCP/IP
Количество пакетов, которые может отправить TCP в момент времени, определяется механизмом под названием «окно TCP» (TCP Sliding Window). Окно TCP регулируется алгоритмом предотвращения перегрузки AIMD (Adaptive Increase Multiplicative Decrease) и контролем передачи (Flow Control), регулируя скорость отправки пакетов. Благодаря этому TCP может быть «уверен» в том, что пакеты отправляются не быстрее, чем их может принять получатель.
В случае обнаружения потери пакета/подтверждения отправитель, используя AIMD-алгоритм, уменьшает размер окна TCP либо вдвое, либо до нуля. Если представить скорость передачи протокола TCP в виде графика (см. рис. 2), получится «пилообразная» функция.
Рисунок 2. Размер окна передачи данных
Протокол SCTP
SCTP создает двустороннюю ассоциацию между двумя конечными точками и дает возможность работы с несколькими потоками каждой паре конечных точек, а также обеспечивает поддержку концепции многоинтерфейсного узла натранспортном уровне [2] (см. рис. 3).
Рисунок 3. Концепция многоинтерфейсного узла
Сервисы, предоставляемые SCTP, имеют много общего с сервисами TCP и UDP. Протокол SCTP описывается в RFC 4960 [3]. Несмотря на принципиальную разницу между SCTP и TCP, для приложения интерфейс «точка – точка» почти ничем не отличается от интерфейса TCP. Подобно TCP, протокол SCTP обеспечивает приложениям, взаимодействующим по IP-сети, транспортную службу с гарантией доставки и сохранением порядка следования пакетов.
Протокол унаследовал многие функции, разработанные для TCP, а именно возможность контроля перегрузки и восстановления утерянных пакетов. В действительности любое приложение, работающее по протоколу TCP, можно перевести на SCTP без потери функциональности.
Соединение по протоколу SCTP между клиентом и сервером называется ассоциацией, так как это многопотоковый протокол, позволяющий задать несколько IP-адресов и один порт для каждой стороны соединения (см. рис. 4).
Рисунок 4. Ассоциация протокола SCTP
Наличие у конечной точки нескольких IP-адресов позволяет обеспечить дополнительную устойчивость в случае отказа сети и уменьшить задержки. Для сокращения задержек, вызванных переключением с первичного направления наальтернативные, используется механизм контроля работоспособности. Пока идет передача данных по первичному направлению, протокол SCTP посылает пакеты контроля работоспособности на адреса, находящиеся в режиме ожидания.
В отличие от TCP протокол SCTP ориентирован не на поток байтов, а на сообщения. Он обеспечивает упорядоченную доставку данных и сохраняет границы сообщений в пакетах приложения, размещая сообщения в одной или нескольких структурах данных SCTP, называемых фрагментами. Несколько сообщений могут объединяться в один фрагмент, а длинное сообщение может быть сегментировано. Благодаря этому свойству устраняется возможная блокировка линии типа head-of-line, присущая протоколу TCP, так как утрата сообщения в одном из потоков не блокирует доставку сообщений по другим. С помощью SCTP приложения могут использовать различные модели доставки, в том числе строгий порядок передачи (как TCP), частичное упорядочивание (по потокам) и неупорядоченную доставку (как UDP). Для восстановления утраченных пакетов используется схема выборочного подтверждения, унаследованная из TCP. Поддерживая обратную связь с отправителем, приемник SCTP сообщает, какие пакеты необходимо отсылать повторно, если они были утеряны. Для контроля перегрузки используются стандартные методики: медленный старт, предотвращение перегрузки и быстрая повторная передача.
SCTP лишен двух особенностей TCP. Одна из них – состояние неполного закрытия соединения на своей стороне, которое возникает, когда приложение закрывает свой конец соединения, но разрешает встречной стороне отправлять данные ипринимает их. Также не поддерживается обработка внеочередных данных. Для доставки срочных данных в SCTP можно использовать отдельный поток, хотя это и не позволяет в точности воспроизвести поведение TCP в данной ситуации.
Заключение
Протокол SCTP является эволюционным продолжением протокола TCP, который обеспечивает надежность передачи, но помимо этого он позволяет задавать границы сообщений, обеспечивает поддержку множественной адресации натранспортном уровне и предлагает расширенные возможности этого уровня, выходящие за рамки тех, которые могут сейчас предоставить TCP и UDP.
Также переход от протокола TCP к протоколу SCTP будет наименее безболезненным потому, что многие функции TCP поддерживаются и в SCTP: уведомление о приеме, повторная передача утерянных данных, сохранение последовательности данных, оконное управление передачей и др.
- Кручинин С.В. Стеки сетевых технологий TCP/IP и OSI/ISO//Вопросы науки. – 2015. – Т. 3. – С. 145-147.
- [Электронный ресурс]. Режим доступа: https://www.ibm.com/developerworks/ru/library/l-sctp/index.html#artrelatedtopics (дата обращения: 03.01.2019).
- [Электронный ресурс]. Режим доступа: https://tools.ietf.org/html/rfc4960 (дата обращения: 05.01.2019).
- Кручинин С.В. Реализация модели OSI/ISO телекоммуникационным модулем сопряжения для MESH-сетей //Научно-исследовательские публикации, 2016, № 5. – С. 27-32.
- Кручинин С.В. Семиуровневая сетевая модель OSI/ISO и стек протоколов TCP/IP: исследование взаимоотношения и интерпретации//Научно-исследовательские публикации, 2015, № 5. – С. 115-120.
Ключевые слова: интернет, протокол, соединение.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|