وبلاگ جوجه مهندس ها

یادداشت های دو دانشجوی مهندسی کامپیوتر

وبلاگ جوجه مهندس ها

یادداشت های دو دانشجوی مهندسی کامپیوتر

مقایسه TCP و UDP _قسمت دوم

 UDP

 

UDP از حروف اول کلمات User Datagram Protocol گرفته شده و یک پروتکل غیر اتصال گرا (Connectionless) است که مثل TCP در بالاترین لایه اجرا می شود. برخلاف TCP در پروتکل UDP امکان بروز خطا وجود دارد.

تشریح کامل آن در RFC 768 آمده. یک ارتباط غیراتصال گرا بین دو هاست برقرار می کنه و هر بسته از داده کاربر و کمترین میزان سرایند تشکیل شده که به آن UDP دیتاگرام گفته می شود.

UDP غیراتصال گرا است .یعنی یک دیتاگرام در هر لحظه ای میتونه ارسال بشه ، بدون نیاز به هر گونه اعلام قبلی، مذاکره و یا هیچ آماده سازی از قبل.فقط داده رو ارسال می کنه و امیدواره که گیرنده داده ها رو دریافت کنه.

یک ارتباط غیرقابل اعتماد ایجاد می کنه . یعنی هیچ تضمینی برای اطمینان از تحویل داده ها در مقصد وجود ندارد. نه تنها هیچ اطمینانی از رسیدن داده ها به مقصد وجود نداره بلکه حتی به صحت و درستی داده هائی که به مقصد رسیده هم نمیشه اطمینان داشت. ممکنه بسته ای رو  دو بار دریافت کنیم!! برنامه ما که بر اساس این پروتکل کار میکنه باید آمادگی مواجه شدن با تمام این موقعیت ها رو داشته باشه: از دست دادن دیتاگرام ، دیتاگرام تکراری و یا دریافت دیتاگرام با ترتیب غلط.

مهمترین محاسن UDP اینه که محدوده داده ها در ائن مشخص شده ، در ارسال های broadcast میشه از این پروتکل استفاده کرد و همچنین سریعه.

و مهمترین معایب غیرقابل اعتماد بودن آن و در نتیجه پیچیده بودن برنامه نویسی در سطح لایه application است.

 

و اما قالب بسته UDP :

 

UDP header

 

همین طور که در شکل می بینید :

·               Source Port : یک فیلد اختیاری برای شماره پورت فرستنده. اگر شماره پورت مشخص نشه در این فیلد 0 قرار میگیره.

·               Destination Port : شماره پورت مقصد

·               Length : طول دیتاگرام، شامل Header و داده اصلی

·               Checksum: کد کشف خطا. این فیلد در Header بسته UDP اختیاریست.

 

 آدرس دهی

TCP و UDP از یک مدل آدرس دهی استفاده می کنند : یک آدرس IP و شماره پورت مورد نظر.

آدرس IP برای هدایت بسته به هاست منظور در شبکه ی مشخص شده و شماره پورت برای هدایت به پروسه منتظر. معمولا یک پورت برای یک برنامه اختصاص داره.

 

محاسن TCP

  • سیستم عامل همه کار رو برای شماانجام میده. دیگه باگهای ابتدائی که هر کس در اولین کارش با اون ها روبرو میشه رو مرتکب نمیشید. برای اینکه تمام این ها برای ما توسط سیستم  عامل انجام و رفع شده.
  • کارهائی که سیستم عامل برای دریافت و ارسال بسته های TCP انجام میده نیازی به سوئیچ لز مود کرنل به مود کاربر نداره. چون اغلب کارها مثل اسمبل کردن مجدد بسته های رسیده، پاسخ مبنی بر دریافت بسته ها (ACK) ، گزارش خطاها،و... توسط کرنل انجام می شود.
  • TCP سه چیز رو برای شما گارانتی میکنه : داده های ما به مقصدبرسه ، داده ها با ترتیب صحیحی برسه ، داده ها بدون تکرار در مقصد دریافت شود.
  • مسیریاب ها در مواجهه با بسته هایTCP رفتارهای خاص متناسبب رو انجام میدن . مثلا در صورت لزوم می تونند تقاضای ارسال مجدد بسته کنند.

 محاسن UDP

  • محدود و ملزم به رعایت از مدل ارتباطی connection oriented نیستیم.
  • کنترل خطاها، پاسخ به فرستنده (ACK) و... به برنامه بستگی داره و ما به عنوان برنامه نویس ویژگیهائی را که نیاز داریم پیاده سازی و استفاده می کنیم.
  • انتقال های broadcast و multicast در UDP امکان پذیره.

 معایبTCP

  • اگر سیستم عامل باگ داشته باشه، ما نمیتونیم از دست این باگ راحت بشیم.ممکنه برای چیزی که ما می خواهیم موثر نباشه و کارا نباشه ولی ما مجبوریم که از همون استفاده کنیم.
  • TCP ویژگیهای فوق العاده ای رو برای شما فراهم می کنه که شاید خیلی از اونها رو نیاز نداشته باشید. در نتیجه برای کار شما، پهنای باند و یا زمان رو هدر میده و بیخود صرف می کنه.
  • در TCP داده ها هیچ محدوده ای مشخص نشده و ما باید خودمان محدوده داده را مشخص کنیم.
  • TCP برای انتقال های broadcast و یا multicast نمیتونه مورد استفاده قرار بگیره.

 معایب UDP

  • با وجود UDP هیچ گارانتی وجود نداره. ممکنه بسته ای تحویل مقصد داده شه ، یا دو بار داده بشه و یا اینکه به ترتیب تحویل داده نشه. و با بروز هریک از این خطاها ما متوجه نمیشویم، مگر اینکه برنامه ای که به داده ها گوش می دهد، در صورت بروز هر یک از خطا ها بخواهد کاری انجام دهد.
  • UDP برای خطاهای احتمالی هیچ گونه مکانیزمی ندارد و پیاده سازی کشف و رفع خطاها به عهده برنامه نویس است.
نظرات 7 + ارسال نظر
ashkan پنج‌شنبه 20 دی‌ماه سال 1386 ساعت 02:28 ق.ظ

salam zahra khanom
maghaleye khaile khobe bood vaghean azastefede kardam
agar etelaate bishtari raje be UDP daren lotfan baram email bezanid
movafagh bashid
bye

Ali شنبه 5 اسفند‌ماه سال 1391 ساعت 08:50 ق.ظ

merci,matalebe kholase va kameli bood ,1 soal ? ba tavajoh be inke dar UDP emkan naresidan dada ya dobar residan va nadadane payam khata va darkhaste dobare ersal shodan aya dar sakhtare port UDP emkan serghat data ham vojood dare ? dar kol az lahaz amniati TCP monasebtare ya UDP ?

Pharma540 جمعه 11 اسفند‌ماه سال 1391 ساعت 05:46 ب.ظ http://Good info

Hello! bedfdef interesting bedfdef site! I'm really like it! Very, very bedfdef good!

Pharme541 جمعه 11 اسفند‌ماه سال 1391 ساعت 05:46 ب.ظ http://Good info

Very nice site! <a href="http://yieopxa.com/yxyxvax/1.html">cheap viagra</a>

Pharme397 جمعه 11 اسفند‌ماه سال 1391 ساعت 05:47 ب.ظ http://Good info

Very nice site! [url=http://yieopxa.com/yxyxvax/2.html]cheap cialis[/url]

Pharmd376 جمعه 11 اسفند‌ماه سال 1391 ساعت 05:47 ب.ظ http://Good info

Very nice site! cheap cialis http://yieopxa.com/yxyxvax/4.html

Pharme560 جمعه 11 اسفند‌ماه سال 1391 ساعت 05:47 ب.ظ http://Good info

Very nice site!

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد