승코딩당당당

[차량 통신] 차량 네트워크 구조 정리 (CAN, Ethernet, TCP/IP) 본문

개발/임베디드

[차량 통신] 차량 네트워크 구조 정리 (CAN, Ethernet, TCP/IP)

승코딩당당당 2026. 4. 16. 17:45

 

이번 글에서는 차량에서 사용되는 다양한 통신 방식과 네트워크 구조, 그리고 TCP/IP 스택까지 전체적인 흐름을 정리한다.

 

차량 내부에서는 CAN, LIN, FlexRay와 같은 통신 프로토콜을 통해 ECU 간 데이터가 교환되며, 최근에는 대용량 데이터 처리와 연결성을 위해 Ethernet 기반 네트워크가 점점 확대되고 있다. 이러한 변화는 Software Defined Vehicle(SDV) 개념과 맞물려 차량의 E/E 아키텍처를 기존의 분산 구조에서 서비스 중심 구조로 발전시키고 있다.

 

또한 차량 네트워크가 외부 시스템과 연결되면서 TCP/IP 기반 통신의 중요성도 함께 증가하고 있다. IP, UDP, TCP와 같은 프로토콜은 각각의 특성과 목적에 따라 사용되며, 데이터 전송 방식과 신뢰성, 속도 측면에서 차이를 가진다.

 

이 글에서는 차량 통신 프로토콜의 특징과 활용, VLAN과 Ethernet 구조, 그리고 TCP/IP 스택의 핵심 개념까지 단계적으로 정리하여 전체 네트워크 구조를 이해할 수 있도록 구성하였다.

 


 

차량 통신 개요

CAN 통신

  • 여러 장치들이 하나의 버스라인에 연결되어 데이터를 주고 받는 실시간 통신 프로토콜
  • 최대 1Mbps 통신 속도 지원

LIN 통신

  • 1가닥의 통신 선만 사용하며, 낮은 통신 속도 제공하나 가격이 저렴
  • 단일 마스터 통신으로 버스 충돌 방지
  • 고성능이 필요하지 않은 가격이 저렴한 응용군에서 사용됨

LIN 통신 활용 분야

  • CAN으로 연결된 제어기의 local 망으로 활용됨
    • 액추에이터 구동 및 센서 읽기 등

FlexRay

  • Steer-by-wire 및 brake-by-wire를 위해 좀 더 신뢰성 있는 통신이 필요함
  • CAN의 ID 기반 우선순위 경쟁으로 인한 지연 문제를 해결하기 위해 TDMA(Time Division Multiple Access) 기법을 활용함
  • FlexRay 차량 적용 현황
    • FlexRay는 초기 새로운 차량 통신으로 대두되었으나, 일부 OEM에 의해 제한적으로 활용되고 있음
    • 기존의 CAN 대비 통신 방식이 달라 개발 및 검증에 대한 부담으로 시장에 널리 사용되지 못해 부품 값이 비쌈

CAN FD 개발

  • CAN 보다 빠른 새로운 통신이 필요함
    • 기존 CAN 통신 표준을 이용하면서 통신 속도만 빠른 CAN FD 등장
      • CAN의 ID 우선순위 경쟁 문제로 인한 지연은 해결할 수 없으나, 기존 CAN통신의 대역폭 및 통신 속도 문제 개선
      • 최대 8Mbps 통신 속도 지원

멀티미디어용 통신 프로토콜

  • MOST (Media Oriented System Transport)
    • 25(Optical), 50Mbps(electrical), 150Mbps(Optical, Electrical)
  • LVDS (Low Voltage Differential Signaling)
    • 점대점 연결, 버스 없음, 제어 없음, 프로토콜 없음
    • 매우 높은 데이터 전송 속도
    • 무압축 데이터 전송

차량 Ethernet 대두

  • Ethernet 장점
    • 인터넷 분야에서 널리 사용되어 기술 성숙도가 높고, 개발 툴 부품 등의 가격이 저렴함
    • 100Mbps, 1Gbps 등 큰 대역폭을 바탕으로 CAN의 대역폭 문제를 해결할 수 있음
    • 산업용 네트워크 분야에서 다양한 실시간 통신 및 고신뢰성 어플리케이션에 적용되어 신뢰성이 확보됨
  • Ehternet 차량 적용의 문제점
    • 차량 EMC 조건을 만족하지 못해 쉴드 케이블 필요함
    • Ethernet RJ-45 커넥터 및 4 가닥의 선을 사용함
    • Broad-Reach 기술의 개발로 인해 차량 적용 가능해짐

