Meysam's Experiences

MeyEx ,محلی برای انتشار تجربیات من در زمینه های مرتبط با حوزه ی تولید نرم افزار

Meysam's Experiences

MeyEx ,محلی برای انتشار تجربیات من در زمینه های مرتبط با حوزه ی تولید نرم افزار

Meysam's Experiences

در زمینه ی تولید نرم افزار فعالیت دارم. نوشته های این بلاگ به طور خاص در مورد تمامی زمینه هایی که منتهی به تولید نرم افزار و یا تجربیاتی که در محیط کاریم کسب می کنم خواهند بود. [البته فعلا به دلیل مشغله های جانبی دیگر و داشتن مخاطب در آن حوزه ها, مطالب کمی غیر نرم افزار شده است!]
در این بلاگ سعی شده که مطالب به صورت تخصصی و دسته بندی شده منتشر شوند

تابلوی اعلانات
جدیدترین نظرات

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

همانطور که در کلاس درس سیستم های توزیع شده به شکبه و نرم افزار بیت تورنت اشاره شد؛

کاربران از طریق این نرم افزار امکان به اشتراک گذاری فایل های خودشون را دارند. اما آنچه که بیش از این امکان باعث جذابیت این شبکه شده است؛ امکان یافتن و دریافت فایل هایی هست که شاید در هیچ وب سایتی نتوان به دست پیدا کرد.

همچنین سرعت دریافت اطلاعات از این شبکه نیز نکته ی دیگری است که در این مطلب قصد پرداختن به آن را ندارم.

آنچه که در این مطلب بدان خواهم پرداخت نحوه ی کارکرد این نرم افزار هست.

بیایید با یک سوال شروع کنیم.

؟

میثم فایلی مربوط به یک مقاله  را بر روی کامپیوتر خود دارد. با استفاده از نرم افزار بیت تورنت؛ آن را برای دریافت سایر افراد به اشتراک می گذارد.

 جان نیز در شبکه ی بیت تورنت با استفاده از نرم افزاری که بر روی سیستمش نصب کرده به دنبال همین فایل می گردد. متوجه می شود که خوشخبتانه این فایل توسط یک کاربر در شبکه به اشتراک گذاشته شده است. اقدام به دریافت فایل از طریق شبکه می کند.

سوالی که مطرح می شود این است که چه طور پس از قطع شدن اتصال میثم با شبکه ی تورنت؛ جان می تواند فایل مورد نظرش را همچنان از طریق شبکه دریافت نماید؟ - در نظر بگیرید که ممکن است میثم دیگر به شبکه باز نگردد-

با فرض اینکه این فایل توسط افراد دیگری نیز در شبکه به اشتراک گذاشته شده باشد, می توانیم این الگوریتم را برای عملکرد نرم افزار در نظر بگیریم:

1. نرم افزار نصب شده بر روی سیستم شخصی که فایل را به اشتراک می گذارد یک کد Hash از فایل می سازد و آن را به سرور تورنت ارسال می کند. همچنین نام فایل و برخی مشخصات فایل به سرور ارسال می شود.

2. شخص درخواست دهنده ی فایل در شبکه ی تورنت؛ در حقیقت درخواست خود را در مورد یک فایل بادارای کد Hash منحصر به فرد, ثبت می نماید.

(توجه: کد Hash بر اساس محتوای باینری فایل تولید می شود, لذا در صورتی که دو فایل با ساختار باینری و حجم یکسان داشته باشیم قطعا کد Hash آنها یکسان خواهد بود)

3. زمانی که کاربر ارائه کننده ی فایل - به طور مثال میثم- از شبکه خارج میشود؛ و کاربر درخواست دهنده ی فایل - به طور مثال جان- به شبکه متصل است؛  ادامه ی دریافت فایل به این صورت انجام می پذیرد که

3.1. سرور بر اساس کد Hash مورد درخواست؛ در شبکه به دنبال کاربر دیگری می گردد که فایلی با کد Hash مورد نظر را به اشتراک گذاشته باشد.

3.2. در صورت پیدا شدن کاربر مورد نظر؛ سرور بررسی می کند که چه میزان از فایل مورد نظر؛ توسط شخص درخواست دهنده؛ قبلا دریافت شده است؛

3.3. پس از مشخص شدن تعداد بلاک های دریافتی از فایل مورد نظر؛ سرور ادامه ی دریافت فایل را بر اساس بلاک های باقی مانده تنظیم می کند و ارتباط جدیدی بین کاربر درخواست دهنده و کاربر جدیدی که فایل را به اشتراک گذاشته است؛ شکل می گیرد.

توجه: این نکته نیز متصور است که زمانی که یک فایل به اشتراک گذاشته می شود؛ مستقیما  و ابتدائا به سرور اصلی تورنت منتقل می شود؛ و کاربران درخواست کننده ی فایل ؛ در صورتی که کاربر ارائه ی کننده فایل از شبکه خارج می شود؛ ادامه ی فایل را از سرور اصلی دریافت می کنند.

با توجه به این موارد؛ به دو مطلب می توان پرداخت؛

1. Hash Code چیست ؟ چگونه تولید می شود؟ و کاربرد آن در چه مواردی است؟

2. قابلیت دریافت ادامه ی فایل پس از قطع شدن اینترنت در نرم افزار هایی مثل Internet Download Manager چگونه انجام می شود؟ چرا بعضی از فایل ها امکان دریافت ادامه ی فایل پس از اتصال مجددا را دارند و برخی ندارند؟ (قابلیت Resume) که در هنگام دریافت فایل در نرم افزار IDM با وضعیت yes و no نمایش داده می شود.

هدف از نگارش این پست؛ دعوت به مشارکت بیشتر دوستان در بحث های کلاس و ارتقاء سطح علمی مربوط به درس سیستم های توزیع شده می باشد.

از کلیه ی دوستان می خواهم که در مورد این مطلب و یا مواردی مشابه ؛نظرات خود را اعلام نمایند تا انشاالله امکان بهره مندی هرچه بیشتر برای یکدیگر فراهم آوریم.

نظرات (۴)

http://www.anewproject.blogfa.com/post-255.aspx
همه چیز در مورد بیت تورنت
مهندس سیستم فوق العاده ای داره بیت تورنت .. من تو این شبکه فایلهایی پیدا کردم که در شبکه اینترنت پیدا نمی شد... امیدوارم همه دوستان از این سبکه استفاده کنند و گسترش این شبکه فراتر از اینترنت شود..
با سلام جناب هوشمند بزرگواری می فرمایید صدا جلسه اخر توزیع را بگذارید
پاسخ:
خانم مهندس ملکی
سلام
حتما؛
در حال بررسی و آماده سازی فایل ها هستم

وقتی میگین سیستم توزیع شده باز سرورچیه که میگین فایلروی سرور تورنت هست و جان ادامهفایل رو از سرور دریافت می کنه؟!

 

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی