IEEE 802.1QatEthernet AVB 스택의 대역폭 예약 프로토콜. SRP(Stream Reservation Protocol)로 알려져 있으며, Talker(스트림 송신자)와 Listener(수신자) 사이의 모든 Bridge 포트에 필요한 대역폭을 미리 예약하여 스트림 경로를 결정적으로 확보한다. OSI 2계층(데이터 링크)에서 동작하며, Bridge 각 포트의 Database에 스트림 속성을 등록하는 방식.

사용 목적

  • 스트림 경로 등록 — Talker→Listener 사이의 경로를 Bridge Database에 고정.
  • Worst case latency 계산 — 예약된 대역을 기반으로 최악 지연 추정.
  • AVB 스트림 전달 규칙 지정 — 각 Bridge가 AVB 프레임을 어떻게 처리할지 정의.
  • AVB 도메인 설정 — AVB 지원 노드 집합을 식별.
  • 대역폭 예약 — SR Class A/B 트래픽에 할당할 링크 용량 확보.

배경 용어

용어정의
Bridge데이터 링크 계층에서 주변 네트워크 세그먼트의 트래픽을 관리. 들어오는 패킷을 분석해 타 세그먼트로 전달 여부 결정. (Gateway는 서로 다른 계층에서의 트래픽 관리)
Talker데이터 스트림 서비스를 제공하는 디바이스
Listener데이터 스트림 서비스를 제공받는 디바이스
VLAN물리적 배치와 무관하게 논리적으로 LAN을 구분. 브로드캐스트 영역 분리로 불필요 트래픽 감소
MACMedia Access Control. LAN상 모든 디바이스가 갖는 물리 Address (48 bit)

3개 하위 프로토콜

IEEE 802.1Qat은 이전 IEEE 802.1ak의 MRP(Multiple Registration Protocol) 기반으로 세 가지 속성을 등록한다.

프로토콜역할EtherType
MMRPGroup MAC address 예약0x88F6
MVRPVLAN ID 예약0x88F5
MSRPNetwork Resource(대역폭) 예약0x22EA

MMRP (Multiple MAC Registration Protocol)

  • 개별 MAC 주소 정보 전달·저장.
  • 주어진 Address를 위한 수신 프레임이 필요할 때 MMRP로 등록.
  • Bridge의 주소 테이블로 MAC Address 검사 및 메시지 포워딩.
  • Multicast를 통한 등록된 MAC 주소로의 스트림 다중 전송.

MVRP (Multiple VLAN Registration Protocol)

  • Stream Source 중인 VLAN의 Member 전달·저장.
  • 동일 VLAN 그룹의 Talker/Listener 간 메시지 전달을 위해 등록.
  • VLAN 기능이 있는 Bridge는 어떤 장치가 VLAN 그룹의 멤버인지 알고 있어야 스트림 전송 가능.

MSRP (Multiple Stream Registration Protocol)

MMRP·MVRP와 달리 등록 속성의 결합·폐기·변환이 가능. SRP의 핵심 역할을 수행.

  • LAN 내에서 전달되는 서비스 스트림이 요구하는 대역폭 예약·해제.
  • 예약 시작:
    • Talker가 LAN 내 다른 노드들에게 특정 서비스 제공 가능함을 알림.
    • Listener가 LAN 내 다른 노드들에게 서비스 요청을 알림.
  • Talker와 Listener 등록을 경로 상으로 Propagation.

MSRP 메시지 타입

SourceType정의
TalkerAdvertiseTalker가 제공할 수 있는 서비스 알림. Talker → VLAN 내 MSRP 지원 모든 노드
TalkerFailed현재 제공하던 서비스를 중단. Talker → 서비스를 받고 있는 Listener
ListenerReady특정 Talker 서비스 요청 + 경로 상 대역폭 충분. Listener → Talker
BridgeReady failed서비스 요청이지만 일부 Listener 경로 대역폭 부족. Bridge에서만 생성 — Listener → Talker
ListenerAsking failed서비스 요청 + Listener 대역폭 부족. 특정 서비스 제공 요청. Listener → Talker

Attribute Propagation

Station 간 교환

Talker와 Listener는 MSRP Participant를 통해 메시지를 교환.

Bridge 내부

