Farshid Farhat In The Name of GOD Sharif University of Technology

homeabout menetworkingcryptologysecurityinfomatheorylinkscontents

بازگشت به فهرست

 

شبیه سازی و پیاده سازی Bluehoc بر روی NS:

نرم افزار Bluehoc قابلیت پیاده سازی و شبیه سازی قابلیتهای باند پایه و كنترل Logical Link و پروتوكل توافقی (L2CAP) و Link Manager Protocol یك piconetی Bluetooth را حداكثر داراست یعنی می توان با آن یك piconet حداكثر 8 عضوی (7 تا slave و یك master) را با استفاده از دستورBluehoc.tcl wish كه باید در شاخه /home/username/ns-allinone-2.1 b7a/ns 2.1b7a/run اجرا شود را با ایجاد یك scenario اعم از یك master و 7 تا slave به وجود آورد و مقادیر لازم مربوط به slave ها (start time وInquiry scan) را تنظیم كرد , (همچنین برای master) و سپس Linkها را هم در 3 نوع FTP و Telnet و Voice تنظیم كرد و piconet ی حاصله را save كرده ودر shell مربوطه وارد شاخه home/username/ns-allinone-2.1b7a/ns- 2.1b7a/run شده و با دستور ../ns file.tcl (كه در آن file.tcl همان TCL ساخته شده توسط wish است) سناریو ساخته شده را می توان شبیه سازی نمود. و سپس با استفاده از NAM آن را Animate كرد.

نحوه برنامه نویسی برای Bluehoc همانند برنامه نویسی TCL است كه برخی تعریف ها به آن اضافه شده است به این صورت كه برای تعریف نودها و جای آن ها از formatی زیر استفاده می كنیم :


set btnode [new BTNode
] <ip_addr> <bd_addr> <0 or 1> <x co-odinate> <y-coordinate>


كه در آن bd_addr همان آدرس Bluetooth Device است.
در متغیر بعدی 0 نشان دهنده slave و 1 نشان دهنده master می باشد. بقیه هم مكان نود را مشخص می كند.
Sim(Transport) نوع لینك بین نودهی متصل به Master را به ترتیب مشخص می كند كه می تواند یكی از مقادیرUDP یا TCP/Tahoeیا TCP/Reno یا TCP/Vegas باشد.
Sim(Application) نوع App را بری هر نودی مشخص می كند كه همان 3 نوع FTP , Telnet , Voice می تواند باشد.
Sim(NumDevices) تعداد نودهاست.
Sim(xpos_) , Sim(ypos_) مكان نودها را به صورت لیست به ترتیب مشخص می كند.
InqTimeOut پریود زمانی را نشان می دهد كه Master در آن پروسه Inquiry را كه در ادامه توضیح داده شده انجام می دهد.
NumResponses تعداد پاسخهای Inquiry را كه Master می تواند قبول كند را نشان می دهد.
همانطور كه قبلا توضیح داده شد شما می توانید این پارامترها را به صورت visual در محیط Linux با دستور ./wish bluehoc.tcl در شاخه run اعمال كنید و فایل tcl خود را بسازید.
همانگونه كه می دانیم دستگاهاهی Bluetooth می توانند بدون نیاز به Base Station or Access Point (Ad-Hoc connection) با هم ارتباط برقرار كنند.
پروسه Inquiry برای بدست آوردن آدرسها و كلاكهای دستگاهها مورد استفاده قرار می گیرد.
پروسه Paging بری ارتباط (connect) با دستگاههایی كه آدرس و مقدار تقریبی كلاكشان شناخته شده است , به كار می رود.
شبیه سازی با ایجاد یك Master و چند Slave ایجاد می شود. Master پروسه Inquiry را آغاز می كند و یك فرمان HCI_Inquiry به Baseband می فرستد و Baseband شروع به فرستادن Inquiry Packet بوسیله كد دسترس همگانی می كند. Slaveها با فرستادن FHS (كه حاوی آدرس و كلاك است) به Master پاسخ می دهند.
یكبار كه Paging تمام می شود و Slave بر روی Master Hopping Sequence قرار می گیرد , LMP یك لینك ناهمزمان connection-less بین Master و Slave ایجاد میكند.
به همین صورت LMPی Master یك LMP_host_conn_req برای LMPی Slave می فرستد. وقتی Master پاسخ Slave’s LMP را دریافت كرد یك HCI Event برای BThost می فرستد برای آنكه نشان دهد كه ارتباط با نود خواسته شده برقرار شد.
سپس Master یك فرمان QoS setup مبنی بر پارامترهی QoSی ارتباط فعلی (بسته به نوع App) می فرستد.
بعد از Negotiationی QoS , LMP برای BTHost سیگنال HCI_QoS_setup_complete_event را می فرستد و Host هم برای L2CA سیگنال L2CA_connect_req را می فرستد. بین L2CAهای دو طرف ارتباط بق می ود و سیگناها request و response بر اساس CIDی (مشخصه هر L2CA) شان بین آنها رد و بدل میشود.
برای آشنایی بیشتر با tagهایی كه بر روی نودا رار می گیرد به جدول زیر مراجعه كنید.

 

 

ST

Standby

I

Inquiry

PS

Page Scan

IS

Inquiry Scan

IR

Inquiry Response

P

Paging

SR

Slave Response

MR

Master Response

C

Connected

 

توجه:
مقادیر پارامترها در Bluehoc محدود می باشد لذا برای لینكها نمی توان مقادیری غیر مقادیر ایده آل لحاظ كرد و در نتیجه سیستم (كه حداكثر یك piconetی 8 عضوی می تواند باشد) نسبت به ترافیكهای مختلف پاسخ دایمی ثابت دارد و تغییری در پارامترهای آن (مثل throughput و...) مشاهده نمی شود و این مطلب از معایب عمده Bluehoc به شمار می رود و از این جهت نرم افزار BlueZ جای رشد بیشتری خواهد داشت.
 

 

صفحه بعد