stringtranslate.com

Протокол туннелирования GPRS

GPRS Tunnelling Protocol ( GTP ) — это группа протоколов связи на основе IP , используемых для передачи пакетной радиосвязи общего назначения (GPRS) в сетях GSM , UMTS , LTE и 5G NR . В архитектурах 3GPP интерфейсы на основе GTP и Proxy Mobile IPv6 указаны в различных точках интерфейса.

GTP можно разложить на отдельные протоколы: GTP-C, GTP-U и GTP' .

GTP-C используется в базовой сети GPRS для сигнализации между узлами поддержки шлюза GPRS (GGSN) и узлами поддержки обслуживания GPRS (SGSN). Это позволяет SGSN активировать сеанс от имени пользователя ( активация контекста PDP ), деактивировать тот же сеанс, настраивать параметры качества обслуживания или обновлять сеанс для абонента, который только что прибыл с другого SGSN.

GTP-U используется для передачи пользовательских данных в пределах базовой сети GPRS и между сетью радиодоступа и базовой сетью. Передаваемые пользовательские данные могут быть пакетами в любом из форматов IPv4 , IPv6 или PPP .

GTP' ( GTP prime ) использует ту же структуру сообщений, что и GTP-C и GTP-U, но имеет независимую функцию. Он может использоваться для переноса данных о тарификации из функции данных о тарификации (CDF) сети GSM или UMTS в функцию шлюза тарификации (CGF). В большинстве случаев это должно означать передачу данных от многих отдельных сетевых элементов, таких как GGSN, на централизованный компьютер, который более удобно доставляет данные о тарификации в центр выставления счетов оператора сети.

Различные варианты GTP реализуются RNC, SGSN, GGSN и CGF в сетях 3GPP. Мобильные станции GPRS (MS) подключаются к SGSN, не зная о GTP.

GTP можно использовать с UDP или TCP . UDP рекомендуется или обязателен, за исключением туннелирования X.25 в версии 0. GTP версии 1 используется только в UDP.

Общие характеристики

Все варианты GTP имеют некоторые общие черты. Структура сообщений одинакова, с заголовком GTP, следующим за заголовком UDP/TCP.

Заголовок

GTP версия 1

Заголовки GTPv1 содержат следующие поля: [1]

Версия
Это 3-битное поле. Для GTPv1 оно имеет значение 1.
Тип протокола (PT)
1-битное значение, которое отличает GTP (значение 1) от GTP' (значение 0).
Сдержанный
1-битное зарезервированное поле (должно быть 0).
Флаг заголовка расширения (E)
1-битное значение, указывающее, имеется ли необязательное поле заголовка расширения.
Флаг порядкового номера (S)
1-битное значение, указывающее, есть ли необязательное поле «Порядковый номер».
Флаг номера N-PDU (PN)
1-битное значение, указывающее, имеется ли необязательное поле номера N-PDU.
Тип сообщения
8-битное поле, указывающее тип сообщения GTP. Различные типы сообщений определены в 3GPP TS 29.060, раздел 7.1
Длина сообщения
16-битное поле, указывающее длину полезной нагрузки в байтах (остальная часть пакета после обязательного 8-байтового заголовка GTP). Включает необязательные поля.
Идентификатор конечной точки туннеля (TEID)
32-битное (4-октетное) поле, используемое для мультиплексирования различных соединений в одном туннеле GTP.
Порядковый номер
(необязательное) 16-битное поле. Это поле существует, если любой из битов E, S или PN включен. Поле должно интерпретироваться только если включен бит S.
Номер N-PDU
(необязательное) 8-битное поле. Это поле существует, если любой из битов E, S или PN включен. Поле должно интерпретироваться только если включен бит PN.
Следующий тип заголовка расширения
(необязательное) 8-битное поле. Это поле существует, если любой из битов E, S или PN включен. Поле должно интерпретироваться только если включен бит E.

Далее следуют заголовки расширения:

