Làm cách nào để mô phỏng môi trường băng thông thấp, độ trễ cao?


201

Tôi cần mô phỏng kết nối băng thông thấp, độ trễ cao đến máy chủ để mô phỏng các điều kiện của VPN tại một trang web từ xa. Băng thông và độ trễ phải có thể điều chỉnh để tôi có thể khám phá sự kết hợp tốt nhất để chạy gói phần mềm của chúng tôi.


7
Câu hỏi tuyệt vời! Tôi muốn nghe một số câu trả lời liên quan đến phát triển web ASP .NET.
Carl

Câu trả lời:


79

Đối với macOS , có Bộ điều hòa liên kết mạng mô phỏng băng thông, độ trễ và mất gói có thể định cấu hình. Nó được chứa trong gói Công cụ bổ sung cho Xcode . Ảnh chụp màn hình


12
Ngăn

dường như không hoạt động với Genymotion. (Màn hình đen)
Bruno

1
Liên kết tải xuống cho các phiên bản XCode mới hơn: developer.apple.com/doad/more/?q=Additable%
20Tools

@ jstorm31 Cảm ơn bạn. Tôi đã cập nhật câu trả lời với tên hiện tại của gói và liên kết hiện tại.
Jon Colverson

37

Có một bài viết tuyệt vời về việc thiết lập một máy FreeBSD để làm việc này - lấy máy tính để bàn cũ tiêu chuẩn của bạn, ném vào một NIC bổ sung và xây dựng.

Bài viết có sẵn tại http://www.freebsd.org/doc/en/articles/filtering- điều chỉnh / article.html .

Trong bước 5 của các hướng dẫn ở trên, bạn đang bật tường lửa. Để chỉ mô phỏng một kết nối IP khác, bạn có thể (ví dụ) làm như sau:

Tạo một tệp /etc/rc.firewall.56kchứa các mục sau:

ipfw add pipe 1 ip from any to any out
ipfw add pipe 2 ip from any to any in    
ipfw pipe 1 config bw 56Kbit/s   
ipfw pipe 2 config bw 56Kbit/s

Và thay đổi /etc/rc.conf... thay thế dòng

firewall_type="open"

với

firewall_type="/etc/rc.firewall.56k"

khởi động lại, và bạn đã có cho mình một cây cầu 56K!

Nếu bạn tình cờ làm việc từ Macintosh, hệ điều hành đó có ipfw được tích hợp vào nó theo mặc định. Tôi đã làm điều tương tự bằng cách định tuyến lưu lượng truy cập mạng qua Sân bay và qua ethernet, thiết lập nó để mọi thứ đi qua sân bay đều có những đặc điểm giống như bất cứ điều gì tôi đang cố gắng mô phỏng. Bạn có thể gọi các lệnh ipfw trực tiếp từ thiết bị đầu cuối và nhận được các hiệu ứng tương tự.


27

Trước đây, tôi đã sử dụng một cây cầu sử dụng chức năng Linux Netem ( phỏng mạng). Nó có cấu hình cao - cho phép đưa ra các độ trễ (ví dụ đầu tiên là cho mạng WAN), mất gói, hỏng, v.v.

EDIT: Ngoài ra còn có giao diện web MasterShaper để kiểm soát cài đặt.

Tôi lưu ý rằng Netem đã hoạt động rất tốt cho các ứng dụng của tôi, nhưng tôi cũng đã kết thúc việc sử dụng WANem nhiều lần. ISO có thể khởi động được cung cấp (và hình ảnh thiết bị ảo) làm cho nó khá tiện dụng.


Hoàn hảo cho nhu cầu của tôi và có sẵn trên máy chủ Ubuntu 14.04 của tôi!
RobM

21

Charles

Tôi tình cờ thấy Charles ứng dụng gỡ lỗi web và đã thành công lớn trong việc mô phỏng độ trễ của mạng. Nó hoạt động trên Windows, Mac và Linux.

Charles trên máy Mac

Điều chỉnh băng thông / giả lập băng thông

Charles có thể được sử dụng để điều chỉnh băng thông và độ trễ của kết nối Internet của bạn. Điều này cho phép bạn mô phỏng các điều kiện modem bằng kết nối tốc độ cao của bạn.

Băng thông có thể được điều chỉnh theo bất kỳ byte tùy ý nào trong một giây. Điều này cho phép bất kỳ tốc độ kết nối được mô phỏng.

Độ trễ cũng có thể được đặt thành bất kỳ số mili giây tùy ý. Độ trễ độ trễ mô phỏng độ trễ trải nghiệm trên các kết nối chậm hơn, đó là độ trễ giữa việc đưa ra yêu cầu và yêu cầu được nhận ở đầu kia.

DummyNet

Bạn cũng có thể sử dụng vmware để chạy BSD hoặc Linux và thử bài viết này (DummyNet) hoặc bài này.


