LINUX.ORG.RU

как считается TTL?


0

0

каким образом изменяется ТТЛ при прохождении через роутер? в нарытом определении было что-то невнятное про секунды. а вроде как при прыжке на next hop ttl уменьшается на 1, даже если секунда не прошла(и как определяется, прошла она или нет для пакета?). кому верить?

anonymous

> в нарытом определении было что-то невнятное про секунды

Это невнятное определение не имеет аналогов в сети или у тебя и ссылка есть?

anonymous
()

Понятие TTL

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

beastie ★★★★★
()
Ответ на: комментарий от dn2010

то есть если пакет завис на роутере на n секунд, то все равно ТТЛ только на единицу уберется, и от реальонго времени вообще никак не зависит?

anonymous
()
Ответ на: комментарий от svu

Итого, "Time to live (sometimes abbreviated TTL) is a limit on the period of _time_" - это звиздёж и провокация. Всем спасибо.

anonymous
()
Ответ на: комментарий от svu

> Если мальчик между мамой и папой сходил воды попить - это не считается за хоп.

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

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от opensuse

в оригинале там интересно написано, позволю процитировать:

DHCP

Вы проснулись после дикой пьянки. Первые ваши слова «кто я?» и «где я?». Сосед, который не запивал водку пивом, вам сообщает все ваши параметры: кто вы и где. Этот сосед выступает в роли DHCP-сервера. Учтите, что в сети могут быть так называемые «ложные DHCP-сервера», например жена – на ваш вопрос «кто я?» она выдаст неверную информацию: «алкоголик ты проклятый». Так что не всегда динамическая выдача параметров безопасна, рекомендуется записывать свои параметры (как зовут, ваш адрес и т.д.) на бумажке.

Маршрут по умолчанию

Подойтите к прохожему и спросите «не подскажите ли вы как пройти к моргу имени Невмировича-Данченко?». С большой долей вероятности вас пошлют нах*й. Так вот это и есть маршрут по умолчанию, другими словами если адрес назначения не известен, то пакеты посылаются на маршрут по умолчанию (синонимы: шлюз по умолчанию, dafault gateway).

Понятие TTL

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

Ping

Вы конечно бывали в ситуации «сам дурак». Вы кричите «Петя ты, е*лан», а в ответ слышите «Вася, сам е*лан». Это простеший пинг. Вы только что пропинговали Васю. Не все отвечают на пинги, особо культурные, например Microsoft.com не утруждают себя реагированием на ваши запросы. С такими переругиваться бесполезно, мы знаем, что они слышат и злятся, но реакции добиться не можем. Тем не менее, пинг – неплохой способ узнать жив ли хост, ведь пиная труп ногами не добьешься реакции «сам дурак»

Traceroute

Представь себе, что ты живешь на 9м этаже и хочешь узнать всех жильцов которые живут от тебя до Клавки с 3го. Ты берешь взрывпакет и, исходя из формулы свободного падения, рассчитываешь время взрыва пакета над 8м этажом. Это TTL=1.
После того как пакет иба*ет - выглянет озверевшая рожа соседа с 8го этажа. Время реакции зависит от загруженности сервера, т.е. от занятости соседа и от шейпов, т.е. в воздухе ли ваша система или ты живешь на планете, где атмосфера жидкий азот. Так вот, если вообще не дождешься ответа - твой сосед глухой - у него запрещены icmp ответы, либо он запретил их только для тебя если его уже подзае*али твои финты и он научился тебя игнорировать. Дальше выставляешь TTL=2 и т.д. Не забывай, что если Клавка живет выше тебя – это No route to host.

alex_custov ★★★★★
()

какое имеет отношение транзисторно-транзисторная логика к эхотагу?

trapezoid
()

> в нарытом определении было что-то невнятное про секунды.

тебя обманывают. В английском 'time' не только для обозначения времени, но и вроде как "разы". Уменьшатся должен при проходе через роутер, время там совершенно не причем. Обычно делают для мультикаста чтобы соседние сети не засорять, ну и служебные пакеты тоже, наверное.

anonymous
()

не слушай их они тебя дурному научат. смотри http://www.rfc-editor.org/rfc/rfc791.txt

>Time to Live: 8 bits This field indicates the maximum time the datagram is allowed to remain in the internet system. If this field contains the value zero, then the datagram must be destroyed. This field is modified in internet header processing. The time is measured in units of seconds, but since every module that processes a datagram must decrease the TTL by at least one even if it process the datagram in less than a second, the TTL must be thought of only as an upper bound on the time a datagram may exist. The intention is to cause undeliverable datagrams to be discarded, and to bound the maximum datagram lifetime.

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

anonymous
()
Ответ на: комментарий от beastie

клёво, вот бы так всегда преподавали :-)

anonymous
()
Ответ на: комментарий от anonymous

Сейчас практически любое оборудование тупо уменьшает его на единицу на каждом хопе.

dn2010 ★★★★★
()

В определении написано вполне внятно - надо уменьшать на число секунд, но не менее, чем на 1.

Такая двойственная система сделана потому, что решает две цели. Первое - избежать зацикливаний (потому уменьшает не менее, чем на 1). Второе - гарантировать, что через некоторое заранее известное время пакет перестаёт существовать.

Формально, без этой гарантии TCP/IP (да и не только) перестаёт гарантировать нормальную работу. См., напр., TIME_WAIT.

Что на деле все забивают на время и просто всегда тупо уменьшают на 1, выше уже писалось.

Думаю, потому и забивают, что нельзя определить, сколько времени пакет плыл по радио/проводу/волокну от роутера к роутеру. Да и время его пребывания в очереди определять, хоть и можно, но неудобно.

alexsaa
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.