Пакеты прикладного уровня, родительский адрес, RPL Contiki-ng

Я знаю ответ на этот вопрос теоретически, но я хочу знать, где получить доступ к информации на уровне кода. Итак, скажем, в примере rpl-udp, когда клиент отправляет сообщение на сервер, теоретически, поскольку мы используем rpl для маршрутизации, сообщение будет проходить через родителя клиента, вплоть до дерева DODAG, пока не достигнет сервера. Что я хочу сделать, чтобы отследить этот пакет уровня приложения, когда он поднимается по дереву, все узлы, которые ретранслируют этот пакет, я хочу знать, когда они получают пакет и когда они направляют его вверх по дереву.

Где я могу найти эту информацию в коде contiki-ng? Я предполагаю, что его нет в заголовочных файлах RPL, но я не уверен.

Любая помощь будет здорово. Спасибо.

1 ответ

RPL берет на себя управление маршрутом. Фактическая пересылка пакетов отделена от протоколов маршрутизации, это общий шаблон проектирования во всех операционных системах.

В Contiki-NG код переадресации находится в os/net/ipv6/. Основной файл tcpip.c. Структуры данных маршрута и связанные с ними функции определены в uip-ds6-route.cа также uip-ds6-route.h.

В Contiki-NG также есть опция исходной маршрутизации, и в этом случае список nexthops хранится непосредственно в IP-заголовках пакета, а обычная таблица маршрутизации IPv6 отсутствует. Исходная таблица маршрутов (присутствует только на корневом узле сети) определяется в uip-sr.c.

Другие вопросы по тегам