FreeBSD의 다양한 혼잡 제어 알고리즘

FreeBSD의 다양한 혼잡 제어 알고리즘

FreeBSD에서 (기본값이 아닌) 다른 TCP 혼잡 제어 알고리즘을 실행하는 방법이 있습니까? 무선 네트워크에서 더 나은 성능을 얻기 위해 연구 논문에 발표된 몇 가지 아이디어를 사용하여 기존 TCP 혼잡 제어 알고리즘을 수정하려고 합니다.

답변1

sysctl.conf 를 보면 어떤 TCP 혼잡 제어 알고리즘을 사용할 수 있는지 확인할 수 있습니다 net.inet.tcp.cc.available. 기본적으로 newreno만 사용 가능하므로 이를 사용합니다. 다양한 알고리즘을 사용할 수 있습니다. cc_something에 이름이 지정된 모듈을 찾으세요 /boot/kernel.

예를 들어 kldload를 통해 로드할 수 있습니다 kldload cc_vegas. 이 작업을 수행하면 새 알고리즘이 net.inet.tcp.cc.available. sysctl 을 통해 선택할 수 있습니다 net.inet.tcp.cc.algorithm.

완전한 예는 다음과 같습니다.

% sysctl -a | grep net.inet.tcp.cc
net.inet.tcp.cc.available: newreno
net.inet.tcp.cc.algorithm: newreno
% sudo kldload cc_vegas
% sysctl -a | grep net.inet.tcp.cc
net.inet.tcp.cc.vegas.beta: 3
net.inet.tcp.cc.vegas.alpha: 1
net.inet.tcp.cc.available: newreno, vegas
net.inet.tcp.cc.algorithm: newreno
% sudo sysctl net.inet.tcp.cc.algorithm=vegas
net.inet.tcp.cc.algorithm: newreno -> vegas
% sudo sysctl net.inet.tcp.cc.algorithm=newreno
net.inet.tcp.cc.algorithm: vegas -> newreno
% 

답변2

연구를 위해 Swinburne University의 고급 인터넷 아키텍처 센터(CAIA)는 여러 프로젝트를 관리합니다. 그들은 적어도 부분적으로 FreeBSD [newtcp]의 대기 시간 기반 알고리즘에 중점을 둡니다. FreeBSD 재단의 지원으로 newtcp 프로젝트의 작업은 FreeBSD 9.0 및 후속 버전에 통합되었습니다.

광범위한 UNIX 애플리케이션 내에서 저는 개인적으로 Linux에서 Westwood+ TCP 혼잡 제어를 통해 어느 정도 성공을 거뒀습니다. Westwood는 무선 애플리케이션에 특히 유용할 수 있습니다[Casetti2002]. TCP-FIT에 관한 좋은 기사도 발견했습니다 [Wang2011]

개인적으로 저는 FreeBSD 플랫폼을 처음 접했습니다. 무선 네트워크에 직접 적용하려면 CAIA의 작업이 필요하다고 생각됩니다.지연 기반TCP 혼잡 제어가 특히 중요할 수 있습니다.

Steve Wills의 답변을 확장하기 위해 현재 단일 FreeBSD 커널 설치에서 사용할 수 있는 TCP 정체 제어 알고리즘 외에도 FreeBSD 설명서에는 FreeBSD 커널을 다시 빌드하기 위한 지침도 포함되어 있습니다. [매뉴얼 9장. ]

아마도 패키지 구축 자동화를 위한 Pourdriere의 구축 환경과 LAN 네트워크(BootP, DHCP 등)를 위한 PXE/Netboot 서비스를 사용하면 다양한 플랫폼과 다양한 환경에서 사용 가능한 TCP 혼잡 제어 알고리즘을 적용하기 위한 비교적 편안한 벤치마킹 환경을 구축할 수 있을 것입니다. 네트워크 구성. 또한 아마도 무선 채널 잡음 및 기타 무선 채널 간섭을 시뮬레이션하고 실제 구성에서 시스템 성능을 추정하는 기존 작업이 있을 수 있습니다. 개인적으로는 제가 온라인으로 다니고 있는 대학에 이런 연구 스타일에 딱 맞는 연구실이 없어서 걱정되는데, 학계 어딘가에는 가능할 거라 확신합니다.

다음은 간략한 참고문헌입니다:

기사는 해당 출판사에서 직접 제공되거나 해당 자금 지원 기관에서 사전 인쇄본으로 제공됩니다.

관련 정보