2
Charles là một proxy HTTP và do đó chỉ thích hợp để thử nghiệm các ứng dụng HTTP. Đối với riêng họ, nhưng theo tôi có lẽ đó là một trong những phần mềm tồi tệ nhất tôi từng sử dụng. Tôi chỉ sử dụng nó trong một thời gian ngắn trong khi tôi phải làm việc trên máy Mac. Đối với người dùng Windows, tôi khuyên dùng Fiddler nếu bạn cần proxy gỡ lỗi HTTP. Thật không may, tôi đã không tìm thấy bất cứ điều gì khác ngoài Charles cho OSX.
Brad

6
Xin chào Brad. Bạn có thể đề cập đến những loại vấn đề bạn đã có?
Ante

17

Tôi tìm thấy chương trình nhỏ gọn này cho Windows gọi là vụng về . Nó thuộc loại trạng thái alpha, nhưng nó có vẻ hoạt động tốt với tôi và nó là nguồn mở.

Chỉnh sửa: Những người khác nhận thấy rằng bạn không thể giới hạn băng thông một cách vụng về và điều đó là đúng. Bạn chỉ có thể thêm Độ trễ và một vài lỗi liên quan đến mạng khác. Điều này sẽ loại bỏ câu trả lời này là câu trả lời hợp lệ cho câu hỏi, tuy nhiên vì tôi đã sử dụng nó tốt khi tôi muốn mô phỏng một mạng xấu nên tôi sẽ để nó ở đây miễn là nó có> 0 phiếu hoặc tương tự.


Làm thế nào để bạn kiểm soát băng thông với vụng về?
dùng3731622

3
Chương trình tuyệt vời. Đúng thứ tôi cần. Tôi khuyến khích điều đó. Hoạt động như một sự quyến rũ và siêu dễ dàng của nó.
Jh62

1
Khi hầu hết mọi người nói "giới hạn băng thông", có lẽ họ rất hài lòng với việc chỉ cần thêm một lượng lớn độ trễ và mất gói, vì những điều này thực sự hạn chế băng thông. Ngoài ra chương trình này rất đơn giản để sử dụng, đánh bại mọi thứ khác tôi đã thử trên windows.
cuộn

13

Hãy thử mạng WANem

WANem là Trình mô phỏng mạng diện rộng, nhằm cung cấp trải nghiệm thực sự về Mạng / Internet diện rộng, trong quá trình phát triển / thử nghiệm ứng dụng trên môi trường LAN.


1
Tôi đã thử điều này và dường như không thể làm cho nó hoạt động. Nó sẽ không nhận được địa chỉ IP từ mạng của chúng tôi vì một số lý do trong khi bất kỳ máy tính nào khác không có vấn đề với nó.
Michael Beck


7

Tôi sẽ thử sử dụng netem trên linux. Với nó, bạn có thể mô phỏng thêm độ trễ, hỏng, mất gói và sao chép. Nó thậm chí hoạt động trên thiết bị loopback.


Hey bạn có một số lệnh tương đương cho các cửa sổ như netem?
Shashi Ranjan

6

Một chương trình phía máy khách khác (chỉ dành cho Windows), là NetLimiter - http://www.netlimiter.com


2
Netlimiter là tốt, nhưng tôi nghĩ rằng nó chỉ có băng thông thấp - nó không thể thay đổi độ trễ?
Nathan

Các kế hoạch beta cho mô phỏng độ trễ được liệt kê v3 như là một tính năng được lên kế hoạch. Nó mới được phát hành gần đây và tôi chưa sử dụng nó để xem tính năng đó có làm được không.
kaliatech

Tính năng đó không có trong phiên bản beta 9. Ugh.
cacba

4
Ngay cả bản beta hiện tại (NetLimiter 4) cũng không cho phép bạn thay đổi độ trễ.
có ảnh hưởng

5

Tôi sử dụng NetBalancer trên máy Windows của mình.

http://seriousbit.com/netbalancer/

Cập nhật vào ngày 2017-10-07 : Phiên bản miễn phí cuối cùng của NetBalancer là 9.2.7. Chương trình có ngày hết hạn được mã hóa cứng. Trước khi bắt đầu dịch vụ NetBalancer, bạn cần quay ngược đồng hồ hệ thống trước 2016-10-18. Xem bài viết này để biết chi tiết.


Cảm ơn bạn!! NetBalancer là công cụ duy nhất được liệt kê trên trang này mà tôi có thể làm việc và có thể kiểm soát độ trễ.
có ảnh hưởng


4

tôi đoán tc có thể thực hiện công việc trên nền tảng dựa trên UNIX.

tcđược sử dụng để định cấu hình Kiểm soát lưu lượng trong nhân Linux
http://lartc.org/manpages/tc.txt


3

