Dmitry Astapov (_adept_) wrote,
Dmitry Astapov
_adept_

Categories:

Почему в GSM такой кривой роутинг?

Сегодняшний пост вызван вот таким комментарием: "Пример. Я и мой сосед Вася живём в мухосранске. Там, в мухосранске, мы подключились к местному GSM оператору, а заодно зарегистрировались в skype. После чего взявшись за руки ломанулись в роуминг в зимбабве. И там, в зимбабве, севши за соседние столики интернет-кафешки с wifi, расчехлили ноуты и сотовые, и начали звонить друг другу.
При этом звонок через GSM дойдёт от зимбабве до мухосранска только для того чтобы вернуться обратно, в то время как голосовые данные при звонке по skype скорее всего не покинут пределов кафешки (а "служебные" данные - не будут даже приближаться к мухосранску).

Что кроме "50-летнего кода на коболе" мешает сделать так же в GSM?
"

Optimal Routing

Да вобщем-то с технической точки зрения ничего не мешает так сделать. Есть нужные технологии, и есть нужные стандарты. Так почему же не делается?

Чтобы ответить на этот вопрос, посмотрим сначала, как происходит маршрутизация звонка в "классическом GSM" образца 1985-го года.

Итак, F и M имеют симки компании "Гондурас Телеком". В какой-то момент они решают поехать в давно заслуженый отпуск, и отправляются любоваться красотами Зимбабве. В роуминге их обслуживает оператор "Зимбабве Мобайл".

Когда F звонит M, происходит следующее:
  1. Коммутатор "Z" смотрит на набранный номер и понимает, что он - не из местной сети. И даже не из этой страны. Что это за номер - мобильный, фиксированный, какой-то еще - коммутатору "Z" неизвестно (это первый важный момент). Но по префиксу номера понятно, что это где-то в Гондурасе. Как маршрутизировать траффик в Гондурас, коммутатор "Z" в курсе. Звонок отправлятся туда и попадает в сеть "Гондурас Телеком".
  2. Коммутатор "H" получает звонок из-за рубежа для одного из абонентов "Гондурас Телеком". Строго говоря, коммутатор "H" может вообще не смотреть на номер вызывающего абонента (это второй важный момент), и не быть в курсе, что это звонит родной абонент в роуминге. Коммутатор "H" обращается в HLR и узнает, что абонент M сейчас в роуминге, в Зимбабве, в такой-то сети.
  3. Коммутатор "H" направляет звонок в Зимбабве Мобайл, где он и доставляется абоненту M. Голосовой канал проключается по маршруту (1)-(3).
Какие минусы у этой схемы?
  1. Траффик зазря ездит в Гондурас, чтобы тут же вернуться обратно
  2. Абоненты платят за это дурные деньги
Какие плюсы (с точки зрения операторов) у этой схемы?
  1. Гондурас-Телеком имеет контроль над совершаемым звонком. Поскольку траффик идет через его сеть, он получит запись учета стоимости об этом звонке и сможет проконтролировать "счет за роуминг", выставленный со стороны Зимбабве Мобайл
  2. Абоненты платят дурные деньги :)
  3. Когда в Гонудрасе меняется план нумерации или появляются новые номерные диапазоны, в Зимбабве Мобайл не надо менять роутинг на коммутаторе Z - все и так работает (см. первый важный момент).
  4. В Гондурас Телеком тоже можно не парится сложными правилами роутинга - см. второй важный момент.
А как все могло бы быть (следим за зелеными стрелками)?
  1. Сигнальный траффик, как и раньше, приезжает в Гондурас. Однако, помимо коммутатора, в действие вовлекается еще и SCP, который видит, что вызываемый абонент - в роуминге, и пытается оптимизировать маршрутизацию. Для этого SCP извлекает из HLR-а не только "адрес" MSC/VLR гостевой сети, которая обслуживает M, но и его "номер телефона в роуминге" (MSRN). Естественно, необходимо, чтобы кто-то (гостевая сеть) его туда вовремя помещал - и это первое изменение по сравнению с классической схемой. Имея на руках текущий location F и MSRN M, SCP в Гондурасе может увидеть, что они реально в одной сети.
  2. Далее SCP может уведомить MSC, что легенда меняется, а задание остается прежним - мы маршрутизируем звонок для M, но уже совсем на другой номер, причем об этом надо уведомить гостевую сеть.
  3. В Зимбабве смотрят на новый номер M и говорят: "о! так это ж прямо тут!". Голосовой канал проключается по пунктирным зеленым стрелкам.
Что нужно, чтобы эта схема работала?

Самое главное - Гондурас Телеком должен доверять Зимбабве Мобайл, и наоборот. В Зимбабве должны позволять чужой сети на ходу изменять роутинг звонков, а в Гондурасе должны верить, что в Зимбабве честно посчитают длительность и расходы на такие оптимизированные звонки и выставят нормальный счет за роуминг. Ведь сам Гондурас уже никак не может контролировать ход и длительность звонка. А фрод на роуминге - это у всех операторов больная тема.

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

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

Надеюсь, после прочтения поста стало понятно, что сравнение из оригинального комментария - некорректно, ведь сравнивается взаимодейтсвие двух независимых операторов в случае GSM и работа в рамках одного оператора в случае skype. Корректне было бы вместо skype взять, например, XMPP/SIP/Jingle, при условии, что F и M имеют аккаунты на двух разных jabber-серверах, или что-то в этом роде.

Литература: GSM 23.079 "Support for Optimal Routeing (SOR); Technical realization". Там куча слайдов и детальных рассказов о том, как устроена сигнализация между разными элементами сетей для обеспечения нужного результата.

PS
karma kzayko++ :)
Tags: gsm
Subscribe

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 56 comments