BitTorrent không giống các mạng P2P nào như là eD2K Đây là mạng ngang hàng của trung quốc nhưng đc rất nhiều người trên thế giới dùng vì cơ sở dữ liệu của nó rất lớn.Gồm nhạc,
Trang 1TRƯỜNG ĐẠI HỌC KINH TẾ KĨ THUẬT CÔNG NGHIỆP
KHOA : CÔNG NGHỆ THÔNG TIN
Báo Cáo :
Thực Hành Nghề Nâng Cao
Đề tài : Tìm hiểu về Giao thức Bittorrent
Giáo viên hướng dẫn : Ths Trần Bích Thảo
Nhóm thực hiện : Nhóm 2
1.Trần Văn Nam 2.Đinh Hồng Phong 3.Trần Quốc Bảo 4.Phạm Huy Hùng 5.Lê Quốc Hoàn 6.Đỗ Mạnh Cường 7.Trần Ngọc Sánh
Trang 21 Giới thiệu về BitTorrent.
BitTorrent là một mạng chia sẻ được sáng lập bởi Bram Cohen, có khả năng đặc biệt có íchcho những người cần chia sẻ các file có dụng lượng lớn qua mạng
Nếu bạn có 1 file dung lượng 1GB và 300 người cần, sẽ cần rất nhiều thời gian để chia sẻ 300GB dữ liệu Nhưng nếu bạn chia file thành các mảnh nhỏ gửi cho mọi người và họ lại chia sẻ các mảnh đó cho người khác cho đến khi ai ai cũng có file hoàn chỉnh thì sẽ nhanh hơn rất nhiều Các trang web lớn có thể sử dụng BitTorrent để cập nhật cho các phần mềm của họ, bằng cách này
họ sẽ giảm được chi phí trả cho băng thông Tốc độ của BitTorrent rất đáng kinh ngạc, chỉ mất vài giờ để truyền tải các file cực kỳ lớn Một vài trang web đã ra đời dựa theo công nghệ này phân phát các nội dung có bản quyền Ngay lập tức, các tổ chức như MPAA đã đổ lỗi cho công nghệ này, điều đó hoàn toàn sai, thực tế lỗi là ở các cá nhân sử dụng công nghệ cho mục đích trái phép
Dù thế nào đi nữa, BitTorrent không phải sinh ra để phát tán tài nguyên bất hợp pháp, nó là mộtphát minh của Bram để giúp cho việc truyền tải trở nên nhanh hơn trong thế giới mạng Nó được
sử dụng trên các trang web trên khắp thể giới và Bram tự hào về điều này
Tên gọi chính xác của nó là BitTorrent nhưng thông thường mọi người vẫn gọi tắt và biết đến nó với cái tên Torrent
* BitTorrent là một mạng lưới P2P (peer to peer = ngang hàng, tức là nhiều người cùng kết nối trực tiếp với nhau để chia sẻ file) Torrent chuyên được dùng để trao đổi những dữ liệu như Phim, trò chơi, phần mềm, và một số File có dung lượng lớn hoặc cực lớn
* Do kết nối ngang hàng nên có tốc độ rất cao Phù hợp cho download các dữ liệu dung lượng lớn
Các tập tin trao đổi giữa các máy tính với nhau , nhưng việc tìm kiếm và chuyển giao tập tin từ máy tính của bạn khác có thể gây ra tắc nghẽn (Hình dưới )
Trang 3Giao thức BitTorrent định nghĩa một phương thức để phổ biến và chia sẻ tệp trên mạng Trước khi BitTorrent ra đời đã tồn tại các giao thức đồng đẳng (Peer-to-Peer, hoặc viết tắt là P2P)
có khả năng cho phép một nhóm máy tính trên mạng chia sẻ tệp với các máy tính khác nhóm mà không cần phải sử dụng một máy chủ để làm kho lưu trữ trung tâm BitTorrent là một cải tiến từ các giao thức đồng đẳng trước Giao thức BitTorrent có một nguyên lý hoạt động chặt chẽ để có khả năng tùy biến, tin cậy và chi phí duy trì danh sách các máy vi tính chia sẻ tệp tốt hơn các giao thức đồng đẳng trước đó Do giao tiếp theo chuẩn TCP/IP nên giao thức BitTorrent có thể hoạt động trên đường truyền Internet thông thường
BitTorrent client là một chương trình hoạt động theo giao thức BitTorrent Mỗi BitTorrent client có khả năng so sánh, yêu cầu, và vận chuyển tệp trên mạng sử dụng giao thức BitTorrent Tệp có thể chứa bất kỳ thông tin nào, bao gồm cả văn bản, âm thanh, phim và nội dung đã được mã hóa
1.1 Các file Torrent.
BitTorrent không giống các mạng P2P nào như là eD2K (Đây là mạng ngang hàng của trung quốc nhưng đc rất nhiều người trên thế giới dùng vì cơ sở dữ liệu của nó rất lớn.Gồm nhạc, phim, sách báo , tạp chí, game Phần mềm sử dụng để download là EMULE, nguyên tắc hoạt động : khi cùng xếp hàng ( Queue row) để down 1 film nào đó, nếu bạn có tỷ số up lên cao, bạn đựơc ưu tiên down
về trước…) bạn không thể search được file A bằng cách sử dụng các chương trình BitTorrent Thay vào đó bạn phải vào các trang web có danh sách các file Torrent Các file Torrent này chứa các thông tin về file A mà bạn muốn download và chứa thông tin về các “tracker” mà bạn phải kết nối để bắt đầu download Các “tracker” là các máy chủ trung tâm, nó lưu giữ thông tin về từng người đang chia sẻ các file A, và các phần mà họ có Khi bạn download file Torrent, và open nó, chương trình BitTorrent (như là Bit Torrent, Bit Tornado, Azureus, vvv.) sẽ chạy và kết nối đến các tracker Tracker sẽ kết nối bạn đến Seeds và Peers – những người đang chia sẻ file A này và quá trình download của bạn sẽ bắt đầu Đến khi bạn có ít nhất một “mảnh” của file A, bạn đã có thể upload “mảnh” đó cho những người chưa có Như vậy bạn đã có thể thấy rằng BitTorrent khác với các mạng P2P khác : cần có file Torrent cho các file (hoặc thư mục) mà bạn muốn download hoặc chia sẻ
Trang 41.2 Trackers
Các trang web liệt kê các file torrent (như là torrentbox.com) có những tracker của họ để quản lý việc download và chia sẻ giữa mọi người File torrent phải có thông tin chi tiết về tracker Do đó bạn muốn kết nối đến tracker nào thì chỉ có thể sử dụng file torrent được tạo cho tracker đó Có cácphần mềm để giúp bạn thiết lập các tracker riêng và tạo file torrent
1.3 Seeds, Peers và Leechers.
Có ba khái niệm rất quan trọng mà bạn sẽ luôn gặp chúng cho đến khi nào bạn còn sử dụng
BiTorrent để chia sẻ file và thư mục Seeds là những người đã có 100% file hoặc thư mục (file hoặc thư mục hoàn chỉnh) và vẫn đang tiếp tục upload cho những người khác Peers là nhưng người chưa có đủ 100% file (file chưa hoàn chỉnh) đang download các phần mà họ chưa có đồng thời upload các phần họ đã có cho người khác Leechers là nhưng người download file nhưng không upload hoặc giảm mức upload xuống mức thấp nhất Những người này bị gọi là kẻ trộm bởi
vì đơn giản họ chỉ lấy cái họ cần và bỏ đi
1.4 Các trang có file torrent
Có rất nhiều trang web liệt kê các file torrent Bạn chọn rồi down load file torrent về Sau đó open bằng chương trình BitTorrent của bạn Ngay lập tức, bạn sẽ được kết nối với tracker và bắt đầu download
Một số trang web đó là
1.5 Tầm quan trọng của việc Upload.
Việc upload trên BitTorrent là đương nhiên và cần thiết Đặt trường hợp bạn đang download file
có 3 seeds và 800 peers, và việc chia sẻ đã hoàn tất ở một số peers Giả sử bạn là 1 peer đã
download xong nhưng chỉ upload 10% của file rồi ngừng Việc làm này sẽ dẫn đến hậu quả rất xấubởi vì bạn làm vậy thì nhiều người khác cũng có thể làm như vậy, sau đó sẽ có rất ít seeds và có thể sẽ không còn seeds và những người chưa hoàn tất sẽ không có file hoàn chỉnh Nếu tất cả mọi người đều có thói quen ngừng upload ngay khi download xong thì file đó sẽ không tồn tại lâu Hãyđảm bảo rằng dung lượng upload của bạn bằng với dung lượng download hoặc hơn Nếu ai đó download 700MB và upload 700MB thì vẫn chưa tốt Để file đó có thể tồn tại lâu và những người khác còn được download về với tốc độ cao, mọi người hãy cố upload bằng 150% dung lượng mìnhdownload Khi bạn đã download xong, hãy tiếp tục upload đến khi bạn đạt tỉ lệ này Các tracker luôn cấm các leechers do đó luôn theo dõi việc download/upload của bạn Nếu bạn thích
BitTorrent, đừng thử hoặc cố đánh lừa nó
Trang 52 Các thuật ngữ
Torrent
Thường thì torrent là một file mang phần mở rộng torrent bạn nhận từ server File torrent này chứa thông tin về dữ liệu bạn muốn down (chứ ko phải là bản thân dữ liệu đó) Bạn có thể save file torrent đó trên máy của mình, sau đó mở nó bằng trình BitTorrent để tiến hành việc
download Hoặc, bạn có thể down ngay bằng cách click thẳng vào link trên trang web - cách này sẽ làm bạn mất thêm chút công sức nếu muốn down lại file đó sau này
Seed/Seeder - Leech/Leecher là gì? Peer là gì?
* Hiểu đơn giản seed là up, leech là down Seeder là người upload, leecher là người download Sau khi download xong thì leecher trở thành seeder nếu leecher tiếp tục upload cho những người dến sau
* Có thể hiểu nếu số seeder càng đông thì torrent có tốc độ càng cao Số leecher cao cũng có thể làm đẩy nhanh tốc độ vì thực chất các leecher cũng sẽ vừa down vừa up
* Tổng số leech và seed sẽ = số peer
Peer
Peer là một máy tính khác trên mạng internet Bạn tạo kết nối với peer và truyền tải dữ liệu với nó.Thường thì một peer ko có cả 100 % file mà bạn muốn down (nếu có nó sẽ được gọi là seed) Một vài người khi nói đến peer lại nghĩ tới leecher, những kẻ sau khi down xong ko chịu để trình BitTorrent chạy tiếp và hoạt động như một seed
seed
Một máy tính có bản copy hoàn hảo của file torrent bạn muốn down Khi quá trình down của bạn kết thúc, bạn sẽ hoạt động như một seed cho đến khi bạn bấm Finish hoặc đóng hoàn toàn trình BitTorrent lại Thường thì bạn nên chơi đẹp bằng cách seed một file đã down xong cho người khác Đồng thời, khi một file torrent mới được đưa lên tracker, một ai đó phải seed nó cho người khác down Hãy nhớ rằng, tracker ko biết tí gì về nội dung thực sự của file, vì thế luôn cần phải cóít nhất một máy đóng vai trò seed
swarm
Trang 6Một nhóm các máy tính kết nối với nhau thông qua 1 file torrent Ví dụ, nếu trình BitTorrent của bạn báo bạn đang nối với 10 peer và 3 seed, thì điều đó nghĩa là trong swarm đó có 13 người (ko
kể bạn ^^)
tracker
Một server nằm trên mạng internet, phối hợp hoạt động của các trình BitTorrent Khi bạn mở một file torrent, máy tính của bạn sẽ liên lạc với tracker để lấy danh sách các peer cần kết nối Trong quá trình down file torrent, thỉnh thoảng máy tính của bạn sẽ lại liên lạc với tracker, thông báo chotracker biết bạn đã down và up bao nhiêu, còn bao nhiêu nữa là down xong, Nếu bạn chuẩn bị down một file mà tracker của nó hiện đang die, bạn sẽ ko thể tạo kết nối Nếu đang down mà tracker die, bạn vẫn có thể tiếp tục quá trình truyền tải file với các peer hiện có, nhưng sẽ ko kết nối thêm được với peer mới nào khác Thường các lỗi với tracker ít khi xảy ra trong một thời gian dài, do đó bạn chỉ việc chờ đợi và để mở trình BitTorrent
share rating
Nếu bạn dùng một trình BitTorrent với giao diện GUI (Graphic User Interface), bạn sẽ thấy thông
số share rating hiện trên giao diện Nó đơn giản chỉ là tỉ lệ bạn up trên tỉ lệ down Nếu thông số share ratio là 1.0, điều đó có nghĩa là lượng bạn down bằng với lượng bạn up Số này càng cao thì nghĩa là bạn đóng góp càng nhiều Nếu bạn thấy share ratio là vô cùng, thì nghĩa là bạn đang seed một file - bạn up nhưng ko down Nói chung, con số này chỉ để làm cảnh - tuy vậy vì lợi ích của người khác, hãy giữ cho share ratio của bạn lớn nhất có thể
* Hiểu một cách đơn giản thì Ratio được tính bắng công thức: Ratio=dung lượng upload/dung lượng download
* Muốn có ratio cao là điều tương đối khó vì bạn cần phải up nhiều hơn down một lượng rất lớn
* VD: Ban đầu bạn up 5Gb/ down 1gb > ratio~5 Sau đó bạn up thêm 10Gb, down thêm 5Gb, tổng cộng bạn up 15Gb/ down 10Gb > Ratio~1.5 Từ ratio~5 giảm xuống ratio~1.5 rất nhanh dù bạn down ít hơn up Chính vì vậy nếu muốn ratio cao thì tốt nhất là down ít, up nhiều
Hit and Run là gì?
* Khi bạn leech xong, bạn nên giữ seed (ko xóa file torrent trong client) để tiếp tục up cho người đến sau Hit and Run là hành động down xong trốn luôn không thèm seed nữa
* Hit and Run được xem là hành động tồi tệ nhất trong sân chơi P2P
* Người Hit and Run được xem như "Kẻ cắp P2P" thời IT Họ chỉ biết há miệng đợi người khác thả đồ ăn và nhai rồi biến mất trong cõi xương mù u mê tăm tối, giống như kẻ trộm đồ phải trốn chui trốn lủi khắp thị thành làng mạc như một kẻ tá túc, hành khất ngoài lề của xã hội Chẳng có một lý do gì mà ta lại tự đưa ta vào con đường này vì bản năng, tính tự ái dân tộc và trách nhiệm bản thân mình mong được chia sẻ cùng anh em, được anh em coi nhau như một thành viên có
Trang 7trọng trách giống một địa chỉ, một nơi hội tụ chia sẻ cho nhau những gì mình có, cái ấy mới đáng quí trọng.
DHT là gì?
* DHT có thể hiểu là một chức năng giúp bạn kết nối tới các máy khác nhanh hơn, tải dữ liệu từ các máy đó mà ko cần thông qua tracker Hầu hết các public tracker đều có chức năng này Chức năng chỉ có một nhược điểm duy nhất là dữ liệu up/down phần nào ko thông qua tracker nên thôngtin up/down trên Client (VD: Utorrent) khác với thông tin trên tracker
* DHT (Distributed Hash Table) là một lớp nằm trong hệ thống mạng p2p nó chứa các giá trị và tên giống như một bảng băm Hash table và sẵn sàng cung cấp các thông tin này cho các User có bật DHT và tìm kiếm cái Hash table đó, điều này sẽ giúp các User liên kết với nhau trên khắp thế giới và khi tìm thấy cái file có cái bảng hash table đó nó sẽ tải về máy mình
Port forwarding là gì?
Nếu máy tính của bạn kết nối với internet thông qua router hoặc có một trình firewall đang chạy, port forwarding là động tác mở một cổng trên router/firewall để các kết nối từ bên ngoài có thể thiết lập được với máy tính của bạn
Có một vài điểm mà bạn cần nắm rõ trước khi bắt tay vào tìm hiểu về port forwarding Để cho đơngiản và nhanh chóng, bạn hãy tạm chấp nhận những *tiên đề* sau (đúng trong hầu hết các trường hợp):
1 Mỗi thiết bị trên mạng internet đầu có ít nhất 1 địa chỉ IP Địa chỉ IP là một con số được sử dụng
để nhận diện một thiết bị
2 Mỗi địa chỉ IP được chia ra làm nhiều cổng khác nhau Khi một máy tính gửi dữ liệu đến một máy tính khác, dữ liệu sẽ đi từ một cổng thuộc địa chỉ IP này đến một cổng thuộc địa chỉ IP kia
3 Trong một thời điểm bất kỳ, một cổng chỉ có thể được sử dụng bởi một chương trình
Giờ, khi bạn đã nắm được những điểm trên, ta hãy cùng nói đến NAT NAT là viết tắt của
Network Address Translation NAT nhận một địa chỉ IP và, về cơ bản, chia nó ra làm nhiều địa chỉ
IP khác nhau
Trang 8Ở đây, địa chỉ IP ngoài (external IP address) được chia thành 2 địa chỉ IP nội bộ (internal IP address) Địa chỉ IP thứ 1 (IP Address1) là của gateway Địa chỉ IP thứ 2 (IP Address2) là của máytính thứ nhất Cần chú ý rằng router có 2 địa chỉ IP - 1 địa chỉ IP ngoài và 1 địa chỉ IP nội bộ làm việc như một gateway đối với mỗi máy tính trong mạng.
Trong hình trên, những máy tính trong mạng nội bộ (internal network) chỉ *nhìn thấy* những địa chỉ IP nội bộ Vì thế những máy tính này ko thể gửi dữ liệu trực tiếp tới một máy tính ngoài mạng
mà ko thông qua gateway Cần nhớ, gateway là địa chỉ IP nội bộ của router Khi máy tính trong mạng muốn gửi dữ liệu ra ngoài, đầu tiên những dữ liệu đó sẽ được chuyển đến gateway, sau đó router sẽ đưa chúng ra ngoài thông qua địa chỉ IP ngoài Điều này cũng tương tự như những gì xảy
ra trên mạng internet Một máy tính ngoài mạng sẽ ko thể *thấy* một máy tính trong mạng nội bộ Chúng chỉ có thể *thấy* và gửi dữ liệu tới router thông qua địa chỉ IP ngoài Sau đó, router mới quyết định xem nó phải làm gì mới những dữ liệu đó - và NAT đóng vai trò chính trong quá trình này Thật may mắn là NAT được cấu hình sẵn để làm việc với vài chương trình Tuy vậy, có những chương trình mà NAT ko được thiết kế để làm việc với, do đó chúng ta phải làm một bước gọi là port forwarding
Port forwarding cũng khá đơn giản Khi một máy tính trong mạng internet gửi dữ liệu tới router qua địa chỉ IP ngoài, router cần xác định xem nó sẽ làm gì với dữ liệu đó Quá trình port
forwarding sẽ chỉ ra cho router thấy: Cần gửi dữ liệu tới máy tính nào trong mạng LAN Khi bạn cài đặt xong các rule cho port forwarding, router sẽ lấy dữ liệu dạng địa chỉ IP ngoài:số thứ tự cổng và gửi dữ liệu đó tới địa chỉ IP nội bộ:số thứ tự cổng Các rule dành cho port forwarding được cài đặt theo cổng Vì thế, rule cho cổng mang số 53 sẽ chỉ làm việc cho cổng mang số 53
Xin nhắc lại: Tại 1 thời điểm, một cổng chỉ có thể được sử dụng bởi một chương trình! Dùng cùng
1 cổng trên 2 máy tính trong mạng nội bộ vào cùng một thời điểm có thể dẫn tới xung đột giữa các rule và làm rối loạn việc truyền dữ liệu Hầu hết các router đều bắt bạn chỉ ra chính xác địa chỉ IP nội bộ cần forward đến cũng vì lý do này Còn với những router ko bắt bạn làm việc này, hãy cẩn thận! Rule cho port forwarding chỉ làm việc với một máy tính trong một thời điểm!
Tại sao cần phải forward port?
Trang 9Dữ liệu được truyền tải thông qua một cổng khi bạn đang download Nếu cổng đó chưa được mở, bạn chỉ có thể kết nối được với những người khác trong swarm (cổng của họ đã mở) Nếu cổng củabạn đã mở rồi, những người khác có thể kết nối với bạn (những người này có thể đã mở hoặc chưa mở cổng) Như vậy, việc mở cổng làm tăng số lượng người kết nối được với bạn và do đó sẽ tăng tốc độ download.
3.BitTorrent hoạt động như thế nào?
Nói như dân kỹ thuật thì BitTorrent là một giao thức được tạo ra phục vụ cho quá trình truyền tải file Dưới hình thức kết nối peer-to-peer, người sử dụng kết nối trực tiếp với nhau để gửi
và nhận các phần của một file Một server trung tâm, dưới tên gọi tracker, được lập ra để xác định
vị trí những người dùng ấy Tracker mang nhiệm vụ duy nhất là quản lý các kết nối, nó ko cần biết
gì về nội dung file đang được truyền tải, bởi thế ngay cả khi tracker có băng thông cực nhỏ, một số lượng người dùng cực lớn vẫn có thể tham gia vào việc truyền tải file Điểm cơ bản trong
BitTorrent chính là việc người dùng thực hiện việc up và down cùng một lúc trong khi băng thông được tổ chức sao cho tối ưu nhất BitTorrent được thiết kế để khi số người dùng càng tăng cao thì càng làm việc hiệu quả - điều này trái ngược hẳn với các giao thức truyền tải file khác
Một ví dụ để dễ hình dung quá trình này này là hình ảnh một nhóm người ngồi quanh một cái bàn Hiển nhiên ai cũng có thể nói và nghe người khác nói Giờ hãy tưởng tượng họ đều đang
cố lấy một bản copy của một cuốn sách Người A cho biết anh ta có trang 1-10, 23, 42-50 và trang
75 Người C, D, E đều thiếu một số trang trong số các trang người A có, vì thế họ cần sắp xếp để lấy bản copy của những trang mà mình thiếu Đến người B, anh cho biết mình có trang 11-22, 31-
37, và 63-70 Người A, D và E bảo B rằng họ muốn một vài trang trong số đó, và B cần đưa cho
họ bản copy các trang ấy Quá trình cứ thế tiếp tục, mọi người lần lượt trao đổi cho nhau những phần mình có và người khác cần Sau một lát, dù tất cả đã có bản copy của hầu hết các trang trong cuốn sách, song ko ai trong số họ có đủ cả cuốn
Giờ hãy chú ý đến một người khác cũng ngồi bên bàn mà ta tạm gọi là S Người này có bản copy của cả cuốn sách, và vì thế ko cần nhận bất cứ trang nào Anh ta có nhiệm vụ phân phát những trang mà ko ai trong nhóm có Còn người nhận sẽ ko lấy các trang mà người khác trong nhóm đã có Như vậy, người S có thể chia sẻ cuốn sách cho người khác mà ko cần phải gửi cả bản copy cho từng người Anh ta chỉ việc đưa bản copy các trang khác nhau cho những người khác nhau, và tự họ sẽ chia sẻ cho nhau Người S ở đây được gọi là seed trong BitTorrent
Vậy, khi download với chương trình BitTorrent, cái ví dụ để hình dung ấy được áp dụng như thế nào?
1 Trước hết, bạn tải về một file torrent và mở nó với chương trình BitTorrent của mình File torrent này ko chứa file mà bạn muốn down, nó chỉ mang dữ liệu mô tả file mà bạn CHUẨN BỊ down
Trang 102 Chương trình BitTorrent của bạn dùng thông tin ghi nhận được trong file torrent để kết nối với tracker Tracker là server mang thông tin và danh sách các peer đang kết nối với file bạn muốn down
3 Trình BitTorrent của bạn gửi request tới các peer đang kết nối với file đó (swarm) và bắt đầu down về các phần nhỏ của file đó từ mỗi peer
4 Khi đã down xong mỗi phần nhỏ, trình BitTorrent sẽ bắt đầu up phần đó lên cho những ai trong swarm chưa có cơ hội down phần nhỏ ấy
5 Quá trình tiếp diễn cho và mọi người trong swarm tiến hành down các phần của file mình cần
6 Sau khi down xong file bạn cần, trình BitTorrent sẽ chuyển máy bạn thành seed cho file đó và cho phép mọi người tiếp tục down cho đến khi bạn thoát khỏi chương trình Để một file torrent có thể được truyền tại, cần ít nhất 1 seed
Thông thường khi muốn tải về một tập tin nào đó từ trên mạng, bạn chỉ cần nhấp vào liên kếttương ứng và các máy chủ lưu trữ sẽ bắt đầu gửi cho máy tính của bạn tập tin đó Máy của bạnđóng vai trò là máy khách (client) và nhận dữ liệu gửi về từ máy chủ (server)
Mô hình kết nối client-server
Không giống như phương thức truyền dữ liệu dựa vào máy chủ (server-based), BitTorrent làphương thức chia sẻ file dựa trên mạng đồng đẳng hay mạng ngang hàng (peer-to-peer hay P2P).Trong mạng này tất cả các máy tính tham gia đều ngang hàng nhau và được gọi là peer, mỗi máytính đóng vai trò vừa là máy chủ vừa là máy khách đối với các máy khác trong mạng P2P.BitTorrent là một cải tiến dựa trên giao thức đồng đẳng trước đó cho phép chia sẻ dữ liệu một cách
ổn định và chặt chẽ hơn Tóm lại, sử dụng BitTorrent thay vì phải download trực tiếp toàn bộ một
Trang 11file nào đó từ server, bạn sẽ lấy về từng phần của file thông qua các peer trong mạng đồng thờichia sẻ những phần mà bạn có cho những người khác.
Kết nối peer-to-peer
Để bắt đầu download một tập tin bằng torrent, bạn cần truy cập vào các trang web chuyên vềtorrent như thepiratebay.org, demonoid,… và tải về một file có đuôi torrent liên quan đến tập tincần download Các file torrent này không phải là bộ phim, bài hát, hoặc tập tin thực tế mà bạnđang cần tải về mà là một file giúp máy của bạn kết nối với các máy khác trong mạng thông quamột server theo dõi gọi là tracker, sau đó địa chỉ của các máy này sẽ được tracker gửi về máy bạncũng như địa chỉ của bạn sẽ được gửi cho các máy khác trong mạng để quá trình download có thểđược diễn ra
Giả sử bạn đang tải một bộ phim thông qua torrent, từng phần của bộ phim sẽ được tải về từ cácmáy khác trong mạng thông qua tracker Khi bạn đã có được một vài phần nhỏ của file, nhữngphần này sẽ được upload cho những người khác cũng đang muốn tải bộ phim đó và quá trình nàyđược thực hiện đồng thời với việc download các phần còn lại của bộ phim giả sử rằng một tập tinđược chia thành 6 khối tương ứng với 6 màu, đầu tiên một máy có đầy đủ tập tin (những máy nàyđược gọi là seeder) sẽ gửi cho mỗi máy trong mạng một phần của tập tin
Trang 12Seeder chứa đầy đủ 6 phần của file.
Sau đó lần lượt gửi mỗi phần tới một máy trong mạng
Ngay khi một máy nhận được một phần của tập tin, nó sẽ bắt đầu chia sẻ phần đó với cácmáy khác chưa có phần này Việc phần nào của file được gửi cho máy nào là do tracker đảmnhiệm và điều phối
Trang 13Các máy trong mạng tự trao đổi với nhau cho tới khi nào có được đầy đủ các phần của tập tin.
Ưu và nhược điểm của BitTorrent
Tất cả mọi thứ đều có ưu và nhược điểm và giao thức BitTorrent cũng không phải là ngoạilệ Trước tiên chúng ta hãy xem BitTorrent mang lại những lợi ích gì so với phương thứcdownload client-server truyền thống
Tắt, bật và tạm dừng chương trình download bất kỳ lúc nào mà không ảnh hưởng đến tập tin cầntải: Lợi thế rất lớn so với việc download trực tiếp từ server, nếu quá trình tải về tập tin bị gián đoạn
vì một lý do nào đó như mất điện chẳng hạn thì thay vì việc phải download lại từ đầu bạn chỉ cầnrestart lại client là file lại tiếp tục được tải về
Download file dung lượng lớn với 1 click: các bộ phim HD hoặc các game mới hiện nay thường códung lượng lớn nên khi upload lên các server đều phải chia nhỏ ra và số lượng có khi lên tới vàichục phần (part) So với việc add cả đống link vào hàng đợi download thì việc tải phim bằngtorrent tỏ ra thuận tiện hơn rất nhiều
Download các file cũ: Đối với các bộ phim hay chương trình cũ thì việc download trực tiếp là khákhó khăn khi mà toàn bộ file hoặc một vài part đã quá thời hạn cho phép của host và bị xóa khiếncho bạn không tải về được Tuy nhiên đối với torrent bạn vẫn có thể tìm được những tracker phùhợp để download những tập tin cũ, tuy tốc độ có thể chậm một chút do lượng máy seed không cònnhiều nhưng ít ra thì “méo mó có hơn không”
Bên cạnh những ưu điểm đã nêu trên, BitTorrent mắc phải một số hạn chế sau: