Количество прыжков: правильный способ подсчета прыжков: количество маршрутизаторов и количество маршрутизаторов +1
Я очень озадачен и смущен определением количества переходов, особенно связанным с метрикой RIP. Должно ли количество переходов отражать количество ссылок или количество маршрутизаторов? Вот две возможности:
Заявление А:
, количество переходов = количество пройденных маршрутизаторов
, количество переходов на хост в той же подсети =0
, Метрика RIPv1 = количество переходов +1 (при условии, что стоимость сети =1)
Заявление Б:
, количество переходов = количество пройденных маршрутизаторов + 1
, количество переходов на хост в той же подсети = 1
, Метрика RIPv1 = количество переходов (при условии, что стоимость сети =1)
Какое из утверждений верно?
Вот моя топология сети:
(192.168.2.0/24)--Router2--(192.168.1.0/24)--Router1--(192.168.0.0/24)--InternetGateway--z--
Кажется, существует неопределенность в отношении количества переходов: количество пересеченных маршрутизаторов и количество использованных ссылок.
Цитата из Википедии: "В компьютерных сетях переход является одной из частей пути между источником и местом назначения. По пути пакеты данных проходят через маршрутизаторы и шлюзы. Каждый раз, когда пакеты передаются следующему устройству, происходит скачок. Чтобы узнать, сколько прыжков требуется, чтобы добраться от одного хоста до другого, можно использовать команды ping или traceroute / tracepath. "
Считается ли конечный получатель "следующим устройством", что подразумевает переход?
Вот локальная трассировка от хоста 192.168.2.30 через два маршрутизатора:
test@ubuntu:~$ sudo traceroute -I 192.168.0.1
traceroute to 192.168.0.1 (192.168.0.1), 30 hops max, 60 byte packets
1 192.168.2.1 (192.168.2.1) 0.868 ms 0.831 ms 2.565 ms
2 192.168.1.1 (192.168.1.1) 3.451 ms 3.450 ms 3.438 ms
3 Gateway (192.168.0.1) 5.213 ms 5.219 ms 5.945 ms
test@ubuntu:~$
1,2,3.. это 3 хмеля? Формат traceroute меня озадачивает.
больше, вот моя таблица маршрутизации подсети 2 (включая записи RIP):
test@ubuntu:~$ ip -4 route show
default via 192.168.2.1 dev eth0 proto zebra metric 2
192.168.0.0/24 via 192.168.2.1 dev eth0 proto zebra metric 3
192.168.0.1 via 192.168.2.1 dev eth0 proto zebra metric 3
192.168.1.0/24 via 192.168.2.1 dev eth0 proto zebra metric 2
192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.201 metric 1
192.168.3.0/24 dev eth2 proto kernel scope link src 192.168.3.201 metric 1
test@ubuntu:~$
У нас есть метрика 3 для подсети 0 (т.е. пересечение двух маршрутизаторов).
С этой стороны у нас есть понятие количества переходов = количество ссылок
С другой стороны, на странице википедии отображается встроенное изображение двух маршрутизаторов с этим комментарием: "Иллюстрация прыжков в сети. В этом случае количество переходов между компьютерами равно 2."
Более того, он ссылается на страницу, где четко указано, что мы должны считать прыжки по маршрутизаторам, а не по ссылкам:
Здесь у нас ясно есть понятие количества переходов = количество пересеченных маршрутизаторов.
Как правильно рассчитать количество прыжков? Как это связано с метрикой RIP?
источники:
http://en.wikipedia.org/wiki/Hop(networking
http://www.infocellar.com/networks/ip/hop-count.htm
Примечания: соответствующие цитаты в RFC 1058 ( RIPv1 RFC):
В простых сетях обычно используется метрика, которая просто подсчитывает, сколько шлюзов должно пройти сообщение.
...
Основное требование заключается в том, что метрика должна быть представлена в виде суммы "затрат" для отдельных прыжков.
Формально, если можно получить от объекта i непосредственно к объекту j (т. Е. Без прохождения через другой шлюз между ними), то стоимость d(i,j) связана с переходом между i и j. В обычном случае, когда все объекты в данной сети считаются одинаковыми, d(i,j) одинаково для всех пунктов назначения в данной сети и представляет собой стоимость использования этой сети.
Чтобы получить показатель полного маршрута, достаточно сложить стоимость отдельных прыжков, составляющих маршрут. Для целей этой заметки мы предполагаем, что затраты являются положительными целыми числами.
...
A-----B
\ / \
\ / |
C / all networks have cost 1, except
| / for the direct link from C to D, which
|/ has cost 10
D
|<=== target network
У каждого шлюза будет таблица, показывающая маршрут к каждой сети.
Однако для целей этой иллюстрации мы показываем только маршруты от каждого шлюза к сети, отмеченные в нижней части диаграммы.
D: directly connected, metric 1
B: route via D, metric 2
C: route via B, metric 3
A: route via B, metric 3
...
Метрика сети представляет собой целое число от 1 до 15 включительно. Это установлено каким-то образом, не указанным в этом протоколе. Большинство существующих реализаций всегда используют метрику 1. ...
Предполагается, что каждый хост, который реализует RIP, имеет таблицу маршрутизации. Эта таблица имеет одну запись для каждого пункта назначения, который доступен через систему, описанную RIP. Каждая запись содержит как минимум следующую информацию:
- The IP address of the destination.
- A metric, which represents the total cost of getting a
datagram from the host to that destination. This metric is
the sum of the costs associated with the networks that
would be traversed in getting to the destination.
...
Показатель для сети с прямым подключением устанавливается в соответствии с ее стоимостью. В существующих реализациях RIP 1 всегда используется для стоимости. В этом случае показатель RIP сводится к простому количеству переходов.
1 ответ
Когда вы цитируете Википедию, вы должны были заметить эту подсказку:
Чтобы узнать, сколько прыжков требуется, чтобы добраться от одного хоста до другого, можно использовать команды ping или traceroute/tracepath.
Traceroute работает, обычно отправляя пакеты UDP, TCP или ICMP (важно только то, что используемый протокол инкапсулируется в дейтаграмму IP и что ответ по этому же протоколу может быть доставлен по IP-адресу назначения) с полем TTL в заголовок IP равен 1 и затем увеличивается на единицу после каждой попытки, пока полученный ответ не отличается от пакета кода 0 ICMP типа 11 (тип 11 ICMP = превышено время, код 0 = истек TTL при передаче).
Это использовать эту часть RFC 1812:
Поле времени жизни (TTL) заголовка IP определено как
таймер, ограничивающий время жизни дейтаграммы. Это 8-битное поле и
единицы измерения - секунды. Каждый маршрутизатор (или другой модуль), который обрабатывает
пакет ДОЛЖЕН уменьшать TTL как минимум на единицу, даже если истек
время было намного меньше секунды. Так как это очень часто бывает,
TTL фактически является пределом количества переходов в зависимости от того, насколько далеко дейтаграмма может
распространять через интернет.[...]
Если TTL уменьшается до нуля (или меньше), пакет ДОЛЖЕН быть
отбрасывается, и если адрес назначения не является многоадресным адресом,
маршрутизатор ДОЛЖЕН отправить сообщение ICMP Exceeded, код 0 (TTL Exceeded
в пути) сообщение источнику
Почти все реализации интерпретируют уменьшение TTL по меньшей мере на единицу, как уменьшение TTL на единицу, и измерение прыжка глобально рассматривается как количество отправленных вами пакетов маршрутизаторов, пока они не достигнут своего назначения.