تحقیق در مورد مکانیزمهای کنترل ازدحام در TCP و مروری بر عملکرد TCP در Wireless Sensor Networks

word قابل ویرایش
31 صفحه
8700 تومان
87,000 ریال – خرید و دانلود

-۱)تعاریف (definitions):
سگمنت ((Segment: به بسته های TCP (Data,Ack) اصطلاحا سگمنت گفته می شود.
(Sender Maximum Segment Size)SMSS: اندازه بزرگترین سگمنتی که فرستنده می تواند ارسال کند. این مقدار براساس حداکثر واحد انتقال در شبکه ، الگوریتمهای تعیین MTU ، RMSS یا فاکتورهای دیگر تعیین می شود. این اندازه شامل هدر بسته و option نمی باشد.
(Receiver Maximum Segment Size)RMSS: سایز بزرگترین سگمنتی که گیرنده می تواند دریافت کند. که در یک ارتباط در فیلد MSS در option توسط گیرنده تعیین می شود و شامل هدر و option نمی باشد.

(Receiver Window)rwnd: طول پنجره سمت گیرنده.
(Congestion Window )cwnd: نشان دهنده وضعیت متغیر TCP است که میزان داده در شبکه را محدود می کند.در هر لحظه , حجم داده در شبکه به اندازه مینیمم cwnd و rwnd می باشد.

 

۱-۲)مکانیزمهای کنترل ازدحام در شبکه TCP:
در یک شبکه زمانیکه ترافیک بار از ظرفیت شبکه بیشتر می شود ، ازدحام اتفاق می افتد.که به منظورکنترل ازدحام در شبکه الگوریتمهای متفاوتی وجود دارد. در یک ارتباط ، لایه شبکه تا حدی قادر به کنترل ازدحام در شبکه است اما راه حل واقعی برای اجتناب از ازدحام پایین آوردن نرخ تزریق داده در شبکه است. TCP با تغییر سایز پنجره ارسال تلاش میکند که نرخ تزریق داده را کنترل کند.

شناسایی ازدحام اولین گام در جهت کنترل آن است.
در گذشته ،شناسایی ازدحام به راحتی امکانپذیر نبود. از نشانه های آن وقوع Timeout بدلیل اتلاف بسته یا وجود noise در خط ارتباطی یا اتلاف بسته ها در روترهای پر ازدحام و … را می توان نام برد. اما امروزه از آنجا که اکثرا تکنولوژی بستر ارتباطی از نوع فیبر می باشد اتلاف بسته ها که منجر به خطای ارتباطی شود بندرت اتفاق می افتد. و از طرفی وقوع Timeout در اینترنت بدلیل ازدحام می باشد.
در همه الگوریتمهای TCP فرض بر این است که وقوع Timeout بدلیل ازدحام شبکه است.
در شروع یک ارتباط در شبکه ،سایز پنجره مناسب تعیین می شود. گیرنده بر اساس سایز بافر خود می تواند سایز پنجره را تعیین کند. اگر میزان داده های ارسالی از فرستنده در حد سایز پنجره باشد ،مشکلی پیش نمی آید. در غیر اینصورت در سمت گیرنده Overflow اتفاق می افتد. پس بطور کلی با دو مسئله مواجه هستیم:
۱- ظرفیت شبکه
۲- ظرفیت گیرنده
که دریک ارتباط باید این دو مورد را در نظر گرفت.
فرستنده در هنگام ارسال ،سایز دو پنجره را در نظر می گیرد.
۱- پنجره سمت گیرنده
۲- پنجرا ازدحام
که سایز پنجره ارسال به اندازه مینیمم این دو مقدار تعیین می شود.
کنترل ازدحام در شبکه TCP از بالا رفتن ظرفیت شبکه جلوگیری می کند . در واقع به فرستنده اجازه مس دهد نرخ ارسال داده در شبکه را به منظور جلوگیری از ازدحام تنظیم نماید.
مکانیزمهای کنترل ازدحام که توسط TCP حمایت می شوند عمدتا شامل ۴ مرحله اصلی می باشند که عبارتند از:
۱- Slow Start
2- Congestion Avoidance
3- Fast Retransmission
4- Fast Recovery
که در ادامه هر یک به تفصیل شرح داده می شوند.

۱-۲-۱)Slow Start: در شروع یک ارتباط ،ارسال داده ها به سمت گیرنده به اندازه حداکثر ظرفیت سمت گیرنده انجام نمی شود. بلکه فرستنده تعدادی بسته در شروع ارسال می کند و منتظر دریافت Ack بسته های ارسالی می شود. و سپس بتدریج نرخ ارسال را افزایش می دهد . این مکانیزم به فرستنده TCP این اجازه را می دهد که وضعیت موجود شبکه اعم از پهنای باند در دسترس را شناسایی کند.
مکانیزم Slow Start درموارد زیر کاربرد دارد:

