티스토리 뷰

Ethernet 이란

 

 

이더넷이란 LAN을 구성하기 위해서 유선을 사용해 컴퓨터들을 연결하는 방법이다.

LAN이란 간단히 하나의 공유기 내에 물려있는 모든 장비들을 말한다. 내 방 와이파이에 연결되어 있는 핸드폰, 유선으로 연결한 데스트 탑, 노트북 등

이 중 유선으로 연결되어 있는 장비들 끼리 통신하기 위한 방법이 이더넷이다.

 

LAN으로 내방의 컴퓨터랑 휴대폰이 공유기에 연결되어 있다. 이 공유기를 이용해 외부의 WAN으로 연결

 

여기서 사용하는 케이블에 대해 잠깐 설명하면 이렇게 된다.

 

차량용 이더넷

 

차량 내에서 네트워크가 어떻게 구성되어 있는지에 대한 그림이다.

먼저 관련있는 ECU들을 뭉쳐서 도메인 별로 나눈다. 의자나 사이드 미러 움직임 등을 담당하는 ECU, 차 샤시 등을 담당하는 ECU, 인포테인먼트나 블루투스 같은 연결 ECU들을 그룹화 한다.

이러한 도메인들 간의 소통은 CAN이나 CAN/FD로 통신한다.  Ethernet으로 연결하는 경우도 있긴함. ECU의 정보를 모아 관리하는 Domain Control Unit이 존재, 여기선 GW를 사용했지만 사용하지 않고 DCU로 바로 전송하는 경우가 대부분이다.

차량용 이더넷이란 이러한 도메인 별로 전달되는 데이터들을 전달하는 통신 방법이다.

 

 

ethernet을 적용하지 않았을 때의 네트워크 구조와의 비교 점이다.

 

차량용 이더넷 장비

 

차량용 이더넷 케이블인 100base-T1은 연결 공간 절약 및 무게 감소를 위해 1pair의 케이블을 사용합니다. 이는 2개의 줄로 구성되어 있고 이 2 줄을 꼬아서 만든 케이블이다.

Broad-r-reach100base-t1과 마찬가지로 차량에서 사용하는 케이블이지만 100base-t1보다 긴 거리에 데이터를 보내야할 때 사용한다.

Broad-r-reach는 인포테인먼트나 ADAS에 주로 사용합니다.

이더넷 스위치 장비는 vector 사의 예시로 가져온 거고, 실제로 저 장비가 탑재되는지 확인을 못했다. G80 차량은 ICU라고 불리는 정션블록이 있는데 이 정션블록에서 ethernet과 관련된 통제를 진행한다. 여기 내에 ethernet switch unit 있어서 통제가 가능하다.

 

AVTP의 기본 컨셉

AVTP주요기능

1.Media clock reconstruction
timestamp
media clock의 동기화를 나타낸다. Timestamp는 보내는 talker가 내 영상은 이 시간값을 가지고 출력을 해줘라고 보내는 값이고, media clocklistene가 현재 가지고 있는 값으로 talker가 보내온 값으로 값을 동기화한다. 이렇게 talkelistene의 시간 값을 맞춘다.
2.Presentation Time
AVTP
timestampAVTP_timestamp필드에 들어있는 값이다. 모든 AVTP 패킷에서 필요한 것이 아닌, 비디오 프레임의 마지막 단편화된 패킷에 타임스탬프 값이 들어있다. 이 패킷의 tv(timestamp valid)값은 1로 설정된다.
3.Latency normalization
간단히 설명하면 패킷이 네트워크를 통해 전달될 때의 지연 시간이 존재하는데(이걸 propagation time이라고한다), 이 시간을 맞춰주기 위한 기술
4.Lip Sync
AV가 동일한 타이밍에 재생될 수 있도록 도와주는 기술

 

 

AVTP 패킷 캡슐화

 

 

이더넷과 마찬가지로 데이터가 전송되기 위해 캡슐화를 한다.

오디오와 비디오 데이터를 ethernet을 통해 전송할 수 있도록 데이터를 패킷화 하는 encapsulation 과정이다.

먼저 IEC 61883이라는 프로토콜이라는게 있는데 중요하진 않고 다른 장비에서 사용할 수 있도록 관련 정보 heade를 추가한다.라고 생각하면 된다.

그리고 AVB 네트워크에서 사용할 수 있도록 heade를 추가하고, Ethernet에서 사용할 수 있도록 header를 추가한다.

 

 

계층별 프로토콜에 대한 설명

 

Layer 1 : 케이블을 통해 데이터가 전송된다.

Layer 2 :

IEEE802.1 AS : 실시간 오디오 및 비디오 스트림을 오차없이 전송하기 위한 시간 동기화 프로토콜

IEEE802.1 Qat(SRP v2) : 데이터의 대역폭을 예약해 우선순위를 높이고, latency 관리하기 위한 프로토콜

IEEE1722 ~ :  AVTP, SRPm MRMA 등 프로토콜을 이용해 실시간으로 AV가 안정적으로 전송할 수 있도록 관리하는 프로토콜

IEEE802.1Qav : 우선순위 관리, 시간 스케줄링, 대역폭 예약 및 스트림 관리를 담당하는 프로토콜

QatQav의 차이점

Qat는 대역폭 예약으로 대역폭 관리를 우선

Qav는 우선순위 스케줄링으로 latency와 신뢰성 관리

 

Layer 3

RTP = IEEE1733 Layer3 Transport Protocol for Time-Sensitive Application

Real Time Transport Protocol로 실시간 데이터 전송을 위한 프로토콜

FU-A, FU-B 등의 방식으로 패킷을 단편화

 

AVTPDU

 

 

그러면 이제 ethernet에서 오고가는 패킷은 어떻게 구성되어 있는지 알아보자.

굵게 색칠된 subtype, sv, version은 모든 AVTP 데이터에서 기본값으로 들어있는 common header이다.

지금은 AVTP에 대해 알아가는 시간이니까 너무 자세하기 AVTDU의 내용이 어떻게 되어 있는지는 생략한다

 

Subtype : 패킷의 목적과 내용을 위한 타입 정보 오디오를 전송하는지, 비디오를 전송하는지 시간값을 다루는 패킷인지, AAFAVTP Audio Format, RVFRaw Video Format. 자세한 정보는 책 참고

Sv : stream validstream ID가 유효한지, 1이면 유효, 0이면 유효하지 않음

Version : AVTP의 버전, 현재는 0을 사용

이 중에서 중요한 것만 설명하자면

Sequence number : AVTPDU가 하나 전송될 때마다 1씩 증가하는 값, 0~255까지 값을 가지고 255를 넘으면 0으로 초기화

Stream ID : avb에서 데이터의 실시간으로 흐르는 것을 스트림이라고 하는데, 각 스트림을 구별하기 위한 ID , 영상이 한번 재생되기 시작해서 끝나기 전까지는 하나의 Stream ID값을 가진다.

자세한건 책 참조

Avtp_timestamp : 앞에서 설명했다시피 timestamp는 비디오와 출력 장비 간의 시간 동기화를 위해 사용되는 값인데, 이 값이 일치해야 영상이 재생될 수 있다. 예전에 라드 갤럭시 장비를 이용해 replay 공격을 시도했었는데, 아마 이 값 때문에 실패한 것 같다.

 

AVTP subtype

 

 

Subtype이란 avtp 패킷이 어떤 유형인지 설명하는 값이다. 이 패킷이 어떤 목적을 가지고 있고 어떤 내용을 담고 있는지를 설명한다. Subtype에 따라 bytefield의 구성이 달라지고, 내용이 추가되거나 필요없는 부분은 빠지기도 한다.

 

AAF : AVB에서 사용되는 audio 데이터를 다루기 위한 방식으로, 오디오의 코덱이나 채널 수 등을 관리하고, listener가 데이터를 올바르게 해석할 수 있도록 한다.

CVF : 압축된 비디오를 다루기 위한 방식으로, 현재 차량 내에서 사용하고 있는 방식이다. 비디오의 코덱, 프레임 등을 관리하고, 압축 방식 등을 관리한다. 비디오를 압축하는 방식은 MJPEG, H264, JPEG2000이 있다.

CRF : AVTP 패킷에서 사용하는 타임스탬프 정보를 다루는 방식으로, 미디어 도착시간, 전송시간, 미디어 클럭 정보를 제공한다.

CVF field 값 이란 payloadformat을 지정하는 값이다. 일단 reserved forma이 사용되면 그 패킷은 거절된다. RFC type만 사용할 수 있다.
RFC
Request for Comments의 약자로 스택오버플로우를 공식화한 버전이라고 생각하면 될듯

 

AVTP subtype 0x00 (IEEE 61883)

subtype은 비디오 데이터를 전송하기 위한 방식에 따라 구분된다.

0x00은 IEEE61883 방식을 사용하는 경우이다. IEEE 61883은 firewire라는 인터페이스를 사용하는 장비에서 비디오 데이터를 전송하는 방식이다. IEEE 61883에는 여러 방식으로 비디오를 압축하는데 AVB에서는 IEEE 61883-4인 MPEG2-TS 방식으로 압축한다.

MPEG2-TS에 대한 데이터 셋은 https://ocslab.hksecurity.net/Datasets/automotive-ethernet-intrusion-dataset 여기서 구할 수있다.

추출한 MPEG2-TS 데이터 셋은 wireshark에서 lua를 이용해 쉽게 스트림을 확인할 수 있다. 

AVTP subtype 0x02 (AAF)

 

AVTP subtype 0x03 (CVF)

subtype 0x03도 IEEE 61883-4인 MPEG2-TS와 마찬가지로 비디오를 압축해서 보내지만, 차이점이라 하면 CVF는 RFC에서 정의한 압축 방식을 사용한다는 점이다. (MPEG2-TS는 IIDC에서 정의)

CVF는 CVF 헤더와 avtp_timestamp를 사용한다는 점을 주목해야 한다.  avtp_timestamp는 비디오를 전송하기 위해 다양한 AVTPDU를 사용할 때 avtp_timestamp를 이용해 같은 비디오 프레임임을 인증하는 용도로 사용된다. 프레임이 단편화되어 전송되면 avtp_timestamp는 단편화된 패킷 중 마지막에 들어간다. 그러면 avtp_timestamp가 포함되어 있는 패킷이 프레임의 마지막 부분이고, 그 다음 패킷이 다음 프레임의 시작 부분임을 알 수 있다. 

RFC에서 정의한 비디오를 압축하는 방식은 3가지가 있다.

1. MJPEG

2. H264

3. JPEG 2000

각 방식은 인터넷에 충분히 설명되어 있다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함