UDP NM(UDP Network Management, UdpNm)은 AUTOSAR가 버스 독립적인 Network Management 인터페이스(Nm)와 TCP/IP 스택 사이를 잇도록 구현한 모듈로, 네트워크에 참여하는 노드들이 통신이 필요한 Normal Operation 상태와 절전 상태인 Bus-Sleep 사이를 언제 전환할지 조정하는 것이 주 목적이다. CAN 버스에서 같은 역할을 하는 CanNm과 동일하게 탈중앙화된 direct 네트워크 관리 전략을 쓴다 — 각 노드는 오직 스스로 송수신한 NM 패킷만으로 자율적으로 상태를 판단한다[1][2].
조정 알고리즘
네트워크에 참여하는 모든 노드는 주기적인 NM 패킷을 브로드캐스트로 송수신한다. 노드가 Bus-Sleep으로 전이할 준비가 되면 스스로는 NM 패킷 송신을 멈추지만, 다른 노드가 보낸 NM 패킷이 계속 수신되는 한 전이를 미룬다. 결국 정해진 타이머(NM-Timeout Timer)가 만료될 때까지 어떤 노드로부터도 NM 패킷이 수신되지 않으면, 그 시점에 클러스터의 모든 노드가 함께 Bus-Sleep으로 전이를 시작한다[1].
상태 머신
UdpNm은 Bus-Sleep Mode·Prepare Bus-Sleep Mode·Network Mode 세 최상위 운용 모드를 가지며, Network Mode는 다시 Repeat Message State·Normal Operation State·Ready Sleep State 세 내부 상태로 나뉜다[1].
- Bus-Sleep Mode에서 네트워크가 요청되거나 다른 노드의 NM 패킷을 수신하면 Network Mode로 진입하며, 기본으로 Repeat Message State에서 시작한다.
- Repeat Message State는 Bus-Sleep·Prepare Bus-Sleep에서 갓 깨어난 노드의 존재를 다른 노드에 알리고 최소 활성 시간을 보장하는 상태로, 네트워크가 요청된 상태면 Normal Operation State로, 해제된 상태면 Ready Sleep State로 넘어간다.
- Normal Operation State는 네트워크 기능이 필요한 한 클러스터를 깨어있게 유지하고, 네트워크가 해제되면 Ready Sleep State로 넘어간다.
- Ready Sleep State는 다른 노드가 클러스터를 깨어있게 유지하는 동안 대기하다가, NM-Timeout Timer가 만료되면 Prepare Bus-Sleep Mode로 넘어간다.
- Prepare Bus-Sleep Mode는 모든 노드가 버스 활동을 정리할 시간을 벌어주며, Bus-Sleep 타이머가 만료되면 Bus-Sleep Mode로, 그 사이 NM 패킷을 수신하거나 네트워크가 다시 요청되면 Network Mode로 되돌아간다.
Note
Bus Access에서 다루는 OSEK NM의 논리 링(logical ring) 방식은 전송 권한을 각 노드에 명시적으로 순차 이양한다. UdpNm·CanNm이 쓰는 탈중앙화 direct 전략은 이와 달리 전송 권한 이양 절차 자체가 없다 — 모든 노드가 동등하게 브로드캐스트하고, 각자 수신 여부만으로 독립적으로 판단한다.
UdpNm이 TCP/IP 스택 위에서 잇는 전체 계층 구조는 AUTOSAR Ethernet Communication Stack에서 다룬다.