Để mô phỏng kết nối băng thông thấp để kiểm tra các trang web sử dụng Google Chrome, bạn có thể truy cập Tab Mạng trong Công cụ F12 và chọn mức băng thông để mô phỏng hoặc tạo băng thông tùy chỉnh để mô phỏng.


1
Cảm ơn! Nếu bạn không thể tìm thấy nó, nó sẽ nằm trong bảng điều khiển Chrome, tab Mạng, ở bên phải nút "Tắt bộ đệm". Giá trị mặc định của nó là "Không điều chỉnh".
Alan Willms


1

Nếu bạn đang dùng linux, tôi thấy chương trình Traffic Control sẽ giúp ích rất nhiều cho việc này.


1

Có một sản phẩm từ http://www.shunra.com có tên VE Desktop có thể được sử dụng để mô phỏng các điều kiện mạng khác nhau. Nó cho phép bạn điều chỉnh độ trễ, băng thông và gói dữ liệu với một giao diện người dùng đơn giản. Chỉ có cảnh báo là, nó không miễn phí. Hi vọng điêu nay co ich.


1

Tôi đã tìm kiếm một công cụ dễ sử dụng cho loại thử nghiệm này một thời gian rồi. Tôi mới bắt gặp điều này vào một ngày khác: Network Delay Simulator

Nếu bạn đang chạy Windows, bạn nên kiểm tra nó. Thật dễ dàng để thiết lập và bắt đầu, và dường như hoạt động rất tốt. Nó cho phép bạn xác định băng thông, độ trễ và mất gói theo từng hướng. Một điều thực sự thú vị khác là bạn có thể xác định "Điều kiện khớp dòng chảy" để nó chỉ ảnh hưởng đến lưu lượng truy cập mà bạn muốn. Ồ vâng, và nó miễn phí.



1

Hãy xem Trình mô phỏng mạng NE-ONE cho phép bạn định cấu hình băng thông, độ trễ, mất gói, sắp xếp lại gói, sao chép gói, phân mảnh gói, tắc nghẽn mạng và nhiều khiếm khuyết khác để bạn có thể tạo điều kiện mạng trong thế giới thực trong phòng thí nghiệm . Các khiếm khuyết khác nhau có thể được định cấu hình cho đường lên và xuống để bạn có thể có đường lên thực sự tốt nhưng trải nghiệm đường xuống thực sự tồi tệ, tuyệt vời khi thấy ứng dụng xử lý hàng đợi TCP vì acks không quay lại kịp thời và độ trễ chung do đó tăng lên!

Có một video tổng quan ở đây http://www.youtube.com/watch?v=DwtqlE7LcrQ đặc biệt nhắm đến các nhà phát triển trò chơi, nhưng nó cho thấy những gì nó nói về. NE-ONE được định cấu hình bằng trình duyệt web để cài đặt và định cấu hình thực sự dễ dàng - bạn không cần phải là một chuyên gia mạng :-)

Có phiên bản phần cứng - http://www.itrinegy.com/index.php/products/network-emulators/ne-one - hoặc bạn có thể tải xuống phiên bản Thiết bị ảo (phần mềm) chạy trong VMware ESXi Server. Có thể tải xuống Thiết bị ảo từ Giải pháp trao đổi của VMware - Solutionexchange.vmware.com/store/products/ne-one-flex-network-emulator



0

LANforge ICE là một trình giả lập mạng, tập trung vào định tuyến ảo, jitter, tham nhũng và trì hoãn. Các dự án đã sử dụng nó để mô phỏng liên kết vệ tinh, kết nối cáp và modem và mô phỏng wan tốc độ cao (10Gbit). Bạn có thể sử dụng GUI Java để xây dựng các mạng ảo của mình và tạo các báo cáo rất chi tiết về luồng lưu lượng. Các sản phẩm LANforge cũng cung cấp các tính năng tạo lưu lượng: khung, ethernet, lớp 3 và lưu lượng trạng thái (NFS, http). Các phiên bản gần đây cho LANforge cũng có các tính năng kiểm tra WiFi tinh vi.


0

Bạn có thể thử điều này: CovenantSQL / GNTE chỉ cần viết YAML như thế này:

group:
  - 
    name: china
    nodes:
      - 
        ip: 10.250.1.2
        cmd: "cd /scripts && ./YourBin args"
      - 
        ip: 10.250.1.3
        cmd: "cd /scripts && ./YourBin args"
    delay: "100ms 10ms 30%"
    loss: "1% 10%"
  - 
    name: us
    nodes:
      - 
        ip: 10.250.2.2
        cmd: "cd /scripts && ./YourBin args"
      - 
        ip: 10.250.2.3
        cmd: "cd /scripts && ./YourBin args"
    delay: "1000ms 10ms 30%"
    loss: "1% 10%"

network:
  -
    groups:
      - china
      - us
    delay: "200ms 10ms 1%"
    corrupt: "0.2%"
    rate: "10mbit"

chạy ./generate scripts/your.yaml

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.