۱- در شروع هر ارتباط مبتی بر TCP.
2- در شروع مجدد یک ارتباط TCP بعد از مدتی بیکاری.
۳- در شروع مجدد یک ارتباط TCP بعد از وقوع Timeout.

شکل(۱) مکانیزم Slow Start در TCP را به تصویر کشیده است. در مرحله Slow Start فرستنده باید سایز پنجره ازدحام (Cwnd که میزان ترافیک در شبکه را مشخص می کند) داشته باشد. تعداد سگمنتهای ارسالی از سمت فرستنده در هر لحظه به اندازه مینیمم سایز پنجره ازدحام و سایز پنجره سمت گیرنده می باشد.

شکل(۱)
در شروع یک ارتباط سایز این پنجره یک سگمنت است. فرستنده TCP با ارسال یک سگمنت وارد فاز Slow Startشده و منتظر دریافتAck می شود. بعد از دریافت Ack فرستنده سایز پنجره ارسال را از یک به دو افزایش می دهد و دو سگمنت فرستاده می شود.زمانیکه Ack این دو سگمنت از سمت گیرنده دریافت شد ، فرستنده سایز پنجره ارسال را از ۲ به ۴ افزایش می دهد و ۴ سگمنت فرستاده می شود. رشد نمایی سایز پنجره ارسال (Cwnd) ادامه می یابد تا زمانیکه به حداکثر سایز پنجره سمت گیرنده برسد یا بسته ها بدلیل ازدحام در شبکه اتلاف شوند. در فاز بعدی (Congestion Avoidance) چگونگی برخورد TCP با اتلاف بسته ها شرح داده میشود.
فرستنده TCP به دو طریق می تواند اتلاف بسته ها در شبکه را تشخیص دهد:
۱- دریافت ack تکراری.
۲- سر ریز شدن تایمر.
عدم وجود یک سگمنت در بین سگمنتهای ارسالی در یک پنجره باعث ایجاد Ack تکراری در مقصد می شود. (یادآوری می شود که TCP , Ack منفی یا Ack حاوی شماره بسته نمی فرستد.)
برای مثال , زمانیکه مقصد داده را تا بایت ۲۰۰۰ دریافت می کند در پاسخ Ack داده ۲۰۰۱ را می فرستد به این مفهوم که سگمنت بعدی که گیرنده انتظار دریافت آنرا دارد از بایت ۲۰۰۱ شروع می شود . اگر یک سگمنت در روترهای میانی تلف شود , در مقصد بسته های بعدی به ترتیب رسیدن بافر می شوند و از آنجاییکه گیرنده سگمنت بعدی مورد انتظار را دریافت نکرده به فرستادن Ack سگمنت ۲۰۰۱ ادامه می دهد. از آنجاییکه دریافت Ack تکراری همچنین دلالت بر عدم دریافت سگمنتها به ترتیب دارد, در نتیجه مبدا TCP از سه Ack تکراری به نشانه اتلاف بسته ها استفاده می کند. اتلاف آخرین بسته در یک پنجره ارسالی از سگمنتها باعث سرریز شدن تایمر در مبدا می شود , زیرا سگمنت بعدی جهت تولید Ack وجود ندارد.
فرستنده TCP انتظار دریافت Ack از سمت مقصد به نشانه دریافت موفق بایتهای جدید در رشته داده ها را دارد. هر زمانی که فرستنده یک سگمنت را ارسال می کند یک تایمر شروع بکار می کند و منتظر دریافت Ack می شود. اگر تایمر قبل از اینکه Ack داده های ارسالی دریافت شود, سرریز شود فرستنده TCP فرض را بر این می گذارد که سگمنت گم شده یا آسیب دیده است . در نتیجه مجددا آنرا ارسال می کند.

