| WIREFILTER(1) | General Commands Manual | WIREFILTER(1) |
نام (NAME)
wirefilter - فیلتر بسته سیم برای اترنت توزیعشده مجازی (Virtual Distributed Ethernet)
خلاصه دستور (SYNOPSIS)
wirefilter
[-f rcfile] [-l loss] [-l lostburst] [-d delay] [-D dup] [-b bandwidth] [-s interface_speed] [-c channel_bufsize] [-n noise_factor] [-m mtu_size] [-M mgmt socket] [-v vde_plug1:vde_plug2] [--daemon] [--pidfile pidfile_path] [--blink blink] [--blinkid blink_identifier] [-N]
توضیحات (DESCRIPTION)
ابزار wirefilter قادر به شبیهسازی تاخیر و اتلاف بسته (packet loss) بر روی سیمهای مجازی است. به عنوان مثال:
dpipe vde_plug /tmp/s1 = wirefilter -l 10 = vde_plug /tmp/s2
یک سیم بین دو vde_switch (بهترتیب با سوکتهای /tmp/s1 و /tmp/s2) ایجاد میکند. این کابل ۱۰٪ از بستهها را در هر جهت از بین میبرد (از دست میدهد).
همین کابل را میتوان با دستور زیر نیز ایجاد کرد:
wirefilter -v /tmp/s1:/tmp/s2 -l 10
گزینهها (OPTIONS)
- -f rcfile
- استفاده از یک فایل پیکربندی راهاندازی. این گزینه برای تعاریف پیچیده مانند تنظیمات حالت مارکوف (Markov mode) مفید است (پایینتر را ببینید). نحو فایل پیکربندی راهاندازی مشابه رابط مدیریتی است؛ به عبارت دیگر، اسکریپتی از دستورهای مدیریتی است که پیش از هدایت نخستین بسته اجرا میشود.
- -l loss
- درصد اتلاف بهصورت یک عدد اعشاری شناور. امکان تعیین درصد اتلاف متفاوت برای دو کانال وجود دارد: LR20.5 به این معنی است که ۲۰٫۵٪ از بستههای جاری از چپ به راست از دست میروند، و RL10 به معنی اتلاف ۱۰٪ از راست به چپ است.
- -L lostburst
- هنگامی که این مقدار صفر نباشد، wirefilter از مدل گیلبرت (Gilbert model) برای خطاهای رگباری استفاده میکند. این مقدار میانگین طول رگبارهای بستههای مفقود است (یک زنجیره مارکوف دوحالته است: احتمال خروج از حالت معیوب 1/lostburst، و احتمال ورود به حالت معیوب loss/(lostburst-(1-loss)) است. نرخ اتلاف به مقدار loss همگرا میشود).
- -d delay
- تاخیر اضافی (به میلیثانیه). این تاخیر به تاخیر ارتباطی واقعی اضافه میشود. بستهها بهطور موقت ذخیره شده و پس از سپری شدن تاخیر دوباره ارسال میشوند. مانند گزینه قبلی، تعیین مقادیر متفاوت برای LR و RL امکانپذیر است. هنگامی که تاخیر بهصورت دو عدد با علامت + در بین آنها مشخص شود، عدد اول تاخیر استاندارد و عدد دوم تغییرات تصادفی است. 1000+500 یعنی تاخیر میتواند بهطور تصادفی بین نیم ثانیه تا ۱٫۵ ثانیه انتخاب شود. میتوان 'U' یا 'N' را به انتهای آن افزود. 1000+500U به این معنی است که تاخیرها دارای توزیع یکنواخت هستند، و 1000+500N یعنی تاخیرها از توزیع نرمال گاوسی پیروی میکنند (بیش از ۹۸٪ مقادیر درون محدودهها قرار میگیرند).
- -D dup
- درصد تکرار بستهها (dup). نحوی مشابه -l دارد. از ضریب تکرار ۱۰۰٪ استفاده نکنید، زیرا به این معنی است که هر بسته بینهایت بار ارسال خواهد شد.
- -b bandwidth
- پهنای باند کانال به بایت بر ثانیه (Bytes/sec). نحو آن مشابه -d است. همچنین میتوان از پسوندهای K، M و G برای اختصار 2^10، 2^20 و 2^30 استفاده کرد. 128K یعنی ۱۲۸ کیلوبایت بر ثانیه. 128+64K یعنی بین ۶۴ تا ۱۹۶ کیلوبایت بر ثانیه. فرستنده از ارسال بستهها منع نمیشود، بلکه تحویل آنها به تاخیر میافتد تا پهنای باند به مقدار دلخواه محدود شود (مانند یک گلوگاه در طول مسیر). حروف U و N پس از مقادیر (مثلاً 128+64KN) توزیع آماری مورد استفاده (یکنواخت یا نرمال) را تعیین میکنند.
- -s speed
- سرعت رابط به بایت بر ثانیه (Bytes/sec). نحو آن مانند -b است. ورودی در طول مدت ارسال بسته مسدود میشود، بنابراین از ارسال بیش از حد سریع توسط فرستنده جلوگیری به عمل میآید.
- -c channel_bufsize
- اندازه بافر کانال (به بایت): بیشینه اندازه صف بستهها. بستههای مازاد دور ریخته میشوند.
- -n noise factor
- تعداد بیتهای آسیبدیده در هر یک مگابایت.
- -m mtu size
- بستههای بزرگتر از mtu_size دور ریخته میشوند.
- -N
- حالت nofifo. با -N بستهها میتوانند تغییر ترتیب دهند.
- -M mgmt socket
- سوکت یونیکس که در آن پارامترها (درصد اتلاف، تاخیر و غیره) را میتوان در زمان اجرا بررسی و تغییر داد. unixterm(1) میتواند بهعنوان یک ترمینال راه دور برای wirefilter استفاده شود.
- -v vde_plug1:vde_plug2
- اگر از این گزینه استفاده شود، دو vde_plug محلی (vde_plug1 و vde_plug2) با استفاده از کتابخانههای libvdeplug به جای stdin/stdout به یکدیگر متصل خواهند شد. این گزینه یک نشست مدیریتی تعاملی را روی کنسول (stdin/stdout) فعال میکند.
- --mgmtmode mode
- این گزینه حالت دسترسی سوکت mgmt را تعیین میکند. نحو دستورها بسیار ساده است. دستور help فهرست دستورها را نمایش میدهد. با استفاده از دستور مدیریتی load میتوان یک فایل اسکریپت را بارگذاری کرد.
- --daemon
- wirefilter بهصورت یک دیمن اجرا میشود.
- --pidfile pathname
- wirefilter مقدار pid خود را در این فایل ذخیره میکند.
- --blinkid name
- این گزینه شناسهای (id) را مشخص میکند که برای هر بسته به سرور blink ارسال میشود (گزینه --blink در زیر را ببینید). شناسه استاندارد برای wirefilter، همان pid فرایند است.
- --blink socket
- wirefilter برای هر
بسته
ارسالشده
یک پیام لاگ
به سوکت PF_UNIX/DATAGRAM
مشخصشده
ارسال
میکند. هر
بسته دارای
این قالب
است: id direction length. به
عنوان مثال:
6768 LR 44 6768 LR 44 6768 RL 100 6768 LR 100 6768 LR 44
حالت مارکوف (MARKOV MODE)
همچنین wirefilter با استفاده از یک زنجیره مارکوف، مجموعه پیچیدهتری از پارامترها را برای شبیهسازی حالتهای مختلف پیوند و گذارهای میان حالتها فراهم میکند. هر حالت با یک گره (node) نشان داده میشود. پارامترهای زنجیره مارکوف را فقط میتوان با دستورهای مدیریتی یا فایلهای rc تنظیم کرد؛ در واقع، به دلیل تعداد زیاد پارامترها، قرار دادن آنها در خط فرمان موجب ناخوانایی میشد.
- markov-numnodes n
- تعداد
حالتهای
مختلف را
مشخص
میکند.
تمام
پارامترهای
اتصال را
میتوان
گرهبهگره
تعریف کرد.
گرهها از
صفر
شمارهگذاری
میشوند (تا
n-1). به عنوان
مثال:
delay 100+10N[4] loss 10[2]
این دستورها تاخیری بین ۹۰ تا ۱۱۰ میلیثانیه (توزیع نرمال) را برای گره شماره ۴ و اتلاف ۱۰٪ را برای گره ۲ تعریف میکنند. امکان تغییر اندازه زنجیره مارکوف در زمان اجرا وجود دارد. گرههای جدید غیرقابلدسترس هستند و هیچ یالی به حالتهای دیگر ندارند (یعنی هر گره جدید دارای یک یال خودحلقه به خود با احتمال ۱۰۰٪ است). هنگام کاهش تعداد گرهها، وزن یالهای منتهی به گرههای حذفشده به یال خودحلقه افزوده میشود. هنگامی که گره جاری شبیهسازی حذف شود، گره ۰ به گره جاری تبدیل میشود. (شبیهسازی همواره از گره ۰ آغاز میشود).
- markov-time ms
- دوره زمانی (به میلیثانیه) برای محاسبات زنجیره مارکوف. هر ms میکروثانیه، یک تولیدکننده اعداد تصادفی تصمیم میگیرد که حالت بعدی کدام باشد (مقدار پیشفرض=100ms).
- markov-name n,name
- اختصاص دادن یک نام به گرهای از زنجیره مارکوف.
- markov-setnode n
- تنظیم دستی گره جاری بر روی گره n.
- setedge n1,n2,w
- تعریف یک یال بین n1 و n2؛ مقدار w وزن (درصد احتمال) یال است. یال خودحلقه (از یک گره به خودش) همواره بهصورت ۱۰۰٪ منهای مجموع وزنهای یالهای خروجی محاسبه میشود.
- showedges [ n ]
- فهرست کردن یالهای گره n (یا از گره جاری در صورتی که دستور پارامتری نداشته باشد). یالهای با وزن صفر نادیده گرفته میشوند.
- showcurrent
- نمایش حالت مارکوف جاری.
- showinfo [ n ]
- نمایش وضعیت و اطلاعات مربوط به حالت (گره) n. در صورت حذف پارامتر، وضعیت و اطلاعات حالت جاری نمایش داده میشود.
- markov-debug [ n ]
- تنظیم سطح اشکالزدایی (debug) برای ارتباط مدیریتی جاری. در پیادهسازی کنونی، زمانی که n بزرگتر از صفر باشد، هر تغییر در گره مارکوف موجب صدور یک خروجی ردیابی اشکالزدایی میشود. هنگامی که n صفر باشد یا پارامتر مشخص نشود، ردیابی اشکالزدایی غیرفعال میشود.
تذکر (NOTICE)
پروژه Virtual Distributed Ethernet به هیچ وجه به www.vde.com («Verband der Elektrotechnik, Elektronik und Informationstechnik» یعنی «انجمن فناوریهای برقی، الکترونیکی و اطلاعاتی» آلمان) مرتبط نیست.
همچنین ببینید (SEE ALSO)
نویسندگان (AUTHORS)
پروژه VDE توسط Renzo Davoli <renzo@cs.unibo.it> ایجاد شده است.
| December 6, 2006 | Virtual Distributed Ethernet |