سیسکو و شبکه

TTCP ابزار اندازه گیری پهنای باند TCP توسط روتر سیسکو

ISP می‌گوید لینک شما ۱۰۰ مگابیت است، اما انتقال فایل بین دو دفتر با ۱۵ مگابیت پیش می‌رود. مشکل از لینک است، از روتر، یا از کامپیوترها؟ برای جواب دادن باید بدون دخالت کلاینت‌ها، سرعت واقعی TCP را بین دو نقطه اندازه بگیرید. TTCP (Test TCP) ابزاری است که در IOS کلاسیک سیسکو برای همین کار وجود دارد: یک روتر فرستنده و دیگری گیرنده می‌شود و حجم مشخصی داده TCP بین‌شان جابه‌جا و سرعت آن اندازه‌گیری می‌شود.

در این مطلب کار با TTCP ، تفسیر نتیجه، اثر اندازه TCP Window ، محدودیت‌های TTCP روی روترهای امروزی، و ابزارهای جایگزین مثل iPerf3 و IP SLA را مرور می‌کنیم.

تست TTCP بین دو روتر سیسکو
اجرای TTCP بین دو روتر سیسکو

TTCP در یک نگاه

کار اندازه‌گیری پهنای باند TCP بین دو روتر یا روتر و کامپیوتر
نقش‌ها یک طرف receive و طرف دیگر transmit
پورت پیش‌فرض TCP 5001
دسترسی دستور مخفی در IOS کلاسیک؛ در بسیاری از نسخه‌های IOS XE موجود نیست
محدودیت ترافیک توسط CPU روتر تولید می‌شود و سقف آن توان CPU است، نه لینک
جایگزین امروزی iPerf3 روی دو کامپیوتر یا Guest Shell ، و IP SLA برای تأخیر و Jitter

اجرای TTCP بین دو روتر

TTCP یک دستور مخفی است؛ با ? نمایش داده نمی‌شود اما در IOS کلاسیک روترهایی مثل 1800 ، 2800 ، 3800 ، 1900 ، 2900 و 7200 کار می‌کند. ابتدا روی روتر گیرنده:

Aka-R1# ttcp
transmit or receive [receive]:
perform tcp half close [n]:
receive buflen [8192]:
bufalign [16384]:
bufoffset [0]:
port [5001]:
sinkmode [y]:
rcvwndsize [4128]: 65535
delayed ACK [y]:
show tcp information at end [n]:
ttcp-r: buflen=8192, align=16384/0, port=5001
rcvwndsize=65535, delayedack=yes  tcp

سپس روی روتر فرستنده:

Aka-R2# ttcp
transmit or receive [receive]: transmit
Target IP address: 172.16.68.2
perform tcp half close [n]:
send buflen [8192]:
send nbuf [2048]:
bufalign [16384]:
bufoffset [0]:
port [5001]:
sinkmode [y]:
buffering on writes [y]:
show tcp information at end [n]:
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 172.16.68.2
ttcp-t: connect
ttcp-t: 16777216 bytes in 11304 ms (11.304 real seconds) (~1449 kB/s) +++
ttcp-t: 2048 I/O calls

تفسیر نتیجه

در این نمونه ۲۰۴۸ بافر ۸ کیلوبایتی، یعنی ۱۶ مگابایت، در ۱۱٫۳ ثانیه منتقل شد: حدود ۱۴۴۹ کیلوبایت در ثانیه، یعنی نزدیک ۱۱٫۶ مگابیت بر ثانیه. اگر لینک بین دو روتر ۱۰۰ مگابیت اسمی دارد، این عدد نشان می‌دهد چیزی در مسیر محدودکننده است: تأخیر زیاد، Packet Loss ، پنجره TCP کوچک یا ظرفیت خود روترها.

