AUTOSAR는 애플리케이션과 하드웨어를 분리하는 계층화된 BSW(Basic Software) 구조를 통신 매체마다 구체화하는데, 이더넷 위에서는 이 구조가 AUTOSAR 내부의 PDU(Protocol Data Unit) 기반 통신과 TCP/IP 스택의 소켓 기반 통신을 잇는 형태로 나타난다[1].
계층 구조
애플리케이션(SWC)이 RTE에 넘긴 시그널은 AUTOSAR COM이 PDU로 묶어 PDU Router에 전달하고, PDU Router는 목적지에 따라 이 PDU를 이더넷 쪽 Socket Adaptor나 다른 버스 인터페이스로 라우팅한다. Communication Services 계층에는 이 밖에도 이더넷 통신의 시작·종료를 관리하는 Ethernet State Manager, 버스 독립적인 Network Management 인터페이스(Nm)를 이더넷 위에 구현한 UDP NM이 자리한다[1].
TcpIp 모듈은 TCP·UDP·IPv4·IPv6·ARP·ICMP·DHCP 프로토콜 패밀리를 구현해 이더넷을 통한 동적 소켓 기반 통신을 제공하고, Socket Adaptor(SoAd)는 이 TcpIp 모듈의 유일한 상위 계층 모듈이다[1].
Socket Adaptor
Socket Adaptor는 PDU 기반으로 동작하는 AUTOSAR 통신 서비스 모듈(PDU Router)과 소켓 기반 TCP/IP 스택 사이를 잇는 인터페이스로, I-PDU(AUTOSAR 내부 PDU) ID를 소켓 연결에 매핑하고 그 반대도 수행한다 — Socket Adaptor와 이더넷 통신 스택 자체는 AUTOSAR R4.0.1에서 처음 도입됐다[2].
이더넷을 통한 TCP/IP 전송은 헤더만으로 약 60바이트의 오버헤드가 발생하므로, 크기가 작은 PDU 여러 개를 소켓 연결 하나당 하나씩 나눠 보내면 비효율이 커진다. Socket Adaptor는 이를 절충하는 두 캡슐화 방식을 제공한다[2]:
PDU Header 비활성화 모드는 소켓 연결 하나가 PDU 하나만 나른다고 가정한다. PDU Header 활성화 모드는 4바이트 ID와 4바이트 Length로 구성된 PDU Header를 각 PDU 앞에 붙여, 하나의 소켓 연결로 여러 PDU를 다중화해 전송한다.
이 스택 위에서 노드들의 절전·기동 상태 전환을 조정하는 모듈은 UDP NM에서, PDU에 실려 오가는 데이터가 서비스 지향 RPC·이벤트 통지라면 그 미들웨어는 SOME/IP에서 각각 별도로 다룬다.