전통적 차량 E/E 아키텍처

  • Distributed Architecture
    • Central Gateway를 중심으로 파워트레인, 샤시, 바디, 멀티미디어, ADAS 등의 각 도메인별 네트워크 구성됨

 


 

차량 E/E 아키텍처

Software Define Vehicle(SDV)

  • 소프트웨어로 하드웨어를 제어하고 관리하는 자동차
  • 소프트웨어가 자동차의 주행 성능, 편의 기능, 안전, 차량의 감성 품질 및 브랜드 정체성까지 규정할 수 있음
  • 소프트웨어를 수시로 업데이트하여 성능을 개선하고, 다양한 구독형 SW를 설치하여 새로운 기능을 추가할 수 있음

차량 E/E 아키텍처 변화

  • SDV를 위한 E/E 아키텍처 변화
    • 교통, 홈 등이 연결되는 새로운 User Experience를 제공하기 위해 기존 E/E 아키텍처의 변화가 요구되고 있음
    • Risk를 최소화하기 위해 OEM은 새로운 E/E 아키텍처로의 단계적 변화를 계획하고 있음

Service-Oriented Architecture (SOA)

  • 네트워크 상의 통신 프로토콜을 이용하여 서비스를 다른 장치에게 제공할 수 있는 소프트웨어 아키텍처
  • 서비스는 기능의 일부분이며, 서비스는 공통 인터페이스 표준과 아키텍처 패턴을 사용하여 새로운 어플리케이션에 신속하게 통합될 수 있음
  • 개발자는 기존의 기능을 재개발 또는 복제하거나 기존의 기능을 연결 재사용하기 위한 방법을 알아야 했던 수고를 덜 수 있음

 


 

VLAN

VLAN (Virtual LAN)

  • LAN (Local Area Network)
    • 일반적으로 스위치를 중심으로 연결된 근거리 통신망
    • 집, 사무실 등의 장치를 유선(Ethernet) 또는 무선(Wifi)으로 연결한 네트워크
  • 가상 LAN
    • 동일한 스위치에 연결된 장치들을 논리적으로 분리하여 별개의 네트워크로 나누는 기술
    • 물리적인 선에 의한 것이 아닌, 소프트웨어에 의해 구성된 근거리 통신망

Port-based VALN

  • Port 번호에 기반하여 VLAN을 구분하는 방법
  • 특정 포트로 송수신되는 프레임을 특정 VLAN에 할당 (VLAN Tag 불필요)

Tagged VLAN

  • VLAN Tag를 사용하여 VLAN을 지정하는 방법
  • 제어기 또는 스위치가 VLAN Tag를 포함하여 전송

Protocol & MAC based VLAN

  • Protocol-based VLAN
    • 프로토콜 유형에 따라 VLAN을 구성하는 방법
    • 동일한 Port 입력되는 Frame도 프로토콜에 따라 VLAN 할당
  • MAC-basef VLAN
    • 수신 프레임의 Source MAC 주소를 기준으로 VLAN 할당
    • 특정 포트로 연결되는 장치의 MAC에 따라 VLAN 할당

스위치 포트 모드

  • VLAN을 지원하는 스위치의 각 포트는 아래로 설정 가능
    • Access 모드
      • Untagged 프레임만 처리, 하나의 VLAN에만 속함
    • Trunk 모드
      • Tagged 프레임만 처리하며, 여러 VLAN ID 전송 허용
      • 다른 스위치와 연결 시 주로 사용되는 모드
    • Hybrid 모드
      • Untagged 및 Tagged 프레임을 모두 송수신 가능
      • VLAN 별로 Tagged, Untagged 설정 가능

VLAN

  • VLAN 미적용 시 Switch 동작 확인
    • Switch에 별도의 VLAN을 설정하지 않고 아래와 같이 연결하면 모든 컴퓨터 및 제어기는 서로 통신 연결이 가능함
    • VLAN 적용 시 동일 VLAN에 연결된 제어기만 통신 가능

 


 

Ethernet