پارامتر اثر
send nbuf × buflen حجم کل داده آزمایش؛ برای لینک سریع بیشتر کنید تا آزمایش حداقل ۱۰ ثانیه طول بکشد
rcvwndsize اندازه پنجره TCP گیرنده؛ روی لینک‌های پرتأخیر مهم‌ترین عامل سرعت
port اگر فایروال در مسیر است، پورت 5001 باید باز باشد

چرا TCP Window این‌قدر مهم است

TCP فقط به اندازه پنجره می‌تواند داده بفرستد و بعد باید منتظر ACK بماند. پس حداکثر سرعت یک اتصال TCP تقریباً برابر است با اندازه پنجره تقسیم بر RTT. مثال: با پنجره ۶۴ کیلوبایت و RTT برابر ۵۰ میلی‌ثانیه (مثلاً تهران تا یک دیتاسنتر خارج) ، سقف سرعت حدود ۶۴KB ÷ 0.05s ≈ ۱٫۳ مگابایت بر ثانیه یا حدود ۱۰ مگابیت است؛ هر قدر هم لینک پهن باشد. این همان دلیلی است که انتقال فایل تک‌اتصاله روی لینک‌های پرتأخیر کند است، در حالی که چند اتصال هم‌زمان، لینک را پر می‌کنند.

محدودیت‌های TTCP

  • CPU روتر گلوگاه است: ترافیک TTCP توسط CPU روتر ساخته و پردازش می‌شود، نه ASIC. روی لینک‌های سریع، عدد به‌دست‌آمده سقف CPU است نه لینک.
  • در IOS XE: در بسیاری از روترهای IOS XE (ISR 4000 ، Catalyst 8000) این دستور در دسترس نیست؛ پیش از برنامه‌ریزی، روی نسخه خودتان امتحان کنید.
  • روی شبکه عملیاتی: آزمایش پهنای باند یعنی پر کردن لینک؛ در ساعت کاری ترافیک کاربران را مختل می‌کند.

جایگزین‌های امروزی

ابزار کجا اجرا می‌شود مناسب برای
iPerf3 دو کامپیوتر یا سرور در دو سر لینک اندازه‌گیری دقیق TCP و UDP ، چند اتصال هم‌زمان
iPerf3 در Guest Shell روی روترها و سوئیچ‌های IOS XE که Guest Shell دارند تست از خود دستگاه، بدون کامپیوتر اضافه
IP SLA UDP Jitter روتر و سوئیچ سیسکو تأخیر، Jitter ، Loss و کیفیت صدا؛ نه پهنای باند
NetFlow روتر و سوئیچ سیسکو اینکه واقعاً چه کسی پهنای باند را مصرف می‌کند
# server side
iperf3 -s
# client side: 10 seconds, 4 parallel TCP streams
iperf3 -c 172.16.68.2 -t 10 -P 4
# UDP 50 Mbps to measure loss and jitter
iperf3 -c 172.16.68.2 -u -b 50M

برای اندازه‌گیری کیفیت لینک در طول زمان، مطلب سیسکو IP SLA و برای دیدن مصرف‌کنندگان پهنای باند سیسکو NetFlow را ببینید.

پرسش‌های متداول

دستور ttcp روی روتر من نیست.
روی بسیاری از نسخه‌های IOS XE حذف شده است؛ از iPerf3 استفاده کنید.

نتیجه TTCP از سرعت قرارداد کمتر است؛ ISP مقصر است؟
نه لزوماً. اول CPU روترها، اندازه پنجره TCP و RTT را بررسی کنید و با iPerf3 و چند اتصال هم‌زمان تکرار کنید.

با یک کامپیوتر ویندوزی هم می‌شود؟
بله؛ نسخه ویندوزی ttcp (مثل ابزار NTttcp) یا iPerf3 می‌تواند نقش یک طرف را بگیرد.

منابع

مشاوره با AKA NET

برای عیب‌یابی کندی لینک‌ها، اندازه‌گیری کیفیت ارتباط و طراحی WAN با آکانت (AKA NET) تماس بگیرید.

تلفن: 09121308444  |  ایمیل: aka@aka.ir  |  aka.ir

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *