You are on page 1of 36

1

‫مقایسهی پروتکلهای ‪ TCP‬و ‪UDP‬‬

‫استاد‪ :‬جناب آقای یوسفی نژاد‬


‫عنوان درس‪ :‬کارآموزی‬
‫تهیه کننده‪ :‬نریمان هدایت‬
‫شماره دانشجویی‪970047182 :‬‬
‫رشته مهندسی کامپیوتر‪ ،‬دانشگاه پیام نور‪ ،‬مرکز اهواز‬

‫‪2‬‬
‫فهرست مطالب‬

‫دیباچه ‪4.................................................................................................................‬‬
‫مقدمه ‪4..................................................................................................................‬‬
‫پروتکل ‪12.................................................................................................. TCP‬‬
‫پروتکل ‪19................................................................................................. UDP‬‬
‫مقایسهی پروتکلهای ‪ TCP‬و ‪28........................................................ UDP‬‬
‫منابع و مآخذ ‪36..................................................................................................‬‬

‫‪3‬‬
‫دیباچه‬
‫پیش از آن که به قیاس دو پروتکل ‪ TCP‬و ‪ UDP‬بپردازیم‪ ،‬الزم است تا با مدل‬
‫”‪ “TCP/IP‬اندکی آشنا شویم‪ .‬پس به عنوان مقدمهی این تحقیق‪ ،‬به تبیین این مدل‬
‫خواهیم پرداخت‪.‬‬

‫مقدمه‬

‫‪.‬‬

‫مدل ‪ TCP/IP‬چیست؟‬
‫‪ TCP/IP‬مهمترین پروتکل ارتباطی در شبکه های کامپیوتری و به ویژه شبکه اینترنت‬
‫می باشد‪ .‬در اینترنت پروتکل های مختلفی وجود دارد که هر یک وظیفه خاص خود را‬

‫‪4‬‬
‫انجام می دهند‪ .‬همان طور که انسان ها برای برقراری ارتباط با هم باید از زبان مشترک‬
‫استفاده کنند‪ ،‬کامپیوترها هم برای برقراری ارتباط با هم باید از زبان مشترک استفاده‬
‫کنند‪ .‬در دنیای کامپیوتر و شبکه به این زبان‪ ،‬پروتکل میگویند‪ .‬در پروتکل‪ ،‬قانون‬
‫هایی تعریف شده تا کامپیوترها بتوانند با هم به تبادل اطالعات بپردازند‪ .‬برای برقراری‬
‫ارتباط بین کامپیوترها پروتکل های زیادی وجود دارد اما باید از پروتکل هایی استفاده‬
‫شود که مورد تایید سازمان استاندارد جهانی باشند‪ ۴ .‬پروتکل‪ ،‬این استاندارد را دارند‪:‬‬

‫‪NET BEUI .1‬‬


‫‪IPX/SPX .2‬‬
‫‪Apple Talk .3‬‬
‫‪TCP/IP .4‬‬
‫‪ TCP/IP‬مخفف ‪Transmission Control Protocol / Internet Protocol‬‬
‫می باشد‪ .‬معنی لغوی آن پروتکل کنترل انتقال ‪ /‬پروتکل اینترنت می باشد‪TCP/IP .‬‬
‫پروتکل اولیه ارتباط به اینترنت است‪ ،‬پس دلیل اهمیت این پروتکل اینجا مشخص می‬
‫شود؛ زیرا بدون ‪ TCP/IP‬عمالً اینترنتی هم وجود ندارد‪.‬‬

‫‪.‬‬

‫‪5‬‬
‫فرایند برقراری یک ارتباط‪ ،‬شامل فعالیتهای متعددی نظیر‪ :‬تبدیل نام کامپیوتر به‬
‫آدرس ‪ IP‬معادل‪ ،‬جانمایی رایانه مقصد‪ ،‬بستهبندی اطالعات‪ ،‬آدرس دهی و مسیریابی‬
‫دادهها به منظور تراگسیل موفقیتآمیز دادهها به مقصد مورد نظر بوده که توسط‬
‫مجموعه پروتکلهای موجود در پشته ‪ TCP/IP‬انجام میگیرد‪.‬‬

‫هر یک از پروتکلهای موجود در پشته ‪ ،TCP/IP‬دارای وظیفهای خاص در این زمینه‬


‫(برقراری ارتباط) میباشند‪ .‬در زمان ایجاد یک ارتباط‪ ،‬ممکن است در یک لحظه تعداد‬
‫زیادی از برنامهها‪ ،‬با یکدیگر ارتباط برقرار نمایند‪.‬‬

‫‪ ،TCP/IP‬دارای قابلیت تفکیک و تمایز یک برنامه موجود بر روی یک کامپیوتر با سایر‬


‫برنامهها بوده و پس از دریافت دادهها از یک برنامه‪ ،‬آنها را برای برنامه متناظر موجود‬
‫بر روی کامپیوتر دیگر ارسال مینماید‪ .‬نحوه ارسال داده توسط پروتکل ‪ TCP/IP‬از‬
‫محلی به محل دیگر‪ ،‬با فرایند ارسال یک نامه از شهری به شهر‪ ،‬قابل مقایسه است‪.‬‬
‫برقراری ارتباط مبتنی بر ‪ ،TCP/IP‬با فعال شدن یک برنامه بر روی کامپیوتر مبدأ آغاز‬
‫میگردد‪ .‬برنامه فوق‪ ،‬دادههای مورد نظر جهت ارسال را بگونهای آماده و فرمت‬
‫مینماید که برای کامپیوتر مقصد قابل خواندن و استفاده باشند‪( .‬مشابه نوشتن نامه با‬
‫زبانی که دریافتکننده‪ ،‬قادر به مطالعه آن باشد)‪ .‬در ادامه آدرس کامپیوتر مقصد‪ ،‬به‬
‫دادههای مربوطه اضافه میگردد (مشابه آدرس گیرنده که بر روی یک نامه مشخص‬
‫میگردد)‪.‬‬

‫پس از انجام عملیات فوق‪ ،‬داده به همراه اطالعات اضافی (درخواستی برای تأیید‬
‫دریافت در مقصد)‪ ،‬در طول شبکه به حرکت درآمده تا به مقصد مورد نظر برسد‪.‬‬
‫عملیات فوق‪ ،‬ارتباطی به محیط انتقال شبکه به منظور انتقال اطالعات نداشته و تحقق‬
‫عملیات فوق با رویکردی مستقل نسبت به محیط انتقال انجام خواهد شد‪.‬‬

