بیت تورنت (BitTorrent) یک پروتکل است که برای پشتیبانی از روش به اشتراک گذاری فایلهای Peer To Peer طراحی شده است. در واقع بیت تورنت یک روش معمول برای انتقال فایلهای حجیم در اینترنت است. در سال ۲۰۰۴ بیت تورنت تقریباً ۳۵ درصد ترافیک اینترنت دنیا را تشکیل می داد. از فوریه ۲۰۱۳ بیت تورنت ۳٫۳۵ درصد پهنای باند دنیا را مصرف می کند و این در حالیست که این رقم بیش از نصف ۶ درصدی است که به پهنای باند اشتراک گذاری فایلها در اینترنت اختصاص داده شده است.

پروتکل بیت تورنت توسط Bram Cohen در آوریل ۲۰۰۱ طراحی گردیده است وی فارغ التحصیل رشته ی علوم کامپیوتر از دانشگاه Buffalo است. در سال ۲۰۰۹ طبق گزارشی که بیت تورنت منتشر کرد تعداد کاربرانش برابر جمع کاربران فیس بوک و یوتیوب بوده است.

در سیستم توزیع فایل Bit Torrent، یک فایل تورنت عبارتست از یک فایل کامپیوتری که شامل متادیتاهایی (اطلاعات در مورد اطلاعات) درباره ی فایل ها و فولدرهایی است که قرار است منتشر شوند. فایل تورنت معمولاً دارای یک لیست از دنبال کننده های محل انتشار است. در اصل فایل تورنت شامل فایلهایی نیست که قرار است منتشر شوند بلکه شامل اطلاعاتی درباره فایلهاییست که شما دانلود می کنید نطیر نام، اندازه، پوشه ها، اطلاعات و مقادیر رمز نگاری شده. در حالت معمول فایل تورنت با پسوند .torrent نام گذاری می شود مانند MyFile.torrent.

ساختار فایل تورنت چیست؟

فایل تورنت از جنس فایلهای باینری است. این فایل شامل لیستی از فایلها و متادیتاهاست و حتی ممکن است لیستی از دنبال کننده ها(Trackers) نیز در آن قرار داشته باشد.

یک فایل تورنت توسط کلیدهای زیر رمز نگاری می شود:
Announce : که شامل آدرس اینترنتی (URL) دنبال کننده هاست.
Info : نقشه ی کلیدهاست و مشخص کننده این است که آیا یک ویا چند فایل به اشتراک گذاشته شده است.
Name : در این قسمت نام فایلها و دایرکتوریها به همراه مکانی که ذخیره می شوند پیشنهاد داده می شود.
Piece length : نمایان گر تعداد بایتها در هر تکه است.
Pieces : شامل یک لیست Hash است برای الحاق تکه فایلها به یکدیگر.
Length : نشان دهنده اندازه فایلهای تورنت با بایت.
Files : لیستی از کلمات است منطبق بر فایل برای زمانیکه چندین فایل به اشتراک گذاشته می شود.
Path : لیستی از رشته ها مطابق نام زیر دایرکتوری ها.
Length : اندازه فایلها به بایت.

البته فایل تورنت می تواند شامل اطلاعاتی اضافی نیز باشد مثلاً اینکه فایل تورنت توسط چه کسی و در چه زمانی ساخته شده است.

هر کلاینت بیت تورنت توانایی آماده سازی، درخواست و انتقال هر گونه فایل کامپیوتری را در تمام یک شبکه داراست. بنابراین Peer به هر کامپیوتری اطلاق می گردد که یک کلاینت بیت تورنت را در خوداجرا می کند.

برای به اشتراک گذاری فایل یا گروهی از فایلها، یک Peer فایل کوچکی با نام torrent می سازد (مثلاً Myfile.torrent). این فایل شامل متادیتاهایی در باره فایلهایی است که قرار است به اشتراک گداشته شود. پس Peer هایی که می خواهند فایلی را دانلود کنند ابتدا باید به فایل تورنت مورد نظرشان دسترسی پیدا کنند و سپس به یک ترکر خاص متصل شوند تا بفهمند از کدام Peer دیگر باید تکه های فایل مورد نظرشان را دانلود کنند.

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

بیت تورنت تعداد زیادی درخواست برای فایلهای کوچک از TCP های مختلف را اجرا می کند و این در حالیست که این TCP ها بر روی کامپیوترهای مختلفی قرار دارد. در حالیکه در روشهای سنتی دانلود ارتباطات TCP تنها بر روی کامپیوتری واحد ایجاد می گردد. (گرچه این مزیت گاهی به صورت عیب عمل می کند و مخصوصاً در کشور ما باعث افت سرعت دانلود می شود وایم باعث افزایش روز افزون تقاضا برای مستقیم کننده های تورنت شده است).

دانلودهای بیت تورنت حالت رندوم دارد و از مدل rarest-first برای اطمینان از کیفیت مناسب استفاده می کند اما در روشهای سنتی دانلود به صورت پشت سرهم دانلود انجام می گیرد.

این قابلیتها باعث می شود که بیت تورنت در مجموع هزینه کمتری نسبت به روش های معمول داشته باشه. علاوه بر این، قابلیت آنلاین بودن بالا از دیگر قابلیتهای بیت تورنت هست.

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