2011-01-01 40 views
21

Làm thế nào để tính toán tốc độ của kết nối internet của một số rates.What ping trung bình là các tính toán liên quan đến it.IS nó có thể để tính toán tải lên/tải về giới hạn bởi tốc độ pingTính upload/tốc độ download bằng cách ping

EDIT Nếu ping không phải là giải pháp thì còn gì nữa?

+2

bài viết hay về độ trễ và băng thông http://rescomp.stanford.edu/~cheshire/rants/Latency.html – Janning

Trả lời

0

Ping là một gói đơn được gửi qua mạng qua ICMP. Thông thường một gói mỗi giây được gửi đến ping một máy từ xa và tuyến đường có thể khác với TCP và UDP thường được sử dụng để truyền dữ liệu; các máy từ xa có thể từ chối trả lời các yêu cầu ping. Do đó đo lường thông lượng mạng thông qua các yêu cầu ping là không đáng tin cậy và có thể vô ích.

0

Việc ping máy chủ từ xa sẽ cho phép bạn đo độ trễ của mạng (máy chủ đó có phản hồi) hay không. Nó sẽ không cung cấp cho bạn thông tin hữu ích về băng thông có sẵn trên kết nối mạng đó.

3

Không, không phải.

Gói ping nhỏ và chỉ được sử dụng để xác minh tốc độ từ điểm A đến điểm B (Hoặc sử dụng phổ biến hơn - NẾU có đường dẫn giữa chúng, IE nếu máy tính phản hồi)

Quá trình Ping (cho một Pong) là một gói nhỏ được gửi từ A đến B Khi B nhận được gói, nó phản hồi với một Pong, ngay lập tức được gửi trở lại A. Tại điểm A được Pong, tổng thời gian (mà là trong mili giây, hy vọng) được đăng ký, và ở đó bạn có Ping của bạn trong ms. Điều này tất nhiên giả định rằng B không được thiết lập để từ chối ping hoặc chỉ đơn giản là không đạt được điều đó, hoặc là đằng sau một VPN hoặc biện pháp khác mà làm chậm phản ứng xuống.

Cuối cùng, tất cả các bạn nhận được là thời gian cần thiết cho một Ping để chạy từ A đến B và quay trở lại A.

Để so sánh, hãy thử chạy phía bên kia đường và ngược lại. Đo thời gian. Và bây giờ hãy tìm cách tính số tiền bạn cân nhắc.

+0

Để đo tốc độ, bạn cần kích thước và thời gian: 1) kích thước: kích thước gói bạn đang gửi. | 2) thời gian: thời gian của gói chi tiêu giữa điểm A và B. | Câu nói của bạn: "Cuối cùng, tất cả những gì bạn nhận được là thời gian để Ping chạy từ A đến B và quay lại A." Tất cả các bạn nhận được? Điều này có vẻ chính xác những gì tôi cần: p – Sam

10

Độ trễ khác với băng thông. Hãy tưởng tượng một tải trọng của đĩa DVD được điều khiển trên khắp đất nước. Băng thông cao, nhưng độ trễ là lớn.

+3

Để buộc tương tự của bạn trong câu trả lời của tôi, bạn có thể đo băng thông bằng cách gửi 2 xe tải ngay sau khi khác. Nếu chúng hiển thị ở phía bên kia của đất nước cách nhau 30 phút, thì băng thông của hệ thống của bạn bị giới hạn ở 2 tải trọng mỗi giờ. Có lẽ mạng bị tắc nghẽn tại một trạm thu phí đặc biệt không hiệu quả với hàng đợi 30 phút. Thực tế là phải mất 5 ngày để mỗi chiếc xe tải đi qua cả nước là trực giao. – eater

0

Như những người khác đã nói, ping sẽ cho bạn biết độ trễ nhưng không cho biết băng thông.
Thử netperf. http://www.netperf.org/netperf/. Bạn có thể phải cung cấp các tùy chọn cụ thể (như TCP/UDP) v.v.

5

thực sự có thể lấy được ước tính băng thông từ các phép đo giống như ping.

Luôn mất 12,3 giây để truyền gói tin 1500 byte trên liên kết GigE. Nói cách khác, nếu bạn có thể gửi hai gói 1500 byte từ máy này sang máy khác qua liên kết GigE không bị kéo dài nhanh như giao thức sẽ cho phép, chúng sẽ cách nhau khoảng 12,3µs. Quan sát xảy ra xác nhận liên kết GigE của bạn thực ra không bị tắc nghẽn.

