Linux에서 저 대역폭, 대기 시간이 긴 네트워크 연결 시뮬레이션


19

Linux 컴퓨터에서 대기 시간이 길고 대역폭이 낮은 네트워크 연결을 시뮬레이트하고 싶습니다.

대역폭 제한에 대해서는 예를 들어 여기 에서 설명했지만 대역폭과 대기 시간을 모두 제한하는 게시물을 찾을 수 없습니다.

를 사용하여 높은 대기 시간 또는 낮은 대역폭을 얻을 수 있습니다 tc. 그러나 나는 이것을 단일 연결로 결합 할 수 없었습니다. 특히, 여기에 속도 제어 스크립트 예제 가 작동하지 않습니다.

# tc qdisc add dev lo root handle 1:0 netem delay 100ms 
# tc qdisc add dev lo parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000
RTNETLINK answers: Operation not supported

사용 tc가능한 도구 나 다른 도구를 사용하여 저 대역폭, 대기 시간이 긴 연결을 만들려면 어떻게 해야합니까?


1
예를 들어 링크에서 접근 방식을 결합 해 보셨습니까? 대기 시간에는 tc를 사용하고 대역폭에는 세류를 사용합니까? (TC를 사용하는 것보다 더 나쁘지만 여전히 작동 할 수 있습니다.)
Andy

그것은 좋은 생각입니다 (실제로 물방울은 대기 시간을 추가 할 것입니다). 그러나 불행히도 Firefox는 물방울 아래에서로드되지 않으므로 테스트해야합니다.
Justin L.

답변:


15

아하! 명령 순서를 반대로하면 작동합니다.

tc qdisc add dev lo root handle 1: htb default 12 
tc class add dev lo parent 1:1 classid 1:12 htb rate 20kbps ceil 20kbps 
tc qdisc add dev lo parent 1:12 netem delay 1000ms 

https://lists.linux-foundation.org/pipermail/netem/2010-May/001388.html


netem qdisc가 부모가 될 수없는 이유에 대해 관심이있는 사람은 계층 구조를 다시 정렬하여 리프 노드로 만들어야합니다.
Andy

3
대역폭 제한은 한 방향 (발신)에만 있습니다. 양방향으로 발생하도록 추가 작업을 수행해야합니다 (명확하게 ifb 사용). linuxfoundation.org/collaborate/workgroups/networking/…
Roger Binns

tc를 grok하려고 할 때이 문제가 발생했습니다. 내가 읽은 것에서 첫 번째 줄은 1 : 0을 생성하지만 두 번째 줄은 1 : 1을 나타냅니다? (아마도 내 이해가 잘못되었지만 클래스 / qtdiscs의 번호를 매기는 방법을 이해하려고 많은 페이지를 들여다 보았습니다)
symcbean

1

무료는 아니지만 Charles Web Debugging Proxy는 낮은 대역폭의 높은 대기 시간 연결을 시뮬레이션 할 수 있습니다.

http://www.charlesproxy.com/documentation/proxying/throttling/


흥미롭게도, 나는 실제로 웹 디버깅을 위해 이것을하고 있습니다. 그러나 반드시 돈을 쓰지 않고이를 수행 할 수있는 방법이 있어야합니다. :)
Justin L.

슬프게도 Charles는 로컬 트래픽과 작동하지 않는 것 같습니다. 프록시를 통해 192.168.1.1에 액세스하려고하면 죽습니다.
Justin L.

2
또는 무료로 WANEm을 사용하십시오 : wanem.sourceforge.net
Nathan Kidd
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.