UDP - FullCode.ir

Download Report

Transcript UDP - FullCode.ir

User Datagram
Protocol
1
TCP/IP ‫ در پروتکل‬UDP ‫جایگاه‬
TCP/IP Protocol Suite
2
‫مشخصات ‪UDP‬‬
‫‪ UDP‬پروتکلی بدون اتصال و غیر قابل اطمینان است‪ UDP .‬پروتکل ساده ای با حداقل سربار می‬
‫باشد‪.‬‬
‫‪3‬‬
‫‪TCP/IP Protocol Suite‬‬
‫شماره ی پورتها‬
‫در ‪ UDP‬از شماره پورتها برای مشخص کردن فرآیند ها استفاده می شود‪ .‬یک پورت ‪ 16‬بیتی‬
‫است و محدوده ی آن از ‪ 0‬تا ‪ 65535‬می باشد‪.‬‬
‫فرآیند کالینت خود را با شماره پورتی تعریف می کند که به آن شماره پورت بی دوام می گویند و‬
‫توصیه می شود از ‪ 1023‬بزرگتر باشد‪.‬‬
‫فرآیند سرور نیز خود را با شماره پورتی تعریف می کند که شماره پورت معروف و در محدوده‬
‫ی ‪ 0‬تا ‪ 1023‬است‬
‫‪4‬‬
‫‪TCP/IP Protocol Suite‬‬
‫مقایسه ی آدرس ‪ IP‬شماره ی پورت‬
‫آدرسهای آی پی دستگاهها را مشخص می کنند‬
‫شماره پورتها فرآیند ها را مشخص می کنند‬
‫‪5‬‬
‫‪TCP/IP Protocol Suite‬‬
‫محدوده های ‪ICANN‬‬
‫‪ICANN: International Corporation for Assigned Names and Numbers‬‬
‫پورتها معروف‪ :‬از ‪ 0‬تا ‪ 1023‬توسط ‪ ICANN‬اختصاص یافته و کنترل می شوند‪.‬‬
‫پورتهای ثبت شده‪ :‬پورتهایی در محدوده ی ‪ 1024‬تا ‪ 49,151‬اختصاص یافته و کنترل شده‬
‫توسط ‪ ICANN‬نیستند‪ .‬تنها می توانند با ‪ ICANN‬برای جلوگری از تکرار ثبت شوند‪.‬‬
‫پورتهای پویا‪ :‬در محدوده ی ‪ 49,152‬تا ‪65,535‬نه کنترل شده و نه ثبت شده هستند‪ .‬تنها‬
‫برای اعداد خصوصی استفاده می شوند‬
‫‪6‬‬
‫‪TCP/IP Protocol Suite‬‬
‫پورتهای معروف مورد استفاده در ‪UDP‬‬
‫‪7‬‬
‫‪TCP/IP Protocol Suite‬‬
‫آدرس سوکت‬
‫آدرس سوکت‪ :‬ترکیبی از آدرس ‪ IP‬و شماره ی پورت می باشد‬
‫‪8‬‬
‫‪TCP/IP Protocol Suite‬‬
‫مثال ‪1‬‬
‫یک کالینت ‪ SNMP‬مقیم در میزبانی با آدرس ‪ 132.23.43.31 IP‬پیغامی را به سرور‬
‫‪( SNMP‬پورت‪ (161:‬مقیم در یک میزبان با آدرس ‪ 32.23.2.1‬ارسال می کند‪ .‬دو سوکت‬
‫استفاده شده در این ارتباط چیست؟‬
‫حل‪ :‬در کالینت ‪ ،‬آدرس سوکت ترکیب آدرس ‪ IP‬و پورت بی دوام ‪ X‬است ‪(132.23.43.31,‬‬
‫)‪ .X‬در سرور‪ ،‬آدرس سوکت )‪ (32.23.2.1, 161‬است‪.‬‬
‫‪9‬‬
‫‪TCP/IP Protocol Suite‬‬
‫فرمت دیتا گرام کاربر‬
‫بسته ی ‪ UDP‬را دیتا گرام می نامند و دارای سرآیندی با طول ثابت ‪ 8‬بایت است‪.‬‬
‫کنترل خطا برای دیتا گرام کاربر‬
‫‪10‬‬
‫‪TCP/IP Protocol Suite‬‬
‫بسته بندی و باز کردن بسته های‬
‫‪ :UDP‬سرویس بدون اتصال است‬
‫دیتا گرامهای کاربر دارای شماره نیستند‬
‫رابطه ای میان دیتا گرامها وجود ندارد حتی اگر از کاربر یکسانی رسیده باشند‬
‫‪ :UDP‬سرویس بدون اطمینانی است‬
‫هیچ کنترل خطا و جریانی در آن‬
‫انجام نمی شود‬
‫‪11‬‬
‫‪TCP/IP Protocol Suite‬‬
‫صف ها در ‪UDP‬‬
‫یک صف ورودی و یک صف خروجی برای فرستادن و دریافت اطالعات وجود دارد‪.‬‬
‫صفها معموالً با شماره ی پورتها مشخص می شوند‪.‬‬
‫‪12‬‬
‫‪TCP/IP Protocol Suite‬‬
‫کاربردهای ‪UDP‬‬
‫•‪ UDP‬برای فرآیندی که به ارتباط ساده که در آن کنترل خطا و جریان اهمیت ندارد‬
‫مناسب می باشد‪.‬‬
‫•‪ UDP‬برای فرآیندی با مکانیز کنترل خطا و جریان داخلی مناسب است مثل ‪Trivial‬‬
‫)‪File Transfer Protocol (TFTP‬‬
‫•‪ UDP‬برای پروتکل انتقال برای مولتی کستینگ مناسب است‬
‫•‪ UDP‬برای فرآیندهای مدیریتی مثل ‪ SNMP‬مناسب است‪.‬‬
‫•‪ UDP‬برای پروتکلهای به روز رسانی مانند ‪Routing Information Protocol‬‬
‫)‪ (RIP‬مناسب است‬
‫‪13‬‬
‫‪TCP/IP Protocol Suite‬‬
Transmission
Control Protocol
14
‫ویژگیهای ‪TCP‬‬
‫•‬
‫•‬
‫•‬
‫‪ TCP‬پروتکلی اتصال گرا است‬
‫‪ TCP‬پروتکلی قابل اطمینان است‬
‫‪ TCP‬ارتباطی دو طرفه کامل (‪ )full-duplex‬است‬
‫‪ TCP‬از شماره ی پورت برای مشخص کردن و تشخیص فرآیندها استفاده می کند‪.‬‬
‫بسته در ‪ TCP‬را قطعه (‪ )segment‬می گویند‬
‫‪15‬‬
‫‪TCP/IP Protocol Suite‬‬
‫پورتهای معروف استفاده شده در ‪TCP‬‬
‫‪16‬‬
‫‪TCP/IP Protocol Suite‬‬
‫بافرهای فرستادن و دریافت کردن‬
‫یک بافر حلقوی برای ارسال و دریافت داده ها استفاده می شود‪.‬‬
‫بایتهای فرستاده شده از بافر پس از اعالم وصول شدن خارج می شوند‬
‫‪17‬‬
‫‪TCP/IP Protocol Suite‬‬
‫سیستم شماره گذاری‬
‫‪ TCP‬بایتهای داده ای را که در هر اتصال انتقال می یابند شماره گذاری می کند‪.‬‬
‫اعداد از یک شماره ی تصادفی شروع می شوند‪.‬‬
‫مقداری که در فیلد شماره ی ترتیب یک سگمنت وجود دارد‪ ،‬شماره ی اولین بایت داده ای را در آن سگمنت‬
‫مشخص می کند‪.‬‬
‫مقدار فیلد اعالم وصول در سگمنت ‪ ،‬شماره ی بایت بعدی که انتظار می رود دریافت شود را تعریف می کند‪.‬‬
‫‪18‬‬
‫‪TCP/IP Protocol Suite‬‬
‫مثال ‪1‬‬
‫فرض کنید یک اتصال ‪ TCP‬در حال انتقال فایلی با طول ‪ 3000‬بایت است‪ .‬اولین بایت با ‪10001‬‬
‫شماره گذاری می شود‪ .‬شماره ی ترتیب برای هر سگمنت در صورتی که داده ها در سه سگمنت‬
‫فرستاده شوند و هر کدام ‪ 1000‬بایت را منتقل کنند‪ ،‬چیست؟‬
‫حل‬
‫قسمت اول شماره ی ترتیب را برای هر سگمنت نشان می دهد‬
‫)‪Segment 1 ➡ Sequence Number: 10,001 (range: 10,001 to 11,000‬‬
‫)‪Segment 2 ➡ Sequence Number: 11,001 (range: 11,001 to 12,000‬‬
‫)‪Segment 3 ➡ Sequence Number: 12,001 (range: 12,001 to 13,000‬‬
‫‪19‬‬
‫‪TCP/IP Protocol Suite‬‬
‫فرمت سگمنت ‪TCP‬‬
‫سرآیند ‪ TCP‬شامل ‪ 20‬تا ‪ 40‬بایت است‪.‬‬
‫‪20‬‬
‫‪TCP/IP Protocol Suite‬‬
‫‪Control field‬‬
‫اورژانسی معتبر است‬
‫مقدار فیلد اشاره گر ِ‬
‫مقدار فیلد اعالم وصول معتبر است‬
‫داده های پوش‬
‫اتصال باید بازنشانی شود‬
‫همزمانی شماره های ترتیب در حین اتصال‬
‫پایان دادن اتصال‬
‫‪21‬‬
‫‪TCP/IP Protocol Suite‬‬
‫‪Figure 3‬‬
‫اتصال ‪TCP‬‬
‫‪ TCP‬اتصال گرا است‪ .‬یک پروتکل انتقال اتصال گرا ‪ ،‬مسیری مجازی میان‬
‫مبدا و مقصد ایجاد می کند‪ .‬سپس تمام سگمنتهای یک پیغام از این مسیر‬
‫مجازی فرستاده می شوند‪.‬‬
‫یک انتقال اتصال گرا به سه فاز نیاز دارد‪:‬‬
‫)‪ (1‬ایجاد اتصال‬
‫)‪ (2‬انتقال داده‬
‫)‪ (3‬قطع اتصال‬
‫‪22‬‬
‫‪TCP/IP Protocol Suite‬‬
‫ایجاد اتصال با استفاده از تبادل سه طرفه‬
‫‪ :Rwnd‬اندازه ی پنجره ی دریافت کنند‬
‫‪23‬‬
‫‪TCP/IP Protocol Suite‬‬
‫ایجاد اتصال در ‪TCP‬‬
‫سرور باید آماده ی قبول اتصاالت باشد‪ ،‬یعنی بطور انفعالی باز باشد‪.‬‬
‫کالینت درخواستی را برای باز کردن فعال صادر می کند‪.‬‬
‫)‪ (1‬ابتدا کالینت یک سگمنت ‪ SYN‬می فرستد‪ ،‬یعنی سگمنتی که پرچم ‪ SYN‬آن یک است‪.‬‬
‫یک سگمنت ‪ SYN‬نمی تواند هیچ داده ای را منتقل کند ‪ ،‬فقط یک شماره ی ترتیب دارد‪.‬‬
‫این شماره ی ترتیب را شماره ی ترتیب اولیه (‪ )ISN‬می گویند‪.‬‬
‫(‪ )2‬پس از آنکه سگمنت ‪ SYN‬را سرور دریافت کرد‪ ،‬یک سگمنت ‪ SYN+ACK‬را می فرستد‪.‬‬
‫سگمنت دارای دو پرچم یک شده است‪ SYN :‬و ‪ ، ACK‬و همچنین دارای اندازه ی پنجره است که‬
‫نشان دهنده ی حداکثر تعداد بایتهایی است که می توانند فرستاده شوند سگمنت ‪ SYN+ACK‬نمی‬
‫تواند داده ای را منتقل کند‪ ،‬اما یک شماره ی ترتیب را مصرف می کند‪.‬‬
‫(‪ )3‬پس از دریافت ‪ ، SYN+ACK‬کالینت یک سگمنت ‪ ACK‬به سرور می فرستد‪ .‬سگمنت ‪ ACK‬اگر‬
‫داده ای نداشته باشد‪ ،‬هیچ شماره ی ترتیبی مصرف نمی کند‪.‬‬
‫اکنون اتصال ‪ TCP‬برقرار شده است‪.‬‬
‫‪24‬‬
‫‪TCP/IP Protocol Suite‬‬
‫حمله ی سر ریز ‪SYN‬‬
‫روال ایجاد اتصال در ‪ TCP‬دارای مساله ی حمله ی سرریز ‪ SYN‬است‪.‬‬
‫یک حمله کننده با سوء نیت تعداد زیادی سگمنت ‪ SYN‬با استفاده از آدرسهای ‪ IP‬جعلی به سرور می فرستد‪.‬‬
‫سرور فرض می کند که کالینت یک باز کردن فعال درخواست کرده و منابع را به آن اختصاص می دهد‪ .‬در این‬
‫زمان ‪ ،‬منابع زیادی بدون اینکه استفاده شوند اختصاص داده شده اند‪ .‬سپس سرور سگمنتهای ‪ SYN+ACK‬را به‬
‫کالینتهای جعلی می فرستد که گم می شوند‪ .‬در این زمان ‪ ،‬سرور ممکن است با کمبود منبع مواجه شود و یا حتی‬
‫دچار خرابی شود‪ .‬به این گونه حمالت رد حمله ی سرویس (‪ )denial of service attack‬می گویند‪.‬‬
‫محافظت‪:‬‬
‫‪25‬‬
‫(‪ )1‬محدود کردن تعداد اتصاالت در حین یک دوره زمانی خاص‬
‫(‪ )2‬فیلتر کردن سگمنتها از آدرس منابع نامطلوب‬
‫(‪ )3‬تاخیر در تخصیص منابع تا زمانی که کل اتصال برقرار شود‬
‫‪TCP/IP Protocol Suite‬‬