Ответ на вопрос Q1
В стеке по умолчанию при загрузке симулятора Unet или модема с поддержкой UnetStack есть два агента, которые относятся к протоколам маршрутизации.
Агент router
(org.arl.unet.net.Router
) выполняет маршрутизацию пакетов на основе своих таблиц маршрутизации.Закрытия routes
, addroute
, delroute
, delroutesto
и delroutes
позволяют вручную изменять таблицы маршрутизации.Просто введите help router
в оболочке Unet для получения дополнительной информации:
> help router
router - access to routing agent
Examples:
routes // display routing table
routes 2 // display routes to node 2
addroute 27, 29 // add a route to node 27 via node 29
delroute 2 // delete route number 2
delroutesto 27 // delete all routes to node 27
delroutes // delete all routes
Parameters:
MTU - maximum data transfer size
auto1hop - automatically assume single hop routes
link - default link to use
routes - routing table (read-only)
Агент rdp
(org.arl.unet.net.RouteDiscoveryProtocol
) заполняет таблицу маршрутизации для агента router
.Закрытия rreq
и trace
позволяют вам взаимодействовать с этим агентом.Для получения дополнительной информации введите help rdp
:
> help rdp
rdp - access to route discovery protocol agent
Examples:
rreq 27 // start route discovery to node 27
rreq 27, 3, 2, 10 // find <3-hop route to node 27 with 2 RREQs 10s apart
trace 27 // trace current route to node 27
Если вы хотите реализовать собственный протокол маршрутизации, самый простой вариант - создать собственного агента , который заполняет таблицу маршрутизации для * 1027.*.Это делается путем отправки RouteDiscoveryNtf
сообщений агенту router
.Для многих протоколов маршрутизации этого достаточно и это легко сделать.
Если ваш протокол маршрутизации более сложен и не может быть реализован путем динамического изменения таблиц маршрутизации, вы можете удалить агент router
по умолчанию (из * 1035)* file) и вместо этого добавьте собственную реализацию агента маршрутизации.Ваш агент маршрутизации должен поддерживать Службу маршрутизации : Агент маршрутизации по существу принимает дейтаграммы для любого пункта назначения и отправляет их на следующем прыжке.Агент также прослушивает уведомления дейтаграммы от агента Link и перенаправляет их при следующем переходе, если они предназначены для маршрутизации пакетов.Как правило, агент маршрутизации должен добавлять свои собственные заголовки, чтобы знать, какие пакеты и куда направлять, на основе внедряемого протокола.
Ответ на Q2
Любой модем, который поддерживаетUnetStack должен работать.Вот список известных модемов, которые в настоящее время поддерживают UnetStack.