۱-۲-۲)Congestion Avoidance:
زمانیکه فرستنده TCP متوجه اتلاف بسته ها در شبکه شد متغیرssthresh یا حد آستانه ناحیه (slow-start threshold) slow start را به اندازه نصف cwnd جاری تنظیم می کند. در واقع فرستنده نرخ ارسال خود را با برگشت به فاز Slow Start کاهش می دهد. با این تفاوت که افزایش نمایی نرخ ارسال تا رسیدن به سایز پنجره ارسال به حد آستانه (ssthresh) ادامه می یابد. در این نقطه ، فرستنده سایز پنجره ارسال را (cwnd) بطور خطی افزایش می دهد (با یک سگمنت در هر RTT).
در واقع به آهستگی نرخ ارسال را افزایش می دهد تا به مقدار cwnd قبلی که در آن نقطه اتلاف بسته رخ داده بود برسد.
زمانیکه cwnd مساوی یا کمتر از حد آستانه ssthresh است فرستنده TCP در فاز slow-start است. و زمانیکه cwnd بزرگتر از ssthresh است فرستنده TCP در فاز Congestion Avoidance قرار دارد. که در شکل (۲) به تصویر کشیده شده است.

شکل (۲)

فاز slow-start و Congestion Avoidance سبب می شود TCP با وقوع اتلاف بسته ها سایز پنجره ارسال را به نصف کاهش دهد . اگر وجود ازدحام در شبکه به طور مرتب باعث اتلاف بسته ها شود میزان ترافیک وارد شده به شبکه و نرخ ارسال توسط فرستنده TCP بطورنمایی کاهش می یابد. که این امر به روترهای میانی اجازه می دهد تا صفهای خود را خالی کنند.

۱-۲-۳)Fast Retransmission:
همانطور که قبلا گفته شد ، TCP با دریافت Ack تکراری متوجه اتلاف بسته ها میشود. از طرفی دریافت Ack تکراری همچنین می تواند به مفهوم دریافت بسته ها بر خلاف ترتیب اصلی باشد. پس بجای نشان عکس العمل سریع نسبت به دریافت Ack تکراری با ارسال مجدد بسته گم شده، فرستنده TCP منتظر میشود تا ۳ Ack تکراری دریافت کند.

Fast Retransmission کارایی TCP را به ۳ طریق افزایش دهد:
– اگر بسته ها به ترتیب دریافت نشده باشند از ارسال مجدد آنها و در نتیجه پر کردن ظرفیت شبکه جلوگیری می کند.
– بهره وری بیشتر و بازدهی بالا خطوط ارتباطی را موجب می شود.
– در صورت اتلاف بسته ها ، TCP قبل از سرریز تایمر اقدام به ارسال مجدد بسته می کند. و منتظر سرریز شدن تایمر نمی شود.

