11.11.4.2 Peer-to-Peer 설정 누락 시 스위치 라우팅 루프(Looping) 오버헤드 통제

11.11.4.2 Peer-to-Peer 설정 누락 시 스위치 라우팅 루프(Looping) 오버헤드 통제

탈중앙화 로보틱스와 전장 제어 통신망 설계 시, 인프라의 복잡성을 제거하기 위해 거대한 스위치 역할을 하는 관제 라우터(zenohd)를 생략해버리는 피어 투 피어(P2P) 위상의 메시 네트워크(Mesh Network)는 매우 매혹적이고 강인한 설계안이다. 다수의 모바일 로봇들이 환경 변수로 config.set_mode(zenoh.Mode.PEER) 를 발동시키며 전원을 인가할 때, 노드들은 독립적인 라우팅 권한을 갖고 상호 통신망을 창출해 낸다.

그러나 이러한 중앙의 엄격한 교통정리 없는 P2P 클러스터 환경은 자칫 “스위치 빙글빙글(Switching Looping)“이라는 파멸적 네트워크 트래픽 역류 사태를 몰고 오며, 통신 지연 폭발과 대역폭의 100% 압살 현상(Broadcast Storm)을 배태한다. 본 절에서는 개발자의 나이브(Naive)한 Peer 설정 누락이 유발하는 루핑 폭주 기작을 해부하고, 아키텍처 레벨에서의 물리적 트래픽 락다운 전술을 제시한다.

1. 브로드캐스트 스톰(Broadcast Storm)과 무한 루핑의 출현 진원

스위치 루핑, 이른바 브로드캐스트 스톰 현상은 P2P 망에 접속한 로봇 스웜들이 상호 멀티캐스트 폴링(Multicast Polling) 공간 안에 무분별하게 욱여넣어졌을 때 점화된다.

로봇 A가 “나 여기 있다!“라는 멀티캐스트 헬로(Hello) 프레임을 우주망에 던진다.
이것을 넘겨받은 로봇 B는 P2P 프로토콜 규약에 따라 로봇 C, D, E에게 “방금 로봇 A가 접속했다!“며 패킷을 복제 전파(Relay)해준다.
문제는 C와 D 역시 그 자체로 P2P 라우터 위상을 지니기에, 이를 받은 직후 “로봇 B가 로봇 A의 패킷을 전달해주었다!“라고 외치며 A에게 다시 전파 패킷 쓰나미를 튕겨 보낸다는데 있다.

로컬 네트워크의 대역폭은 불과 수십 초 만에 수백만 개의 중복 디스커버리 핑퐁(Ping-pong) 프레임들에 의해 점거당하고, 정작 보내야 할 본질적인 카메라 프레임이나 조향 패킷은 송신 버퍼에 눌어붙어 썩어버리는 치명적 통신 블랙아웃(Blackout)에 무릎 꿇게 된다.

2. Gossip 프로토콜 규약 제어와 TTL(Time-To-Live) 폭풍 차단

Zenoh 엔진은 분산망 내에서 이러한 스톰 현상을 억제하기 위해 내부적으로 분산 해시 테이블(DHT) 이력 추적기와 상태 캐싱 체계를 보유하고 있으나, 50대 이상의 로봇이 동시에 부팅하여 미친 듯이 스카우팅(Scouting)을 남발하는 난전 구역에서는 런타임 제어 장치가 필수적이다.

엔지니어는 Mode.PEER 선언만으로 안도할 것이 아니라, 통신 설정 파일 콘피그(Config) 층위에서 오건(Over-gunned)된 루핑 인터벌을 조이고 트래픽 생존 수명(Time-to-Live) 파라미터를 강제 축소하는 엄벌(Throttling)을 내려야 한다.

// [방어 편제] 불필요한 스카우팅 폭주를 가리막는 억제 옵션 런북
{
  "mode": "peer",
  "scouting": {
    "multicast": {
      "enabled": true,
      // 멀티캐스트 핑 주기(인터벌)를 너무 짧게 두면 루프 지옥에 빠진다. 배가시켜라!
      "interval": "2000" // (기본값인 수백 밀리초에서 2초 단위로 보수적 격상) 
    }
  },
  "routing": {
    "gossip": {
      // 가십 프로토콜(주변 노드의 정보를 캐묻고 다니는 옵션) 비활성화 혹은 제어
      "enabled": false 
    }
  }
}

가십 라우팅(Gossip Routing) 릴레이 기능조차 인프라망을 갉아먹는 주요 원인이 된다! 만약 모든 로봇들이 거대한 스위치 허브 하나에 붙박이로 물려 있는 물리적 L2 서브넷 평야라면 굳이 C 로봇이 A 로봇의 트래픽을 중계해줄 필요가 일절 없다.
이 경우 중계 라우팅 옵션을 아예 enabled: false로 파괴하여 멀티 점프 현상을 압살해버려야 무한 릴레이 역류 패킷을 원천 차단(Blocking)할 수 있다.

3. 유니캐스트(Unicast) 포커싱: 피어(Peer)의 지정 앵커링 조준

가장 궁극적이고 완벽한 무선망 스톰 제어 통제법은 불특정 다수를 상대로 울부짖는 멀티캐스트의 야만성을 버리고, 동기화 유니캐스트 앵커(Unicast Anchor) 전법으로 런타임의 멱살을 거머쥐는 것이다.

피어 모드라 할지라도, 스웜(Swarm) 무리 중 배터리나 통신 대역이 가장 강한 리더 로봇(또는 사내망 특정 진입점 서버) 1대를 지정좌표(Locator)로 삼고, 나머지 로봇의 설정 패러다임에 connect: ["tcp/192.168.1.100:7447"] 이라는 직진형 IP 조준 장치를 장착해라.
모든 피어들은 허공에 멀티캐스트 비콘을 낭비하는 짓을 멈추고 192.168.1.100 에게 일렬 진군하여 연결의 닻을 내리며, 100번 단말이 보유한 노드 데이터베이스(DHT)를 조용하고 순결하게 털어감으로써 루핑 스톰이라는 이름의 암세포를 영구 멸종시키는 것이다.