답변:
창문을 사용하는 경우 피들러 는 훌륭한 도구입니다. 모뎀 속도를 시뮬레이션하는 설정이 있으며 더 많은 제어를 원하는 사람에게는 각 요청에 대기 시간을 추가 하는 플러그인이 있습니다 .
지연 시간 코드를 훨씬 더 현실적인 시뮬레이션이므로 실제 비트를 디자인하거나 코딩하지 않기 때문에 이와 같은 도구를 사용하여 애플리케이션에 지연 시간 코드를 넣는 것을 선호합니다. 가장 좋은 코드는 내가 쓸 필요가없는 코드입니다.
추가 : 소프트웨어 기술에 관한 Pavel Donchev의 블로그에있는이 기사는 맞춤형 시뮬레이션 속도를 만드는 방법을 보여줍니다 : Fiddler를 통한 인터넷 연결 속도 제한 .
Chrome 38 부터는 플러그인 없이이 작업을 수행 할 수 있습니다. 검사 요소 (또는 F12핫키)를 클릭 한 다음 "장치 모드 전환"을 클릭 하면 다음과 같이 표시됩니다.
다른 많은 기능 중에서 특정 인터넷 연결 (3G, GPRS)을 시뮬레이션 할 수 있습니다
업로드 속도를 제한하려는 사람들을위한 PS . 슬프게도 현재로서는 불가능합니다.
PS2는 이제 아무것도 토글 할 필요가 없습니다. 조절 패널은 네트워크 패널에서 바로 사용할 수 있습니다.
제한 없음 을 클릭하면 사용자 지정 제한 옵션을 만들 수 있습니다.
구글 추천 :
http://www.netlimiter.com/ 을 사용 하고 있었고 잘 작동합니다. 단일 프로세스의 속도를 제한 할뿐만 아니라 실제 전송 속도도 보여줍니다.
iprelay 및 Sloppy와 같이 느린 연결을 시뮬레이션하기 위해 대역폭 형성을 수행하는 TCP 프록시가 있습니다. ipfw 및 iptables와 같은 IP 필터링 도구를 사용하여 대역폭 형성을 수행하고 패킷 손실을 시뮬레이션 할 수도 있습니다.
당신은 사용할 수 있습니다 NetEm (네트워크 에뮬레이션) A와 많은 네트워크 특성을 모방하는 프록시 서버 (속도, 지연, 패킷 손실 등). iproute2 패키지를 사용하여 네트워킹을 제어하며 대부분의 Linux 배포판 커널에서 활성화됩니다.
iproute2 패키지 의 tc
명령 줄 응용 프로그램에 의해 제어 되지만 NetEm 용 웹 인터페이스 GUI (예 : PHPnetemGUI2)도 있습니다.
내가 쓴 것처럼 다른 네트워크 속도를 에뮬레이션 할 수있을뿐만 아니라 패킷 손실, 복제 및 / 또는 손상, 임의 또는 정의 된 지연 등을 에뮬레이션 할 수 있다는 장점이 있습니다.
응용 프로그램의 경우 완전히 투명하므로 NetEm 프록시 서버를 사용하도록 운영 체제를 구성 할 수 있으므로 해당 시스템의 모든 연결은 NetEm을 통해 이루어집니다. 또는 응용 프로그램 만 프록시로 사용하도록 구성 할 수 있습니다.
다양한 에뮬레이션 된 저 성능 네트워크에서 Android 앱의 성능을 테스트하는 데 사용했습니다.
10.10 이후의 Mac OSX에는 Murus Firewall 이라는 앱이 있습니다.이 앱 은 ipfw를 대체하는 pf의 GUI 역할을합니다.
시스템 전체 또는 도메인 별 조절에 매우 효과적입니다. 스트리밍 비디오 플레이어가 어떻게 조정되는지 테스트하기 위해 300Kbps와 30Mbps 사이에서 다운로드 속도를 슬라이드하는 데 사용할 수있었습니다.
WIPFW라는 또 다른 도구가있다 - http://wipfw.sourceforge.net/
조금 오래된 학교이지만 느린 연결을 시뮬레이션하는 데 사용할 수 있습니다. Windows 기반이며이 도구를 사용하면 관리자가 라우터가 특정 시스템에서 가져 오는 트래픽의 양 또는 전달하는 WWW 트래픽의 양을 모니터링 할 수 있습니다.
내가 찾은 답변이 언급되지 않았으므로 이것을 업데이트 한 (9 년 후 요청) :
Firefox에는 연결 속도 조절을위한 사전 설정도 있습니다. 개발자 도구 의 네트워크 모니터 탭 에서 찾으십시오 . 기본값은 '조절 없음'입니다.
가장 느린은 GPRS ( 50 Kbps의 업로드 속도 : 20 Kbps까지, 최소 대기 시간 (밀리 초) : 다운로드 속도 500 ), '좋은'과 DSL과에 '일반'2G, 3G 및 4G를 통해 이르기까지 와이파이 ( 다운로드 속도 : 30Mbps의 업로드를 속도 : 15Mbps, 최소 대기 시간 (ms) : 2 ).
개발자 도구 문서 에서 자세히 알아보십시오 .
Linux의 경우 다음 논문 목록이 유용 할 수 있습니다.
반면 개인적으로, Dummynet이 좋은, 내가 찾을 NetEm을 내 유스 케이스에 대한 다양한 최대한으로; 나는 일반적으로 대역폭 (예 : WiFi 연결 문제)이 아닌 지연의 영향에 관심이 있으며 임의의 패킷 손실 / 손상 등을 에뮬레이션하는 것이 매우 쉽습니다. 또한 하드웨어 기반의 Linktropy 와 달리 매우 액세스가 쉽고 무료입니다. ).
부수적으로 Windows의 경우 Clumsy 는 훌륭합니다. 또한 (웹 사이트와 관련하여) 브라우저 조절이 실제 네트워크 문제를 에뮬레이트하는 정확한 방법이 아니라고 덧붙이고 싶습니다.
이것이 누군가를 돕기를 바랍니다!
단일 TCP 연결을 형성하는 일반적인 경우는 실제로 다음 과 같이 이중 쌍으로 socat
그리고 cpipe
UNIX 방식 으로 조립 될 수 있습니다 .
socat TCP-LISTEN:5555,reuseaddr,reuseport,fork SYSTEM:'cpipe -ngr -b 1 -s 10 | socat - "TCP:localhost:5000" | cpipe -ngr -b 1 -s 300'
이 약 300KB / s의 대역폭과의 연결 시뮬레이션 에서 의 서비스를 :5000
하고 에 약에서 10kB에서 / S 및 수신 대기 :5555
들어오는 연결합니다. 주의 사항 :이 연결 당 각 개별 TCP 연결 이이 금액을 얻습니다.
설명 : 외부 (왼쪽) socat
는 지정된 옵션을 :5555
포크 서버로 인식합니다. 첫 번째 cpipe
의 명령 SYSTEM:...
옵션은 다음 갔다 데이터를 조절하는 에 5555을 (및 외부, 처음 나오는 : 소켓 socat
S /) 가장 10kByte에서합니다. 그런 다음 해당 데이터는 socat
연결하려는 다른 데이터를 사용하여 전달 하고 있습니다 localhost:5000
(느리게하려는 서비스가 수신 대기해야 함). 데이터 로부터는 localhost:5000
그 오른쪽에 넣고 cpipe
300KB 정도까지로 조절하는 (소정 값) 명령 / S.
옵션 -ngr
으로는 cpipe
중요하다. 입력 파일 디스크립터에서 cpipe를 읽지 않게 읽습니다. 그렇지 않으면, 버퍼에있는 데이터가 전달되지 않고 응답을 기다리는 중일 수 있습니다.
보다 일반적인 buffer
도구를 사용하는 cpipe
것도 가능합니다.
(크레딧 : 이것은 Christophe Loor의 "더블 티"레시피를 socat
문서 에서 기반으로합니다 )