‫‪6‬‬
‫‪ ،TCP/IP‬فرآیندهای الزم به منظور برقراری ارتباط را سازماندهی کرده و در این راستا‬
‫از پروتکلهای متعددی در پشته ‪ TCP/IP‬استفاده میگردد‪ .‬به منظور افزایش کارایی‬
‫در تحقق فرایندهای مورد نظر‪ ،‬پروتکلها در الیههای متفاوتی سازماندهی شدهاند‪.‬‬
‫اطالعات مربوط به آدرس دهی در انتها قرار گرفته و بدین ترتیب کامپیوترهای موجود‬
‫در شبکه قادر به بررسی آن با سرعت مطلوب خواهند بود‪ .‬در این راستا‪ ،‬صرفاً‬
‫کامپیوتری که به عنوان کامپیوتر مقصد معرفی شدهاست‪ ،‬امکان باز نمودن بسته‬
‫اطالعاتی و انجام پردازشهای الزم بر روی آن را دارا خواهد بود‪.‬‬

‫‪.‬‬

‫‪7‬‬
‫در شبکه اینترنت اطالعات (داده ها) به بسته های کوچکی به نام ‪ Packet‬تقسیم‬
‫بندی میشوند‪ .‬سپس ‪ Packet‬ها از طریق شبکه منتقل می شوند‪ .‬در اینجا کار ‪ IP‬آن‬
‫است که آنها را به میزبان راه دور منتقل کند‪ TCP .‬در انتهای دیگر بسته ها را دریافت‬
‫و وجود خطاها را بررسی میکند‪ ،‬اگر خطایی رخ داده باشد ‪ TCP‬میتواند ارسال مجدد‬
‫بسته بخصوص را درخواست نماید‪ .‬بعد از اینکه تمام بسته ها به درستی دریافت شدند‪،‬‬
‫‪ TCP‬از شماره توالی برای ساختن مجدد پیام اصلی استفاده میکند‪.‬‬

‫به عبارت دیگر کار ‪ IP‬انتقال داده های خام ‪ Packet‬ها از یک مکان به مکان دیگر و‬
‫کار ‪ TCP‬کنترل امور و تضمین صحت داده هاست‪.‬‬

‫توجه کنید که ‪ TCP‬یک پروتکل ‪ Connection Oriented‬یا اتصال گراست و بدین‬


‫معناست که صحت اطالعات ارسالی برای این پروتکل بسیار مهم است و از جهتی‬
‫سرعت آن نسبتا پایین است‪ .‬پروتکل ‪ IP‬یک پروتکل ‪ Connection Less‬یا غیر‬
‫اتصال گراست و بدین معناست که صحت داده های ارسالی چندان مهم نیست و سرعت‬
‫بیشتر مد نظر است‪ .‬در شبکه های مبتنی بر ‪ TCP‬بیت به بیت داده ها بعد از انتقال در‬
‫شبکه بررسی می شود و همین دلیل کندی آن است‪ ،‬در صورتیکه در شبکه های ‪IP‬‬
‫سرعت ارسال مهم است‪ .‬پشته پروتکل ‪ TCP/IP‬نقاط ضعف هر یک از این دو پروتکل‬
‫را پوشش داده است و یک پروتکل ترکیبی خوب ایجاد کرده است‪.‬‬

‫ویژگیهای ‪TCP/IP‬‬
‫از جمله ویژگی های ‪ TCP IP‬میتوان امنیت باال‪ ،‬توسعه پذیری و سازگاری با‬
‫محیطهای مختلف را نام برد‪.‬‬

‫‪8‬‬
‫‪ TCP/IP‬چگونه کار میکند؟‬

‫‪.‬‬

‫وظایفی که بر دوش ‪ TCP/IP‬است را بین ‪ ۴‬الیه تقسیم کردهاند‪ .‬به طور کلی در مدل‬
‫الیه ای‪ ،‬تقسیم وظایف بین الیه ها اتفاق میافتد‪ .‬این تقسیم وظایف مانند تقسیم کار‬
‫بین اعضای یک تیم است که ضعف و عدم فعالیت درست یک عضو در گروه‪ ،‬روی تمام‬
‫اعضای آن تاثیر منفی میگذارد‪ .‬پس هر الیه در عین مستقل بودن باید به درستی با‬
‫بقیه الیه ها ارتباط برقرار کند‪ .‬مجموع پروتکل های ‪ TCP/IP‬منجر به برقراری ارتباط‬
‫بین کامپیوترها و دسترسی به اینترنت میشود‪ .‬امنیت شبکه در الیه های ‪ TCP/IP‬در‬
‫واقع با همین پروتکل ها تامین میشود‪.‬‬

‫الیه های پروتکل ‪ TCP/IP‬عبارتند از‪:‬‬

‫‪9‬‬
‫‪.‬‬

‫‪: Network Access / Network Interface )1‬‬


‫این الیه پایین ترین سطح انتقال اطالعات را بر عهده دارد و امکاناتی برای تبادل‬
‫اطالعات از طریق سخت افزار شبکه را فراهم می آورد‪ .‬وظیفه این الیه ارسال و دریافت‬
‫یا همان تبادل اطالعات روی سخت افزار است که با ‪ MAC‬آدرس‪ ،‬مسیریابی و ارسال و‬
‫دریافت فیزیکی بیت ها انجام میشود‪ .‬پروتکل ‪ Ethernet‬و ‪ ،ATM‬پروتکل های الیه‬
‫واسط شبکه هستند‪.‬‬

‫‪: Internet )2‬‬

‫‪10‬‬
‫وظیفه الیه اینترنت‪ ،‬آدرس دهی‪ ،‬بسته بندی و مسیریابی است‪ .‬الیه اینترنت شامل‬
‫پروتکل های ‪ IP‬و ‪( ARP‬تعیین آدرس کارت شبکه کامپیوتر مقصد)‪( ICMP ،‬عیب‬
‫یابی و گزارش خطا) و ‪ IGMP‬است‪.‬‬

‫سرویس های ‪ TCP/IP‬در الیه اینترنت شامل برقراری ارتباط‪ ،‬مسیریابی پیام‪ ،‬تجزیه و‬
‫ترکیب ‪ Header‬پیغامها‪ ،‬اعتبارسنجی و بررسی خطا و بررسی وضعیت شبکه است‪.‬‬
‫این الیه مهمترین الیه در شبکه ‪ TCP/ IP‬است‪.‬‬

‫‪: Transport )3‬‬


‫الیه انتقال یا حمل‪ ،‬شامل پروتکل های ‪ TCP‬و ‪ UDP‬است‪ .‬این پروتکل ها وظیفه‬
‫برقراری ارتباط بین نرم افزارها را در شبکه دارند و اطالعات را از الیه های پایینی به‬
‫الیه های باالیی منتقل میکنند و سعی بر این دارند که این کار با کمترین خطا انجام‬
‫شود و بسته به درستی به مقصد برسد‪.‬‬

‫‪: Application )4‬‬


‫پروتکل های الیه اپلیکیشن عبارتند از‪( DHCP :‬آدرس دهی خودکار)‪( DNS ،‬تبدیل‬
‫نام هاست به ‪ IP‬آدرس)‪( FTP ،‬ارسال و دریافت فایل)‪ IMAP ،HTTP ،‬و ‪.SSH‬‬

