top of page

10Base-T1S가 순서를 정하는 방법 (PLCA vs CSMA/CD)

작성자 사진: coo
coo
9월 22일
2분 분량

<10Base-T1S 멀티드롭 네트워크 (출처: TSN Lab)>
<10Base-T1S 멀티드롭 네트워크 (출처: TSN Lab)>

앞선 글에선 CAN을 대체하기 위한 IEEE의 저속 실시간 통신 표준인 10Base-T1S에 대해 이야기를 했습니다. 10Base-T1S는 2개의 선 하나에 여러 노드를 붙여 쓰는 multi drop 방식입니다. 그런데 10Base-T1S를 처음 접하면 자연스럽게 이런 질문이 생깁니다. "선 하나에 여러 노드를 붙이면 충돌 나지 않나요?" 이번엔 그 질문에 대한 답, 10Base-T1S가 순서를 정하는 방법인 PLCA(Physical Layer Collision Avoidance)에 대해 이야기를 나누려 합니다.


<CSMA/CD: 동시에 말하면 충돌하고, 무작위로 기다렸다 다시 시도한다 (출처: TSN Lab)>
<CSMA/CD: 동시에 말하면 충돌하고, 무작위로 기다렸다 다시 시도한다 (출처: TSN Lab)>

기존의 이더넷은 CSMA/CD(Carrier Sense Multiple Access/Collision Detection)라는 방식을 사용합니다. 선이 조용한지 듣고 있다가, 조용하면 먼저 보내는 노드가 선을 차지합니다. 마이크 하나로 회의를 할 때 먼저 말을 꺼내는 사람이 마이크를 잡는 식이죠. 두 노드가 동시에 보내면 충돌이 일어나고, 두 노드는 각자 무작위로 기다렸다가 다시 보냅니다. 16번을 시도해도 실패하면 그 데이터는 버려집니다.


한가할 때는 기다림 없이 바로 보낼 수 있으니 오히려 효율적입니다. 문제는 바쁠 때입니다. 충돌이 잦아지고, 기다리는 시간이 "무작위"이다 보니 데이터가 언제 도착할지 "확정"할 수 없습니다. 브레이크나 모터 제어 신호에게 "운"은 받아들일 수 없는 조건이죠.


<PLCA: 번호 순서대로 말할 기회를 돌린다 (출처: TSN Lab)>
<PLCA: 번호 순서대로 말할 기회를 돌린다 (출처: TSN Lab)>

10Base-T1S는 이 문제를 PLCA로 풀어냅니다. 방법은 간단합니다. 경쟁하지 않고 돌아가며 보내는 것입니다. 마이크를 순서대로 돌리는 것이죠. 각 노드는 0번부터 차례로 번호를 받습니다. 0번 노드(코디네이터)가 "한 바퀴 시작"을 알리는 BEACON 신호를 보내면, 번호 순서대로 한 번씩 보낼 기회가 돌아갑니다. 보낼 데이터가 있으면 자기 차례에 보내고, 없으면 3.2μs 만에 다음 번호로 넘깁니다. 마지막 번호까지 돌면 다시 0번이 BEACON을 보내고 새로운 한 바퀴가 시작됩니다.


<PLCA 한 바퀴: BEACON 신호와 빈 차례만으로 순서를 맞춘다 (출처: TSN Lab)>
<PLCA 한 바퀴: BEACON 신호와 빈 차례만으로 순서를 맞춘다 (출처: TSN Lab)>

그렇다면 "이제 네 차례야"라는 메시지를 계속 주고받아야 할까요? 그렇지 않습니다. BEACON은 데이터가 아니라 프리앰블(preamble)처럼 물리 계층에서 쓰는 짧은 신호입니다. 모든 노드는 BEACON을 들은 뒤 선을 지켜보며 스스로 차례를 셉니다. 순서를 정하기 위해 드는 비용은 짧은 BEACON과 3.2μs짜리 빈 차례가 전부입니다. 10Base-T1S가 "물리적인 수준"에서 응답시간과 대역폭을 보장한다는 말이 바로 이 뜻입니다.


그래서 최악의 상황을 미리 계산할 수 있습니다. 앞선 글에서 8개 노드 기준 최대 1.23ms라고 했는데, 정확히는 가장 큰 데이터 하나를 보내는 시간입니다. 차례를 기다리는 시간까지 더하면, 8개 노드가 짧은 제어 메시지를 보낼 때 한 바퀴는 약 0.5ms이고, 모두 가장 큰 데이터를 보내도 10ms 안에는 반드시 차례가 돌아옵니다. 모두가 바쁠 때도 각 노드는 10Mbps의 1/8인 1.25Mbps를 보장받습니다. 데이터가 언제 도착할지 "확정"할 수 있다는 것, 이게 실시간 통신입니다.


<로봇 팔 제어 실험: 1Gbps 이더넷과 10Base-T1S의 트래픽 비교 (출처: TSN Lab)>
<로봇 팔 제어 실험: 1Gbps 이더넷과 10Base-T1S의 트래픽 비교 (출처: TSN Lab)>

실제로도 그럴까요? TSN Lab은 동일한 H/W로 구성된 로봇 팔을 1Gbps 이더넷과 10Base-T1S로 각각 제어해 보았습니다. 트래픽이 적을 때는 둘 다 문제 없이 동작했습니다. 차이는 트래픽을 과도하게 만들었을 때 나타났습니다. 이더넷은 패킷을 잃어버리기 시작했습니다. 트래픽을 그래프로 뽑아보면 서로 경쟁하기 때문에 대역폭이 들쑥날쑥합니다. 반면 10Base-T1S는 순서대로 전송하기 때문에 10Mbps를 온전히 활용했고, 무엇보다 트래픽이 몰린 상황에서도 제어 신호를 잃어버리지 않고 제대로 전달했습니다. 속도가 100배 빠른 이더넷이 놓친 제어 신호를 10Mbps짜리 10Base-T1S는 끝까지 전달한 것이죠.


그렇다고 CSMA/CD가 버려진 것은 아닙니다. 10Base-T1S에서 PLCA는 선택 기능이고, CSMA/CD는 여전히 기본 동작입니다. BEACON이 들리지 않으면 노드들은 CSMA/CD로 돌아가 통신을 이어갑니다. 기존 이더넷의 규칙은 그대로 두고 그 위에 실시간성을 얹은 것이죠. 이더넷이 오랫동안 살아남은 이유가 "표준"이었듯이, 10Base-T1S도 같은 길을 걷고 있습니다. CAN과 10Base-T1S의 비교는 다음 글에서 이야기하겠습니다.


로봇 팔 실험이 보여주듯 제어 신호를 지키는 것은 빠른 네트워크가 아니라 순서를 지키는 네트워크입니다. 10Base-T1S가 CAN을 대체할 수 있는 이유도 속도가 아니라 순서에 있습니다. TSN Lab은 독일 Fraunhofer 연구소와 함께 10Base-T1S 기술을 개발하고 있고, 2027년 3/4분기엔 샘플칩이 나옵니다. 순서를 지키는 이더넷이 궁금하시면 TSN Lab으로 연락주세요.


댓글


bottom of page