Ethernet Switch

  • Ehternet Switch
    • MAC 주소를 기반으로 특정 노드에게 수신한 패킷을 목적 노드로 전달
    • MAC 주소 기반 패킷 스위칭
  • Switch 종류
    • Managed switch: 네트워크 설정이 가능한 스위치
    • Unmanaged switch: 네트워크 설정이 불가능한 스위치
      • 단순 MAC 주소에 따른 스위칭 기능만 제공함
  • MCU 내에 내장된 Ethernet Controller에 의해 수행됨
    • 사용자가 전달한 MAC, Ehertype, Payload(Data) 를 전송
    • 전송 시 CRC를 계산하여 전송하며, 수신 시 CRC 계산 후 에러 체크
    • Switch가 목적지 MAC 주소를 참조하여 목적 PORT로 전달

Ethernet Hub

  • 스위치와 다르게 MAC 주소 테이블을 저장하지 않음 (1계층의 장비)
  • Frame을 수신하면 모든 포트로 전달 (Broadcast)
    • 연결 노드가 많은 경우 네트워크 트래픽 증가
    • 정보가 모든 노드로 전송되어 보안 취약할 수 있음
  • 현재 거의 사용되지 않음

Ethernet Tap

  • Network TAP (Test Access Point)
    • 네트워크 트래픽을 감시하고 분석하기 위한 하드웨어 장치
    • 네트워크의 특정 위치에 설치하여 트래픽을 그대로 복제 및 전달

Access Point (AP)

  • Wireless Access Point
    • 무선 Wi-Fi 디바이스를 유선 스위치 또는 라우터와 연결하기 위한 장치
    • Wi-Fi 이름(SSID)를 브로드캐스트하여 주변에 알림

 


 

TCP/IP 스택

IP (Internet Protocol)

Network Layer

  • IP 주소를 이용하여 인터넷상의 목적지로 메시지를 전송하는 역할을 수행함
    • 중간 경로에서 메시지 전달은 라우터가 목적 IP를 보고 수행
    • 다양한 프로토콜 사용 (ARP, ICMP, IGMP, …)

