.TH tcpretrans.bt 8 "2018-11-24" "USER COMMANDS" .SH "نام (NAME)" tcpretrans.bt \- ردیابی یا شمارش ارسال‌های مجدد TCP با استفاده از bpftrace/eBPF لینوکس .SH "خلاصه دستور (SYNOPSIS)" .B tcpretrans.bt .SH "توضیحات (DESCRIPTION)" این ابزار ارسال‌های مجدد TCP را ردیابی کرده و اطلاعات نشانی، درگاه، وضعیت TCP و گاهی PID را نمایش می‌دهد (اگرچه معمولاً نمایش داده نمی‌شود، زیرا ارسال‌های مجدد اغلب توسط هسته بر اثر اتمام مهلت زمانی یا timeout ارسال می‌شوند). برای پایین نگه داشتن بار پردازشی (overhead)، تنها توابع ارسال مجدد TCP ردیابی می‌شوند. این ابزار تک‌تک بسته‌ها را ردیابی نمی‌کند (برخلاف tcpdump(8) یا شنودکننده‌های بسته). به صورت اختیاری، می‌تواند ارسال‌های مجدد را در یک بازه زمانی مشخص‌شده توسط کاربر شمارش کند تا مسیرهای شبکه‌ای با افت احتمالی بسته در طول تبادلات شناسایی شوند. .PP این ابزار از ردیابی پویای توابع هسته .BR tcp_retransmit_skb() و .BR tcp_send_loss_probe() استفاده می‌کند و برای هماهنگی با تغییرات اعمال‌شده روی این توابع در هسته، نیازمند به‌روزرسانی خواهد بود. .PP از آنجا که این ابزار از BPF استفاده می‌کند، تنها کاربر ریشه (root) می‌تواند از آن استفاده کند. .SH "پیش‌نیازها (REQUIREMENTS)" CONFIG_BPF و bcc. CONFIG_BPF و bpftrace. .SH "مثال‌ها (EXAMPLES)" .TP ردیابی ارسال‌های مجدد TCP: # .B tcpretrans.bt .SH "فیلدها (FIELDS)" .TP TIME زمان فراخوانی، در قالب HH:MM:SS. .TP PID شناسه فرایندی که روی CPU در حال اجرا بوده است. این فیلد ممکن است کمتر از آنچه به نظر می‌رسد مفید باشد، زیرا معمولاً برای ارسال‌های مجدد مبتنی بر تایمر در هسته مقدار 0 دارد. .TP LADDR:LPORT نشانی IP محلی و درگاه محلی. .TP RADDR:RPORT نشانی IP راه دور و درگاه راه دور. .TP STATE وضعیت نشست TCP. .SH "بار پردازشی (OVERHEAD)" باید ناچیز باشد: رویدادهای ارسال مجدد TCP معمولاً کم هستند (کمتر از ۱۰۰۰ در ثانیه)، و بار پردازشی اندکی که این ابزار به ازای هر رویداد اضافه می‌کند هزینه کلی را ناچیز می‌سازد. .SH "منبع (SOURCE)" این ابزار برگرفته از bpftrace است. .IP https://github.com/bpftrace/bpftrace .PP همچنین در توزیع bpftrace به فایل همراه _examples.txt که شامل نمونه نحوه استفاده، خروجی و توضیحات این ابزار است مراجعه کنید. .PP این یک نسخه bpftrace از ابزار bcc با همین نام است. ابزار bcc ممکن است گزینه‌ها و قابلیت‌های سفارشی‌سازی بیشتری ارائه دهد. .IP https://github.com/iovisor/bcc .SH "سیستم‌عامل (OS)" Linux .SH "پایداری (STABILITY)" ناپایدار \- در حال توسعه. .SH "نویسنده (AUTHOR)" Brendan Gregg، سازگار شده برای bpftrace توسط Dale Hamel .SH "همچنین ببینید (SEE ALSO)" tcpconnect.bt(8), tcpaccept.bt(8)