.\"edit the file tcpflow.1.in, not tcpflow.1"
.\""
.\""
.TH tcpflow 1 "2013-04-13" "tcpflow 1.6.1" "tcpflow 1.6.1"
.SH "نام (NAME)"
tcpflow \- ضبطکننده جریانهای TCP
.SH "خلاصه دستور (SYNOPSIS)"
.na
.B tcpflow
[\c
.BI \-aBcCDIpsZ\fR\c
]
[\c
.BI \-b \ max_bytes\fR\c
]
[\c
.BI \-d \ debug_level\fR\c
]
[\c
.BI \-[eE] \ scanner\fR\c
]
[\c
.BI \-f \ max_fds\fR\c
]
[\c
.BI \-F[ctTXMkmg]\fR\c
]
[\c
.BI \-h\fR\c
|\c
.BI \--help\fR\c
]
[\c
.BI \-i \ iface\fR\c
]
[\c
.BI \-l \ file1.pcap\ file2.pcap...\fR\c
]
[\c
.BI \-L \ semlock\fR\c
]
[\c
.BI \-m \ min_bytes\fR\c
]
[\c
.BI \-o \ outdir\fR\c
]
[\c
.BI \-r \ file1.pcap\fR\c
]
[\c
.BI \-R \ file0.pcap\fR\c
]
[\c
.BI \-S \ name=value\fR\c
]
[\c
.BI \-T[filename\ template]\fR\c
]
[\c
.BI \-U\fR\c
|\c
.BI \--relinquish-privileges \ username\fR\c
]
[\c
.BI \-v\fR\c
|\c
.BI \--verbose\fR\c
]
[\c
.BI \-V\fR\c
|\c
.BI \--version\fR\c
]
[\c
.BI \-w \ file\fR\c
]
[\c
.BI \-x \ scanner\fR\c
]
[\c
.BI \-X \ file.xml\fR\c
]
[\c
.BI \-z\fR\c
|\c
.BI \--chroot \ directory\fR\c
]
[\c
.BI expression\fR\c
]
.SH "توضیحات (DESCRIPTION)"
.LP
برنامهٔ
.B tcpflow
دادههای منتقلشده بهعنوان بخشی از اتصالات TCP (جریانها یا flows) را ضبط کرده و آنها را به شیوهای ذخیره میکند که برای تحلیل پروتکل یا اشکالزدایی مناسب باشد. بهجای نمایش اطلاعات بهصورت بسته به بسته،
\fBtcpflow\fP
جریانهای دادهٔ واقعی را بازسازی کرده و هر جریان را برای تحلیلهای بعدی در فایلی مجزا ذخیره میکند.
\fBtcpflow\fP
شمارههای توالی TCP را درک میکند و جریانهای داده را فارغ از ارسالهای مجدد (retransmissions) یا تحویل بستهها خارج از ترتیب، بهدرستی بازسازی مینماید.
\fBtcpflow\fP
امکان کنترل نامگذاری فایلها را برای دستهبندی خودکار اتصالات بر اساس پروتکل، آدرس IP یا شمارهٔ اتصال فراهم میسازد، و مجهز به سامانهٔ افزونهٔ پیشرفتهای برای خارج کردن اتصالات فشردهشدهٔ HTTP از حالت فشرده، بازگردانی کدگذاری MIME، یا فراخوانی برنامههای ارائهشده توسط کاربر جهت پسپردازش است.
.LP
بهطور پیشفرض
\fBtcpflow\fP
تمام دادههای ضبطشده را در فایلهایی با نامهایی به این قالب ذخیره میکند:
.in +.5i
.nf
\fB192.168.101.102.02345-010.011.012.013.45103\fP
.fi
.in -.5i
\,... که محتویات فایل فوق، دادههای منتقلشده از میزبان 192.168.101.102 درگاه 2345 به میزبان 10.11.12.13 درگاه 45103 خواهد بود.
.LP
اگر میخواهید صرفاً چند صد هزار بسته را پردازش کرده و نتیجه را مشاهده کنید، این دستور را امتحان نمایید:
.in +.5i
.nf
\fBtcpflow -a -o outdir -Fk -r packets.pcap\fP
.fi
.in -.5i
این دستور باعث میشود
\fBtcpflow\fP
تمام پردازشها را انجام دهد (\-a)، خروجی را در پوشهای به نام
.BI outdir
ذخیره کند، خروجی را در دایرکتوریهایی با ظرفیت ۱۰۰۰ اتصال تفکیک نماید، و ورودی خود را از فایل
\fBpackets.pcap\fP
بخواند. البته پردازشهای پیچیدهتر و پیشرفتهتر نیز امکانپذیر است..SH "گزینهها (OPTIONS)"
.TP
.B \-a
فعالسازی تمام پردازشها. معادل با
.B \-e all.
.TP
.B \-B
اجبار خروجی دودویی (باینری) حتی هنگام چاپ در کنسول با
.B -C
یا
.B -c.
.TP
.B \-b \fImax_bytes\fP
حداکثر اندازهٔ یک جریان (flow) ضبطشده را تعیین میکند. هر بایتی فراتر از \fImax_bytes\fP از نخستین بایت ضبطشده، نادیده گرفته خواهد شد. حالت پیشفرض، ذخیرهٔ تعداد نامحدودی از بایتها به ازای هر جریان است. \fBنکته:\fP قبل از نسخهٔ ۱.۴، \fBtcpflow\fP تنها میتوانست حداکثر ۴ گیبیبایت (4GiB) به ازای هر جریان ذخیره کند.
.TP
.B \-c
چاپ در کنسول. محتویات بستهها را به محض دریافت در خروجی استاندارد (stdout) چاپ میکند، بدون آنکه دادههای ضبطشده را در فایلها ذخیره کند (به طور ضمنی \fB\-s\fP را فعال میکند).
.TP
.B \-C
چاپ در کنسول بدون نمایش جزئیات مبدأ و مقصد بستهها. محتویات بستهها را به محض دریافت در خروجی استاندارد (stdout) چاپ میکند، بدون ذخیرهٔ دادههای ضبطشده در فایلها (به طور ضمنی \fB\-s\fP را فعال میکند).
.TP
.B \-D
خروجی کنسول باید به صورت شانزدهشانزدهی (hex) باشد.
.TP
.B \-d
سطح اشکالزدایی (دیباگ). سطح پیامهای اشکالزدایی چاپشده در خروجی خطای استاندارد (stderr) را روی \fIdebug_level\fP تنظیم میکند. اعداد بزرگتر پیامهای بیشتری تولید میکنند.
.B \-d 0
باعث اجرای کاملاً بیصدا میشود.
.B \-d 1
، که پیشفرض است، حداقل پیامهای وضعیت را تولید میکند.
.B \-d 10
خروجی پرحرفی معادل با
.B \-v .
تولید میکند. اعداد بالاتر از ۱۰ میتوانند حجم عظیمی از اطلاعات اشکالزدایی تولید کنند که تنها برای توسعهدهندگان مفید است.
.TP
.B \-E name
غیرفعال کردن تمام اسکنرها و سپس فعالسازی اسکنر
.B name
.TP
.B \-e name
فعالسازی اسکنر
.B name.
.TP
.B \-e all
فعالسازی تمام اسکنرها. معادل با
.B \-a
.TP
.B \-e http
انجام پسپردازش HTTP (پردازش «پسین»). اگر فایل خروجی به صورت زیر باشد:
.in +.5i
.nf
\fB208.111.153.175.00080-192.168.001.064.37314,\fP
.fi
.in -.5i
آنگاه پسپردازش فایلهای زیر را ایجاد خواهد کرد:
.in +.5i
.nf
\fB208.111.153.175.00080-192.168.001.064.37314-HTTP\fP
\fB208.111.153.175.00080-192.168.001.064.37314-HTTPBODY\fP
.fi
.in -.5i
اگر HTTPBODY با GZIP فشرده شده باشد، ممکن است یک فایل سوم نیز دریافت کنید:
.in +.5i
.nf
\fB208.111.153.175.00080-192.168.001.064.37314-HTTPBODY-GZIP\fP
.fi
.in -.5i
اطلاعات تکمیلی دربارهٔ این جریانها، مانند مقدار هش MD5 آنها، در فایل
.B DFXML report
نیز نوشته میشود.
.TP
.B \-e python \-S py_path=path \-S py_module=module \-S py_function=foo
پسپردازش محمولهٔ (payload) پروتکل TCP توسط یک تابع پایتون خارجی.
.RS
.PP
تابع پایتون باید یک پارامتر رشتهای دریافت کند.
تابع پایتون میتواند یک رشته را برگرداند (در غیر این صورت تابع نباید مقداری را بازگرداند).
رشتهٔ بازگرداندهشده (در صورت وجود) در فایل
.B DFXML report
درون برچسب XML با ساختار \fB...\fP نوشته میشود.
یک اسکریپت نمونهٔ پایتون درون کد منبع tcpflow در پوشهٔ \fBpython/plugins\fP موجود است.
.PP
مثال:
.PP
.nf
\fBtcpflow -r my.cap -e python -S py_path=python/plugins -S py_module=samplePlugin -S py_function=sampleFunction\fP
.fi
.RE
.TP
.B \-F[format]
تعیین فرمت نام فایلهای خروجی.
.RS
.TP
مشخصکنندههای فرمت:
.TP
.B c
شمارندهٔ اتصال را به انتهای همهٔ نامهای فایل میافزاید.
.TP
.B t
یک برچسب زمانی یونیکس (ثانیهها از زمان مبدأ) را به ابتدای هر نام فایل اضافه میکند.
.TP
.B T
یک برچسب زمانی ISO-8601 را به ابتدای هر نام فایل اضافه میکند.
.TP
.B X
هیچ فایلی را در خروجی تولید نمیکند (به جز فایل
.B DFXML report
).
.RE
.TP
.B \-FM
گنجاندن هش MD5 هر جریان در فایل
.B DFXML report
.
.TP
.B \-FX
خروجی فایل را به طور کامل متوقف میکند، اما فایل
.B DFXML report
همچنان تولید میشود.
.TP
.B \-Fk
دستهبندی خروجی در پوشههای ۱K (هزارتایی)
.TP
.B \-Fm
دستهبندی خروجی در پوشههای ۱M (میلیونی) (۲ سطح)
.TP
.B \-Fg
دستهبندی خروجی در پوشههای ۱G (میلیاردی) (۳ سطح)
.TP
.B \-f\fImax_fds\fP
حداکثر توصیفکنندههای فایل استفادهشده. تعداد توصیفکنندههای فایل مورد استفاده توسط \fBtcpflow\fP را به \fImax_fds\fP محدود میکند. اعداد بالاتر منابع سیستمی بیشتری مصرف میکنند، اما معمولاً عملکرد بهتری دارند. اگر سیستمعامل زیرین از فراخوان سیستمی
.B setrlimit()
پشتیبانی کند، از سیستمعامل خواسته میشود که حد درخواستی را اعمال کند. حالت پیشفرض این است که \fBtcpflow\fP از حداکثر تعداد توصیفکنندههای فایل مجاز توسط سیستمعامل استفاده کند. گزینهٔ
.B \-v
گزارش میدهد که \fBtcpflow\fP در حال استفاده از چه تعداد توصیفکنندهٔ فایل است.
.TP
.B \-g
نمایش اطلاعات جریان در کنسول با رنگهای چندگانه. (آبی برای جریانهای کلاینت به سرور، قرمز برای جریانهای سرور به کلاینت، سبز برای جریانهای نامشخص.)
نکته: این گزینه در \fBtcpflow\fP نسخهٔ 1.3 (با \-e) و نسخهٔ 1.4.4 (با \-J) متفاوت بوده است.
.TP
.B \-h \--help
راهنما. نمایش اطلاعات مربوط به نحوهٔ استفاده و خروج.
.TP
.B \-hh
راهنمای بیشتر. نمایش اطلاعات تکمیلی نحوهٔ استفاده و خروج.
.TP
.B \-i \fIiface\fP
نام رابط شبکه. ضبط بستهها از رابط شبکه به نام \fIiface\fP. اگر هیچ رابطی با
.B \-i
مشخص نشود، یک مقدار پیشفرض منطقی بهطور خودکار توسط libpcap استفاده خواهد شد.
.TP
.B \-I
ذخیرهٔ برچسبهای زمانی دریافت (بستههای TCP) در یک فایل همراه با نام \fB*.findx\fP.
بنابراین هر جریان دارای دو فایل خواهد بود: (۱) فایل معمول شامل بایتهای محموله (payload) و (۲) فایل متنی شامل برچسبهای زمانی مربوطه.
این فایل نهایی \fB*.findx\fP دارای سه ستون است که با نویسهٔ خط عمودی \fB'|'\fP از هم جدا شدهاند:
.nf
\fBbyte-index|timestamp|length\fP
.fi
ستون \fBbyte-index\fP موقعیت درون فایلی است که بایتهای محموله را در بر دارد.
ستون \fBtimestamp\fP نشاندهندهٔ تعداد ثانیهها از مبدأ زمان یونیکس به عنوان یک عدد اعشاری ممیز شناور است.
دقت آن در حد میکروثانیه است اما ممکن است در نسخههای آیندهٔ \fBtcpflow\fP به نانوثانیه نیز ارتقا یابد.
ستون \fBlength\fP تعداد بایتهای متوالی مرتبط با \fBtimestamp\fP است و میتواند شامل چندین فریم TCP (بستههای TCP) باشد.
پسوند \fBfindx\fP ممکن است برگرفته از این واقعیت باشد که برچسبهای زمانی بهصورت نمایهسازیشده با فریم (\fBframe indexed\fP) هستند.
.TP
.B \-L \fIsemlock_name\fP
مشخص میکند که \fIsemlock_name\fP باید به عنوان یک سمافور یونیکس (Unix semaphore) استفاده شود تا از تداخل و چاپ همزمان دو نمونهٔ مختلف از \fBtcpflow\fP که در دو فرایند جداگانه اجرا میشوند اما روی یک خروجی استاندارد مشترک مینویسند، جلوگیری شود. این یک کاربرد از سمافورهای نامگذاریشده در یونیکس است؛ شرط میبندم تاکنون نمونهاش را ندیده بودید.
.TP
.B \-l
با آرگومانهای پس از خود مانند نام فایل رفتار میکند با این فرض که پیش از هر کدام یک دستور \fB-r\fP قرار دارد.
این کار به شما امکان میدهد چندین فایل را به صورت همزمان با استفاده از الگوهای انطباق پوسته (shell globbing) بخوانید. به عنوان مثال، برای پردازش تمام فایلهای pcap در پوشهٔ جاری، از این دستور استفاده کنید:
.in +.5i
.nf
\fBtcpflow -o out -a -l *.pcap\fP
.fi
.in -.5i.TP
.B \-m \fImin_size\fP
در صورتی که پرشی به اندازهٔ \fImin_size\fP بایت یا بیشتر در نشست TCP رخ دهد، ایجاد یک فایل خروجی جدید برای اتصال را اجباری میکند.
.TP
.B \-o \fIoutdir\fP
دایرکتوری خروجی را که رونوشت فایلها در آن نوشته خواهند شد مشخص میکند.
.TP
.B \-P
عدم پاکسازی. در حالت عادی، \fBtcpflow\fP پس از بسته شدن اتصال با یک FIN، اتصالات را از جدول درهمسازی (hash table) حذف میکند. این کار در مصرف حافظه صرفهجویی میکند اما زمان پردازنده (CPU) بیشتری میگیرد. انتخاب این گزینه باعث میشود std::tr1:unordered_map بدون محدودیت رشد کند، همانگونه که \fBtcpflow\fP پیش از نسخهٔ 1.1 رفتار میکرد. این کار در صورتی که کمتر از ۱۰ میلیون اتصال وجود داشته باشد باعث اجرای سریعتر \fBtcpflow\fP میشود، اما میتواند منجر به خطاهای کمبود حافظه (out-of-memory) شود.
.TP
.B \-p
بدون حالت بیقاعده (promiscuous mode). در حالت عادی، \fBtcpflow\fP پیش از دریافت بستهها تلاش میکند تا رابط شبکه را در حالت بیقاعده قرار دهد. گزینهٔ \fB-p\fP به \fBtcpflow\fP میگوید که رابط را در حالت بیقاعده قرار \fIندهد\fP. توجه داشته باشید که ممکن است رابط بنا به دلایل دیگری از قبل در حالت بیقاعده باشد.
.TP
.B \-q
حالت بیصدا \--- هشدارها را چاپ نمیکند. در حال حاضر تنها هشداری که \fBtcpflow\fP چاپ میکند، هشداری هنگام ایجاد بیش از ۱۰٬۰۰۰ فایل است مبنی بر اینکه کاربر باید گزینههای \fB-Fk\fP، \fB-Fm\fP یا \fB-Fg\fP را مشخص میکرد. ممکن است در آینده هشدارهای دیگری نیز اضافه شوند.
.TP
.B \--relinquish-privileges\fB=\fIusername\fP
هنگامی که \fBtcpflow\fP به عنوان root اجرا میشود، این گزینه شناسهٔ کاربر و شناسهٔ گروه را تغییر میدهد تا فایلهای ایجاد شده تحت مالکیت \fIusername\fP نوشته شوند. شناسهٔ گروه، اولین گروه از فهرست گروههای \fIusername\fP خواهد بود. این عملیات درست پس از باز کردن دستگاه دریافت یا درست پس از باز کردن نخستین فایل PCAP ورودی انجام میشود. این گزینه از چندین فایل ورودی که فقط برای root خواندنی هستند پشتیبانی نمیکند، چرا که دسترسیهای root پس از باز کردن نخستین فایل سلب میشوند (مانند
.B \-r \fIroot-only-access.pcap\fP
.B \-R \fIroot-only.pcap\fP
.B \-l \fIroot-only*.pcap\fP\c
).
این گزینه رفتاری مشابه گزینهٔ
.IR tcpdump (1)
با همین نام
.B \--relinquish-privileges\fB
دارد.
.TP
.B \-r
خواندن از فایل. بستهها را از \fIfile\fP میخواند که با استفاده از گزینهٔ
.B \-w
در
.IR tcpdump (1)
ایجاد شده است. این گزینه میتواند به هر تعداد بار تکرار شود. اگر \fIfile\fP برابر با «-» باشد، از ورودی استاندارد استفاده میشود. توجه داشته باشید که برای سودمند بودن این گزینه، باید هنگام دریافت بستهها از گزینهٔ
.B \-s
در tcpdump برای تنظیم snaplen روی MTU رابط شبکه (برای مثال 1500) استفاده شده باشد.
.TP
.B \-R
خواندن از یک فایل، اما تنها برای کامل کردن جریانهای TCP. این گزینه هنگامی استفاده میشود که از
.IR tcpflow
برای پردازش مجموعهای از فایلها که در طول زمان ضبط شدهاند استفاده شود. برای هر دورهٔ زمانی
\fIn\fP، فایل \fIfile(n).pcap\fP باید با \fB-R \fIfile(n).pcap\fP پردازش شود، در حالی که \fIfile(n-1).pcap\fP باید با \fI-r file(n-1).pcap\fP پردازش گردد.
.TP
.B \-S\fIname\fB=\fIvalue\fP
پارامتر \fIname\fP را برای یک پلاگین برابر با \fIvalue\fP تنظیم میکند. برای آگاهی از تمامی پارامترهای قابل تنظیم از \fB-hh\fP استفاده کنید.
.TP
.B \-s
حذف نویسههای غیرقابلچاپ. تمام نویسههای غیرقابلچاپ را پیش از چاپ بستهها در کنسول یا ذخیرهٔ آنها در فایل، به نویسهٔ «.» تبدیل میکند.
.TP
.B \-T[format]
یک الگوی دلخواه برای نام فایلها مشخص میکند.
.RS
.TP
.B %A
به آدرس IP مبدأ بسط مییابد.
.TP
.B %a
به پورت IP مبدأ بسط مییابد.
.TP
.B %B
به آدرس IP مقصد بسط مییابد.
.TP
.B %b
به پورت IP مقصد بسط مییابد.
.TP
.B %T
به برچسب زمانی در قالب ISO8601 بسط مییابد.
.TP
.B %t
به برچسب زمانی در قالب time_t یونیکس بسط مییابد.
.TP
.B %V
در صورت وجود VLAN، به «--» بسط مییابد.
.TP
.B %v
در صورت وجود VLAN، به شمارهٔ VLAN بسط مییابد.
.TP
.B %C
اگر تعداد اتصال > 0 باشد، به «c» بسط مییابد.
.TP
.B %c
اگر تعداد اتصال > 0 باشد، به تعداد اتصال بسط مییابد.
.TP
.B %#
همواره به تعداد اتصال بسط مییابد.
.TP
.B %N
(connection_number ) % 1000
.TP
.B %K
(connection_number / 1000) % 1000
.TP
.B %M
(connection_number / 1000000) % 1000
.TP
.B %G
(connection_number / 1000000000) % 1000
.TP
.B %%
یک «%» چاپ میکند.
.TP
.RE
هنگامی که از گزینهٔ \fB\-T\fP استفاده میشود، \fBtcpflow\fP گزینههای \fB\-Fk\fP، \fB\-Fm\fP و \fB\-Fg\fP را نادیده میگیرد. با این حال، گزینهٔ \fB\-T\fP نویسهٔ \fB'/'\fP را درون الگوی نام فایل برای ساخت زیردایرکتوریها پردازش میکند. برای نمونه، خط زیر ساختار دایرکتوری \fBout/IP-src/port-src/IP-dst/port-dst\fP را ایجاد خواهد کرد.
.nf
\fBtcpflow -r packets.pcap -o out -T %A/%a/%B/%b/%c%N.flow\fP
.fi
.TP
.B \-V \--version
شمارهٔ نسخه را چاپ کرده و خارج میشود.
.TP
.B \-v \--verbose
عملیات پرگو (مشروح). عملکرد \fBtcpflow\fP را با جزئیات شرح میدهد. معادل با \fB \-d 10\fP.
.TP
.B \-w \fIfilename.pcap\fP
بستههایی را که پردازش نشدهاند در \fIfilename.pcap\fP مینویسد. معمولاً اینها بستههای UDP خواهند بود.
.TP
.B \-X \fIfilename.xml\fP
یک
.B گزارش DFXML
را در \fIfilename.xml\fP مینویسد. این فایل شامل رکوردی از تمام اتصالات tcp، نحوهٔ کامپایل برنامهٔ \fBtcpflow\fP، و رایانهای است که \fBtcpflow\fP روی آن اجرا شده است. به طور پیشفرض،
.B tcpflow
.B گزارش DFXML
را در فایل \fIreport.xml\fP مینویسد.
.TP
.B \-Z
جریانهای فشردهشده با gzip را از حالت فشرده خارج نمیکند.
.\"START -- tcpdump excerpt"
.B \-K
ساختار pcap مجزا به ازای هر جریان را حفظ میکند.
.TP
\fIexpression\fP
مشخص میکند که کدام بستهها دریافت خواهند شد. اگر هیچ \fIexpression\fP ارائه نشود، تمام بستههای روی شبکه دریافت خواهند شد. در غیر این صورت، تنها بستههایی که \fIexpression\fP برای آنها «true» باشد دریافت خواهند شد.
.IP
برای نحو دستورات \fIexpression\fP، به
.BR pcap-filter (7)
مراجعه کنید.
.IP
آرگومان \fIexpression\fP میتواند به صورت یک آرگومان تکی شل (Shell) یا چندین آرگومان شل، بسته به راحتی کاربر، به \fItcpflow\fP ارسال شود. به طور کلی، اگر عبارت شامل نویسههای ویژهٔ شل باشد، مانند بکاسلشهایی که برای گریز از نام پروتکلها استفاده میشوند، ارسال آن به عنوان یک تکآرگومان نقلقولشده بسیار آسانتر از گریز دادن تکتک نویسههای ویژهٔ شل است. آرگومانهای چندگانه پیش از پردازش با فاصله به یکدیگر متصل میشوند..SH "گزارش DFXML (DFXML report)"
.LP
.B گزارش DFXML
فایل XML نوشتهشده توسط
.B tcpflow
است که جزئیات ساخت
.BR tcpflow ،
آرگومانهای خط فرمان
و اطلاعات مربوط به جریانهای پردازششده را ارائه میدهد.
.LP
بهطور پیشفرض،
.B فایل DFXML
به نام \fIreport.xml\fP نامگذاری میشود.
اما این نام فایل را میتوان با استفاده
از گزینه خط فرمان \fB\-X\fP تغییر داد.
.LP
.B فایل DFXML
از
.B شمای DFXML
تعریفشده توسط پروژه
\fIhttps://github.com/dfxml-working-group/dfxml_schema\fP
پیروی میکند.
.br
علاوه بر این،
.B tcpflow
دو برچسب اضافی XML را اضافه میکند،
همانطور که در مثال زیر نشان داده شده است:
.RS
.nf
\fB
bla bla bla
\fP
.fi
.RE
.LP
نخستین برچسب XML یعنی \fB\fP اطلاعات مربوط به جریان ضبطشده را ارائه میدهد.
این برچسب در نسخههای بعدی باید به \fB\fP تغییر نام یابد
تا انطباق بهتری با \fBشمای DFXML\fP داشته باشد.
.LP
دومین برچسب XML یعنی \fB\fP نتایج پردازش را گردآوری میکند.
در حال حاضر، تنها اسکنر \fIpython\fP از این قابلیت استفاده میکند.
.PP
ویژگیهای XML برچسب \fB\fP عبارتند از:
.IP \(bu
\fBstartime\fP زمان دریافت نخستین بسته
.IP \(bu
\fBendtime\fP زمان دریافت آخرین بسته
.IP \(bu
\fBfamily\fP
.IP \(bu
\fBmac_daddr\fP نشانی MAC مقصد نخستین بسته (در صورت وجود چاپ میشود)
.IP \(bu
\fBmac_saddr\fP نشانی MAC مبدأ نخستین بسته (در صورت وجود چاپ میشود)
.IP \(bu
\fBsrc_ipn\fP نشانی IP مبدأ
.IP \(bu
\fBdst_ipn\fP نشانی IP مقصد
.IP \(bu
\fBsrcport\fP درگاه TCP مبدأ
.IP \(bu
\fBdstport\fP درگاه TCP مقصد
.IP \(bu
\fBpackets\fP تعداد بستهها
.IP \(bu
\fBout_of_order_count\fP تعداد دفعاتی که
.B tcpflow
دادههای مفید (payload) مفقود را در فایل جریان با صفر جایگزین کرده است،
برای مثال زمانی که دادههای ضبطشده شامل شروع نشست TCP نباشد (در صورت وجود چاپ میشود)
.IP \(bu
\fBviolations\fP تعداد موارد نقض پروتکل (در صورت وجود چاپ میشود)
.IP \(bu
\fBlen\fP مجموع طول برشنخورده تمام دادههای بستهها
(شامل سرایندها، https://stackoverflow.com/q/1491660 را ببینید)
.IP \(bu
\fBcaplen\fP مجموع بایتهای ضبطشده از تمام دادههای بستهها
(شامل سرایندها، در صورتی که با \fBlen\fP متفاوت باشد چاپ میشود)
.PP
ویژگیهای XML برچسب \fB\fP عبارتند از:
.IP \(bu
\fBscanner\fP نام اسکنر
.IP \(bu
\fBpath\fP دایرکتوری ماژول اسکنر (در صورت مرتبط بودن چاپ میشود)
.IP \(bu
\fBmodule\fP نام ماژول (در صورت مرتبط بودن چاپ میشود، برای مشخص کردن اسکریپت python بهکار میرود)
.IP \(bu
\fBfunction\fP نام تابع (در صورت مرتبط بودن چاپ میشود،
برای مشخص کردن تابع درون ماژول python بهکار میرود)
.SH "مثالها (EXAMPLES)"
.LP
برای ضبط تمام بستههای ورودی به یا خروجی از \fIsundown\fP و استخراج تمام پیوستهای HTTP:
.RS
.nf
\fBtcpflow -e http -o outdir host sundown\fP
.fi
.RE
.LP
برای ضبط ترافیک بین \fIhelios\fR و \fIhot\fR یا \fIace\fR و دستهبندی نتایج در ۱۰۰۰ فایل در هر دایرکتوری و محاسبه MD5 هر جریان:
.RS
.nf
\fBtcpflow -X report.xml -e md5 -o outdir -Fk host helios and \\( hot or ace \\)\fP
.fi
.SH "گزارش باگها (BUGS)"
لطفاً گزارش باگها را به simsong@acm.org ارسال کنید.
.LP
در حال حاضر \fBtcpflow\fP قطعههای IP (IP fragments) را متوجه نمیشود. جریانهای حاوی
قطعههای IP بهدرستی ضبط نخواهند شد.
.SH "نویسندگان (AUTHORS)"
نگارش اولیه توسط Jeremy Elson .
تغییرات اساسی و نگهداری توسط Simson L. Garfinkel .
کد مصورسازی شبکه توسط Michael Shick
.LP
نسخه فعلی این نرمافزار در نشانی زیر در دسترس است:
.RS
.I http://digitalcorpora.org/downloads/tcpflow
.LP
.RE
فهرست پستی اعلانهای این برنامه در نشانی زیر قرار دارد:
.RS
.I http://groups.google.com/group/tcpflow-users
.RE.SH "همچنین ببینید (SEE ALSO)"
tcpdump(1), nit(4P), bpf(4), pcap(3), pcap-savefile(5), pcap-filter(7)