‫عملکرد پروتکل ‪ ،HTTP‬برقراری ارتباط بین وب سرور و مرورگر وب است‪ .‬پروتکل‬


‫‪ HTTP‬درخواست مرورگر وب را به وب سرور منتقل میکند و در پاسخ‪ ،‬محتویات‬
‫صفحه وب را به مرورگر برمیگرداند‪ .‬مکانیزم پروتکل ‪ HTTP‬همان است که با کلیک‬
‫روی لینک های موجود در مرورگر وب باعث باز شدن صفحات وب میشود‪ .‬در الیه‬
‫‪11‬‬
‫اپلیکیشن‪ ،‬در واقع کاربر با کامپیوتر تعامل دارد و میتواند از آن برای ارسال و دریافت‬
‫داده استفاده کند‪ .‬تمام وب آدرس ها یا ‪ URL‬ها با ‪ HTTP‬آغاز میشوند‪.‬‬

‫هر بستهی ایجاد شده در این الیه برای ارسال به الیهی ‪ Transport‬داده میشود تا‬
‫به دست مقصد برسد‪.‬‬

‫حال که با مدل ‪ TCP/IP‬آشنا شدیم‪ ،‬نوبت به مقصود اصلی این تحقیق یعنی مقایسهی‬
‫پروتکلهای ‪ TCP‬و ‪ UDP‬میرسد‪.‬‬

‫پروتکل ‪TCP‬‬

‫‪.‬‬

‫‪12‬‬
‫برای برقراری یک ارتباط گفتاری به وسیله اینترنت‪ ،‬در الیه انتقال از دو پروتکل ‪ TCP‬و‬
‫‪ UDP‬استفاده میشود‪.‬‬

‫مهمترین وظیفه پروتکل ‪ TCP‬اطمینان از صحت ارسال اطالعات است‪ .‬پروتکل فوق‬
‫اصطالحاً «ارتباط اتصالگرا» نامیده میشود‪ .‬علت این امر ایجاد یک ارتباط مجازی بین‬
‫کامپیوترهای فرستنده و گیرنده‪ ،‬قبل از ارسال اطالعات است‪ .‬پروتکلهایی از این نوع‪،‬‬
‫امکانات بیشتری را به منظور کنترل خطاهای احتمالی در ارسال اطالعات فراهم نموده‬
‫ولی به دلیل افزایش بار عملیاتی سیستم‪ ،‬کارایی آنان کاهش خواهد یافت‪ .‬از پروتکل‬
‫‪ TCP‬به عنوان یک پروتکل قابل اطمینان نیز یاد میشود‪ .‬به این علت که برای آگاهی‬
‫از صحت اطالعات ارسال شده‪ ،‬اطالعات دیگری نیز به گیرنده فرستاده میشود‪ .‬در‬
‫صورتی که بستههای اطالعاتی به درستی در اختیار فرستنده قرار نگیرند‪ ،‬فرستنده‬
‫مجدداً اقدام به ارسال اطالعات مینماید‪.‬‬

‫‪ Handshake‬چیست؟‬

‫‪.‬‬

‫‪13‬‬
‫فرض کنید میخواهید با دوست خود ارتباط برقرار کنید‪ .‬ابتدا دوست خود را صدا کرده‬
‫و هنگامی که او برگشت و به شما نگاه کرد‪ ،‬سالم می کند و احتماال شما هم در جواب‬
‫او سالم می گویید‪ .‬خب در این سناریو و در مرحله اول شما رفیق خود را صدا می زنید‪،‬‬
‫در مرحله دوم کلمه سالم را از دوست خود دریافت می کنید و در مرحله سوم هم‬
‫جواب دوست خود را با سالم می دهید که با این کار ارتباط شما با دوست خود برقرار‬
‫می شود‪ .‬حاال می توانید ادامه صحبت های خود را با دوستتان در میان بگذارید‪.‬‬

‫زمانی که شما بخواهید در دنیای اینترنت و شبکه یک ارتباط با سیستم یا سرور برقرار‬
‫کنید‪ ،‬کامپیوتر ها به صورت خودکار یک ‪ packet‬ارسال می کنند که با نام ‪syn‬‬
‫شناخته می شود و طرف مقابل که این پیام را دریافت می کند یک پیام ‪ syn+ack‬به‬
‫سمت فرستنده ارسال می کند و فرستنده هم یک ‪ ack‬به سمت مقابل می فرستد و‬
‫ارتباط برقرار می شود‪ .‬حاال کامپیوتر ما با کامپیوتر مقابل ارتباط برقرار کرده و اقدام به‬
‫رد و بدل کردن داده ها و درخواست ها می کنند‪.‬‬

‫پروتکل ‪ TCP‬برای برقراری ارتباط از یک دست دادن (‪ )handshake‬سه مرحله ای‬


‫استفاده می کند تا از برقراری ارتباط با طرف مقابل اطمینان حاصل شود و با این روش‬
‫برقراری ارتباط‪ ،‬شما قادر خواهید بود که از ارسال و دریافت کامل داده ها اطمینان‬
‫حاصل کنید‪ .‬اگر در هنگام ارسال و دریافت داده ها‪ ،‬داده ای خراب شود یا حین ارسال‬
‫به هر دلیلی پکت ها خراب شوند‪ ،‬میزبان متوجه می شود که این پکت ها خراب‬
‫هستند و درخواست ارسال دوباره پیام ها را می کند که این کار با استفاده از ‪ack‬‬
‫‪ number‬موجود در هدر ‪ TCP‬انجام می شود‪ .‬به اینصورت که اگر بسته ای را دریافت‬
‫نکند‪ ،‬هیچ پیغام ‪ ack‬جدیدی نمی دهد و مجدد پیغام ‪ ack‬قبلی را می فرستد تا‬
‫دوباره بسته های جدید ارسال شوند‪ .‬شکل زیر را جهت درک بهتر مسئله مشاهده‬
‫کنید‪.‬‬
‫‪14‬‬
‫ساختار بستههای پروتکل ‪TCP‬‬
‫در این قسمت ساختار یک بسته ‪ TCP‬را تشریح خواهیم کرد‪:‬‬

‫فیلد‪ : source port‬این فیلد ‪ ۱۶‬بیتی آدرس پورت فرستنده را به همراه دارد‪.‬‬
‫فیلد ‪ :destination port‬این فیلد ‪ ۱۶‬بیتی آدرس پورت مقصد که باید‬
‫تحویل داده شود را دارا است‪.‬‬
‫فیلد ‪ :Sequence Number‬این فیلد سی ودو بیتی شماره ترتیب آخرین‬
‫بایتی که در فیلد داده از بسته جاری قرار دارد را نشان میدهد‪.‬‬

‫در پروتکل ‪ TCP‬شماره ترتیب‪ ،‬بر حسب شماره آخرین بایتی است که در بسته‬
‫جاری قرار دارد‪ .‬به عنوان مثال اگر در این فیلد عدد ‪ ۱۹۳۴۱‬قرار بگیرد به این‬
‫معناست که دادهها تا بایت ‪ ۱۹۳۴۱‬درون این فیلد دادهها قرار دارد‪.‬‬

