PDA

View Full Version : dns موازی و برنامه نویسی MultiThread



m_sardaari
یک شنبه 31 فروردین 1393, 17:52 عصر
سلام
دوستان کسی در مورد dns موازی و برنامه نوسی آن در زبان c++ و یا c# اطلاعی داره؟
منظورم از dns موازی اینه که مثلا بجای اینکه کل آدرس ها توسط یک پردازنده ترجمه شوند بیاییم در چند گروه تقسیمشون کنیم و با استفاده از چند نخی ، هر نخ وظیفه پردازش یک گروه رو انجام بده که در در این حالت speedUp را نسبت به حالت بدون استفاده از روش چند نخی محاسبه کنیم.

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

one hacker alone
یک شنبه 31 فروردین 1393, 20:26 عصر
سلام
DNS موازی یه مقوله ی جدایی نیست
همون طور که تو عنوان هم خودتون مطرح کردید برنامه نویسی چند نخی هست
برای اینکار شما باید یه پروژه ی سوکت رو شروع کنید و بسته های ارسالی و دریافتی رو بر اساس RFC 1034و1035 تنظیم کنید
در واقع خودتون یک DNS Service بنویسید سپس تو یه شبکه نسبتا بزرگ مثلا سایت دانشگاه اجراش میکنید
تعداد درخواست ها و مدت زمان پاسخ دهی
سری بعد شما درخواست هایی که از سمت کلاینت ها میاد رو وقتی با تابع Accept پذیرش میکنید اینجا باید thread ایجاد کنید برای هر درخواست
در نهایت زمان این رو هم مقایسه میکنید و در پایان میتونید یه مقایسه بینشون انجام بدید
و اگه الگوریتمی داشتید روی پروتکل پیاده سازی کنید و در قالب مقاله ارائه بدید

m_sardaari
دوشنبه 08 اردیبهشت 1393, 20:58 عصر
سپاس دوست عزیز بابت راهنماییتون
به نظرم سازوکار این موضوع مثل یک برنامه چت میمونه فقط تفاوتش در سرویسی که سرور میده است.
مشکلی که من دارم اینه که نمیدونم dns server چجوری سرویس رو برای کلاینت فراهم میکنه یا به عبارتی کد اون قسمت که سرور ، سرویس را فراهم میکنه شامل چه مواردی است.
از وبسایت های خارجی خواستم سورس کد یک dns server رو بگیرم بعد خودم بصورت چندنخی تغییرش بدم ولی متاسفانه موفق نشدم.
لطفا شما یا دوستان دیگر سورس کد یک dns server را اگر میتوانند برای بنده ارسال کنند.

Mr.orange
دوشنبه 08 اردیبهشت 1393, 21:08 عصر
سلام
سری بعد شما درخواست هایی که از سمت کلاینت ها میاد رو وقتی با تابع Accept پذیرش میکنید اینجا باید thread ایجاد کنید برای هر درخواست


جسارت میکنم؛
DNS مگه udp نیست؟!‌ تابع accept کجا بود؟!

این چیزی که شما میفرمایید معمولا در tcp انجامش میدن که برنامه بلوک نشه

در udp یک بسته میاد؛ و جوابشو میگیره و میره؛ حالا میتونیم این پروسه جواب دادنش رو رد یک نخ جداگانه انجام بدیم که در زمان صرفه جویی کنیم و به درخواست بعدی با سرعت بیشتری برسیم
این قضیه کاملا متفاوت با چیزه که شما فرمودید

یا اگه من اشتباه میکنم خوشحال میشم اصلاح کنید حرفم رو

one hacker alone
دوشنبه 08 اردیبهشت 1393, 21:21 عصر
بله دوست عزیز من اصلا حواسم نبود DNS برای سرعتی که باید داشته باشه از UDP و معمولا پورت 53 استفاده میکنه
جالب اینجاست که همین موضوع هم باعث حملات "مسموم سازی کش" میشه
ممنون


جناب m_sardaari (http://barnamenevis.org/member.php?330034-m_sardaari) شما برای تنظیم بسته های ارسالی از RFC هایی که معرفی کردم استفاده کنید
و ننمونه ی ساده رو بنویسید بعد در خصوص چند نخی صحبت میکنیم

m_sardaari
پنج شنبه 11 اردیبهشت 1393, 10:52 صبح
dns هم از udp و هم از tcp استفاده میکنه یا به عبارتی جواب های DNS که حجمشان بیشتر از 512 بایت است، از طریق TCP ارسال می شوند.درسته؟

دوست عزیز من تا حالا برنامه نویسی سوکت انجام ندادم و آشنایی با برنامه نویسی در این زمینه ندارم. و متاسفانه باید پروژه ام را تا آخر ماه تحویل بدم وقت نمیکنم از اول آموزش ها را بخوانم و بعد شروع به کدنویسی کنم....
لطفا اگه کسی کد یک dns server ساده رو داره بزاره یا برام پیام خصوصی کنه ممنون میشم.تا بعد بتونم از روی اون کد با روند کار آشنا بشم و به چند نخی تغییرش بدم.