جمعه, ۷ اردیبهشت, ۱۴۰۳ / 26 April, 2024
مجله ویستا

شبکه و اینترنت


شبکه و اینترنت
در این مقاله به ساختار درونی Internet Relay Chat ) IRC ) خواهیم‌ پرداخت پروتکلIRC برای گفت‌وگوهایی برپایه متن مورد استفاده قرارمی‌گیرد، این نوع چت از سال ۱۹۸۹ به بعد و زمانی که کاربران برای گفت‌وگو از چت‌های BBS استفاده می‌کردند ایجادشد. پروتکل IRC برای ارتباطات از روش کارگزار ـ کارفرما استفاده می‌کند و روی بسیاری از کامپیوترها بصورت توزیع‌شده شروع به فعالیت خواهدکرد. در این ساختار سیستم کارگزار بعنوان یک نقطه مرکزی برای کاربرانی که به آن وصل‌هستند عمل می‌کند و پیغام‌های دریافت شده رادر یک محیط اشتراکی رد و بدل می‌کند.
اجزای یک چت IRC به شرح زیراست:
۱) کارگزارها:
کارگزار ستون فقرات اصلی یک چت IRC را تشکیل می‌دهد و این تنها اجزای این پروتکل است که قادر به پیوند همه اجزا با یکدیگر می‌باشد. کارگزار یک نقطه به برنامه کارفرمایانی که برای صحبت‌کردن می‌خواهند به چت متصل شوند و باکاربران دیگر ارتباط برقرارکنند ایجاد می‌کند و همچنین کارگزار مسئول سرویس‌های تعریف‌شده به وسیله پروتکل IRC می‌باشد.
۲) کارفرماها:
هرچیزی که در حال ارتباط باکارگزار باشد، کارفرما نامیده‌ می‌شود، در نظر داشته‌باشید که یک کارگزار نمی‌تواند به عنوان یک کارفرما به server متصل شود. در این سیستم‌ها دو نوع کارفرما وجود دارد که هرکدام هدف‌های خاص خود را دارند که عبارتنداز:
۲ـ۱) User Clients:
User Clients معمولاً برنامه‌هایی هستند که به‌صورت یک محیط Text Base می‌باشند و برای ارتباط متقابل با IRC مورد استفاده قرارمی‌گیرند، به این نوع بخصوص از کارفرمایان User (کاربر) گفته می‌شود.
۲ـ۲) Service Clients:
برخلاف کاربران، قصد این نوع از کارفرمایان صحبت‌کردن در محیط IRC نیست. بلکه آنها دسترسی محدود شده‌ای به توابع پروتکل‌چت دارند و آنها می‌توانند به داده‌های خصوصی کارگزاران دسترسی داشته‌باشند. سرویس‌ها به‌صورت خودکار برای ایجاد انواع سرویس به‌کاربران به‌کار می‌روند که البته لزوماً ارتباطی با IRC ندارند. به عنوان مثال می‌توان به سرویس جمع‌آوری آمار اشاره‌کرد که اطلاعاتی از قبیل اینکه کاربران ازکجا به شبکه IRC متصل‌شده‌اند را بدست‌می‌آورد.
● ساختار:
یک شبکه IRC به‌وسیله یک گروه از کارگزارانی که به‌جاهای دیگر متصل شده‌اند تعریف شده‌است که ساده‌ترین شکل شبکه IRC یک تک‌کارگزار می‌باشد.
پیکربندی ساختار IRC به شبکه بشکل درختواره‌ای می‌باشد که هرکارگزار یک گره اصلی از این درخت را تشکیل می‌دهد و کاربران می‌توانند به هریک ازاین گره‌ها متصل‌شوند. پروتکل IRC هیچ‌گاه دو کاربر را به‌صورت مستقیم به یکدیگر متصل نمی‌کند و هرگونه ارتباط بین کاربران از طریق پخش‌کردن اطلاعات بین کاربران بوسیله کارگزار انجام می‌شود.
● سرویس‌های پروتکل IRC:
در این قسمت به توضیح در مورد سرویس‌های ارائه‌شده توسط پروتکل IRC خواهیم‌پرداخت. ترکیب این سرویس‌ها باعث ایجاد کنفرانس‌های Real Time خواهد شد.
۱) مسیریاب کاربر:
برای انتقال پیغام‌ها، دوکاربر می‌بایست در چت یکدیگر را مشخص کنند. به محض وصل‌شدن یک کاربر به کارگزار یک برچسب به‌آن داده‌می‌شود که از طریق آن برچسب توسط کارگزاران و کاربران دیگر قابل شناسایی باشد و کارگزاران مسئول نگهداری این برچسب‌ها می‌باشند زیرا با ازبین رفتن آنها دیگر نمی‌توان کاربر متصل به‌چت را شناسایی‌کرد.
۲) پخش کننده پیغام:
همانطوری که قبلاً اشاره‌شد دو کاربر هیچگاه نمی‌توانند یک ارتباط مستقیم برای ردو بدل کردن پیغام‌ها با سیستم یکدیگر داشته باشند و یک‌کارگزار مسئول انجام این عمل‌است و به عنوان واسط بین دو کاربر قرارخواهد گرفت و پیغام را از کاربر مبدا گرفته و به‌کاربر مقصد خواهدرساند.
۳) مدیریت چت و کانال‌ها:
یک کانال به قسمتی گفته می‌شود که کاربران در گروه‌های ۱ یا چند نفره قرار می‌گیرند که تمام آنها پیغام‌هایی که به آن کانال فرستاده می‌شود را دریافت خواهندکرد. یک کانال از نامی که به آن داده‌می‌شود مشخص خواهدشد و در هرکانال خواصی وجوددارد که به وسیله کاربران حاضر درآن کانال قابل تغییر می‌باشد.
هدف از ایجاد کانال‌ها این است که پیغام‌هایی به چندین کاربر حاضر در کانال ارسال‌شود. و کانال‌های میزبان کارگزاران برای تسهیم پیام‌ها بین کاربران مورد استفاده قرار می‌گیرد. همچنین کارگزارها مسئول مدیریت کانال‌ها می‌باشند و اطلاعات مربوط به شناسایی کاربران هرکانال را نگهداری می‌کنند. البته تمام اعمال مدیریتی کانال‌ها که برعهده کارگزاران گذارده شده در IRC Channel Management تعریف شده‌است.
● مفاهیم IRC:
در این قسمت به توضیح مفاهیم داخلی سازماندهی پروتکلIRC و همچنین چگونگی تحویل کلاس‌های پیغام‌های متفاوت خواهیم‌پرداخت که به مفاهیم ارتباط یک‌به یک و یک‌به چند و یک به همه می‌پردازیم.
▪ ارتباط یک به یک:
اساس ارتباط در شکل یک‌‌به‌یک معمولاً بوسیله کاربران ایفا می‌شود. برای اینکه کارفرمایان بتوانند با یکدیگر ارتباط برقرارکرده و پیغام ارسال‌کنند مستلزم این است که کارگزاران قادر باشند پیام‌ها را در یک مسیر مستقیم در طول ساختار درختواره ارسال کنند تابه کاربر موردنظر فرستاده شود. بدین ترتیب مسیری که پیام‌ها طی خواهندکرد کوتاه‌ترین مسیر بین دو نقطه مبدا و مقصد در ساختار درختواره IRC می‌باشد.
برای درک دقیق‌تر ارتباط یک به یک در این محیط به مثال‌های زیر توجه کنید:
۱) ارسال پیغام‌ از کارفرمای ۱ به کارفرمای ۲ فقط توسط کارگزارA انجام خواهدپذیرفت که این انتقال راحت‌ترین ارسال پیغام می‌باشند زیرا کاربر مبدا و مقصد در یک کارگزار هستند.
۲) ارسال یک پیغام از کارفرمای شماره ۱ به کارفرمای ۳ مستلزم عبور از کارگزار A,B می‌باشد. رد این حالت بقیه کارگزاران و کارفرمایان به این پیغام دسترسی نخواهندداشت.
۳) اگر قرار باشد که یک پیغام ازکاربر ۲ به کاربر ۴ انتقال داده‌شود می‌بایست از گره‌های A,B,C,D عبورکند تا به کاربر مقصدبرسد.
▪ ارتباط یک به چند:
هدف اصلی IRC ایجاد انجمن‌هایی برای سخنرانی‌های کارآمد و راحت می‌باشد که ارتباط یک به چند این گونه ارتباط را پشتیبانی خواهدکرد. IRC چندین معنی را برای این امر ارائه می‌کند که در زیر به آنها اشاره‌می‌کنیم.
ـ به یک کانال:
در IRC کانال‌ها شبیه گروه‌ها می‌باشند و کاری شبیه به‌هم انجام می‌دهند از جمله اینکه هردوی آنها پویا هستند. گفت‌وگوهایی که با خارج از کانال انجام می‌گیرد باید فقط به کارگزاران ارسال‌شود و کارگزاران، کاربران داخل یک کانال مشخص را پشتیبانی می‌کنند و از این طریق باآنها ارتباط برقرار می‌شود بعلاوه اینکه پیغام‌ها فقط یکبار می‌بایست به‌هر پیوند محلی فرستاده شوند سپس هرکارگزار مسئول فرستادن پیغام اصلی به کارفرمایان موردنظر می‌باشد و همچنین باید از رسیدن پیغام به کارفرمایان اطمینان حاصل‌شود. برای درک بیشتر به مثال‌های زیر توجه‌کنید:
۱) فرض کنید چند کانال وجود داشته باشد که در هر کانال ۱ کاربر حاضرباشد. پیغام‌هایی که قراراست به کانال‌فرستاده‌شود فقط به کارگزار ارسال می‌شوند.
۲) فرض کنید دو کاربر در یک کانال هستند. اگر قرار براین باشد که پیغام‌های خصوصی بین دو کاربر خارج از یک کانال انتقال داده‌شود همه پیغام‌ها یک مسیر راطی خواهندکرد.
۳) فرض کنید که سه‌کاربر ۱و ۲و ۳ در یک کانال قرار داشته‌باشند. همه پیغام‌هایی که به کانال ارسال‌شود به هر سه کاربر ارسال خواهدشد و اگر یک پیغام به‌صورت خصوصی ارسال‌شود می‌بایست فقط به کاربر موردنظر ارسال‌شود. در شکل ساختار درختواره توجه کنید، اگر کاربر ۱ که به کارگزار A متصل شده‌است یک پیغام ارسال‌کند این پیغام ابتدا به کاربر ۲ و سپس به کارگزار B به کاربر ۳ نیز ارسال خواهدشد و این در زمانی است که هر۳ کاربر دریک کانال قرارداشته باشند.
ـ به یک میزبان:
برای ارسال پیغام‌ها به تمام کاربران متصل به تمام شاخه‌های درختواره از مکانیزم خاصی استفاده می‌شود. این پیغام‌های به میزبان کاربران و فقط به مکان‌هایی که کاربران حاضر هستند فرستاده‌خواهدشد بطور کلی می‌توان گفت که پیغام‌ها به تمام کانال‌ها و کارفرمایان ارسال خواهدشد.
ـ به یک لیست:
این روش کمترین بهره‌وری را در گفت‌و‌گوها و ارتباطات یک به چند دارد، در این روش کاربران با لیست مشخصی در ارتباط هستند که این لیست می‌تواند شامل کاربران و کانال‌های مختلف باشد. حال در مورد اینکه چگونه اینکار انجام می‌گیرد توضیح مختصری می‌دهم: کارفرما یک لیست از مقصدهایی که قراراست پیغام‌هایش به آنها ارسال‌شود ایجاد می‌کند، بعد از ارسال پیغام توسط کارفرمای فرستنده، لیست مقصدها توسط کارگزار مربوطه مدیریت شده و آدرس مقصدها گسیل می‌شود و همچنین از پیغام چندین کپی گرفته‌شده و به اعضای موجود در لیست مقصدها ارسال خواهدشد. اینکار ممکن است چندان کارآمد نباشد زیرا ممکن‌است لیست مقصد نقض‌شود بنابراین پیغام‌ها بدون اطمینان از اینکار درهر مسیر به‌طور تکراری ارسال شده‌اند یا خیر به کار خود ادامه می‌دهند.
▪ ارتباط یک به همه:
نوع پیغام یک به همه بهتر از انواع دیگر می‌باشد و شرح آن بدین شکل است که پیغام به همه کارفرمایان یا کارگزاران و یاهردو Broadcast(پخش) می‌شود. برای بعضی از گروه پیغام‌ها، اختیاری وجود ندارد اما برای Broadcast کردن آن به همه کارگزارها اطلاعات نگه‌داشته شده‌توسط هرکارگزار میان کارگزاران سازگار است. که این نوع ارتباط انواع مختلف دارد که در مورد آنها توضیح می‌دهم.
ـ کارفرما به کارفرما:
هیچ کلاس پیغامی برای فرستادن یک پیغام به تمامی کارفرمایان دیگر (broadcasting) وجود ندارد.
ـ کارفرما به کارگزار:
نتایج اغلب فرمان‌هایی که باعث تغییر اطلاعات خاصی شده می‌بایست به همه کارگزاران ارسال‌شود که این توزیع و تغیییر نباید از طریق کارفرما انجام پذیرد، از جمله این اطلاعات می‌توان به عضویت کانال، مدکانال و وضعیت کاربر و غیره اشاره‌کرد.
ـ کارگزار به کارگزار:
تا زمانی‌که بیشتر پیغام‌ها بین کارگزاران به همه کارگزاران دیگر توزیع می‌شدند فقط احتیاج بود که پیغام به کاربر یا کانال و یاکارگزار موردنظر فرستاده‌شود، از آنجایی‌که این موارد آیتم‌های مقدماتی جست‌وجو در IRC هستند تقریباً همه پیغام‌های منشعب‌شده از یک کارگزار به همه کارگزارهای متصل‌شده دیگر پخش می‌شود.
● اشکالات متداول:
در پروتکل IRCچندین مشکل شناخته‌شده وجود دارد در این قسمت به توضیح مشکلات وابسته به ساختار پروتکل IRC می‌پردازیم.
▪ قابلیت سنجش:
این موضوع کاملاً مشخص‌شده که پروتکل IRC در محیط‌های بزرگ به خوبی عمل نمی‌کند، مشکل اصلی این است که تمام کارگزاران می‌بایست اطلاعاتی درباره کارگزاران دیگر در اختیار داشته باشند که از این اطلاعات می‌توان به مواردی چون کارفرمایان و کانال‌ها و از جمله اینها اشاره‌کرد که باید تغییرات در آنها خیلی زود Update شود.
▪ قابلیت اطمینال:
هنگامی که پیکربندی شبکه اجازه ایجاد یک ساختار درخت پویا را به کارگزاران IRC می‌دهد هر پیوند بین دو کارگزار و نقطه شکست کاملاً مهم می‌باشد، این موضوع بیشتر در شرح توضیح IRC-Server عنوان شده‌است.
● تراکم شبکه:
مشکل دیکر در رابطه با موضوع قابلیت سنجش و قابلیت اطمینان و ساختار درختواره این است که پروتکل و ساختار IRC در شبکه شلوغ و متراکم بشدت آسیب‌پذیر هستند. این مشکل همیشگی می‌باشد و باید در نسل بعدی چت‌ها IRC حل‌شود. اگر در IRC تراکم و اندازه ترافیک بالا باشد، منجر به قطعی ارتباط بین دو کارگزار خواهدشد این قطعی ارتباط خود باعث افزایش ترافیک می‌شود زیرا ارتباط مجدد دو کارگزار در نقطه‌ای دیگر باعث تشدید این امر خواهدشد. برای به حداقل رساندن اثرات این مشکلات این نکته شدیداً تاکید شده که هیچگاه بعد از قطع‌شدن ارتباط بین کارگزاران، برای ارتباط مجدد سریعاً تلاشی انجام نگیرد.
● حمله از نوع LAND :
در این روش تعداد زیادی بسته(Packet) بافلگ SYN برای هدف فرستاده می شود.نکته انجاس که این Packet ها حالت عادی ندارند و از ضعف tcp استفاده می کنند.در این روش خوصوصیات این بسته ها دست کاری شده به این صورت که
۱) ادرس فرستنده و گیرنده ادرس ماشین هدف ما است و یکی است.
۲) شماره پورت ماشین فرستنده و گیرنده هم یکی است و یکی از پورت های ماشین هدف ما است.
این نوع همه روی تمام سیستم عامل ها و سرورها و ...حتی روترها اجرا می شود .
می توانید این بسته های مشکل دار رو با نرم افزار ip sorcery یا hping استفاده کنید .از ابزار مثل Ethereal برای sniff کردن و از ابزار باحال tcpreplay برای replay کردن بسته ها استفاده کنید.
مثلا به یه file server با این روش حمله می شه اولش همه IE های کلاینت های تمصل به اون بسته می شه بعدش درصد پردازش CPU میشه خدا (۱۰۰%) بعدم همه چیز قفل می کنه و طرف مجبوره ریست کنه.این نوع حمله رو حمله DOS گویند.
توجه: نرم افزار ها رو می تونید خودتون پیدا کنید فقط از سایت اصلیشون دانلود کنید.
منبع : کلوب


همچنین مشاهده کنید