‫‪15‬‬
‫فیلد ‪ :Acknowledgment number‬این فیلد ‪ ۳۲‬بیتی شماره ترتیبی‬
‫بایتی است که گیرنده بسته برای تأیید به فرستنده ارسال میکند؛ برای اعالم‬
‫اینکه دادها تا بایتی که در این فیلد قرار دارد به درستی دریافت شدهاست‪ .‬به‬
‫عنوان مثال اگر در این فیلد عدد ‪ ۱۲۳۶۵‬قرار گرفته شود به این معنی است‬
‫که دادها تا بایت ‪ ۱۲۳۶۵‬صحیح و کامل دریافت شدهاست و در انتظار‬
‫بایتهای ‪ ۱۲۳۶۷‬به بعد میباشد‪.‬‬
‫فیلد قرارداد هدایت انتقال ‪ :Length‬عددی که در این فیلد قرار میگیرد‬
‫طول کل سرآیند بسته ‪ TCP‬بر مبنای کلمات ‪ ۳۲‬بیتی را تعیین میکند‪ .‬به‬
‫عنوان مثال اگر در این فیلد عدد ‪ ۷‬قرار بگیرد طول سرآیند بسته برابر با‬
‫‪ ۴*۷=۲۸‬بایت خواهد بود (این فیلد کالً چهار بیتی است)‪.‬‬
‫بیتهای پرچم‪ • :‬بیت ‪ :URG‬در صورتی که در این بیت عدد ‪ ۱‬قرار گیرد‬
‫معین میشود که در فیلد ‪ Urgent Pointer‬مقدار قابل معتبری قرار دارد‬
‫و بایستی مورد پردازش قرار گیرد‪ • .‬بیت ‪ :ACK‬اگر در این بیت عدد ‪ ۱‬قرار‬
‫داشته باشد به این معنا است که در فیلد ‪Acknowledgment number‬‬
‫عدد معتبری قرار دارد‪ .‬بیتهای ‪ ACK‬و ‪ SYN‬نقش دیگری نیز دارند که در‬
‫ادامه بدان اشاره خواهد شد‪ • .‬بیت‪ :PSH‬اگر این بیت مقدار ‪ ۱‬قرار گرفته‬
‫باشد از گیرنده تقاضا میشود که دادههای موجود را بافر نکرده و در اسرع‬
‫وقت تحویل برنامه کاربردی صاحب آن شود‪ • .‬بیت ‪ :RST‬اگر در این بیت‬
‫عدد ‪ ۱‬قرار گرفته شود به این معنی است که این ارتباط به صورت یک طرفه‬
‫خاتمه یافتهاست‪ • .‬بیت ‪ :SYN‬این بیت نقش اساسی در ارتباط یک بسته‬
‫‪ TCP‬بازی میکند‪ .‬برقراری ارتباط یک طرفه ‪ TCP‬از روند زیر تبعیت‬
‫میکند‪ :‬شروعکننده ارتباط یک بسته‪ TCP‬بدون هیچ دادهای و با تنظیم‬

‫‪16‬‬
‫بیتهای ‪ SYN =۱‬و ‪ ACK=0‬تقاضای یک ارتباط جدید میکند‪ .‬در صورتی‬
‫که طرف مقابل تمایل به بر قراری ارتباط داشته باشد برای طرف مقابل یک‬
‫بسته با قرار دادن بیتهای ‪ SYN =۱‬و ‪ ACK=1‬تمایل خود را برای برقراری‬
‫ارتباط به طرف مقابل اعالم میکند • بیت ‪ :FIN‬اگر یکی از طرفین هیچ داده‬
‫دیگری برای فرستادن نداشته باشد این بیت را در آخرین بسته برابر ‪ ۱‬قرار‬
‫میدهد و ارتباط را یک طرفه قطع میکند‪ .‬باید توجه داشت که ارتباط هنوز‬
‫بهطور کامل قطع نشدهاست و باید طرف مقابل نیز در آخرین بسته خود این‬
‫فیلد را برابر ‪ ۱‬قرار داده تا ارتباط به طور کامل قطع شود‪.‬‬
‫فیلد ‪ :Window size‬مقدار قرار گرفته در این فیلد مشخص میکند که‬
‫مقدار بافر گیرنده چند بایت دیگر فضای خالی دارد‪.‬‬
‫فیلد ‪ :Checksum‬در این فیلد ‪ ۱۶‬بیتی کد کشف خطا قرار میگیرد‪.‬‬
‫فیلد ‪ :TCP Segment length‬در آن طول کل بسته ‪ TCP‬قرار میگیرد‪.‬‬
‫فیلد‪ :Urgent Pointer‬در این فیلد عدد به عنوان اشاره گر قرار میگیرد‬
‫که موقعیت دادههای اضطراری را درون بسته مشخص میکند‪ .‬این دادهها‬
‫زمانی اتفاق میافتد و ارسال میشود که عملی شبیه وقوع وقفه در هنگام‬
‫اجرای یک برنامه کاربردی رخ دهد‪ .‬بدون آنکه ارتباط قطع شود دادهها درون‬
‫همین بسته جاری قرار گرفته و ارسال میشود‪ .‬الزم است ذکر شود که از این‬
‫فیلد در الیههای باالتر استفاده میکنند‪.‬‬

‫جهت درک بهتر موارد فوق‪ ،‬تصویر ذیل را مشاهده کنید‪.‬‬

‫‪17‬‬
.

18
‫پروتکل ‪UDP‬‬

‫‪.‬‬

‫قرارداد بسته داده کاربر یا پروتکل بسته داده کاربر (به انگلیسی‪ UDP :‬یا ‪User‬‬
‫‪ )Datagram Protocol‬یکی از اجزاء اصلی مجموعه پروتکل اینترنت‪ ،‬مجموعهای از‬
‫پروتکلهای شبکه که در اینترنت مورد استفاده قرار میگیرند‪ ،‬میباشد‪ .‬رایانهها با‬
‫استفاده از ‪ UDP‬قادر به ارسال پیغام‪ ،‬که در این مورد آن را بسته داده یا ‪Datagram‬‬
‫مینامیم‪ ،‬به دیگر میزبانهای موجود در پروتکل اینترنت (‪ )IP‬میباشند‪ .‬این پروتکل‬
‫توانایی این را دارد که این کار را بدون برقراری ارتباط قبلی یا ایجاد کانالها یا‬
‫مسیرهای انتقال داده ویژه انجام دهد‪ .‬پروتکل مزبور در سال ‪ ۱۹۸۰‬توسط دیوید پی‪.‬‬
‫رید ابداع گردیده و بهطور رسمی در استاندارد ‪ RFC 768‬تعریف شد‪.‬‬

‫‪19‬‬
‫بر خالف ‪ TCP‬در این پروتکل هیچ گونه پیام ‪ ack‬مبنی بر دریافت پکت از سوی سرور‬
‫ارسال نشده و بیشتر در مواردی مانند انتقال صوت ‪ VOIP‬یا ویدئو که پهنای باند در‬
‫این موارد از اهمیت باالیی برخوردار است بکار می رود زیرا در صورت استفاده از‬
‫پروتکل ‪ TCP‬جهت انتفال این ترافیک هر پیام ‪ ack‬به ازای دریافت پکت خود باعث‬
‫اشغال پهنای باند خواهد شد‪.‬‬

‫‪.‬‬

‫‪ UDP‬از مدل انتقال ساده بدون استفاده از تکنیک دست دادن (‪ )Handshake‬صریح‬
‫که برای ایجاد قابلیت اطمینان (‪ ،)Reliability‬مرتبسازی و یکپارچهسازی دادهها‬
‫بکار میرود‪ ،‬بهره میجوید؛ بنابراین‪ UDP ،‬سرویس غیرمطمئنی را ارائه میدهد و‬
‫ممکن است بسته دادهها نامرتب یا تکراری بوده و یا بدون اطالع قبلی از دست بروند‪.‬‬
‫‪ UDP‬تشخیص میدهد که بررسی خطا و تصحیح آن با توجه به نوع کاربردی که دارد‬
‫الزم نبوده یا نباید اجرا شود‪ ،‬بنابراین چنین بار اضافی پردازشی را بر شبکه تحمیل‬
‫نمیکند‪ .‬برنامههایی که نسبت به زمان حساس هستند از ‪ UDP‬استفاده میکنند‪ ،‬زیرا‬
‫از دست دادن بستهها بهتر از منتظر ماندن برای بسته هاست؛ بنابراین پروتکل ‪UDP‬‬
‫بهترین گزینه برای سیستمهای بیدرنگ به حساب میآید‪ .‬اگر برنامهای نیاز به امکانات‬
‫تصحیح خطا در سطح واسط شبکه داشته باشد‪ ،‬میتواند از قرارداد کنترل انتقال (به‬

‫‪20‬‬
‫انگلیسی‪ TCP :‬یا ‪ )Transmission Control Protocol‬یا پروتکل انتقال کنترل‬
‫جریان (به انگلیسی‪ SCTP :‬یا ‪)Stream Control Transmission Protocol‬‬
‫استفاده کند که بهطور خاص برای این منظور طراحی شدهاند‪.‬‬

‫چرا باید از ‪ UDP‬استفاده کنیم؟‬

‫‪.‬‬

‫پرسشی که مطرح میشود این است که ما چرا باید به یک پروتکل غیر قابل اتکا برای‬
‫انتقال داده نیاز داشته باشیم؟ ما از ‪ UDP‬جایی استفاده میکنیم که تأیید وصول‬
‫بستهها پهنای باند قابل توجهی را به همراه دادههای واقعی اشغال میکند‪ .‬برای نمونه‬
‫در مورد استریم کردن ویدئو‪ ،‬هزاران بسته به سمت کاربران فوروارد میشوند‪ .‬تأیید‬
‫وصول همه این بستهها دشوار است و میتواند موجب هدررفت پهنای باند زیادی شود‪.‬‬
‫بهترین مکانیسم تحویل پروتکل ‪ IP‬زیرین‪ ،‬نهایت تالش را برای تحویل بستههایش‬
‫‪21‬‬
‫تضمین میکند‪ ،‬اما حتی اگر برخی بستهها در جریان استریم کردن ویدئو از دست‬
‫بروند‪ ،‬تأثیر آن زیاد نیست و میتوان آن را به سادگی نادیده گرفت‪ .‬فقدان چند بسته‬
‫در ترافیک ویدئویی و صوتی در اغلب موارد اصالً قابل تشخیص نیست‪ .‬فلذا در این‬
‫موارد‪ ،‬بهتر است که از پروتکل ‪ UDP‬استفاده شود‪.‬‬

‫قابلیت اطمینان و راهحلهایی برای کنترل ازدحام‬


‫فقدان قابلیت اطمینان بدین معناست که برنامههایی که از ‪ UDP‬استفاده میکنند کالً‬
‫میتوانند مقداری خطا یا افزونگی را بپذیرند‪ .‬برخی پروتکلها نظیر ‪ TFTP‬میتوانند‬
‫مکانیزمهای ابتدایی برای برقراری قابلیت اطمینان را در الیه کاربرد به کار گیرند‪ .‬در‬
‫اغلب اوقات برنامههایی که از ‪ UDP‬استفاده میکنند از مکانیزمهای برقراری قابلیت‬
‫اطمینان استفاده نمیکنند و حتی مانع از اجرای آنها میشوند‪ .‬رسانههای جویباری‪،‬‬
‫بازیهای چندبازیکنه بیدرنگ و ‪ VoIP‬مثالهایی از برنامههایی هستند که از ‪UDP‬‬
‫بهره میبرند‪ .‬در این برنامههای خاص از دست دادن بستهها معموالً مشکل حادی‬
‫نیست‪ .‬اگر برنامهای احتیاج به برقراری قابلیت اطمینان باال داشته باشد‪ ،‬باید از پروتکلی‬
‫نظیر ‪ TCP‬استفاده کند‪.‬‬

‫در مورد ‪ UDP‬بر خالف ‪ TCP‬مورد مهم و قابل توجهی وجود دارد که برنامههای‬
‫مبتنی بر این پروتکل قابلیت جلوگیری از ازدحام و مکانیزم کنترلی خوبی نیستند‪.‬‬
‫برنامههای ‪ UDP‬ای که به مسئله ازدحام توجهی نمیکنند و میزان قابل توجهی از‬
‫پهنای باند را نیز اشغال میکنند‪ ،‬میتوانند ثبات اینترنت را به مخاطره بیندازند‪.‬‬
‫مکانیزمهای مبتنی بر شبکهای وجود دارد که برای به حداقل رساندن تأثیرات مخرب‬
‫ترافیکهای کنترل نشده ‪ UDP‬ارائه شدهاند‪ .‬اجزاء مبتنی بر شبکه نظیر روترها که از‬
‫‪22‬‬
‫تکنیکهای صف بندی و حذف بستهها استفاده میکنند‪ ،‬تنها ابزار موجود برای کاهش‬
‫دادن ترافیک حجیم برنامههای مبتنی بر ‪ UDP‬میباشند‪ .‬پروتکل کنترل ازدحام بسته‬
‫داده (به انگلیسی‪ DCCP :‬یا ‪ )Datagram Congestion Control Protocol‬راه‬
‫حلی نسبی برای حل این مشکل بالقوه است‪ .‬این پروتکل با افزودن رفتار کنترلی مشابه‬
‫‪ TCP‬در سیستم میزبان‪ ،‬جریانهای شدید ‪ UDP‬را کنترل میکند‪.‬‬