Bridge는 포트마다 속성(attribute)을 등록·전파. 한 포트에 들어온 Declaration을 다른 포트들로 propagation하되, 각 포트의 대역폭 가용성에 따라 필터링.

주요 MSRP 컨트롤 흐름

Asking (Listener → Talker)

  • Listener가 MSRP asking declaration(A) 전송.
  • Bridge를 통해 해당 서비스를 제공하는 Talker로 메시지 전달.
  • 경로 상 AV Bridge들과 Talker는 이 Declaration을 등록.

Offering (Talker → Listener)

  • Talker가 MSRP Offering declaration(O) 전송.
  • AV Bridge와 Listener는 Offering을 등록.
  • Offering은 Listener의 Ready/Asking 등록 여부와 무관하게 등록 가능.
  • Offering declaration 구성요소:
    • 예약의 중요성 순위 (Rank)
    • 요구 대역폭
    • Ethernet 우선순위 레벨, 목적지 MAC address
    • 상위 계층 Stream ID

Ready (Listener → Talker)

  • Listener가 수신 Stream 구성 시 MSRP Ready declaration(R) 전송.
  • Bridge에 Offering + Ready declaration이 함께 등록되면 해당 포트에서 출력 큐를 구성하고 Ready를 전파.
  • Talker에 Ready declaration이 도달하면 네트워크의 Stream 수신 준비 완료 → Talker가 Data Stream 전송 시작.

스트림 예약 시퀀스

Talker 주도 (Talker가 먼저 광고)

  1. Talker → Talker Advertise Declaration 송신(Broadcast). MAC 주소 · 서비스 식별자 · 대역폭 정보 포함.
  2. Bridge가 Advertise Declaration 수신·포워딩. 다음 홉 Bridge와 연결된 Port에서 현재 가용 대역폭 검출 → 충분 시 포워딩.
  3. Listener가 Talker Advertise Declaration 수신. 원하는 서비스면 Listener Ready Declaration 생성.
  4. Listener → Listener Ready Declaration 송신(Unicast). Advertise의 서비스·대역폭 정보 복사.
  5. Bridge가 Ready Declaration 수신. 저장된 대역폭 정보로 대역폭 예약. 성공 시 Talker 방향으로 포워딩.
  6. Talker가 Ready Declaration 수신. MSRP Database의 Declaration과 비교, 서비스 식별자·대역폭 일치 시 Database 업데이트 → 예약 경로로 스트림 전송 시작.

Listener 주도 (Listener가 먼저 요청)

  1. Listener → Listener Asking Failed Declaration 송신(Broadcast). 서비스 Stream ID 또는 서비스 제공 요청.
  2. Talker가 Asking Failed Declaration 수신. 서비스 가능 시 Advertise Declaration 생성 → 이후 과정은 Talker 주도와 동일 (단 Talker Advertise를 Unicast로 전송).

스트림 예약 해제

Talker가 서비스를 중단할 때:

  1. Talker → Talker Failed Declaration 송신. MSRP Database의 서비스 Declaration 삭제.
  2. Bridge 수신·포워딩. 해당 서비스를 받는 Listener가 있는 포트로만 Failed 전달. Listener와 연결된 Bridge 포트는 대역폭 예약 해제.
  3. Listener 대역폭 해제. Talker Failed Declaration 수신 시 자신의 MSRP Database에서 Declaration 삭제.

예약 실패 시나리오

시나리오 1 — Listener가 다른 Talker로부터 동일 Stream을 이미 수신 중

  • Talker가 전송한 Advertise declaration에 대해 Asking Failed를 생성하여 Talker에 전송.
  • 이때 Advertise declaration에 실렸던 정보와 동일하게 실어 보내, Listener가 대역폭 예약을 새로 시작하는 경우와 혼동되지 않도록 함.

시나리오 2 — Talker의 Advertise 전송 시 Bridge에서 대역폭 부족

  • 대역폭 부족이 발생한 Bridge의 ID와 부족 원인을 저장.
  • Listener 측으로 해당 실패를 Broadcasting.

시나리오 3 — Listener Ready Declaration 전송 중 대역폭 부족

  • 실제 대역폭 예약 과정에서 발생한 예약 실패.
  • 실패가 발생한 Bridge에서:
    • Talker 측으로 Asking Failed Declaration 전달.
    • Listener 측으로 Talker Failed Declaration 전송.

같이 보기