.\" .\" udpxy.1 .\" .\" Original: (pcherenkov@gmail.com) .\" .TH udpxy 1 "17 نوامبر 2012" "نسخه 1.0" "راهنمای udpxy" .SH "نام (NAME)" udpxy \- دیمن بازپخش ترافیک چندپخشی UDP به HTTP .SH "خلاصه دستور (SYNOPSIS)" .B udpxy [\-vTS] [\-a \fI\fP] [\-m \fI\fP] [\-c \fI\fP] [\-l \fI\fP] [\-B \fI\fP] [\-R \fI\fP] [\-H \fI\fP] [\-n \fI\fP] [\-M \fI\fP] \-p \fI\fP .SH "توضیحات (DESCRIPTION)" .PP برنامه udpxy یک \fIدیمن بازپخش ترافیک چندپخشی UDP به HTTP\fP است: این برنامه ترافیک UDP را از یک اشتراک چندپخشی (multicast) مشخص به کلاینت متقاضی HTTP فوروارد می‌کند. .PP برنامه udpxy (روی یک نشانی/پورت اختصاصی) به درخواست‌های HTTP ارسال‌شده توسط کلاینت‌ها گوش فرا می‌دهد. یک درخواست کلاینت باید دارای ساختار زیر باشد: .PP http://{\fIaddress\fP}:{\fIport\fP}/{\fIcmd\fP}/{\fImgroup_address\fP}[\fBSEP\fP]{\fImgroup_port\fP} .TP 8 .B [SEP] :|%|~|+|\-|^ .TP 8 .B {cmd} udp|rtp .PP که در آن \fIaddress\fP و \fIport\fP با ترکیب \fIaddress/port\fP شنود udpxy مطابقت دارند، و \fImgroup_address\fP:\fImgroup_port\fP گروه/کانال چندپخشی را برای اشتراک مشخص می‌کنند. .PP .TP 8 .B udp دستور \fIudp\fP باعث می‌شود udpxy انواع شناخته‌شدهٔ بار داده (مانند \fIMPEG\-TS\fP و \fIRTP over MPEG\-TS\fP) را شناسایی و بررسی کند؛ .TP 8 .B rtp دستور \fIrtp\fP باعث می‌شود udpxy نوع بار داده را \fIRTP over MPEG\-TS\fP در نظر بگیرد و بنابراین از بررسی و شناسایی صرف‌نظر کند. .PP برنامه udpxy برای هر درخواست بازپخش جدید (در محدودهٔ تعیین‌شده برای کلاینت‌های فعال) یک \fIفرایند کلاینت\fP مجزا آغاز می‌کند. این فرایند کلاینت تمام ترافیک شبکهٔ دریافت شده (از طریق یک سوکت UDP) از گروه چندپخشی مشخص‌شده را به اتصال HTTP درخواست‌کننده فوروارد/بازپخش خواهد کرد. .PP برنامه udpxy همچنین از چند درخواست مدیریتی پشتیبانی می‌کند: .PP .TP 8 .B status http://\fIaddress\fP:\fIport\fP/\fBstatus\fP برای بازگرداندن یک صفحهٔ HTML حاوی وضعیت دیمن و آمار کلاینت‌ها. .TP 8 .B restart http://\fIaddress\fP:\fIport\fP/\fBrestart\fP برای بستن تمام اتصالات فعال و راه‌اندازی مجدد. .SH "مثال‌ها (EXAMPLES)" .PP http://192.168.0.12:5056/udp/224.0.2.26:24012 .PP http://192.168.0.12:5056/rtp/224.0.2.26:24012 .PP http://192.168.0.15:5056/rtp/224.0.2.26^24055 .PP http://192.168.0.15:5056/status .SH "گزینه‌ها (OPTIONS)" برنامه udpxy گزینه‌های زیر را می‌پذیرد: .TP 8 .B \-v فعال‌سازی خروجی پرگو (verbose) [پیش‌فرض = \fIغیرفعال\fP]. .TP 8 .B \-S فعال‌سازی آمار کلاینت‌ها [پیش‌فرض = \fIغیرفعال\fP]. .TP 8 .B \-T عدم اجرا به‌صورت دیمن [پیش‌فرض = \fIدیمن در صورت اجرا توسط کاربر ریشه (root)\fP]. .TP 8 .B \-a \fI\fP نشانی IPv4 یا رابط شبکه برای شنود [پیش‌فرض = \fI0.0.0.0\fP]. .TP 8 .B \-m \fI\fP نشانی IPv4 یا رابط شبکهٔ منبع (چندپخشی) [پیش‌فرض = \fI0.0.0.0\fP]. .TP 8 .B \-c \fI\fP حداکثر تعداد کلاینت‌های مجاز برای پذیرش [پیش‌فرض = \fI3\fP، حداکثر = \fI5000\fP]. .TP 8 .B \-l \fI\fP ثبت خروجی لاگ در فایل [پیش‌فرض = \fIstderr\fP]. .TP 8 .B \-B \fI\fP اندازهٔ بافر (65536، 32Kb، 1Mb) برای داده‌های ورودی (چندپخشی) [پیش‌فرض = \fI2048 bytes\fP]. .TP 8 .B \-R \fI\fP حداکثر تعداد پیام‌ها برای نگهداری در بافر (\fI\-1\fP = \fIهمه\fP) [پیش‌فرض = \fI1\fP]. .TP 8 .B \-H \fI\fP حداکثر زمان (به ثانیه) برای نگهداری داده‌ها در بافر (\fI\-1\fP = \fIنامحدود\fP) [پیش‌فرض = \fI1\fP]. .TP 8 .B \-n \fI\fP میزان افزایش مقدار nice [پیش‌فرض = \fI0\fP]. .TP 8 .B \-M \fI\fP تمدید اشتراک چندپخشی در هر M ثانیه (اگر \fI0\fP باشد \fIصرف‌نظر می‌شود\fP) [پیش‌فرض = \fI0\fP]. .TP 8 .B \-p \fI\fP پورت برای شنود. .SH "انواع بار داده و نحوه مدیریت آن‌ها (PAYLOAD TYPES AND HANDLING)" .PP برنامه udpxy بارهای دادهٔ \fIMPEG\-TS\fP و \fIRTP over MPEG\-TS\fP را در بسته‌های بازپخش‌شده تشخیص می‌دهد؛ اگر udpxy با بار دادهٔ RTP مواجه شود، آن را به‌طور خودکار (با حذف هدرهای RTP) به MPEG\-TS «ترجمه» می‌کند تا پخش‌کننده‌های رسانه‌ای که از RTP پشتیبانی نمی‌کنند نیز همچنان بتوانند جریان را پخش کنند. .PP تاکنون هیچ ترجمه‌ای برای سایر انواع بار داده انجام نمی‌شود. .SH "ضبط ترافیک MPEG (RECORDING MPEG TRAFFIC)" .PP برنامه udpxy شامل قابلیتی برای ضبط ترافیک دریافت شده به‌عنوان یک \fIجریان خام MPEG\-TS\fP در یک فایل است. این قابلیت از طریق \fBudpxrec\fP فعال می‌شود: برنامه‌ای همراه که با udpxy (به‌عنوان یک فایل اجرایی واحد) پیوند داده شده است. .PP برنامه udpxrec از طریق یک پیوند نمادین (به نام \fBudpxrec\fP) به فایل اجرایی udpxy فراخوانی می‌شود (یعنی فایل اجرایی udpxy را \fBتغییر نام ندهید\fP). .PP برنامه udpxrec فایل‌های MPEG ایجاد می‌کند که بخش‌های MPEG\-TS را در خود کپسوله‌سازی کرده‌اند؛ برخی از پخش‌کننده‌های رسانه‌ای چنین فایل‌هایی را پخش \fBنخواهند کرد\fP؛ برای قابل‌پخش کردن آن‌ها، جریان باید به MPEG\-PS تبدیل کد (transcode) شود؛ برنامه vlc نحوهٔ انجام چنین تبدیل کدی را می‌داند، در اینجا یک مثال خط فرمانی آورده شده است: .PP .B vlc input\-ts.mpg \-\-sout="#std{access=file,mux=ps,dst=out-ps.mpg}" .PP فایل MPEG-PS حاصل می‌تواند توسط اکثر پخش‌کننده‌های رسانه‌ای پخش شود. .SH "محیط (ENVIRONMENT)" برنامه udpxy از متغیرهای محیطی زیر به عنوان مکمل گزینه‌های خط فرمان خود استفاده می‌کند؛ این متغیرها برای گزینه‌هایی در نظر گرفته شده‌اند که اکثر افراد نیاز به تغییر مکرر آن‌ها ندارند (یا استفاده از آن‌ها در خط فرمان دشوار است). .PP \fBتوجه\fP: اگر یک گزینهٔ خط فرمان با عملکرد یک متغیر محیطی تداخل داشته باشد، گزینهٔ خط فرمان \fIهمواره\fP اولویت بالاتری دارد. .PP .TP 8 .B UDPXY_RCV_TMOUT مهلت زمانی (به ثانیه) روی جریان دادهٔ \fIورودی\fP (\fIچندپخشی\fP)، پیش‌فرض=\fI5\fP؛ .TP 8 .B UDPXY_DHOLD_TMOUT مهلت زمانی (به ثانیه) برای نگهداری داده‌های بافرشده پیش از ارسال/تخلیه به کلاینت(ها)، پیش‌فرض=\fI1\fP؛ .TP 8 .B UDPXY_SREAD_TMOUT مهلت زمانی (به ثانیه) برای \fIخواندن\fP از سوکت شنود (رسیدگی به درخواست‌های HTTP)، پیش‌فرض=\fI1\fP؛ .TP 8 .B UDPXY_SWRITE_TMOUT مهلت زمانی (به ثانیه) برای \fIنوشتن\fP در سوکت شنود (رسیدگی به درخواست‌های HTTP)، پیش‌فرض=\fI1\fP؛ .TP 8 .B UDPXY_SSEL_TMOUT مهلت زمانی (به ثانیه) برای فراخوانی \fIselect(2)\fP در حلقهٔ سرور (در صورت به‌کارگیری \fIpselect(2)\fP استفاده نمی‌شود)، پیش‌فرض=\fI30\fP؛ .TP 8 .B UDPXY_LQ_BACKLOG اندازهٔ صف انتظار (\fIbacklog\fP) سوکت شنود، پیش‌فرض=\fI16\fP؛ .TP 8 .B UDPXY_SRV_RLWMARK حد پایین (low watermark) در سوکت دریافت‌کننده (چندپخشی)، پیش‌فرض=\fI0\fP (\fIتنظیم‌نشده\fP)؛ .TP 8 .B UDPXY_SSOCKBUF_NOSYNC عدم همگام‌سازی اندازهٔ بافر سوکت \fIورودی\fP (UDP) (با مقدار تعیین‌شده توسط \fI\-B\fP)، پیش‌فرض=\fI1\fP (\fIهمگام‌سازی\fP)؛ .TP 8 .B UDPXY_DSOCKBUF_NOSYNC عدم همگام‌سازی اندازهٔ بافر سوکت \fIخروجی\fP (TCP) (با مقدار تعیین‌شده توسط \fI\-B\fP)، پیش‌فرض=\fI1\fP (\fIهمگام‌سازی\fP)؛ .TP 8 .B UDPXY_TCP_NODELAY غیرفعال‌سازی \fIالگوریتم Nagle\fP روی سوکت تازه پذیرفته‌شده (تعویض سریع‌تر کانال)، پیش‌فرض=\fI1\fP؛ .TP 8 .B UDPXY_HTTP200_FTR_FILE پیوست کردن محتویات فایل متنی مشخص‌شده به پاسخ \fIHTTP 200\fP، پیش‌فرض=\fInone\fP؛ .TP 8 .B UDPXY_HTTP200_FTR_LN پیوست کردن خط متن داده‌شده به پاسخ \fIHTTP 200\fP، پیش‌فرض=\fInone\fP؛ .TP 8 .B UDPXY_ALLOW_PAUSES در صورت مسدود شدن در فراخوانی \fIwrite(2)\fP، خواندن داده تا زمان پر شدن بافر (\fB\-B\fP \fI\fP) ادامه یابد، پیش‌فرض=\fIغیرفعال\fP؛ .TP 8 .B UDPXY_PAUSE_MSEC اجازهٔ خواندن داده تنها به مدت \fIN\fP میلی‌ثانیه هنگام مسدود شدن در \fIwrite(2)\fP. .TP 8 .B UDPXY_CONTENT_TYPE تعیین مقدار سفارشی \fBContent\-Type\fP در پاسخ‌های \fIHTTP\fP. .SH "نویسندگان (AUTHORS)" Pavel V. Cherenkov و تمامی افراد شایسته‌ای که وصله‌ها را ارسال کرده یا به نحوی در این پروژه مشارکت داشته‌اند. .SH "همچنین ببینید (SEE ALSO)" .BR udpxrec (1) .\" __EOF__