Длина удлинителя
8-битное поле. Это поле указывает длину этого заголовка расширения, включая длину, содержимое и следующее поле заголовка расширения, в 4-октетных единицах, поэтому длина расширения всегда должна быть кратна 4.
Содержание
содержимое заголовка расширения.
Следующий заголовок расширения
8-битное поле. Оно указывает тип следующего расширения или 0, если следующего расширения не существует. Это позволяет объединять несколько заголовков следующего расширения.

GTP версия 2

Он также известен как evolved-GTP или eGTP. Заголовки GTPv2-C содержат следующие поля: [2]

Протокола GTPv2-U нет, GTP-U в LTE также использует GTPv1-U.

Версия
Это 3-битное поле. Для GTPv2 оно имеет значение 2.
Флаг, несущий на себе
Если этот бит установлен в 1, то в конце текущего сообщения будет присутствовать другое сообщение GTP-C с собственным заголовком. Существуют ограничения относительно того, какой тип сообщения может быть совмещен в зависимости от того, каким является сообщение GTP-C верхнего уровня.
Флаг TEID
Если этот бит установлен в 1, то поле TEID будет присутствовать между длиной сообщения и порядковым номером. Все сообщения, кроме Echo и Echo reply, требуют присутствия TEID.
Длина сообщения
Это поле должно указывать длину сообщения в октетах, исключая обязательный заголовок GTP-C (первые 4 октета). TEID (если присутствует) и порядковый номер должны быть включены в подсчет длины.

Механизмы связи

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

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

Помимо двух ранее упомянутых сообщений, нет других сообщений, общих для всех вариантов GTP [3], что означает, что по большей части они фактически образуют три совершенно отдельных протокола.

ГТФ-С - контроль ГТФ

Протокол GTP-C является разделом управления стандарта GTP. Когда подписчик запрашивает контекст PDP , SGSN отправляет сообщение GTP-C запроса создания контекста PDP в GGSN, содержащее сведения о запросе подписчика. Затем GGSN отвечает сообщением GTP-C ответа создания контекста PDP , которое либо содержит сведения о фактически активированном контексте PDP, либо указывает на сбой и указывает причину этого сбоя. Это сообщение UDP на порту 2123.

Протокол eGTP-C (или GTPv2-C) отвечает за создание, поддержку и удаление туннелей на нескольких интерфейсах Sx. Он используется для управления путями плоскости управления, управления туннелями и управления мобильностью. Он также управляет пересылкой сообщений о перемещении; контекстом SRNS и созданием прямых туннелей во время хэндоверов между LTE.

GTP-U — туннелирование пользовательских данных GTP

GTP-U, по сути, является относительно простым протоколом туннелирования на основе IP, который допускает множество туннелей между каждым набором конечных точек. При использовании в UMTS каждый абонент будет иметь один или несколько туннелей, по одному для каждого контекста PDP, который у них активен, а также, возможно, иметь отдельные туннели для определенных соединений с различными требованиями к качеству обслуживания.

Отдельные туннели идентифицируются TEID (Tunnel Endpoint Identifier) ​​в сообщениях GTP-U, который должен быть динамически назначаемым случайным числом. Если это случайное число имеет криптографическое качество, то оно обеспечит меру безопасности от определенных атак. Тем не менее, требование стандарта 3GPP заключается в том, что весь трафик GTP, включая пользовательские данные, должен отправляться в защищенных частных сетях, а не напрямую подключенных к Интернету. Это происходит на порту UDP 2152.

Протокол GTPv1-U используется для обмена пользовательскими данными по туннелям GTP через интерфейсы Sx. IP-пакет для UE (конечной точки пользователя) инкапсулируется в пакет GTPv1-U и туннелируется между P-GW и eNodeB для передачи относительно UE через интерфейсы S1-U и S5/S8.

GTP' - передача заряда

Протокол GTP' используется для передачи данных о зарядке в функцию шлюза зарядки. GTP' использует порт TCP/UDP 3386.

В базовой сети GPRS

GTP — это основной протокол, используемый в базовой сети GPRS. Это протокол, который позволяет конечным пользователям сетей GSM или UMTS перемещаться с места на место, продолжая при этом подключаться к Интернету, как будто из одного места в GGSN. Он делает это, перенося данные абонента из текущего SGSN абонента в GGSN, который обрабатывает сеанс абонента. Базовая сеть GPRS использует три формы GTP.