‫پورتهای مورد استفاده‬


‫برنامههای ‪ UDP‬از سوکت بسته داده برای برقراری ارتباطات میزبان‪-‬به‪-‬میزبان استفاده‬
‫میکنند‪ .‬برنامه یک سوکت را در انتهای بسته انتقال داده اش میچسباند‪ ،‬که ترکیبی‬
‫از آدرس آیپی و شماره پورت سرویس است‪ .‬پورت یک ساختار نرمافزاری است که با‬
‫یک عدد ‪ ۱۶‬بیتی به نام شماره پورت شناسایی میشود‪ .‬شماره پورت عددی بین ‪ ۰‬تا‬
‫‪ ۶۵٬۵۳۵‬است‪ .‬پورت ‪ ۰‬رزرو شدهاست‪ ،‬اما اگر پردازش ارسالکننده انتظار دریافت پیام‬
‫را نداشته باشد مجاز است که از این پورت استفاده کند‪.‬‬

‫آیانا (‪ )IANA‬یا انجمن شمارههای تخصیص یافته اینترنتی‪ ،‬شماره پورتها را به سه‬
‫دسته تقسیم کردهاست‪ :‬پورتهای بین ‪ ۰‬تا ‪ ۱۰۲۳‬برای سرویسهای شناخته شده و‬
‫عمومی آزادند‪ .‬پورتهای بین ‪ ۱۰۲۴‬و ‪ ۴۹٬۱۵۱‬پورتهای ثبت شده هستند و برای‬
‫سرویسهای مخصوص ‪ IANA‬در نظر گرفته شدهاند‪ .‬پورتهای بین ‪ ۴۹٬۱۵۲‬تا ‪۶۵٬۵۳۵‬‬
‫پورتهای دینامیکی هستند که بهطور رسمی برای سرویس خاصی در نظر گرفته‬
‫نشدهاند و میتوان برای هر منظوری استفاده کرد‪.‬‬

‫‪23‬‬
‫ساختار بستههای پروتکل ‪UDP‬‬

‫‪.‬‬

‫‪ UDP‬کمینهترین پروتکل مبتنی بر پیغام در الیه انتقال است که جزئیات آن در ‪RFC‬‬


‫‪ 768‬آورده شدهاست‪.‬‬

‫‪ UDP‬هیچگونه تضمینی برای تحویل پیام به پروتکل الیه باالتر را نمیدهد و‬


‫پروتکلهایی هم که از ‪ UDP‬استفاده میکنند هیچ حالتی از پیغامی را که میفرستند‬
‫نگه نمیدارند‪ .‬به همین دلیل‪ UDP ،‬را پروتکل بسته‪-‬داده غیر مطمئن مینامند‪.‬‬

‫‪ UDP‬تسهیمسازی برنامه (از طریق شماره پورت) و بررسی یکپارچگی (با استفاده از‬
‫چکسام) سرایند و بخش دادهای را فراهم میآورد‪ .‬اگر مطمئن بودن انتقال موردنظر‬
‫باشد‪ ،‬بایستی این امکان در برنامه کاربر تعبیه شود‪.‬‬

‫‪ UDP‬دادهها را در قالب قطعاتی (‪ )Segment‬ارسال میکند که در ابتدای آنها ‪۸‬‬


‫بایت سرآیند و سپس دادههای الیه کاربرد قرار میگیرد‪ .‬دو فیلد شماره پورت به منظور‬
‫شناسایی نقاط پایانی (پروسههای نهایی) در ماشینهای مبدأ و مقصد به کار میآیند‪.‬‬
‫وقتی یک بسته ‪ UDP‬از راه میرسد‪ ،‬محتوای آن به پروسه متصل به شماره پورت‬
‫مقصد‪ ،‬تحویل داده میشود‪ .‬عمل اتصال پروسه به یک پورت از طریق تابع اولیه ‪BIND‬‬

‫‪24‬‬
‫انجام میشود‪( .‬فرایند مقیدسازی پروسه به یک پورت در ‪ TCP‬و ‪ UDP‬تفاوتی ندارد)‬
‫در حقیقت‪ ،‬آنچه که ‪ UDP‬در مقایسه با ‪ IP‬معمولی اضافهتر دارد پورتهای مبدأ و‬
‫مقصد هستند‪ .‬بدون فیلدهای مربوط به پورت‪ ،‬الیه انتقال نمیداند که با یک بسته چه‬
‫کار کند‪ .‬با این فیلدها‪ ،‬داده به درستی تحویل پروسه مربوط خواهد شد‪ .‬برای آنکه‬
‫بتوان برای پروسه مبدأ پاسخی برگرداند‪ ،‬به شماره پورت مبدأ نیاز است‪ .‬بدین منظور‬
‫محتوای فیلد پورت مبدأ از بسته ورودی‪ ،‬در فیلد پورت مقصد از بسته خروجی‪ ،‬کپی و‬
‫ارسال میشود‪ .‬بدین ترتیب فرستنده پاسخ‪ ،‬پروسه تحویل گیرنده بسته را مشخص‬
‫مینماید‪ .‬سرایند ‪ UDP‬دارای ‪ ۴‬ستون‪ ،‬طول هر کدام ‪ ۲‬بایت (‪ ۱۶‬بیت) و استفاده از‬
‫دو تای آنها در ‪ IPv4‬اختیاری است‪ .‬در ‪ IPv6‬تنها استفاده از شماره پورت مبداً‬
‫اختیاری میباشد‪.‬‬

‫‪Source Port‬‬
‫این فیلد شماره پورت فرستنده را مشخص میکند و زمانی معنا پیدا میکند که برای‬
‫پاسخ دادن احتیاج به شماره پورت فرستنده داشته باشیم‪ .‬اگر از آن استفاده نشود‪ ،‬عدد‬
‫صفر در آن قرار میگیرد‪ .‬اگر میزبان مبدأ یک کالینت باشد‪ ،‬شماره پورت به احتمال‬
‫زیاد یک شماره پورت موقتی (دسته سوم) خواهد بود‪ .‬اگر میزبان مبدأ یک سرور باشد‪،‬‬
‫احتماالً شماره پورت جزو پورتهای عمومی (دسته اول) خواهد بود‪.‬‬

‫‪Destination Port‬‬
‫این فیلد شماره پورت مقصد را نشان میدهد و وجود آن الزامیست‪ .‬همانند شماره‬
‫پورت مبدأ‪ ،‬اگر کالینت‪ ،‬میزبان مقصد باشد‪ ،‬شماره پورت به احتمال زیاد جزو‬
‫‪25‬‬
‫پورتهای موقتی خواهد بود و اگر میزبان مقصد یک سرور باشد شماره پورت جزو‬
‫دسته اول خواهد بود‪.‬‬

‫‪Length‬‬
‫فیلدی که طول کل بسته داده را بر حسب بایت نشان میدهد‪ .‬حداقل طول ‪ ۸‬بایت‬
‫است که متعلق به طول سرآیند میباشد‪ .‬اندازه فیلد بهطور تئوریک ‪ ۶۵٬۵۳۵‬بایت (‪۸‬‬
‫بایت برای سرآیند ‪ ۶۵٬۵۲۷ +‬بایت برای داده) برای بسته داده ‪ UDP‬است‪ .‬اما حداکثر‬
‫اندازه عملی برای ‪ IPv4‬عبارت است از ‪ ۶۵٬۵۰۷‬بایت‪ ۸–۶۵٬۵۳۵( .‬بایت برای سرآیند‬
‫یو دی پی ‪ ۲۰ -‬بایت برای سرآیند ‪ .)IP‬عدم استفاده از این فیلد نوعی سهل انگاری‬
‫است مگر اینکه کیفیت دادهها چندان مهم نباشد‪( .‬مثالً در مورد صدای دیجیتال)‬

‫‪Checksum‬‬
‫فیلد چکسام برای بررسی خطای سرایند و داده استفاده میشود‪ .‬اگر هیچ چکسامی‬
‫توسط فرستنده تولید نشود‪ ،‬این فیلد با صفر پر میشود‪ .‬فیلد مزبور در ‪ IPv6‬اختیاری‬
‫نیست‪.‬‬

‫‪26‬‬
‫قابلیتهای پروتکل ‪UDP‬‬
‫‪ ‬زمانی استفاده میشود که تأیید وصول بستههای داده تأثیر چندانی نداشته باشد‪.‬‬
‫پروتکل خوبی برای گردش دادهها در یک جهت محسوب میشود‪.‬‬ ‫‪‬‬
‫‪ ‬برای ارتباطهای مبتنی بر کوئری ساده و مناسب است‪.‬‬
‫اتصال‪-‬محور نیست‪.‬‬ ‫‪‬‬
‫مکانیسم کنترل ازدحام ندارد‪.‬‬ ‫‪‬‬
‫تحویل دادهها را بر مبنای ترتیب تضمین نمیکند‪.‬‬ ‫‪‬‬
‫«بیحالت» (‪ )stateless‬است‪.‬‬ ‫‪‬‬
‫پروتکل مناسبی برای استریم کردن اپلیکیشنهایی مانند ‪ VoIP‬و استریم کردن‬ ‫‪‬‬
‫چندرسانهای محسوب نمیشود‪.‬‬

‫کاربرد پروتکل ‪UDP‬‬


