Как contiki os сопоставляет IP-адрес с MAC-адресом
Как contiki os сопоставляет IP-адрес с MAC-адресом и где он хранится?
Я знаю основы ICMPv6 и RPL, но после того, как сеть построена, при отправке пакета IPv6 как узнать MAC-адрес следующего перехода? Я предполагаю, что сообщение Neighbor Solicitation не отправляется каждый раз. Кроме того, на Cooja единственные сообщения ICMPv6, которые я вижу, - это сообщения RPL.
Я пытался найти ответ с помощью grep, поиска в Google и в документе, но не нашел.
1 ответ
Существует структура данных соседа uIP, называемая
uip_ds6_nbr_t
. Эти структуры хранятся в соседних таблицах Contiki. Когда требуется сопоставление IPv6-адреса с MAC-адресом, код сначала вызывает
uip_ds6_nbr_lookup(ipv6_address)
чтобы найти соседа, затем использует соседа, чтобы найти адрес канального уровня, вызывая функцию
uip_ds6_nbr_get_ll(nbr)
.