FreeBSD의 혼잡 제어 알고리즘 성능 테스트

FreeBSD의 혼잡 제어 알고리즘 성능 테스트

저는 동적 대역폭 추정(CC)을 추가하여 TCP 혼잡 제어 알고리즘을 개선할 수 있는 제안된 수정안을 구현하는 작업을 진행 중입니다.

나는 (이 커뮤니티의 일부 똑똑한 회원들의 도움으로) 커널에 로드할 수 있는 작동하는 CC 모듈을 만들 수 있었습니다. 이제 혼합 네트워크 환경(유/무선 기기)에서 테스트해보고 내장된 CC 알고리즘(NewReno, Vegas, Cubic, HTCP)과 비교해 보겠습니다.

이러한 CC 알고리즘의 성능을 테스트하고 비교하기 위해 무엇을 사용할 것을 제안합니까?

NS-2에 대해 들어본 적이 있지만 실제 데이터를 얻기 위해 실제 환경에서 테스트할 수 있는 도구도 찾고 싶습니다.

미리 감사드립니다!

답변1

이 포럼은 내 질문에 답변하지 않았기 때문에 freebsd-net 메일링 그룹에 비슷한 질문을 썼고 IMUNES 두 도구를 사용하라는 제안을 받았습니다.http://imunes.tel.fer.hr/그리고 찻잔http://caia.swin.edu.au/tools/teacup/

며칠동안 IMUNES를 테스트해 봤지만, TEACUP은 아직 테스트해보지 않아서 간략하게 설명드리겠습니다.

IMUNES를 사용하면 노드 인터페이스부터 라우터의 라우팅 프로토콜과 속도, 비트 오류율, 대기 시간 및 중복 패킷 비율과 같은 링크 설정에 이르기까지 모든 것을 구성할 수 있는 가상 네트워크를 생성할 수 있습니다. 실험이 시작될 때 각 가상화된 노드에는 파일에서 생성되고 /var/imunes/vroot/모든 장치에 대한 설정을 한 번에 변경할 수 있는 자체 파일 시스템이 있습니다.

처음에는 (적어도 나에게는) 몇 가지 사항이 그다지 명확하지 않습니다.

  1. FreeBSD-10.1-RELEASE에서는 지원되지 않지만 FreeBSD-9.3-RELEASE에서는 작동합니다.
  2. 실험이 시작되면 노드를 두 번 클릭하여 노드의 터미널 인터페이스로 들어가고 원하는 만큼의 창을 열 수 있습니다.
  3. 전체적으로 설정되지 않은 시스템 설정은 각 노드에서 개별적으로 설정해야 합니다.
  4. 실험이 종료되면 가상노드에서 생성/편집된 모든 파일 및 설정은 파기됩니다., 그러나 실험이 실행되는 동안 /var/imunes/[i*****]각 가상 노드에 대해 생성된 폴더 아래에서 이러한 파일에 액세스할 수 있습니다. 물론 명령을 사용하여 find원하는 파일을 찾을 수도 있습니다.
  5. 가상 노드에 프로그램을 추가해야 하는 경우 pkg_add_imunes [settings] [name];
  6. 링크에 BER을 설정할 수 있지만 이는 패킷 손실률과 동일하지 않습니다. 패킷 손실률을 설정하려면 명령을 사용하여 dummynet 커널 모듈을 로드 kldload dummynet하고 이를 사용하여 ipfw노드 간 링크 설정을 지정합니다.

추가할 내용이 더 있으면 이 목록을 업데이트하겠습니다.

답변2

@KarlisL 혹시 놓친 경우를 대비해 IMUNES는 최근 Linux 지원을 추가했습니다.http://imunes.net. Docker를 L3 노드(라우터의 Quagga)로 사용하고 Open vSwitch를 L2 노드로 사용하므로 기본적으로 "실제" 스위치에 연결된 "실제" Linux 시스템을 얻게 됩니다. 그러나 GUI를 통해 BER 등을 설정하는 데는 몇 가지 문제가 있으므로 노드 인스턴스 내에서 수동으로 수행해야 합니다.

관련 정보