۱-۲-۴)Fast Recovery:
زمانیکه مبدا TCP، Ack تکراری دریافت می کند ،داده ها به سمت مقصد در جریان هستند زیرا در مقصد اگر سگمنتها به ترتیب دریافت نشوند Ack تکراری تولید می شود.
در این مورد فرستنده TCP به طور ناگهانی نرخ ارسال داده را با رفتن به فاز slow-start کاهش نمی دهد. در عوض بعد از ارسال مجدد سگمنت گم شده (در پاسخ به ۳ Ack تکراری) مبدا TCP میزان cwnd را به نصف کاهش می دهد و وارد فاز Congestion Avoidanceمی شود. این عملیات باعث بازدهی بهتر TCP می شود. که این عملیات در شکل (۳) به تصویر کشیده شده است.

شکل (۳)

Fast Recovery از خالی شدن جریان TCP بین مبدا و مقصد بعد از اتلاف یک بسته و ارسال مجدد آن جلوگیری می کند. این فاز کارایی TCP را با عدم نیاز به برگشت به فاز slow-start و افزایش تدریجی ظرفیت شبکه بعد از اتلاف یک بسته ایجاد می شود.
در مقابل, در حالیکه فاز Fast Recovery کارایی TCP را زمانیکه یک بسته در یک پنجره ارسالی گم می شود افزایش میدهد.کارایی را زمانیکه چندین بسته در یک پنجره اتلاف می شوند افزایش نمی دهند.

مثال:
شکل ۴ بازدهی جریان TCP را نمایش می دهد.

شکل (۴)

در شروع یک ارتباط TCP ،مبدا اتصال سعی در اجتناب از بالا بردن ترافیک شبکه دارد. همانطور که در منحنی A دیده می شود ارتباط با فاز slow-start آغاز می شود و سرعت نرخ ارسال افزایش می یابد تا ظرفیت جاری تشخیص داده شود. فاز slow-start تا زمانیکه Ack تکراری دریافت شود ادامه می یابد. همانطور که در منحنی قسمت B نشان داده شده مبدا TCP میزان حد آستانه ssthresh را به نصف میزان cwndجاری تنظیم می کند و Fast Restart انجام می شود و به فاز Congestion Avoidance می رسد تا دوباره به میزان cwnd قبلی که منجر به اتلاف بسته شده بود برسد.
بعد از شروع مجدد با فاز Congestion Avoidance نرخ ارسال افزایش می یابد تا زمانیکه Ack تکراری دریافت شود . همانطور که در منحنی C نشان داده شده است، فرستنده میزان ssthresh را مساوی نصف cwnd جاری تنظیم می کند و بازیابی مجدد همراه با Congestion Avoidance انجام میشود.
حال اگر آخرین سگمنت در پنجره ارسال در یکی از روترهای میانی آسیب ببیند ،در اینصورت مبدا TCP منتظر سرریز شدن تایمر است قبل از اینکه آخرین سگمنت را مجددا ارسال کند. همانطور که در منحنی D دیده می شود ، مبدا TCPمیزان ssthresh را به نصف مقدار cwnd جاری تنظیم می کند و مجددا به فاز slow-startبر میگرددو با ازدحام برخورد می کند.

۱-۳)پیشرفتهای جدید در زمینه کنترل ازدحام در TCP:
در طی سالها ،پیاده سازی TCP منجر به طراحی الگوریتمهای متفاوتی به منظور کنترل ازدحام در شبکه و ایجاد یک ارتباط مناسب گشته است. در این زمینه الگوریتمهایی مثل Tahoe، Reno، New Reno، و Vegas مطرح هستند.که در ادامه نقاط ضعف و قوت هر یک را بیان می کنیم.

