왜 NDM‑TCP 테스트는 단일 실행 스냅샷이며 (통계적 평균이 아니다)

발행: (2026년 2월 16일 오후 07:07 GMT+9)
10 분 소요
원문: Dev.to

Source: Dev.to

테스트 철학과 실용적 제약에 관한 3분 읽기

현실 점검

커뮤니티에 투명하게 말씀드리자면, 이것은 제가 다가오는 시험 공부 사이에 진행하고 있는 개인 취미 프로젝트입니다. 시간과 하드웨어가 제한된 솔로 개발자로서, 전통적인 과학적 방법인 50–100번의 시도를 실행하고 평균을 내는 대신, 40‑second “stress‑test snapshots”를 장시간 수행하기로 의도적으로 선택했습니다.

이것이 이상적이지는 않지만—솔직합니다, 그리고 제가 이렇게 하는 이유는 다음과 같습니다.

내가 작업하고 있는 제약 조건

시간 제한

각 테스트 시나리오마다 여러 번의 시도를 실행하려면 수십 시간이 필요합니다. 현재는 시험이 다가오고 이 프로젝트가 부수적인 작업이기 때문에, 통계적 깊이보다는 폭을 우선시해야 합니다—즉, 하나의 시나리오를 여러 번 테스트하기보다 다양한 시나리오를 한 번씩 테스트하는 방식을 선택했습니다.

하드웨어 현실

VMware를 이용해 단일 노트북에서 테스트하고 있습니다. 다중 노드 하드웨어 실험실이 아니라, 제가 접근할 수 있는 이 환경 내에서 작업하고 있습니다.

소프트웨어 문제

현재 apt를 통해 설치한 iperf3 빌드가 외부 서버에 연결할 때 코어 덤프와 함께 충돌합니다. 이 때문에 현재는 로컬호스트 tc(traffic control) 시뮬레이션만 사용할 수 있습니다. 소스에서 직접 빌드하여 문제를 해결하는 것은 현재 시간과 역량이 부족해 추가적인 복잡성을 초래합니다.

실제 환경(와이파이, 이더넷)을 제대로 테스트하려면 이상적으로는 다음이 필요합니다:

  • 와이파이/이더넷에 연결된 서버 역할을 하는 장치 하나
  • 수신기 역할을 하는 또 다른 장치 하나

현재는 이러한 설정을 위한 다수의 장치를 보유하고 있지 않습니다.

철학: 반복 가능성보다 혼돈을 수용하기

왜 진정한 무작위성이 중요한가

일부 연구자는 “고정 시드” 반복 가능성을 선호합니다. 이는 무작위 잡음이 모든 테스트 실행마다 동일하다는 의미이며, 결과를 완벽하게 재현할 수 있게 합니다. 하지만 이는 현실을 반영하지 못합니다.

실제 환경에서는 네트워크 상황이 두 번 다시 똑같지 않습니다. 동일한 지터와 패킷 손실 순서를 다시 만나지 못합니다. NDM‑TCP는 예상치 못한 상황을 처리하도록 설계되었습니다—운영 환경에서 발생하는 고유하고 예측 불가능한 “눈송이” 같은 네트워크 스트레스를 적응해야 합니다.

의사‑무작위 생성의 한계

대부분의 컴퓨터는 진정한 무작위 수를 생성할 수 없으며, 의사‑무작위 수 생성기를 사용합니다. 정확한 반복 가능성을 위해서는 다음이 필요합니다:

  • 시드가 지정된 의사‑무작위 생성기 사용 (동일한 시퀀스 재현)

tc 도구는 이러한 제어를 쉽게 노출하지 않으므로, 각 테스트 실행마다 실제로 다른 무작위 조건을 마주하게 됩니다. 이는 다음을 의미합니다:

  • 보다 현실적 (실제 세계의 예측 불가능성을 모방)
  • 덜 재현 가능 (동일한 조건을 보장할 수 없음)

저는 이를 버그가 아니라 기능으로 봅니다. NDM‑TCP는 신중히 제어된 하나의 시퀀스가 아니라, 네트워크가 던지는 모든 상황을 처리할 수 있음을 증명해야 합니다.

왜 커뮤니티 지원이 필요한가

현실은 이렇습니다: 이러한 제약 때문에 각 시나리오를 50–200번 테스트할 수 없습니다. 바로 그래서 제가 커뮤니티 지원을 요청하는 것입니다.

이것은 미친 실험으로 시작되었습니다

NDM‑TCP는 실제로 제가 수행한 또 다른 미친 실험인 **NDM (Neural Differential Manifolds)**에서 비롯되었습니다. 그 실험의 개념을 가져와서 “만약에?”라고 생각했습니다.

테스트해 보았고, 작동합니다. 결과가 기대감을 줍니다.

하지만 가장 중요한 점은:

If NDM‑TCP가 실제로 작동한다면—실제 네트워크와 실제 하드웨어를 이 tc‑based localhost simulations보다 더 잘 처리할 수 있다면—오늘날 네트워크가 여전히 겪고 있는 오래된 문제들을 많이 해결할 수 있을 것입니다:

  • 예측할 수 없는 손실 패턴 처리
  • 빠른 RTT 변화에 적응
  • 스트레스 상황에서 공정성 유지
  • 혼란스러운 상황에서 재전송 감소

로컬호스트에서 실제 세계로

tc를 이용한 로컬호스트 테스트는 시작에 불과합니다. 이 접근 방식이 다음 환경에서도 효과적이라면:

  • 실제 네트워크 하드웨어(실제 Wi‑Fi/이더넷 연결)
  • 실제 혼잡이 발생하는 프로덕션 환경
  • 다양한 네트워크 토폴로지

…우리는 모든 TCP 연결에 대해 진정으로 가치 있는 무언가를 갖게 될 것입니다.

그것이 비전이며, 바로 그 때문에 여러분의 도움이 필요합니다. 제대로 테스트해 주세요.

커뮤니티 협업 요청

여기가 여러분이 참여할 부분입니다.
다음과 같은 조건을 갖추고 있다면:

  • 안정적인 Linux 실험실 환경
  • 현재보다 더 많은 시간
  • 실제 WiFi/Ethernet 테스트를 위한 다수의 장비
  • 50~100회의 통계 분석을 실행하고자 하는 관심

NDM‑TCP 프로젝트는 오픈소스입니다. 향후 업데이트에 커뮤니티가 제공한 데이터를 포함하고 싶습니다. 여러분의 다중 실행 통계 분석은 제 단일 실행 스트레스 테스트를 완벽히 보완하여 우리 모두에게 다음과 같은 이점을 제공합니다:

  • 스냅샷을 통한 상세하고 혼돈을 다루는 증거
  • 평균화된 다중 실행 시험에서 얻는 통계적 신뢰도

마무리 생각

이 테스트 방법론은 완벽하지 않으며, 실용적입니다. 저는 실제 제약 조건 안에서 작업하면서 스트레스 상황에서 NDM‑TCP의 동작에 대한 유용한 통찰을 제공하려고 노력하고 있습니다.

이 테스트를 “실험실 결과”가 아니라 “현장 보고서”로 생각하십시오. 이는 네트워크 혼돈과의 한 번의 격렬한 대면에서 일어난 일을 보여줄 뿐이며, 평균적으로 일어나는 일을 보여주는 것은 아닙니다. 두 관점 모두 가치가 있습니다.

기여하고 싶으신가요? 프로젝트 저장소를 확인하고 토론에 참여하세요. 함께하면 NDM‑TCP 성능에 대한 보다 완전한 그림을 그릴 수 있습니다.

0 조회
Back to Blog

관련 글

더 보기 »