ARP (Address Resolution Protocol)

  • 주소 결정 프로토콜
    • 네트워크 상에서 IP 주소를 MAC 주소로 대응(bind시키기 위해 사용되는 프로토콜

ICMP (Internet Control Message Protocol)

  • 인터넷 제어 메시지 프로토콜
    • 네트워크 장치에서 통신 문제를 진단하는 데 사용하는 네트워크 계층 프로토콜
    • 대표적인 서비스는 Ping

IP (Internet Protocol)

  • 현재 주로 사용되는 버전은 IPv4
  • IP는 소스로부터 목적지로의 패킷 전달을 담당

Type of Communication

  • Unicast
    • 특정 IP를 가진 노드에만 전송함
  • Multicast
    • 멀티캐스트 IP를 사용하여 전송하는 경우, 해당 멀티캐스트 IP에 명시적으로 가입한 노드로 전송함
  • Broadcast
    • Broadcast IP 등을 사용하여 모든 노드에게 전송할 수 있음
    • Network 주소 뒤에 255를 연결하면 해당 네트워크에 참여하는 모든 노드에 전달함

IGMP (Internet Group Management Protocol)

  • 멀티캐스트는 라우터가 가입 여부를 확인하여 처리함
  • 멀티캐스트 참여 노드는 원하는 그룹에 참여 또는 탈퇴 가능
  • 라우터는 주기적으로 IGMP 쿼리를 전송함
  • 차량에서는 라우터를 사용하지 않으므로, 스위치가 그 기능을 대신함

라우터

  • 컴퓨터 네트워크 간에 데이터 패킷을 전송하는 네트워크 장치
    • 목적 IP 주소에 도달하기 위한 최적 경로를 찾아, 그 경로에 따른 다음 장치로 전달하는 역할을 수행함
    • 네트워크 상의 다양한 경로를 파악하기 위해 다양한 라우팅 프로토콜을 사용함

UDP (User Datagram Protocol)

UDP 특징

  • 비연결형 서비스
    • 연결 설정 과정이 없으며, 데이터를 순서에 상관없이 그때마다 독립적으로 전송함
  • 신뢰성 없는 데이터 전송
    • 연결 과정이 없기 때문에 데이터가 유실될 수 있고, 데이터 패킷을 순차적으로 전송하더라도 수신 쪽에서 받는 순서가 다를 수 있음
  • 신속성
    • 데이터를 빠르게 전송하기 위해 최소한의 추가 정보가 패킷 헤더에 포함됨

Connectionless

  • Connectionless 통신
    • 송신 및 수신 노드는 미리 데이터를 주고 받는 것을 약속하지 않음

통신 신뢰성

  • UDP는 데이터 신뢰성 보장하지 않음

UDP Error Control

  • UDP Checksum
    • 손상된 패킷이 수신되면 해당 패킷을 버림 (재전송 없음)

UDP 장단점

  • UDP 단점
    • 전송한 데이터가 수신자에 의해 정상적으로 수신되는지 확인하지 않음
    • 송신 노드가 보낸 순서와 수신 노드가 수신한 데이터의 순서 동일함을 보장하지 않음
  • UDP 장점
    • TCP 대비 헤더 크기가 적어 데이터 전송 속도 면에서 빠르고 효율적임
    • TCP 대비 프로토콜이 간단하여 CPU 자원 및 통신 리소스를 적게 사용함

TCP (Transmission Control Protocol)

TCP 특징

  • 연결 지향 프로토콜로 통신 시작을 위해 연결 필요함
    • 연결된 소켓은 양 수신 노드의 특정 Process를 연결하는 byte stream 역할 수행
  • 신뢰성 있는 데이터 송수신
    • Sequence 및 Acknoledge를 활용한 메시지 정상 송수신 여부 확인
    • 오류 발생시 자동 재전송 기능
  • 흐름 제어 (Flow control)
    • 수신 노드의 버퍼 오버플로우 발생하지 않도록 전송 데이터의 양 조절함
  • 혼잡 제어 (Congestion control)
    • 네트워크 혼잡 발생시 전송 데이터의 양 조절함

3 Way Handshake

  • TCP는 연결 지향형 프로토콜
    • TCP는 통신 시작전 먼저 연결이 필요함
    • 연결이 되면 송수신 프로세스 사이에 바이트 스트림이 생성됨
    • 연결을 위해 3 way handshake를 진행함
    • TCP도 UDP와 동일하게 서버의 IP와 Port 번호를 알고 있어야 함

TCP 소켓

  • 연결이 완료된 TCP 소켓은 Sender 및 Receiver 사이를 연결하는 스트림을 생성함
  • TCP는 신뢰성 있는 데이터 송수신을 보장하므로, 전송하는 데이터는 전송한 순서에 맞게 통로에 들어가서 순서대로 수신 노드로 전달됨
  • 스트림을 사용해서 데이터 구분하지 않음
    • 메시지의 경계를 구분하지 않음

신뢰성 있는 데이터 송수신

  • TCP는 Sequence 및 Acknowledge #를 이용하여 신뢰성 있는 송수신 제공
    • TCP는 네트워크 상에서 발생할 수 있는 다양한 에러 상황에 대한 처리 로직을 가지고 있음

Flow control

  • Flow control 개념
    • 수신자의 Application이 Rx 버퍼를 읽는 속도보다 송신자의 전송하는 시간이 빠른 경우
      • 수신자 버퍼 오버플로우가 발생하여, 정상적인 수신 불가
      • TCP는 ACK 메커니즘을 활용하여, 문제를 인식하여 재전송함
    • 빈번한 재전송은 네트워크의 성능을 저하시키므로, 수신자의 버퍼 상태를 체크하여 받을 수 있는 만큼의 메시지를 전송함
  • Stop & Wait 기법
    • 수신 노드에서 ACK 신호를 수신한 이후 새로운 메시지 전송함
    • ACK 신호 대기로 인해 메시지 전송이 지연될 수 있음
  • Sliding Window 기법
    • Stop & Wait 기법의 메시지 지연 문제를 해결하기 위함
    • 최초 통신 연결 시 수신자의 사용 가능한 버퍼의 크기(윈도우 크기)를 수신함
    • Client는 수신자의 윈도우 크기 만큼은 ACK 없이 전송 가능함

TCP 오류 제어

  • TCP는 재전송 기반 오류 제어 제공함
    • 에러 감지 방법
      • 일정 시간 이상 ACK를 수신하지 못하는 경우
      • 중복된 ACK를 수신하는 경우
    • Go back N 기법
      • 재전송 프레임이 많아, 고속 네트워크에 비효율적임
    • Selective Repeat 기법
      • 옵션 설정 시 사용 가능함

Delayed Acknowledge

  • ACK 메시지 전송에 대한 오버헤드 줄이기 위해 모아서 ACK 전송하는 기법
    • 일정 타이머를 기준으로 ACK를 모아서 전송함
    • 일정 시간이 지나기 전에 두 번째 메시지가 수신되면 즉시 ACK 전송