‫‪ ‬مناسب برای ارتباطات یکسو و همچنین برای پخش اطالعات‪.‬‬
‫‪ ‬برای راه اندازی خودکار )‪ (bootstrapping‬یا دیگر اهداف بدون استفاده از‬
‫پشته کامل پروتکل مناسب است مانند ‪ DHCP‬و‪. FTP‬‬
‫‪ Datagram ‬به وجود می آورد که برای دیگر مدل های پروتکل مثل ‪IP‬‬
‫‪ tunneling‬و ‪ Remote Procedure Call‬و ‪ NFS‬مناسب است‪.‬‬
‫‪ ‬سرویس معامله گرایی (انتقال گرایی) است که برای مواردی مثل ‪ DNS‬و‬
‫‪ Network Time Protocol‬استفاده می شود‪.‬‬

‫‪27‬‬
‫‪ ‬مناسب برای مشتریان به تعداد زیاد‪ ،‬مانند برنامه های ‪streaming media‬‬
‫مثل‪. IPTV‬‬
‫‪ ‬پروتکل مدیریت شبکه ساده‪.‬‬
‫‪ ‬پروتکل انتقال فایل آزمایشی‪.‬‬
‫‪ ‬پروتکل‪. Kerberos‬‬
‫و ‪...‬‬

‫مقایسهی پروتکلهای ‪ TCP‬و ‪UDP‬‬

‫‪.‬‬

‫‪28‬‬
‫تفاوتها‬
‫‪UDP‬‬ ‫‪TCP‬‬ ‫موارد‬

‫‪Connection-less‬‬ ‫‪connection-oriented‬‬ ‫نوع اتصال‬


‫قبل از ارسال داده ها‪ ،‬اتصال برقرار‬ ‫قبل از ارسال اطالعات‪ ،‬ارتباطی بین‬
‫نمی کند‪.‬‬ ‫فرستنده و گیرنده برقرار می کند‪.‬‬ ‫)‪(Connection Type‬‬

‫قابل اعتماد نیست‪ ،‬تحویل داده‬ ‫قابل اعتماد است به طوری که‬ ‫قابلیت اعتماد‬
‫های ارسال شده را توسط گیرنده‪،‬‬ ‫تضمین میکند داده های ارسال‬
‫تضمین نمیکند و حتی اطالعات‬ ‫شده را به گیرنده تحویل دهد‪.‬‬ ‫)‪(Reliability‬‬
‫ارسال شده‪ ،‬ممکن است از بین‬ ‫چنانچه قسمتی از اطالعات در‬
‫برود و یا خراب شود‪.‬‬ ‫فرایند ارسال از بین برود‪ ،‬آن را‬
‫بازیابی و مجددا ارسال می کند‪.‬‬

‫از کنترل جریان استفاده نمی کند؛‬ ‫از مکانیزم کنترل جریان استفاده‬ ‫کنترل جریان‬
‫بنابراین‪ packet ،‬ها در فرایند‬ ‫میکند تا مطمئن شود‪ ،‬فرستنده به‬
‫جریان مداوم‪ ،‬یا ارسال می شوند و‬ ‫یکباره حجم زیادی از اطالعات را‬ ‫)‪(Flow Control‬‬
‫یا از بین میروند‪.‬‬ ‫ارسال نکند‪.‬‬

‫تضمین می کند پکت ها‪ ،‬به ترتیب و ترتیب ارسال ‪ UDP‬بر هیچ مبنای‬ ‫ترتیب و مرتبسازی‬
‫خاصی قرار ندارد‪.‬‬ ‫بر اساس تاریخ ارسال شوند‪.‬‬
‫)‪(Ordering‬‬
‫بسیار سریعتر از ‪TCP‬‬ ‫خیلی کندتر از ‪ UDP‬است‪TCP .‬‬ ‫سرعت‬
‫میباشد‪.‬‬ ‫می بایست یک ‪connection‬‬
‫ایجاد کند‪ ،‬خطاهای احتمالی را‬ ‫)‪(Speed‬‬
‫بررسی کند و همچنین فایل ها را‪،‬‬
‫همان طور که ارسال شده‪ ،‬دریافت‬
‫کند‪.‬‬

‫‪29‬‬
‫شباهتها‬
‫هر دو متداول ترین روش برای ارسال ‪ packet‬از طریق اینترنت هستند و هر دو آن ها‬
‫روی الیه ‪ Transport‬پروتکل کار می کنند‪ .‬در ضمن هر دو از پروتکل ‪ IP‬استفاده‬
‫می کنند‪.‬‬

‫‪.‬‬

‫کاربردها‬
‫پروتکل ‪:TCP‬‬

‫برای برنامه هایی استفاده می شود که نیاز به قابلیت اطمینان باالیی وجود داشته باشد‬
‫و سرعت در آن ها خیلی اهمیت نداشته باشد‪ .‬مانند‪:‬‬

‫‪30‬‬
• World Wide Web (HTTP, HTTPS)
• Secure Shell (SSH)
• File Transfer Protocol (FTP)
• Email (SMTP, IMAP/POP)

:UDP ‫پروتکل‬

:‫ مانند‬.‫برای برنامه هایی استفاده می شود که نیاز به سرعت و کارایی داشته باشند‬

• Streaming videos
• Online games
• Live broadcasts
• Domain Name System (DNS)
• Voice over Internet Protocol (VoIP)
• Trivial File Transfer Protocol (TFTP)

TCP ‫مزایا و معایب پروتکل‬

31
‫مزایای ‪TCP‬‬
‫‪ ‬به شما کمک می کند تا بین انواع مختلف رایانه ارتباط برقرار کرده و آنها را‬
‫راهاندازی کنید‪.‬‬
‫مستقل از سیستم عامل کار میکند‪.‬‬ ‫‪‬‬
‫‪ ‬از بسیاری از پروتکل های مسیریابی پشتیبانی می کند‪.‬‬
‫‪ internetworking‬را بین سازمان ها امکان پذیر می کند‪.‬‬ ‫‪‬‬
‫مدل ‪ TCP / IP‬دارای معماری سرور ‪ -‬مشتری بسیار مقیاس پذیر است‪.‬‬ ‫‪‬‬
‫به طور مستقل قابل استفاده است‪.‬‬ ‫‪‬‬

‫‪32‬‬
‫معایب ‪TCP‬‬
‫‪ ‬هرگز انتقال را انجام نمی دهد بدون اینکه به طور واضح از تمام داده های در‬
‫حال حرکت سوال کند‪.‬‬
‫‪ ‬نمیتوانید از آن برای برادکست یا مالتی کست استفاده کنید‪.‬‬
‫‪ ‬هیچگونه محدودیت بلوکیای ندارد‪ ،‬بنابراین مجبورید که خودتان آن را ایجاد‬
‫کنید‪.‬‬
‫‪ ‬ویژگی های بسیاری را ارائه می دهد که شما نمی خواهید‪ .‬ممکن است پهنای‬
‫باند‪ ،‬زمان یا تالش را هدر دهد‪.‬‬
‫‪ ‬در این مدل الیه حمل و نقل تحویل بسته ها را تضمین نمی کند‪.‬‬
‫‪ ‬جایگزینی پروتکل در ‪ TCP / IP‬کار آسانی نیست‪.‬‬
‫‪ ‬جدایی واضحی از سرویس ها ‪ ،‬رابط ها و پروتکل های خود ارائه نمی دهد‪.‬‬

‫مزایا و معایب پروتکل ‪UDP‬‬

‫‪33‬‬
‫‪.‬‬

‫مزایای ‪UDP‬‬
‫✓ هرگز شما را به یک مدل ارتباطی مبتنی بر اتصال محدود نمی کند‪ .‬به همین‬
‫دلیل تأخیر راه اندازی در برنامه های توزیع شده کم است‪.‬‬
‫✓ گیرنده بسته های ‪ UDP‬آنها را کنترل نمی کند‪ ،‬که این شامل مرزهای بلوک‬
‫نیز میباشد‪.‬‬
‫✓ از برادکست و مالتی کست نیز پشتیبانی میکند‪.‬‬

‫‪34‬‬
‫معایب ‪UDP‬‬
‫‪ ‬در پروتکل ‪ UDP‬بسته ای ممکن است دو بار تحویل داده شده و یا اصال‬
‫تحویل داده نشود‪ .‬همچنین ممکن است خارج از نوبت تحویل داده شود و‬
‫هیچ نشانه ای دریافت نکنید‪.‬‬
‫‪ ‬روترها نسبت به ‪ UDP‬کامالً بی احتیاط هستند‪ ،‬بنابراین در صورت برخورد‬
‫هرگز آن را دوباره انتقال نمی دهند‪.‬‬
‫‪ ‬هیچ کنترل ازدحام و کنترل جریانی ندارد؛ بنابراین پیاده سازی وظیفهی‬
‫برنامه کاربر است‪.‬‬

‫‪35‬‬
‫منابع و مآخذ‬
❖ https://www.udemy.com/course/ccna-complete/
❖ https://www.datisnetwork.com/tcp-ip.html
❖ https://falnic.com/blog/what-is-tcp-ip.html
❖ https://ezhost.ir/1300/%D9%85%D8%AF%D9%84-tcpip-
%DA%86%DB%8C%D8%B3%D8%AA%D8%9F
❖ https://www.arvancloud.com/help/fa/article/360013185699-
%D9%85%D8%AF%D9%84-TCP-IP-%DA%86%DB%8C%D8%B3%D8%AA%D8%9F
❖ https://fa.wikipedia.org/wiki/%D9%82%D8%B1%D8%A7%D8%B1%D8%AF%D8%A7%D8
%AF_%D9%87%D8%AF%D8%A7%DB%8C%D8%AA_%D8%A7%D9%86%D8%AA%D9%82
%D8%A7%D9%84
❖ https://itbaz.net/10004/tcp-protocol/
❖ https://kaliboys.com/tcp/
❖ https://fa.wikipedia.org/wiki/%D9%82%D8%B1%D8%A7%D8%B1%D8%AF%D8%A7%D8
%AF_%D9%87%D8%AF%D8%A7%DB%8C%D8%AA_%D8%A7%D9%86%D8%AA%D9%82
%D8%A7%D9%84
❖ https://www.datisnetwork.com/udp-protocol.html
❖ https://blog.shetabanhost.com/what-is-udp/
❖ https://blog.faradars.org/udp-protocol/
❖ https://netpardazco.com/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-
%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-tcp-%D9%88-udp-
%D8%AF%D8%B1-%DA%86%DB%8C%D8%B3%D8%AA%D8%9F/
❖ https://asapardazesh.ir/7163-2/
❖ https://www.datisnetwork.com/udp-vs-tcp.html
❖ https://fa.wikipedia.org/wiki/%D9%82%D8%B1%D8%A7%D8%B1%D8%AF%D8%A7%D8
%AF_%D8%AF%D8%A7%D8%AF%D9%87%E2%80%8C%D9%86%DA%AF%D8%A7%D8%B
1_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1
❖ https://setakit.com/tcp-vs-udp/
❖ http://w3design.ir/udp/
❖ https://sabadit.com/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-tcp-%D9%88-udp/
❖ https://www.shabakekala.com/%D8%AF%D8%B1%D8%A8%D8%A7%D8%B1%D9%87-
%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-udp-
%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84/

36

You might also like