Credit-based shaper(CBS)는 큐가 내보내는 속도를 그 큐에 예약한 대역폭까지로 제한하는 shaper다.[1][2] IEEE 802.1Q가 정하는 알고리즘으로, 브리지와 엔드 스테이션에 쓰인다.[3] IEEE 802.1Qav-2009가 CBS를 정했고[4], 이 개정은 IEEE 802.1Q-2011에 합쳐졌다.[5] 현행판은 IEEE 802.1Q-2022다.[3]

IEEE 802.1Qav 프로젝트는 브리지가 시간에 민감한 오디오·비디오 트래픽에 지연과 전달 변동의 상한을 보장하게 하는 것을 목표로 했다.[6] IEEE 802.1 작업 그룹의 TSN 요약은 CBS를 지연 상한을 위한 도구로 분류한다.[7] CBS는 AVB의 SR(Stream Reservation) 클래스 트래픽을 내보내는 데 쓰인다.[1][8]

Credit

CBS는 큐마다 credit 값을 둔다.[8][9]

  • 큐에 보낼 프레임이 있지만 다른 큐가 전송하는 동안 기다리면 credit은 idleSlope의 비율로 오른다.[8][9]
  • 큐가 프레임을 내보내는 동안 credit은 sendSlope의 비율로 내려간다.[2][9]
  • 큐가 비었을 때 이면 credit은 0이 된다.[2][8] credit은 큐가 전송하지 않는 동안(scheduled traffic을 쓰면 게이트가 열려 있는 동안) 큐가 비어 있어도 idleSlope의 비율로 오르고, 0으로 되돌려지는 것은 양수일 때뿐이다. 그래서 큐가 비었을 때 음수인 credit은 0이 될 때까지 오른다.[3]
  • 큐는 보낼 프레임이 있고 일 때 전송할 수 있다.[8][9]

idleSlope는 큐에 예약한 대역폭에 해당한다.[2][8] sendSlope의 크기는 포트의 전송 속도 portTransmitRate에서 idleSlope를 뺀 값, 곧 다.[2][9] I210 데이터시트는 sendSlope를 로 계산하며, 여야 하므로 sendSlope는 음수다.[8]

credit에는 위 한계 hiCredit이 있다.[2][8] I210 데이터시트는 우선순위가 가장 높은 큐의 hiCredit을 최대 전송 패킷 크기와 그 큐의 예약 대역폭으로 계산하게 하고, 다음 큐의 식에는 앞 큐의 프레임도 더한다.[8] STM32MP157의 이더넷은 아래 한계 loCredit도 둔다. RM0436은 hiCredit의 최댓값으로 best-effort 트래픽의 최대 패킷 크기를, loCredit 크기의 최댓값으로 그 큐가 내보내는 최대 프레임 크기를 제시한다.[2]

IEEE 802.1Q-2022의 Annex L(참고)은 loCredit과 hiCredit을 아래 식으로 제시한다. maxFrameSize는 그 트래픽 클래스가 포트로 보낼 수 있는 가장 큰 프레임의 크기이고, maxInterferenceSize는 그 트래픽 클래스의 프레임 전송을 늦출 수 있는 트래픽 버스트의 가장 큰 크기(비트)다.[3]

이 Annex는 번호가 가장 큰 트래픽 클래스의 maxInterferenceSize로 포트로 보낼 수 있는 가장 큰 프레임의 크기를 제시하고, 다른 트래픽 클래스에서는 더 높은 트래픽 클래스의 CBS 큐가 전송을 늦출 수 있는 것까지 셈에 넣는다고 제시한다. 이 Annex의 알고리즘에서 credit 값은 hiCredit을 넘지 않는다.[3]

트래픽 클래스와의 관계

이 표준은 모든 브리지가 기본으로 지원해야 하는 strict priority에 더해 지원할 수 있는 전송 선택 알고리즘의 하나로 CBS를 두고, 포트의 전송 선택 알고리즘 표로 트래픽 클래스마다 쓸 알고리즘을 정한다. 이 표에서 CBS의 식별자는 1이다. 이 표준이 권하는 기본 설정은 SR 클래스 A(우선순위 3)와 SR 클래스 B(우선순위 2)를 CBS를 쓰는 트래픽 클래스에 대응시킨다. 트래픽 클래스가 셋 이상이면 두 SR 클래스를 서로 다른 트래픽 클래스에, 둘뿐이면 한 트래픽 클래스에 둔다. CBS는 트래픽 클래스 N의 큐에 지금 예약된 대역폭인 operIdleSlope(N)을 idleSlope로 써서 나가는 트래픽을 셰이핑한다.[3]

이 표준은 CBS가 뜻대로 동작하려면 CBS를 쓰는 트래픽 클래스가 strict priority를 쓰는 어느 트래픽 클래스보다도 번호가 커야 한다고 정한다.[3] CBS 큐가 credit 때문에 전송할 수 없는 동안에는 낮은 우선순위의 큐가 전송한다.[8][9] CBS를 쓰는 트래픽 클래스가 예약 대역폭을 다 쓰지 않으면, 남는 대역폭을 strict priority의 낮은 트래픽 클래스가 쓸 수 있다.[1][2]

가장 높은 SR 클래스의 CBS 큐도 바로 전에 전송을 시작한 다른 프레임이 끝나기를 기다려야 하므로, 그 큐의 프레임은 매체가 지원하는 가장 긴 프레임을 보내는 시간만큼 늦어질 수 있다. 저전력 모드에서 돌아오는 매체 접근 지연이 그보다 길면 그만큼 늦어진다. 낮은 SR 클래스의 프레임은 여기에 더해 더 높은 SR 클래스가 몰아 보내는 프레임만큼 기다린다.[3] KSZ9477S 데이터시트에 따르면 best-effort 큐의 큰 패킷 전송은 CBS의 성능을 떨어뜨릴 수 있다.[1]

예약할 수 있는 대역폭

IEEE 802.1Q-2022는 SR 클래스로 설정한 트래픽 클래스 마다, SRP가 그 트래픽 클래스의 큐에 예약할 수 있는 대역폭을 portTransmitRate에 대한 백분율 deltaBandwidth()으로 둔다. lockClassBandwidth()이 기본값인 거짓이면, deltaBandwidth()은 lockClassBandwidth가 거짓인 더 높은 트래픽 클래스들의 deltaBandwidth에 더해 예약할 수 있는 몫이다. 트래픽 클래스 이 예약할 수 있는 대역폭은 과, lockClassBandwidth가 거짓인 그보다 높은 트래픽 클래스들의 deltaBandwidth를 합한 것에서, 더 높은 트래픽 클래스가 이미 예약한 대역폭을 뺀 것이다. deltaBandwidth()의 기본값은 번호가 가장 큰 트래픽 클래스에서 75%, 그보다 낮은 트래픽 클래스에서 0%다.[3]

이 표준은 deltaBandwidth의 합을 예약하지 않는 트래픽(best-effort, strict priority)에 대역폭이 충분히 남도록 고르기를 권한다. 기본값의 합은 75%이므로, 기본 설정에서는 포트 대역폭의 25% 이상이 예약하지 않는 트래픽에 남는다. 이 기본값은 관리로 바꿀 수 있다.[3]

Time-aware shaper와의 차이

Microchip AN1185에 따르면 credit-based shaper는 우선순위에 따라 큐가 쓰는 대역폭을 조절하고, time-aware shaper는 큐마다 전송을 전역 시간 척도에 맞춰 스케줄한다.[10]

[1]
“KSZ9477S 7-Port Gigabit Ethernet Switch with Ring Redundancy, SGMII and RGMII/MII/RMII Interfaces,” Microchip Technology, 2019. Accessed: Sep. 29, 2026. [Online]. Available: https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/KSZ9477S-Data-Sheet-DS00002392C.pdf
[2]
“RM0436 Reference manual: STM32MP157 advanced Arm-based 32-bit MPUs,” STMicroelectronics, 2025. Accessed: Sep. 29, 2026. [Online]. Available: https://web.archive.org/web/20260504052328/https://www.st.com/resource/en/reference_manual/rm0436-stm32mp157-advanced-armbased-32bit-mpus-stmicroelectronics.pdf
[3]
IEEE, “IEEE 802.1Q-2022 IEEE Standard for Local and Metropolitan Area Networks–Bridges and Bridged Networks.” 2022. Accessed: Sep. 29, 2026. [Online]. Available: https://web.archive.org/web/20260521151713/https://standards.ieee.org/ieee/802.1Q/10323/
[4]
IEEE 802.1 Working Group, “IEEE 802.1 Time-Sensitive Networking Task Group.” 2017. Accessed: Sep. 29, 2026. [Online]. Available: https://www.ieee802.org/1/pages/tsn.html
[5]
IEEE, “IEEE 802.1Q-2011 IEEE Standard for Local and Metropolitan Area Networks — Media Access Control (MAC) Bridges and Virtual Bridged Local Area Networks.” 2011. Accessed: Sep. 29, 2026. [Online]. Available: https://web.archive.org/web/20260610222932/https://standards.ieee.org/ieee/802.1Q/4410/
[6]
IEEE 802.1 Working Group, “802.1Qav - Forwarding and Queuing Enhancements for Time-Sensitive Streams.” 2009. Accessed: Sep. 29, 2026. [Online]. Available: https://www.ieee802.org/1/pages/802.1av.html
[7]
IEEE 802.1 Working Group, “IEEE 802.1 TSN summary.” 2026. Accessed: Sep. 29, 2026. [Online]. Available: https://www.ieee802.org/1/files/public/docs2026/admin-tsn-summary-0726-v01.pdf
[8]
“Intel Ethernet Controller I210 Datasheet,” Intel, 2019. Accessed: Sep. 29, 2026. [Online]. Available: https://web.archive.org/web/20190622103502/https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/i210-ethernet-controller-datasheet.pdf
[9]
“SAM E70/S70/V70/V71 Family Data Sheet,” Microchip Technology, 2026. Accessed: Sep. 29, 2026. [Online]. Available: https://ww1.microchip.com/downloads/aemDocuments/documents/MCU32/ProductDocuments/DataSheets/SAM-E70-S70-V70-V71-Family-Data-Sheet-DS60001527.pdf
[10]