بیت تورنت (BitTorrent) که عموماً تورنت (Torrent) خوانده میشود، یک پروتکل اشتراک فایل همتا به همتا است. (+نحوه کار، تاریخچه، امنیت و کلاینتهای بیت تورنت)
تورنت با بیت تورنت چه تفاوتی دارد؟
تورنت (Torrent) در واقع نوعی پسوند فایل است که معمولاً به اشتباه، بجای پروتکل “بیت تورنت” (BitTorrent) مورد استفاده قرار میگیرد؛ یعنی بسیاری از کاربران تورنت را پروتکل ذکر شده و بیت تورنت را برنامهای برای آن در نظر میگیرند. باید گفت که بیت تورنت هم نام پروتکل و هم نام برنامهای است که توسط خودش شرکت بیت تورنت (که نامش را بر روی پروتکل و برنامه گذاشته است)، طراحی شده است و در مقابل، تورنت، نام پسوند فایل برای این پروتکل است. پس از این به بعد بجای کلمه “تورنت”، از عبارت “بیت تورنت” برای مشخص کردن پروتکل استفاده خواهیم کرد.
بیت تورنت چیست؟
بیت تورنت (BitTorrent) یکی از پر استفاده ترین و سریع ترین پروتکلهای به اشتراک گذاری فایل است که با استفاده از روش همتا به همتا (Peer-to-Peer)، حجم بزرگی از فایلها را به مقصد میرساند. این پروتکل به منظور کاهش فشار موجود بر روی سرور و پهنای باند مصرفی آن طراحی شده است به طوری که خود کاربران عمل انتقال فایلها را برعهده دارند.
در این پروتکل، فایلها به قطعات کوچکتری تقسیم میشوند و هر قطعه با توجه به درخواست دریافت شده، به کاربر فرستاده میشود. حال خود کاربر به عنوان یک سرور عمل کرده و آن قطعه فایل را در اختیار سایر کاربران قرار داده و قطعات ناموجود را از آنها درخواست میکند. این خلاصه نحوه کار این شبکه Peer to Peer است. پروتکل بیت تورنت به قدری هوشمند است که بهترین منبع را برای دریافت هر قطعه فایل تشخیص داده و به این ترتیب سرعت انتقال فایل را بسیار بهینه تر میکند.
البته در این شبکه سرورهایی نیز برای کنترل شبکه و کاربران مورد استفاده قرار میگیرد که به آنها Tracker میگویند. به دلیل این که در این پروتکل، نوع ارتباط کاربر به کاربر است، هیچ گونه فیلتری انجام نشده و پروتکل را تا حدودی غیرامن میکند. منظور از غیرامن بودن آن، مشکل در پروتکل نیست بلکه منظور، وجود هرگونه فایل بدون نظارتی است. درواقع کار ترکر، هماهنگ سازی کلاینتهاست.
تاریخچه بیت تورنت
بیت تورنت (BitTorrent) در آوریل سال ۲۰۰۱ میلادی توسط برام کوهن (به انگلیسی: Bram Cohen)، برنامه نویس آمریکایی، توسط زبان برنامه نویسی پایتون (Python) نوشته شد. در تابستان بعد نیز برنامه بتا (Beta – نسخه اولیه) مخصوص پروتکل خود را با همان نام BitTorrent منتشر کرد. در سپتامبر سال ۲۰۰۴ نیز شرکت خود را با نام BitTorrent (همان نام برنامه و پروتکلش) توسط شریکش Ashwin Navin تاسیس کرد.
همچنان شرکت BitTorrent Inc درحال کار بر روی پروتکل و برنامه بیت تورنت و موتور جستجوگر اختصاصی برای پیدا کردن فایلهای موجود در پروتکل است. طبق شایعات موجود، در سال ۲۰۱۴، تعداد ۳۰۰ میلیون کاربر در هر ماه با استفاده از این پروتکل به تبادل و اشتراک فایل مشغول هستند.
با توجه به دادههای وبسایت TorrentFreak تخمین زده میشود که پروتکل BitTorrent سهمی ۴۳ تا ۷۰ درصدی در بین شبکههای عمومی همتا به همتا (Peer to Peer) و سهمی ۲۷ تا ۵۵ درصدی در بین کل ترافیک جهانی اینترنت را داشته باشد. همچنین طبق دادههای بخش تحقیقاتی وبسایت پالوآلتو نتورک، پروتکل بیت تورنت صاحب ۳.۳۵ درصد از کل پهنای باند مصرف شده در شبکه جهانی اینترنت در سال ۲۰۱۳ بوده است.
در تصویر زیر که از همان وبسایت دریافت شده است، کل پهنای باند جهانی اینترنت به صورت تخمینی به نمایش درآمده است که بخش سیاه رنگ آن، مربوط به پهنای باند استفاده شده توسط بیت تورنت میشود. نارنجی بزرگ نیز مربوط به وبگردی است.
مختصری درباره روش Peer to Peer
همانطور که گفته شد، بیت تورنت از روش همتا به همتا (Peer to Peer) استفاده میکند با این تفاوت که فایل اصلی را به چندین تکه تبدیل کرده و هر قسمت توسط خود کاربران به یکدیگر داده میشوند. برای درک بهتر این روش، فرض کنید که قصد دانلود کردن یک فایل تورنت را از پروتکل بیت تورنت دارید. فرایند دانلود توسط برنامههایی که به این منظور ساخته شدهاند، انجام میپذیرد (در بخش آخر، این برنامهها معرفی شدهاند).
روش Peer to Peer با روشهایی که پروتکلهایی مانند FTP و HTTP استفاده میکنند متفاوت است. در پروتکلهای FTP و HTTP، کاربر به وسیله برنامههایی مانند مرورگرها و دانلود منیجرها، فایل را از سرور خواسته و سرور نیز این فایل را تماماً به وی ارسال میکند. در این حالت تا اتمام دانلود، مقداری از پهنای باند سرور و سایر منابع آن صرف شده و هزینه تمام شده این کار را بیشتر میکنند. ممکن است در برخی موارد سرور به دلایلی مانند اتمام محدودیت پهنای باند، به حالت تعلیق افتاده و نتواند به کاربران خود سرویس دهد.
اما در روش Peer to Peer که پروتکل BitTorrent از آن استفاده میکند، برنامه و کلاینت شما که به این منظور ساخته شده است، نه از سرور، بلکه از سایر کاربران فایل را درخواست میکند. برای مثال کاربری فایل MyText.txt را داشته و یک کاربر دیگر، نیاز به این فایل دارد. در این صورت کاربر دوم، بدون اتصال به سرور اصلی، از کاربر اول این فایل را دریافت میکند به عبارت دیگر همه کابران برای انتقال فایل در یک سطح قرار داشته و با یکدیگر تبادل فایل میکنند. این روش هم برای انتقال داده و هم برای انتقال فایلها به صورت کامل (نه تکه تکهای) مورد استفاده قرار میگیرد.
بیت تورنت چگونه کار میکند؟
پروتکل بیت تورنت به صورت کلی از روش Peer to Peer استفاده میکند با این دو تفاوت اصلی که یک سرور مرکزی با نام Tracker وظیفه کنترل کاربران و شبکه اشتراک را برعهده دارد. منظور از کنترل کاربران این است که مثلاً با استفاده از سرور مرکزی، کاربر میتواند سایر افرادی که به انتقال و اشتراک فایل مشغولند را شناسایی کرده و با متصل شدن به آنها، فایل را دانلود کند.
تفاوت دوم این است که در پروتکل بیت تورنت، برای هرچه بهینه تر شدن شبکه، کاربران خود به دریافت (دانلود) و ارسال (آپلود) فایلها مشغولند. یعنی کاربری که قسمتی از فایل را دانلود میکند، قسمتهای موجود را به سایر کاربران ارسال میکند. درواقع در این پروتکل از هر دو باند دانلود و آپلود استفاده میشود.
روش کار به این صورت است که کاربر اولیه (کسی که میخواهد فایلی را دانلود کند)، با استفاده از برنامه و کلاینت خود، به یک سرور مرکزی (Tracker – دنبال کننده) متصل شده سپس با استفاده از کوئری (Query – متن جستجو) دلخواه و از طریق یک Tracker، کامپیوترها و کاربرانی که فایل مورد نظر را به صورت کامل دارند (Seed – ارائه کننده) و همچنین کامپیوتر و کاربرانی که تکههایی از فایل را داشته و به عمل ارسال و دریافت مشغولند (Peer – همتا)، را شناسایی میکند.
سپس سرور مرکزی، یک گروه (Swarm) را شناسایی میکند که دارای Seedها یا Peerهای هستند که به صورت فعال، عمل انتقال فایل را انجام میدهند. کلاینت کاربر از طریق این سرور مرکزی، اطلاعاتی را درباره قسمتهای موجود در هر Peer را دریافت کرده و به وسیله آن اطلاعات به Seedها و Peerها وصل شده و فایل را دریافت میکند. در همین هنگام، کلاینت خود به یک Peer جدید تبدیل شده و قسمتهایی از فایل را که به صورت کامل دریافت کرده است را با دیگران به اشتراک میگذارد.
در آخر، پس از دریافت همه قسمتها، کلاینت آنها را با یکدیگر ادغام کرده و فایل نهایی را تحویل کاربر میدهد. این کاربر حالا یک Seed است چون فایل را به صورت کامل در اختیار دارد و اگر در Swarm باشد، به سایر کاربران این امکان را میدهد که از کامپیوتر وی، قسمتهایی از فایل را دانلود کنند.
در تصویر زیر میتوانید به صورت خلاصه وار، نحوه کار این شبکه را ببینید. توجه کنید که برای اکثریت کامپیوترهای موجود در شبکه Peer هستند که به دریافت و ارسال بخشهایی از فایل مشغولند. بخش کوچکی نیز فقط در یک بازه زمانی کوتاه به عنوان Peer عمل نمیکنند چون در ابتدا دارای هیچ بخش از فایل مورد نظر نیستند و فقط آن را دانلود میکنند. با اتمام دانلود یک بخش، آن کامپیوتر به Peer تبدیل میشود. بخش دیگری نیز در شبکه وجود دارد که تمامی قسمتهای فایل مورد نظر را در اختیار دارد. این کامپیوترها Seed بوده و فقط به ارسال بخشهای فایل مشغولند.
به عنوان پاداش برای ماندن به عنوان Seed، کلاینتهای پروتکل بیت تورنت این قابلیت را به کاربران میدهد تا از طریق آپلود بیشتر، اعتبار دریافت کنند. با توجه به این که سرعت آپلود کامپیوترها متفاوت است، کاربرانی که دارای اعتبار هستند، از Swarmهایی برای دانلود خود استفاده میکنند که در آن، کاربران سرعت آپلود بیشتر دارند. به این ترتیب با کسب اعتبار بیشتر، سرعت دانلود نیز بیشتر خواهد شد. البته این مسئله کاملاً به پهنای باند دانلود و آپلود کاربران بستگی دارد.
امنیت در بیت تورنت
در پروتکل بیت تورنت، به دلیل ماهیتی که دارد، همه نوع فایل با مخاطبهای عام یا خاص پیدا میشود. ویروسها و بدافزارها نیز از این قائده مستثنی نبوده و در شبکه بیت تورنت به وفور پیدا میشوند. برای مثال ممکن است کاربری به دنبال برنامهای مانند فتوشاپ در این شبکه باشد. مطمئناً نتایج بسیار زیادی با یک جستجوی ساده پیدا خواهد کرد اما آیا همه فایلها واقعا سالم هستند؟ قطعاً خیر. بسیاری از هکرها از شبکه بیت تورنت برای رسیدن به اهداف خود استفاده میکنند و با انتقال بدافزار به جای فایل اصلی، موجب آلوده شدن کامپیوتر شخص میشوند. با توجه به این که فایلهای موجود در این شبکه توسط افراد عادی سازماندهی میشوند، همیشه این خطر وجود خواهد داشت که فایلهای آلودهای بجای فایل اصلی دریافت کنید. از طرفی به دلیل این که در این شبکه برنامههای کپی شده بسیاری پیدا میشود، استفاده از آن در مناطق زیادی دارای محدودیت است.
با این حال، خود پروتکل بیت تورنت و کلاینتهای آن، برخی از امکانات امنیتی را به کاربران میدهند که مهمترین آنها عبارت اند از:
- رمزگذاری دادههای فایل: کلاینتهایی مانند µTorrent و خود برنامه بیت تورنت (نسخه ۶ به بعد) امکان رمزگذاری دادهها را به کاربران میدهند. به این ترتیب دادهها درحین انتقال امن شده و خطراتی مانند Man-In-The-Middle به حداقل خود میرسند.
- مطابقت امضاءهای امنیتی: اکثر کلاینتها پس از دانلود بخشهای یک فایل، امضای امنیتی فایل را با آنچه که امضای اصلی آن است مطابقت میدهند. به این ترتیب فایل در میانه راه در کامپیوترهای Seed و Peer نمیتواند دستکاری شود.
- بلاکینگ آی پی: برخی از کلاینتها و بسیاری از فایروالها این امکان را به کاربر میدهند تا IP آدرسهای خاصی را بلاک کند و مانع کانکت شدن آنها به کامپیوتر وی شوند.
- بسیاری از کلاینتها امکاناتی برای پنهان ماندن در شبکه به کاربران میدهند که خارج از بحث است.
نرم افزارهای مهم بیت تورنت
کلاینتها، برنامهها و نرم افزارهای متنوعی برای استفاده کاربران طراحی شده است که مهمترین آنها عبارت اند از:
- برنامه اختصاصی بیت تورنت (BitTorrent)، این برنامه توسط خود شرکت بیت تورنت ساخته شده است. (دانلود BitTorrent)
- µTorrent، که به uTorrent و uT نیز معروف است. (دانلود µTorrent)
- BitComet، که با نام SimpleBT Client نیز شناخته میشود. (دانلود BitComet)
سلام وقت بخیر و خداقوت
این سیستم جز سیستم های توزیع شده گروه است که از ساختار هیبریدی(ترکیبی) استفاده می کند. یعنی نوع همتا به همتا ساخت یافته و نوع غیرساخت یافته باهم ترکیب کرده است.
البته اشاره کوچکی در دوره ارشد مهندسی کامپیوتر به آن می شود.
از مقاله ای گذاشتی بسیار ممنون.
بله، خیلی ممنون.
سلام بسیار عالی بود خیلی خوب توضیحی دادی
خواهش میکنم دوست عزیز 🙂
جالب بود
🙂