بایگانیِ اکتبر 2010
با سيلاب بيت ها همراه شويد(نگاهی به پروتكل بيت تورنت)
BitTorrent پروتکلی ست که به منظور ارسال فایل طراحی شدهاست. در واقع نوعی ارتباط peer-to-peer میباشد که کاربران مستقیما به یکدیگر متصل میشوند و به ارسال و دریافت قسمتی از فایل میپردازند. گر چه فعالیتهای تمامی کاربران توسط یک سرور مرکزی به نام Tracker هماهنگ میشود، اما این سرور از محتویات فایلهایی که منتقل میشود بی اطلاع است.فلسفه کلیدی BitTorrent اینست که کاربران باید همزمان با دان لود کردن اطلاعات (دریافت inbound)، آپلود (ارسال outbound) نمایند.
برای توصیف بهتر این روند میتوان آن را به گروهی از افراد تشبیه کرد که دور یک میز نشستهاند. هر کدام از این افراد سعی دارند که کپی کاملی از یک کتاب را دریافت کنند. نفر اول اعلام میکند که صفحات ۱-۱۰، ۲۳، ۴۲-۵۰ و ۷۵ را دارد و نفرات سوم، چهارم و پنجم هر کدام قسمتهایی از این صفحات را ندارند. بنابراین هر یک برای گرفتن صفحات، خود را با نفر اول هماهنگ میکنند. نفر دوم اعلام میکند که صفحات ۱۱-۲۲، ۳۱-۳۷ و ۶۳-۷۰ را دارد. نفر اول، چهارم و پنجم به نفر دوم میگویند که بعضی از صفحات او را میخواهند و او هم کپی آن صفحات را به آنها میدهد. این روند ادامه مییابد تا وقتی که همه افراد کپی تمام کتاب را به دست بیاورند. همچنین دور این میز شخص دیگری وجود دارد که کپی کل کتاب را دارد. بنابراین احتیاج ندارد که برایش کپی صفحهای فرستاده شود. او صفحاتی را که هیچ کس ندارد بین افراد پخش میکند. در ابتدا هنگامی که افراد دور میز مینشینند، باید از او بخواهند که اولین سری کپی صفحات خود را به آنها بدهد. گرچه افراد سعی میکنند که صفحات مشابه را از او نگیرند، بعد از مدتی همگی اکثر کپی کتاب را دارند. بدین ترتیب این فرد میتواند کتابی را که دارد در اختیار افراد زیادی قرار دهد بدون اینکه مجبور باشد کل کپی را به تمام افراد بدهد. او میتواند در عوض، قسمتهای مختلف کتاب را به افراد متفاوت بدهد. و آنها قادر خواهند بود که این قسمتها را در بین خود پخش کنند.
اصطلاحات BitTorrent
- torrent یا سیل (جریان شدید): این اصطلاح معمولاً به فایل متادیتای کوچکی گفته میشود که از وب سرور(web server) با پسوند.torrent در یافت میکنیم. متادیتا در اینجا به معنی فایلی ست که اطلاعاتی در مورد دادهای که میخواهیم دان لود کنیم دارد و نه خود داده. این فایل هنگامی که بر روی لینک دان لود آن در یک وبگاه کلیک میکنید، به کامپیوتر ما فرستاده میشود. همچنین میتوان فایل torrent را بر روی سیستم محلی خود ذخیره کنیم و بعدها با کلیک بر روی آن، اقدام به دریافت آن کنیم.
- Peer یا همتا: Peer کامپیوتر دیگری ست که به آن متصل شده و داده را منتقل میکنیم. معمولاً یک Peer تمام فایل را ندارد. در غیر این صورت به آن Seed میگوییم. همچنین به Peerها Leech یا زالو هم گفته میشود که از کامپیوترهایی که دان لود خود را کامل کردهاند و کلاینت BitTorrent خود را فعال نگهداشته و به صورت Seed عمل میکنند، متمایز شوند.
- Leech یا زالو: به Peerای گفته میشود که به خاطر نسبت اشتراک پایین خود بر روی swarm تأثیر منفی میگذارد. به بیان دیگر بیشتر از اینکه آپ لود کند، دان لود میکند. اکثر Leechها، کاربرانی هستند که اتصالات نامتقارن دارند و کلاینت BitTorrent خود را بعد از اتمام دان لود برای عمل seeding باز نمیگذارند. حتی بعضی از Leechها به عمد با کلاینتهای تنظیم شده و یا محدود کردن سرعت ارسال، از آپ لود کردن جلوگیری میکنند. با این وجود اصطلاح Leech میتواند به جای Peer نیز بکار گرفته شود.
- Seed یا دانه : کامپیوتری ست که کپی کامل یک torrent مشخص را دارد. هنگامی که کامپیوتر ما به طور کامل فایل را دان لود کرد، تا زمانی که روی دکمهٔ پایان کلیک نکنیم و یا به هر طریق آن را نبندیم، باز باقی میماند. به این عمل Seed بودن و یا Seeding میگویند. همچنین میتوانیم یک کلاینت BitTorrent را با فایل کاملی شروع کنیم. به محض اینکه BitTorrent فایل را امتحان کرد، متصل شده و فایل مربوطه را برای افراد دیگر Seed میکند. در کل، بهتر است بعد از اینکه فایلی را به طور کامل دریافت کردیم، برای کمک به دیگران آن را Seed کنیم. همچنین هنگامی که فایل torrent جدیدی به Tracker فرستاده میشود، باید حداقل یک Seed موجود باشد که آن را برای دیگران قابل دستیابی کند. به یاد داشته باشید که Tracker هیچ چیز در مورد محتوای واقعی فایلها نمیداند. بنابراین مهم است که بعد از upload کردن یک فایل torrent در Tracker، آن را Seed کنیم.
- Reseed یا کاشت دوباره : هنگامی که هیچ Seed ای برای فایل تورنت مورد نظر موجود نباشد و Peerها با هم، کل فایل را نداشته باشند، تمامی Peerها فایل ناقصی دارند و هیچ یک، قسمتهای تکمیل کننده را ندارد. در این صورت کامپیوتری با فایل کامل (Seed)، باید به Swarm (گروه و دسته) متصل شود و قسمتهای ناقص فایل را ارسال کند. این عمل کاشت دوباره نام دارد. معمولاً یک درخواست برای عمل Reseed با تعهدی همراه است مبنی بر اینکه بعد از دان لود کامل فایل، فرد درخواست کننده باید برای مدت زمان مشخصی به منظور افزودن طول عمر به فایل تورنت به عنوان یک Seed عمل کند.
- Swarm یا گروه و دسته : به گروهی از ماشینها گفته میشود که به طور مشترک و جمعی برای یک فایل خاص به یکدیگر متصل هستند. برای مثال اگر یک کلاینت BitTorrent را راه اندازی کنیم و به ما بگوید که به ۱۰ Peer و ۳ Seed متصل هستیم، Swarm شامل کامپیوتر ما و ۱۳ نفر دیگر است.
- Tracker یا ردیاب : سروری ست در اینترنت که فعالیتهای کلاینتهای BitTorrent را هماهنگ میکند. هنگامی که تورنتی را باز میکنیم، ماشین ما با Tracker ارتباط برقرار میکند و لیستی از Peerها را برای تبادل اطلاعات دریافت میکند. این کار به طور دورهای و متناوب صورت میگیرد و Tracker میزان دان لود و آپ لود، میزان باقی مانده از فایل و وضعیتی که در حال حاضر داریم (شروع، پایان دان لود و توقف) را به ما نشان میدهد. اگر Tracker از کار بیفتد و بخواهیم یک تورنت را باز کنیم، قادر نخواهیم بود. اگر بعد از اتصال در حین ارتباط با Peerها و دان لود کردن فایل تورنت، Tracker از کار بیفتد، قادر به ادامه انتقال با آن Peerها خواهیم بود ولی هیچ Peer جدیدی قادر به برقرار کردن ارتباط با ما نخواهد بود. معمولاً خطاهای Trackerها موقتی هستند. بنابراین بهترین کار اینست که صبر کنیم و کلاینت را باز نگهداریم تا به فعاليت خود ادامه دهد.
- Share rating یا سرعت اشتراک : اگر از یک کلاینت آزمایشی با stats-patch استفاده میکنیم، میتوانیم سرعت اشتراک را در یک پنل GUI مشاهده کنیم. که نشان دهندهٔ نسبت مقدار آپ لود شده به مقدار دان لود شدهاست. مقدارهای بکار برده شده، تنها برای قسمتهای در حال انتقال هستند نه برای کل فایل. اگر نسبت اشتراک نشان داده شده برابر با ۱ باشد، بدین معنی ست که به همان میزانی که آپ لود نمودهایم، دان لود کردهایم. هر چه این عدد بزرگ تر باشد نشان دهنده اینست که یه میزان بیشتری ارسال کردهاید. اگر این نسبت ۰ بود، به این معنی ست که شما کل فایل را دریافت نمودهاید و به عنوان Seed فعالیت میکنید. بنابراین هر چه بیشتر به ارسال ادامه دهید میزان این نسبت به سمت بی نهایت میرود. این نسبت تنها به منظور آگاهی کاربران محاسبه میشود. در کل برای کمک به دیگران بهتر است همیشه این نسبت را به حداکثر مقدار برسانیم.
- distributed copies:در بعضیاز نسخه های نرم افزاری بيت تورنت اصطلاح ” اتصال به n،بذر(Seed) همچنين n.nnn بذر كپی توزيع شده . مثلا اگر كتابی 10 صفحه دارد Aصفحات 1 تا 5 را دارد و B صفحات 6تا10 را ، پس A و B مجموعا 10 صفحه كتاب را دارند حتی اگر هيچيك يك Seed نباشند.
- Choked یا مسدود شده : این اصطلاحی ست که در پروتوکل BitTorrent بکار رفتهاست و به حالتی از یک ارسال کننده فایل (uploader)اشاره دارد. وقتی که یک اتصال مسدود شدهاست به معنی ست که ارسال کننده در حال حاضر نمیخواهد دادهای به آن لینک ارسال کند. کلاینت BitTorrent، بنا به دلائلی سیگنالی به کلاینتهای دیگر میفرستد که مسدود شدن این لینک را اعلام کند. اما معمولاً بطور پیش فرض یک کلاینت (کلاینتی که بیشترین آپ لود را داشتهاست) آپ لودهای فعال خود را باز میگذارد و بقیه کلاینتها مسدود اعلام میشوند. مقدار پیش فرض ۴ میباشد که مشابه تنظیمات کلاینت BUI آزمایشی ست که میتوان تغییر داد. یک اتصال میتواند به دلائل دیگری نیز مسدود شود. به طور مثال هنگامی که یک Peer مشغول دریافت فایلی از یک Seed است که نمیخواهد دادهای را ارسال کند، اتصالش مسدود شده اعلام میشود. توجه داشته باشید که اگر هر اتصال دوطرفه و قرینه باشد، دو علامت نمایش انسداد برای هر اتصال (انتهای هر ارسال کننده) خواهیم داشت.
- Interested یا مشتاق : اصطلاح دیگری ست که در پروتوکل BitTorrent بکار برده میشود که در نتیجهٔ علامت انسداد ایجاد شدهاست و به نشان دهندهٔ حالتی ست که فرد دان لود کننده در انتظار اتصال و دریافت قسمتی از فایل است. فرد دان لود کننده هنگامی مشتاق نامیده میشود که در کلاینت مقابل، قسمتی از فایل موجود باشد که این فرد احتیاج دارد.
- Snubbed یا منع شده : اگر کلاینت هیج دادهای را بعد از مدت زمان مشخصی (بطور پیش فرض ۶۰ ثانیه) دریافت نکند، منع شده نامیده میشود. این حالت هنگامی رخ میدهد که از ارسال Peer مقابل، برای مدتی جلوگیری شده باشد. بعضی از اوقات کلاینت در حالتی قرار میگیرد که با اینکه به تعداد زیادی از Peerها متصل است، ولی توسط تمام آنها مسدود شدهاست. این کلاینت از علامت منع شده استفاده میکند تا از این موقعیت خارج شود. این علامت نشان میدهد که یک Peer که میخواهد تکههایی از فایل را انتقال دهد، برای مدتی چیزی ارسال نکردهاست
- Optimistic unchoking یا اتصال مجدد خوشبینانه : کلاینتها به طور متناوب، لیستی از ارسال کنندهها را بازنگری میکنند و تلاش میکنند تا اتصالات جدیدی را که قبلا مسدود شده بودند، برقرار کنند و اتصالاتی را که برقرار کرده بودند را مسدود کنند. این اعمال را میتوان هر ۱۰ یا ۲۰ ثانیه با مشاهدهٔ “Advanced” از یکی از کلاینتها بررسی کرد.
BitTorrent چگونه کار میکند؟
پروتوکل BitTorrent فایلها را به تکههای کوچک، معمولاً یک چهارم مگابایت (۲۵۶ KB) میشکند. هر چه اندازهٔ فایل بزرگتر باشد، تکهها نیز بزرگتر خواهند بود. به طور پیش فرض اندازه تکهها برای یک فایل ۴٫۳۷ گیگا بایتی، ۴ مگابایت میباشد. Peerها تکههایی را که ندارند از یکدیگر دانلود میکنند و تکههایی را که Peerهای دیگر ندارند برایشان آپلود میکنند. این پروتوکل به اندازهٔ کافی هوشمند است که Peerای را انتخاب کند که بهترین اتصال را داشته باشد. برای بالا بردن کارایی کل swarm، کلاینتهای BitTorrent قسمتهایی را درخواست میکنند که کمیاب ترند. به عبارت دیگر قسمتهایی که در Peerهای کمتری وجود دارند، میتوانند برای Peerهای بیشتری مفید باشند. تکههای فایلها معمولاً به ترتیت دان لود نمیشوند و احتیاج به مرتب سازی در ماشین دریافت کننده دارند. توجه داشته باشید که کلاینتها قبل از اینکه کل فایل دان لود شود، تکهها را برای Peerهای دیگر آپ لود میکنند. بنابراین اشتراک گذاری برای هر Peer با یک فایل کوچک با پسوند.torrent آغاز میشود که یک فایل اشاره گر (pointer) است که شامل اطلاعاتی از قبیل نام فایل و اندازه آن دارد.دانلود کردن با BitTorrent بسیار آسان است. با یک فایل با پسوند.torrent آغاز میشود. هر فرد که میخواهد فایل را دانلود کند، ابتدا باید این فایل کوچک را دریافت نماید و آن را توسط نرم افزارهای کلاینت BitTorrent باز کند. فایل تورنت، آدرس tracker ای را که لیستی از کاربرانی که مشغول دانلود فایل هستند و محل قرار گرفتن تکههای فایل را میداند، به کلاینت میدهد. برای هر منبع قابل دسترس، کلاینت متوجه میشود که کدام بلاک از فایل مورد نظر قابل دستیابی هستند. به محض اینکه کلاینت دریافت یک بلاک را کامل کرد، آن را هش (Hash) میکند تا مطمئن شود که این بلاک با فایل تورنت متناسب است. سپس به دنبال کسی میگردد که این فایل را برایش آپلود کند.اگرچه BitTorrent پروتوکل خوبی برای کاربران پهن باند (BroadBand) میباشد، برای اتصالات dial up که بطور مداوم قطع میشوند، کمتر کارایی دارد. به بیان دیگر سرورهای HTTP زیادی اتصالات خود را برای ساعات طولانی قطع میکنند. در حالیکه تورنتهای زیادی وجود دارند که هنوز دان لود خود را تکمیل نکردهاند.
چگونه از بيت تورنت استفاده كنيم ؟
شما در ابتدا بايد نرم افزار مربوط به آن را دانلود و نصب كنيد كلاينت بيت تورنت شما را قادر می سازد تا جستجو كنيد برای يافتن فايل های تورنت مورد نظر خود توسط جعبه جستجویداخلی كه در نرم افزار تعبيه می شود( “Search for torrents”) . اين دسته از نرم افزارهای امكانات متنوعی را به كار بر می دهند چون دانلود به طور همزمان ، نمايش آماری از اطلاعات ، تعداد Seek ها ، و …
- دانلود نرم افزار µTorrent كه زبان فارسی رو هم پشتيبانی می كند
- Get BitTorrent
علاوه بر نرم افزارهای مذكور شما می تونيد از سرويس های جستجوی و دانلود فايل های تورنت هم استفاده كنيد سرويس هایی مانند:
منابع : ويكيپديا فارسی
صفحات پویا در مقابل صفحات ایستا
صفحه ی وب که اطلاعات یکسانی را برای کاربران نمایش می دهد این صفحات معمولا با زبان Html(Hypertext MarkupLanguage) نوشته می شوند و مواردی را نمایش می دهند که تنها در صورت تغییر دستورات Html قابل تغییر هستند .
Html دو ویژگی اصلی دارد : ابر متن (HyperText)و سراسری بودن (Universality).
ابر متن یعنی شما می توانید یک پیوند روی صفحه ی وب ایجاد کنید تا مراجعه کننده را به صفحه ی دیگری بر روی اینترنت و یا هر چیز دیگری بفرستد که این به معنی در دسترس قرار گرفتن اطلاعات در اینترنت است .
سراسری بودن به این معنی است که چون سندهای Html به صورت فایل های متنی ساده ذخیره می شوند. و مهم نیست که ایا مراجعه کننده از یک ماشین با سیستم عامل ویندوز استفاده می کند یا لینوکس .چون مرورگر وب که به عنوان یک نرم افزار جانبی است وظیفه ی تفسیر صفحات را بر عهده دارد.
در این زبان عناصر صفحه با تگ یا برچسب مشخص می شوند که برای فرمت دهی , شاخص زنی یا مرتبط کردن اطلاعات موجود در سند استفاده می شود . تگ ها به شکل یک جفت علامت بزرگ و کوچک هستند که یک یا چند حرف یا عدد درون انها نوشته می شود علامت “/” برای مشخص کردن انتهای هر تگ است مانند:
<i>Hello World</i>
که متن موجود را به صورت ایتالیک نمایش می دهد.
صفحه ی وب پویا (dynamic Page):
صفحه ی وب که شکل ان ثابت ولی محتوای ان متغیر بوده و با توجه به معیارهای جستجوی یک شخص می تواند اطلاعات مشخصی را بدهد. از بخش های مهم صفحات پویا پایگاه داده ان است که به عنوان منبع ورودی و خروجی اطلاعات است مثلا: کاربر اطلاعاتی در زمینه کتاب های Asp درخواست می کند این درخواست به پایگاه اطلاعاتی داده و نتایج ان برای کاربر نمایش داده می شود و یا اخبار جدید را از جدول خبر پایگاه داده بگیر و ان را نمایش بده اگر شما می خواستید اخبار جدید را هر روز در صفحات ایستا وارد کنید باید با قسمت کد صفحه کار می کردید که کاری بسیار کسل کننده بود و نیاز به مهارت در زبان Html داشت . ولی در صفحات پویا شما متن اخبار را در جعبه ی متنی وارد و به راحتی ان را برای نمایش وارد پایگاه داده می کنید.
توجه داشته باشید که یک صفحه ی وب به سبب داشتن فایل های تصویری از جمله عکس , فایل فلش و … صفحه ی پویا به شمار نمی اید.
از محبوبترین زبان ها ی تولید کننده صفحات پویاAsp.net و php را می توان نام برد.(Perl HyperTextPreprocessor,Active server page)
نحوه ی پردازش صفحات ایستا و پویا:
وقتی شما یک صفحه ی Html را درخواست می کنید سرویس دهنده فایل متنی ان صفحه را یافته و برای شما ارسال می کند و مرورگر ان فایل متنی را می خواند و صفحه برای شما نشان داده می شود.(صفحاتی با پسوند Htmlو یا Htm)
ولی وقتی یک صفحه پویا را درخواست می کنید سرویس دهنده فایل مربوط به ان صفحه را یافته و پیش از ارسال برای شما پردازشهایی را روی ان انجام می دهد, پردازش هایی که سرویس دهنده انجام می دهد شامل خواندن صفحات و تبدیل کنترل های سرویس دهنده بر روی صفحه به صفحات قابل فهم برای مرورگر است باید توجه داشت که صفحاتی مانند: Asp برای مرورگر قابل فهم نیستند و مرورگر تنها صفحات Html و شاید JavaScript یا VbScript را بداند .
در صفحات پویا این سرویس دهنده است که تصمیم می گیرد در مقابل عمل کاربر باید چه عکس العملی نشان داده شود مثلا وقتی یک کلید (Button) را فشار داد,در صورتی که در صفحات ایستا نحوه ی عکس العمل نشان دادن به این اتفاق به همراه کد های Html برای کاربر فرستاده می شود .
برای تولید صفحات پویا نیاز به مهارت و صرف هزینه ایی بسیار بیشتر در برابر صفحات ایستا است .