۱-۳-۱)TCP Tahoe:
اولین پیاده سازی از این نسخه TCP در سال ۱۹۸۸ در سیستم ۴٫۳BSd یونیکس بود. و این نسخه پیاده سازی اصلی مکانیزم پیشنهادی توسط Van Jacobson بود. Tahoe شامل ۳ مرحله اساسی است.
Slow-Start، Congestion Avoidance، Fast Retransmission.
در طول Slow-Start ، در شروع یک ارتباط (cwnd=1) یک بسته ارسال می شود. و سایز پنجره ارسال با دریافت Ack از سمت گیرنده به طور نمایی افزایش می یابد و ناحیه Slow-Start ادامه می یابد تا زمانیکه<ssthresh cwnd . در طول فاز Congestion Avoidance
(ssthresh =cwnd) اتلاف بسته نشان دهنده ازدحام در شبکه است.
Tahoe در چنین مواقعی به شرح ذیل عمل می نماید.
۱- اگر در هنگامیکه اتلاف رخ می دهدw = cwndباشد سایز پنجره ارسال بین ۰٫۵w تا w بسته تنظیم میشود با این فرض که شبکه می تواند این تعداد بسته را هدایت کند.
۲- ssthresh را به اندازه۰٫۵w تنظیم می کند و TCP به فاز Slow-Start بر می گردد یعنی جائیکه cwnd=1
3- با دریافت یک Ack جدید در حالیکه>sshresh cwnd ،سایز پنجره ارسال یعنی cwnd طبق رابطه زیر افزایش می یابد.
Cwnd+=1/ cwnd

فاز Fast Retransmission درواقع Tahoe را از وقوع Time out بدلیل اتلاف بسته ها حمایت می کند. دریافت Ack تکراری، دلالت بر اتلاف بسته ها دارد و Tahoe در این شرایط به فاز Slow-Start بر می گردد. و با دریافت چندین Ack تکراری ،شروع به ارسال مجدد بسته ها می کند و منتظر وقوع Time out (سرریز شدن تایمر) نمی شود.