Узел GGSN и узел SGSN (совместно именуемые узлами GSN) прослушивают сообщения GTP-C на порту UDP 2123 и сообщения GTP-U на порту 2152. Это взаимодействие происходит в пределах одной сети или, в случае международного роуминга, может происходить на международном уровне, вероятно, через GPRS-роуминговую станцию ​​(GRX).

Функция шлюза зарядки (CGF) прослушивает сообщения GTP, отправленные от GSN на порт TCP/UDP 3386. Основная сеть отправляет информацию о зарядке в CGF, обычно включая время активации контекста PDP и количество данных, переданных конечным пользователем. Однако эта коммуникация, которая происходит в пределах одной сети, менее стандартизирована и может, в зависимости от поставщика и параметров конфигурации, использовать фирменное кодирование или даже полностью фирменную систему.

Использование интерфейса IuPS

GTP-U используется в IuPS между базовой сетью GPRS и RAN, однако протокол GTP-C не используется. В этом случае RANAP используется в качестве протокола управления и устанавливает туннели GTP-U между SGSN и контроллером радиосети (RNC).

Стек протоколов

GTP можно использовать с UDP или TCP . GTP версии 1 используется только на UDP.

По состоянию на 2018 год определены три версии: версии 0, 1 и 2. Версии 0 и 1 значительно различаются по структуре. В версии 0 протокол сигнализации (протокол, который устанавливает туннели путем активации контекста PDP) объединен с протоколом туннелирования на одном порту. Версии 1 и 2 фактически представляют собой два протокола: один для управления (называемый GTP-C) и один для туннелирования пользовательских данных (называемый GTP-U). Версия GTP 2 отличается от версии 1 только в GTP-C. Это связано с тем, что 3GPP определяет улучшения GTP-C для EPS в версии 2 для улучшения обработки носителя.

GTP-U также используется для передачи пользовательских данных от RNC к SGSN в сетях UMTS. Однако в этом случае сигнализация осуществляется с использованием RANAP вместо GTP-C.

Исторические версии GTP

Первоначальная версия GTP (версия 0) имела существенные отличия от текущих версий (версии 1,2):

Неслучайный TEID в версии 0 представлял собой проблему безопасности, если злоумышленник имел доступ к сети любого партнера по роумингу или мог найти другой способ удаленной отправки пакетов в магистраль GPRS. Версия 0 выходит из употребления и заменяется версией 1 почти во всех сетях. К счастью, однако, использование различных номеров портов позволяет легко блокировать версию 0 с помощью простых списков доступа IP.

Стандартизация GTP

GTP изначально был стандартизирован в ETSI (стандарт GSM 09.60 [4] ). С созданием стандартов UMTS он был перемещен в 3GPP , который с 2005 года поддерживает его как стандарт 3GPP 29.060. [5] GTP использует тот же формат сообщения, но его особые применения охвачены стандартом 32.295 вместе со стандартизированными форматами для данных о тарификации, которые он передает.

Более поздние версии TS 29.060 исключают поддержку взаимодействия GTPv1/v0 [6], так что нет возможности отката в случае, если GSN не поддерживает более высокую версию.

GTPv2 (для расширенных пакетных служб) был представлен в черновике в начале 2008 года и выпущен в декабре того же года. GTPv2 предлагает откат к GTPv1 через более ранний механизм «Версия не поддерживается», но явно не предлагает поддержки отката к GTPv0.

Смотрите также

Примечания

  1. ^ 3GPP TS 29.060 раздел 6
  2. ^ 3GPP TS 29.274 раздел 5
  3. ^ 3GPP TS 29.060 раздел 7
  4. ^ "3GPP TS 09.60 версия 7.10.0 выпуск 1998" (PDF) . etsi.org .
  5. ^ "3GPP TS 29.060 v16.0.0" (PDF) . etsi.org .
  6. ^ "3GPP TS 29.060 v16.0.0 Раздел 4.2" (PDF) . etsi.org .

Ссылки

Внешние ссылки