TTL – что это такое и зачем его менять

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

Понятие TTL 

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

TTL расшифровывается как Time To Live, то есть время жизни пакета данных в секундах. При прохождении пакета через очередной роутер TTL уменьшается на единицу. Нужно это для того, чтобы пакет бесконечно не гулял по сети, если не сможет дойти до адресата. Роутер, при попадании в который  пакет исчерпал свое значение TTL, посылает отправителю сообщение ICMP о том, что данный пакет  превысил максимально допустимое время своего пребывания в сети. Максимальное значение TTL=255. Причем разные операционные системы генерируют пакеты с разным TTL.

Если говорить совсем простыми словами…
Представьте себе, что вам 5 лет и вы хотите кушать (вы — пакет). Вы идете к папе и говорите: «Папа, я хочу кушать». Ваш папа смотрит телевизор, согласно таблице маршрутизации о посылает вас к маме. Вы идете к ней и просите «Мамааа, я хочу кушать». Мама болтает с подругой по телефону и согласно своей таблице маршрутизации посылает вас к папе. И так вы ходите как дурак от папы к маме и обратно, туда-сюда, туда-сюда, а все потому что криворукие админы (родители папы и мамы) неправильно настроили таблицу маршрутизации. Чтобы защититься от таких ситуаций придумали понятие TTL (Time To Live), что применительно к нашей ситуации означает количество терпения у мальчика, пока он не скажет «достало» и не упадет перед ногами мамы или папы в беспомощном состоянии. Последний, по правилам (стандарты – это «так заведено в семье»), обязан послать короткий нелестный отзыв адрес того, кто послал мальчика кушать. Это так называемый ICMP-пакет «мальчик сдох»

Ок, так при чем тут операторы? Дело в том, что по полученным от абонента TTL оператор узнает, раздается интернет или нет.

Как операторы узнают, что трафик раздается

Потому что ему от абонента начинают приходить пакеты с разными значениями TTL. На это есть две причины:

  • Во-первых, у разных устройств TTL может быть разным. А при раздаче интернета появляется ведь второе устройство – то, на которое мы раздаем интернет. Так у телефона на iOS или Android значение TTL равно 64, а у компьютера на Windows – 128. И при раздаче интернета с телефона на компьютер появится два разных значения TTL: 64 и 128. Оператору уходят пакеты и с TTL=64, и TTL=127 (при отправке пакета с компьютера через раздающий телефон-роутер значение 128 уменьшается на единицу).
  • Во-вторых, даже если TTL устройств одинаков (с телефона на телефон), раздающий телефон опять же уменьшает TTL на 1 как всякий нормальный роутер.  И оператору уходят пакеты с разными значениями TTL=64 (если это пакет с раздающего телефона) и TTL=63 (пакет с потребляющего телефона).

Итак оператор получает пакеты с разными значениями:

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

На всякий случай прикладываю картинки.

Это работа без интернета. Телефон передает оператору только пакеты с TTL=64.
А при раздаче интернета телефон передает оператору пакеты с тремя разными значениями TTL: 64 от себя, 127 от компьютера и 63 от потребляющего телефона.
 

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

  1. Либо поменять TTL на потребляющем устройстве,
  2. Либо на раздающем телефоне сделать так, чтобы пакеты к оператору шли всегда с одним значением TTL.

Приведение TTL к единому значению для обхода ограничений оператора

  • Можно привести TTL к единому значению 63, поменяв его на раздающем телефоне и на принимающем компьютере. Это изменение TTL без фиксации.
Изменение TTL раздающего телефона и принимающего устройства
Изменение TTL раздающего телефона и принимающего устройства
  • Можно ничего не менять на принимающих устройствах, но «заставить» раздающий телефон всегда отправлять оператору пакеты с TTL=63, независимо от того, откуда они: с самого раздающего телефона или с принимающего устройства (компьютера или телефона). Это фиксация TTL.
Фиксация TTL
Фиксация TTL

Вторая схема удобнее, но она пригодна не для всех телефонов.

Итак, мы рассмотрели, что такое TTL, и зачем его нужно менять. Как именно изменить TTL требует рассмотрения в отдельной статье. Как изменить TTL на Windows.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *