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

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 میتواند نقش یک طرف را بگیرد.
منابع
- iPerf – The ultimate speed test tool for TCP, UDP and SCTP
- Cisco IP SLAs Configuration Guide (IOS XE 17)
مشاوره با AKA NET
برای عیبیابی کندی لینکها، اندازهگیری کیفیت ارتباط و طراحی WAN با آکانت (AKA NET) تماس بگیرید.
تلفن: 09121308444 | ایمیل: aka@aka.ir | aka.ir