2013-04-15 79 views
6

Tôi đã tạo một số mã Java để đo độ trễ, kích thước gói và băng thông.Cách tính độ trễ

Phương trình cần thiết để tính thời gian chờ là gì?

Đây là những gì tôi hiện đang sử dụng nhưng chắc chắn nó là đúng:

//latency = packetsize/delay + bandwidth 
System.out.println("latency is " + (len*2)/(duration + transferRateMb)); 

EDIT chiều dài được multipled bởi 2 để cho giá trị đúng theo byte

thời gian là thời gian thực hiện cho ping để hoàn tốc độ truyền tải

được tìm thấy theo:

double transferRateMb = ((len*524288.0)/(duration/ 1000000000.0)) ; //amount of data in megabytes transferred in 1 second. 

Tôi đã đọc hướng dẫn khác nhau, và không hiểu họ, đây chỉ là một yêu cầu đơn giản cho một dự án

cũng này sẽ được chạy 20 lần và tỷ lệ trung bình lấy

bất kỳ ý tưởng?

+1

Tôi hy vọng '(duration + transferRateMb)' cho bạn giá trị gấp đôi và [---> Độ trễ và băng thông] (http://wirelesstechnol.wordpress.com/2010/07/09/latency-and-bandwidth/) và đã được hỏi [---> cách tính thời gian gói từ độ trễ và băng thông] (http://stackoverflow.com/questions/8682702/how-to-calculate-packet-time-from-latency-bandwidth) – Smit

+0

Độ trễ là bị ảnh hưởng nhiều nhất bởi tắc nghẽn mạng, điều này sẽ thay đổi đáng kể theo thời gian và độ trễ theo một hướng có thể không phù hợp với độ trễ trả về. Không có cách nào thực sự để có được một công thức để cho bạn biết độ trễ là gì. Đó là lý do tại sao chúng tôi có các công cụ như IP SLA để liên tục đo độ trễ thực tế. –

Trả lời

0

Tôi luôn đo độ trễ. Độ trễ trung bình thường không phải là rất thú vị, điều bạn thực sự cần biết là độ trễ có thể xảy ra như thế nào. Ví dụ: trường hợp 1 trong 100, 1 trong 1000 hoặc tệ hơn. Để thực hiện điều này, bạn cần phải đo từng độ trễ riêng lẻ và lấy mẫu đó (hoặc giữ mức tối đa) Điều này sẽ cao hơn nhiều so với phép tính của bạn, ví dụ: nó có thể dễ dàng là 10x

Tóm lại, bạn không thể tính độ trễ mà bạn nên quan tâm, bạn phải đo lường nó.

+0

Cảm ơn tôi dự định chạy thử nghiệm 20 lần và lấy mức trung bình, làm thế nào tôi có thể đo độ trễ? – user2065929

+0

Tôi khuyên bạn nên chạy thử nghiệm nhiều lần và bỏ qua 20.000 hoặc 2 giây đầu tiên (để cho phép thử nghiệm khởi động) Sử dụng dấu thời gian trong tin nhắn và so sánh với dấu thời gian khi bạn đến. Nếu bạn đo 10.000 khác, bạn có thể nhận được một ngói hợp lý 99% và nếu bạn đo 1.000.000 bạn nhận được một gạch hợp lý 99,9%. Để nhận được phần trăm, hãy sắp xếp kết quả, ví dụ: trong int [] và lấy giá trị trung bình là 50%, kích thước * 9/10 cho ngói 90%, kích thước * 99/100 giá trị cho 99% và kích thước * 999/1000 cho 99,9% –

+0

ok cảm ơn, sẽ phương trình của tôi là ok để tính toán? – user2065929

Các vấn đề liên quan