2012-12-17 3 views
5

각 이더넷 포트 (최대 6 개의 포트가 있음)에 최대 대역폭을 설정할 수 있어야하는 서버에서 실행할 응용 프로그램을 작성하고 있습니다.이더넷 포트의 대역폭을 조절하십시오.

분명히 내 응용 프로그램에서 사용하는 대역폭을 조절할 수는 있지만 컴퓨터의 실제 이더넷 포트 대역폭을 조절하는 것에 대한 정보는 아직 찾지 못했습니다.

모든 포트를 모니터링하는 드라이버를 만들어야합니까? 누구든지 올바른 방향으로 나를 가리킬 수 있을까요?

+1

제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

+0

좋은 소리입니다. 고마워요. – DawnMage77

+0

왜 필요한가요? WIndows는이를 지원하지 않습니다. 왜냐하면이 경우는 거의 사용 사례가 아니기 때문에) 더 나은 답변을 제공 할 수있는 유스 케이스가 있습니다. – TomTom

답변

0

가장 쉬운 방법은 이더넷 포트를 사용하는 것보다는 출력 자체를 조절하는 실제 송신자와 구성 할 수있는 출력 장치를 만드는 것입니다.

1

당신이 리눅스 박스에 접근 할 수 있다면, 그 일을 쉽게 할 수 있습니다. 실제로 모든 종류의 네트워크 장애를 추가하여 흥미로운 것으로 만들 수 있습니다.

트래픽을 중간에 처리하기 위해 네트워크 카드 2 개와 설정 넷을 설치하기 만하면됩니다. (예 : 지연, 지터, 대역폭 속도 등의 장애를 추가하는 전선의 netem blip)

다음은 Android 트래픽을 Linux로 전달하여 Android 오디오 스트리밍 앱의 성능을 테스트하는 데 사용하는 스크립트입니다 상자 (와이파이 AP가 인터페이스 중 하나에 연결되어 있음).

추가 : 4 세대 네트워크에 앱 없이 행동을 운전하는 것 동안 어떻게 내 응용 프로그램의 성능을 테스트함으로써, 내 말은 (즉, 지터의 많은). 또는 Wi-Fi가있는 가정용 사례입니다. 가정의 모든 사람들이 개의 HD 동영상을 동시에 (즉, 패킷 손실이 많은 인 대역폭 경쟁)으로 결정하면 어떻게 될까요?

#!/bin/bash 

ORIGINAL_PATH=$PATH 

#echo $ORIGINAL_PATH 

export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/game" 

#echo $PATH 
CTOSINTERFACE=eth1 # EGRESS interface on Bridge, facing the SERVER 
STOCINTERFACE=eth0 # EGGRES interface on Bridge, facing the CLIENT 

# Client To Server 
CDELAY=$1 
CJITTER=$2 
CLOSS=$3 
CDUPLICATE=$4 
CCORRUPT=$5 
CREORDER=$6 

# Server to Client 
SDELAY=$7 
SJITTER=$8 
SLOSS=$9 
SDUPLICATE=$10 
SCORRUPT=$11 
SREORDER=$12 

# Clear Latency/Loss/Jitter 
/sbin/tc qdisc del root dev $CTOSINTERFACE 2>/dev/null 
/sbin/tc qdisc del root dev $STOCINTERFACE 2>/dev/null 


# Client to Server Impairments (on Bridge) 
qdisc add dev $CTOSINTERFACE root netem delay ${CDELAY}ms ${CJITTER}ms loss $CLOSS% duplicate ${CDUPLICATE}% corrupt ${CCORRUPT} reorder ${CREORDER}% limit 10000000 2>&1 >/dev/null 
qdisc add dev $STOCINTERFACE root netem delay ${SDELAY}ms ${SJITTER}ms loss $SLOSS% duplicate ${SDUPLICATE}% corrupt ${SCORRUPT} reorder ${SREORDER}% limit 10000000 2>&1 >/dev/null 

#$PATH=$ORIGINAL_PATH 
export PATH=$ORIGINAL_PATH 
#echo $PATH 

#sudo impare_network.sh 100 20 30 0 0 0 0 0 0 0 0 0 0 

로 스크립트를 호출이 것 - (서버 클라이언트) 상향 링크 -이 100ms의 지연, 20 %의 지터를 추가 (정규 분포를 사용) , 30 % 패킷 손실

0

wndows에서는 일반적으로 추가 소프트웨어 없이는 OS 레벨에서이를 수행 할 수 없습니다. 유스 케이스는 단순히 중요하지는 않지만 심각하게 간주됩니다. 이는 매우 정확합니다. 네트워크 한도가 필요한 경우 스위치를 적용 할 수 있습니다.

newwest 버전 (2012 R2)이 나가는 대역폭을 제한 할 수있는 예외는 Hyper-V에만 있습니다.

일반적으로 Windows에서 제 3 자 소프트웨어가 필요하지만 유스 케이스는 매우 높습니다. 일반적으로 다음 상위 스위치에서 그 한계를 설정하는 것이 훨씬 더 좋습니다.