Как каждый из нас подключается к мобильному интернету? В принципе, необходимо знать только три параметра: APN, логин и пароль. APN — это точка доступа, через которую абонент может подключиться к необходимой ему услуге (WAP, MMS, Internet); у наших операторов она обычно выглядит как internet..ru. Логин и пароль обычно простые: internet — internet или вроде того.
Теперь, когда мы знаем необходимые параметры, мы можем подключаться к мобильному интернету! Как же происходит эта загадочная процедура? Происходит она в два этапа:
- GPRS Attach,
- PDP Context Activation.
Рассмотрим подробнее каждый из них.
GPRS Attach
<br / В процедуре GPRS Attach телефон начинает «общаться» с пакетной сетью оператора. Происходит аутентификация и авторизация пользовательского оборудования по следующим параметрам:
- IMSI (International Mobile Subscriber Identity, индивидуальный номер абонента) — для идентификации абонента;
- ключи, хранящаяся на SIM-карте – для аутентификации абонента;
- проверка доступных абоненту сервисов (Internet, MMS, WAP) по записи в базе абонентов.
Может также проверяться IMEI (International Mobile Equipment Identity — международный идентификатор мобильного оборудования). Этот идентификатор может использоваться для проверки по спискам краденого оборудования, и если конкретный IMEI находится в списке украденных, то в доступе к сети может быть отказано, либо даже сообщено «куда следует» 🙂

- Телефон отправляет запрос активации контекста на SGSN, в котором, в числе прочего, присутствуют логин, пароль и APN.
- SGSN, получив APN, пытается разрешить его на внутреннем DNS-сервере. Сервер разрешает предоставленный APN и возвращает адрес отвечающего за данный APN GGSN.
- По этому адресу SGSN отсылает запрос на создание PDP-контекста.
- GGSN проверяет на RADIUS-сервере предоставленные логин и пароль.
- Затем получает IP-адрес для нашего телефона.
- И всю необходимую для активации PDP-контекста информацию передает обратно на SGSN.
- SGSN завершает процедуру активации, отсылая на телефон данные, необходимые для установления соединения.
По сути процедура PDP Context Activation это создание туннеля между телефоном и шлюзом в операторской сети. И вот мы уже можем заходить на любимые сайты и читать почту.
Роуминг
Немедленно возникает вопрос: как же это все работает в роуминге? Оказывается, что существует специальная сеть: GRX (Global Roaming Exchange) — сеть для обмена пакетными данными роуминговых абонентов мобильных сетей. Через нее и «бегает» весь наш трафик. Примерно вот так:

- Успешно доехав в теплые края, мы решили скачать любимый сериал. Включили телефон, начали подключаться к интернету (отправляем логин, пароль, APN).
- Зарубежный SGSN пытается разрешить предоставленный нами APN на своем DNS-сервере.
- DNS-сервер, не найдя у себя подобных записей, обращается к корневому DNS-серверу, который находится в GRX-сети.
- Корневой DNS-сервер направляет запрос к DNS-серверу в сети нашего родного оператора.
- Тот в свою очередь отвечает ему адресом нашего GGSN.
- Корневой DNS сообщает этот адрес DNS-серверу зарубежного оператора.
- Который в свою очередь сообщает этот адрес зарубежному SGSN.
- SGSN, зная адрес GGSN, направляет ему запрос на активацию PDP-контекста.
- GGSN, если соблюдены все условия (есть деньги на счету, указаны верные логин и пароль и т. д.), присылает подтверждение, SGSN его принимает и пересылает нашему телефону подтверждение на доступ в интернет.
Что же мы видим? Видим мы, что пакеты с нашим любимым сериалом бегут через полмира от нашего оператора к оператору в теплой стране. Бегут они по специальной сети, завернутые в протокол GTP. И все переговоры между спецжелезками операторов ведутся по тому же GTP.
SGSN + GGSN на коленке


Вопросы безопасности
Протокол GTP бывает нескольких типов: GTP-U используется для непосредственной упаковки и передачи пользовательских данных, GTP-C для управления сессиями (именно с его помощью осуществляется процедура PDP Context Activation и прочие служебные процедуры); существует еще GTP’ (GTP Prime) — он используется для передачи биллинговой информации. GTP не поддерживает аутентификацию пиров и шифрование, работает поверх UDP. Что во всем этом интересного? Интересно тут практически все!