۱-۳-۲)TCP Reno:
الگوریتم Reno در سال ۱۹۹۵ مطرح شد و شامل تمام مکانیزمهای مطرح شده در الگوریتم Tahoe است. و علاوه بر آنها در Reno فاز Congestion Avoidanceبا مکانیزم Fast Recovery توسعه می یابد. همانند Tahoe ،فاز Congestion Avoidance زمانیکه ssthresh =cwnd است شروع می شود. در این زمان cwnd با دریافت هر Ack فقط به اندازه ۱/ cwnd افزایش می یابد. یعنی بصورت خطی رشد می کند.
و بطور مشابه فاز Fast Retransmission با دریافت سه Ack تکراری آغاز می شود. آنچه که باعث اختلاف بین Tahoe و Reno است در واقع فاز Fast Recovery است. زمانیکه سومین Ack تکراری دریافت می شود ، ssthresh=0.5*cwnd و cwnd= ssthresh+3 تنظیم میکنیم.
(سه Ack ،که هر Ack تکراری دلالت بر این دارد که گیرنده از دریافت سه بسته گم شده صرفنظر کرده است.(
سپس Reno میزان cwnd را تغییر می دهد تا زمانیکه Ack مناسب از بسته هایی که مجددا ارسال کرده را دریافت کند. در اینحال مجددا ssthresh =cwnd تنظیم می گردد.
بطور خلاصه, هر Ack تکراری فرستنده TCP را از اتلاف یک بسته آگاه می سازد و مکانیزم Fast Recovery بمنظور بازیابی اتلاف بسته ها میزان cwnd را تغییر می دهد. زمانیکه بسته گم شده احیا شد (در گیرنده دریافت شد) مجددا cwnd = cwnd /2 .درنتیجه Reno با استفاده از Fast Recovery بطور پیوسته به فاز Congestion Avoidance انتقال می یابد.
یکی از نقاط ضعف الگوریتم Reno نحوه برخورد آن با اتلاف چندین بسته در یک پنجره ارسال می باشد. Reno رویه Fast Recovery را چندین بار اجرا میکند تا با اتلاف چندین بسته در شبکه مقابله نماید و مرتبا مقادیر cwnd و ssthresh را تغییر میدهد. در پایان ,این امر در مواقعی منجر به وقوع Time Out می شود که منجر به تغییر cwnd به اندازه یک بسته می شود و کارایی را تحت تاثیر قرار میدهد. علاوه بر این , Reno ترافیک انفجاری در شبکه را نمی تواند به خوبی تحمل کند, که این امر به نحوه ارسال Ack بر می گرددکه در هر RTT فقط اتلاف یک بسته اعلام می شود.
۱-۳-۳)TCP New Reno:
New Reno بطور هوشمندانه نقاط ضعف Reno را بهبود می بخشد , بخصوص فازهای Slow Start و Fast Recovery را. در واقع بطور تدریجی سایز پنجره را تغییر می دهد و علاوه بر این اتلاف چندین بسته در یک پنجره را شناسایی می کند. در ابتدا لازم است مفهوم Partial Ack درک شود. یک Partial Ack , Ack مربوط به تعدادی از بسته ها و نه همه آنهاست, که در ابتدای ناحیه Fast Recovery متمایز می شوند. Partial Ack سبب تغییر حالت New Reno به فاز Fast Recovery نمی شود بلکه Partial Ack دریافتی در طول Fast Recovery دلالت بر این دارد که بسته ای که بلا فاصله بعد از بسته ای که Ack آن آمده ,گم شده و باید مجددا ارسال شود. بنابراین زمانیکه چندین بسته گم می شوند , New Reno می تواند بدون وقوع Time Out اتلاف را بهبود بخشد (بازیابی کند). در واقع عملکرد New Reno زمانی برجسته و متمایز میشود که چندین بسته در یک پنجره ارسال گم شوند. در طول فاز Fast Recovery استفاده از Partial Ack بطور قابل توجهی میزان وقوع Time Out را کاهش میدهد.

۱-۳-۴)TCP Vegas:
Vegas نسبت به الگوریتم Reno دو فاز Congestion Avoidance و Fast Retrasmission را بهبود می بخشد. در واقع به TCP توانایی شناسایی ازدحام و تنظیم نرخ ارسال را بر اساس آن می دهد و مکانیزم ارسال مجدد بهینه همچنین منجر به این می شود که در مورد بسته های اتلاف شده , به منظور زمان ارسال تصمیم گیری بهتری انجام شود.
در طول ناحیه Slow Start در الگوریتم Vegas , cwnd بطور نمایی افزایش می یابد.و در طول هر RTT بدون تغییر باقی می ماند.این امر مقایسه بین نرخ ارسال مورد انتظار و نرخ ارسال واقعی را محقق می سازد. بنابراین cwnd بطور مناسب تنظیم می شود. اگر نرخ واقعی کمتر از نرخ مورد انتظار باشد ، سپس Vegas به فاز Congestion Avoidance وارد می شود.
Vegas سه متغیر را در طول فاز Congestion Avoidance ذخیره می کند . α به عنوان حد آستانه که بوسیله مدیر شبکه انتخاب می شود . β یک متغیر حد آستانه پایین و Δ اختلاف بین نرخ ارسال مورد انتظار و واقعی. در طول مقایسه, cwnd بطور خطی افزایش می یابد اگر α <Δ و کاهش می یابد بصورت خطی اگر β >Δ باشد. هدف Vegas در واقع تداوم ارسال است تا زمانیکه Δ در بازه (β ،α) باشد. در طول روال Fast Retransmission تغییر یافته , Vegas به طرق زیر به منظور شناسایی سریعتر اتلاف عمل می کند:
۱- اختلاف بین زمان جاری و برچسب زمانی تعریف شده را چک می کند که اگر بزرگتر از Time Out باشد در مقابل رسید اولین Ack تکراری , بسته مجددا ارسال می شود , بدون انتظار برای دومین Ack تکراری.
۲- زمانیکه اولین یا دومین Ack دریافت شد (به عبارت دیگر , نه Ack تکراری) بعد از انتقال, مجددا چک می شود که اگر Time Out در حال افزایش باشد در اینحال ارسال مجدد سریعا شروع می شود.
۳- Cwnd در یک حالت کاهش می یابد. بسته ای که ارسال مجدد شده است قبلا بعد از آخرین کاهش cwnd . فرستاده شده باشد ، cwnd کاهش می یابد فقط به منظور اجتناب از ازدحام پر خطر.
پس از بررسی شرایط ازدحام و مکانیزمهای کنترل ازدحام در ارتباط TCP ، در ادامه عملکرد TCP را در شبکه های حسی مورد بررسی قرار می دهیم.

۲-۱)عملکرد بهینه TCP در شبکه های بی سیم حسی:
برنامه های کاربردی زیادی در شبکه های بی سیم حسی نیاز به برقراری اتصال با شبکه های خارجی دارند تا بتوانند ارتباط موجودیتها را با سنسورها کنترل نمایند. با استفاده از پروتکل TCP/IP در شبکه حسی, اتصالات خارجی به راحتی فراهم می شود.
در یک شبکه حسی مبتنی بر پروتکل TCP/IP, TCP می تواند به منظور مدیریت از راه دور و برنامه ریزی مجدد سنسورها استفاده شود.
هر چند که نرخ خطای بالا در شبکه های حسی با چندین نود ( پرش) منجر به ناکارآمدی انرزی و در نتیجه طول عمر پایین شبکه های حسی می شود, در این جا دو دیدگاه متفاوت به منظور عملکرد بهینه انرزی از پروتکل TCP در شبکه های حسی مطرح و بررسی می شود:
Distributed TCP Cachimg (DTC)
TCP Support for Sensor networks(TSS)
هر دو مکانیزم به سنسورهای نودهای میانی این اجازه را می دهند که بسته های TCP را نگهداری کنند و بسته های داده را از نودی به سمت نود دیگر بفرستند.
DTC : بسته های داده TCP را cache کرده و بلافاصله بسمت جلو هدایت می کند. در حالیکه
TSS: بسته cache شده را تا زمانیکه از دریافت موفقیت آمیز بسته قبلی توسط نود بعدی مطلع نشود , آنرا بسمت جلو هدایت نمی کند.
هر دو دیدگاه بطور آشکار تعداد بسته های TCP و Ack را کاهش می دهند.و کارایی آنها از نقطه نظر نرخ خطا تا حدی با یکدیگر اختلاف دارد و این دو مکانیزم نیازهای متفاوتی را به لحاظ مصرف حافظه بافر و تنظیمات TCP دارا می باشند.
شبکه های حسی بیسیم از تعداد زیادی حسگر های حساس به امواج رادیویی تشکیل شده اند که بطور خودکار تشکیل یک شبکه را می دهند که داده ها در بین حسگرها منتقل می شوند. قطعات استفاده شده با مشکل محدودیت منابع از جمله انرزی, قدرت پردازشگر , حافظه و پهنای باند ارتباطی روبرو می باشند.
برنامه های زیادی در شبکه حسگرهای بیسیم نیازمند ارتباطات خارجی به منظور کنترل و مانیتور کردن موجودیتهایی هستند که از داده های موجود درشبکه استفاده می کنند و با حسگرها در ارتباط هستند. اجرای TCP/IP در شبکه های حسی ارتباط مستقیم شبکه حسی را با شبکه مبتنی بر IP به راحتی و بدون نیاز به واسطه فراهم می سازد.
از آنجاییکه هر حسگر قادر به برقراری ارتباط با استفاده از TCP/IP می باشد, مسیریابی داده ها از شبکه های حسی با استفاده از تکنولوزی مبتنی بر IP مثل GPRS ممکن است.
انتقال داده ها در شبکه حسی مبتنی بر IP با استفاده از دو پروتکل مهم امکانپذیر می شود: پروتکل UDP که best effort است و پروتکل TCP که جریان مطمئن بایتهای داده را حمایت می کند. UDP برای داده ها و اطلاعات دیگری که در جریان انتقال, خیلی اهمیت ندارند استفاده می شود . اما در مورد داده های مهم از پروتکل TCP استفاده می شود. به عنوان مثال پیکره بندی و مانیتورینگ حسگرها و … مخصوصا بارگذاری داده ها در نودهای مخصوصی مثل نود ریشه در یک ساختار کلاستری در یک ناحیه مخصوص.
نکته مهم در استفاده از TCP مشکل اساسی آن به لحاظ کارایی در یک شبکه بیسیم است . یک مساله این است که TCP که برای شبکه های با سیم و تعداد خطای پایین طراحی شده , از اتلاف بسته ها بعنوان نشانه ای از ازدحام در شبکه و در نتیجه کاهش نرخ ارسال استفاده می کند. که این امر منجر به کاهش بازدهی می شود. که مشکل بزرگی در شبکه AD-HOC می باشد.
برای شبکه های حسی مشکل اصلی, ناکارآمدی انرزی در استفاده از TCP است . این ناکارآمدی انرزی بعلت انتقال انتها به انتهای بسته های داده در TCP است, که در مورد بسته های تلف شده نیاز به انتقال مجدد از حسگر فرستنده است. در شبکه با چندین نود (پرش) ارسال مجدد بسته ها , باید از کلیه نودهای میانی بین فرستنده و گیرنده بسمت جلو انجام شود که این امر منجر به اتلاف انرزی زیادی در هر پرش می شود. در نتیجه از آنجا که در هر پرش , نرخ اتلاف بسته ها در بازه ۵% تا ۱۰% و در مواردی بیشتر نیز می باشد ارسال انتها به انتهای بسته های تلف شده روش مناسبی برای انتقال قابل اطمینان در شبکه های حسی نمی باشد. در این جا دو تکنیک DTC و TSS شرح داده می شوند. در هر دو مکانیزم، نودهای میانی بسته های TCP را cache کرده و در هنگام اتلاف بسته ها بصورت محلی ارسال مجدد توسط این نودها صورت می گیرد. و پیاده سازی این دو تکنیک نیاز به هیچگونه تغییری در پیاده سازی TCP ندارد.
در مکانیزم TSS ,نودی که بسته ای را cache کرده بسته را بسمت جلو هدایت نمی کند تا زمانیکه از دریافت تمامی بسته های TCP با شماره ترتیبی کمتر توسط نود بعدی خود آگاه شود. این امر منجر به وجود back pressure می شود که تعداد بسته های ارسالی را کاهش می دهد.
DTC بلافاصله همه بسته های TCP را بسمت جلو هدایت می کند , حتی آنهایی که در نودهای میانی cache شده اند.
بعلاوه TSS از مکانیزم بهبود تصدیق ( Acknowledge) TCP استفاده می کند.
نتایج بدست آمده نشان می دهند که هر دو مکانیزم TSS و DTC بطور آشکاری کارایی TCP را در قالب تعداد کل سگمنتهای منتقل شده و تعداد انتقالهای مجدد انتها به انتها افزایش می دهند. با وجود مکانیزم Ack تهاجمی در TSS تعداد کل Ack بیشتر از DTC می باشد. بعبارت دیگر , بدلیل وجود مکانیزم back pressure تعداد سگمنتهای منتقل شده در TSS کمتر می باشد.
برای نرخ پایین اتلاف بسته ها, DTC و TSS تعداد بسته های منتقل شده مشابهی دارند. در حالیکه DTC نسبت به TSS بسته های بیشتری را در شرایط نرخ اتلاف بالا ، بازیابی می کند.

این فقط قسمتی از متن مقاله است . جهت دریافت کل متن مقاله ، لطفا آن را خریداری نمایید
word قابل ویرایش - قیمت 8700 تومان در 31 صفحه
87,000 ریال – خرید و دانلود
سایر مقالات موجود در این موضوع
دیدگاه خود را مطرح فرمایید . وظیفه ماست که به سوالات شما پاسخ دهیم

پاسخ دیدگاه شما ایمیل خواهد شد