Bây giờ cho một ví dụ đơn giản để đo qua một WAN (một lần nữa thừa nhận nó không tắc nghẽn):

HostA -------- RouterA -------- RouterB -------- HostB 
     GigE    OC-3    GigE 

Host A gửi hai gói 1500 byte liên tiếp nhanh chóng. Khi router A nhận được gói tin đầu tiên, nó sẽ bắt đầu chuyển tiếp nó qua liên kết WAN OC-3 (155Mbps). Phải mất 81.5µs để chuyển tiếp gói 1500 byte lên một OC3, do đó Router A sẽ ở giữa chuyển tiếp gói tin đầu tiên khi nó nhận gói thứ hai từ Host A. Nó phải xếp gói thứ hai này cho đến khi nó được truyền xong đầu tiên.

Khi bộ định tuyến B kết thúc việc nhận gói đầu tiên, nó chuyển tiếp nó tới máy chủ B chỉ mất 12,3µs; trong khi đó router B bắt đầu nhận gói thứ hai. Khi bộ định tuyến B kết thúc nhận gói thứ hai, nó sẽ chuyển tiếp gói đó để lưu trữ B.

Vì vậy, máy chủ B thấy 12.3µs của gói tiếp nhận, 69.2µs của im lặng, sau đó 12.3µs của tiếp nhận gói — nói cách khác là 81,5µs inter- thời gian đến. Từ quan sát đó, máy chủ B có thể suy ra rằng băng thông đường dẫn bị giới hạn ở 155Mbps.


Điều này lý tưởng, nhưng trong thực tế mọi thứ trở nên phức tạp hơn. Sự kiện tắc nghẽn có xu hướng bùng nổ, vì vậy một thời điểm hàng đợi của bộ định tuyến có thể khá đầy đủ, tiếp theo chúng sẽ trống. Nhiều mẫu là cần thiết để có được bất cứ điều gì có ý nghĩa. Thực hiện các phép đo chính xác cũng phức tạp. Độ trễ từ đầu đến cuối có thể là hàng chục hoặc hàng trăm mili giây và bạn đang xem xét sự khác biệt của một vài micro giây. Nếu có nhiều đường dẫn từ A đến B, chúc may mắn.

Thường thì chỉ đơn giản là dễ dàng hơn để tăng lưu lượng truy cập và xem mức độ vượt qua. Sau đó, bạn sẽ biết chắc chắn băng thông có sẵn của bạn là gì - không.

+0

Rất tốt câu trả lời dude. – ldx

20

Tôi đã sử dụng ping để tính băng thông trong mạng cục bộ. Tôi nghĩ nó chính xác như các phương tiện đo băng thông khác (ví dụ: tải xuống một tệp lớn). Bạn cũng có thể sử dụng nó cho kết nối internet của mình nếu bạn có liên kết đối xứng với internet (ví dụ: không phải adsl).

Đây là cách tôi thực hiện: Tôi có mạng LAN gigabit ethernet và tôi muốn đo tốc độ giữa máy tính và máy chủ trong phòng máy chủ. MTU của tôi là 1500, vì vậy tôi sử dụng kích thước gói 1472. Chỉ ngẫu nhiên, tôi sử dụng 83.333 gói trong thử nghiệm này (khoảng 1 gigabit). Sau đó:

sudo ping -f -c 83.333 -s 1472 192.168.3.103

ở phần cuối của kết quả tôi nhận được: khứ hồi min/avg/max/stddev = 0,174/0,219/2,078/0.020 ms

vì vậy trung bình phải mất 0,219 mili giây để gửi 1500 byte và nhận được 1500 byte, đó là 24 kb. 24 kb/0.219 ms = 110 Mb/s

Nếu bạn muốn sử dụng máy chủ trên internet, bạn cần giảm kích thước gói xuống 1464 (cho MTU 1492), thả tùy chọn -f và giảm số lượng để không bị mất quá nhiều thời gian để hoàn thành.

p.s. Tôi nghĩ rằng điều này nên đi đến superuser, không stackoverflow.

+0

tôi không hiểu toán học của bạn: "1500 byte và nhận được 1500 byte, đó là 24 kb". -- Bạn có thể giải thích điều này? thanks –

+0

Đó là byte để chuyển đổi bit, 3.000 byte = 24.000 bit = 24 kb – imel96