PDA

Xem đầy đủ chức năng : Căn bản về BitTorrent



bebadboy87
23-06-2008, 10:25 PM
BitTorrent

BitTorrent là một giao thức chia sẻ tài nguyên trên mạng đồng đẳng, đồng thời là tên của một chương trình chia sẻ tài nguyên đồng đẳng được phát triển bởi lập trình viên Bram Cohen. BitTorrent dùng để tải về những dữ liệu lớn mà không tốn chi phí máy chủ và băng thông mạng. CacheLogic ước đoán BitTorrent chiếm khoảng 35% lưu lượng trên mạng Internet[1] trong khi một số nguồn khác cho rằng con số này không chính xác.[2]

Chương trình BitTorrent nguyên thủy được viết bằng ngôn ngữ lập trình Python và mã nguồn của chương trình BitTorrent phiên bản 4.0 được phát phát hành dưới dạng mã nguồn mở tuân theo Bản quyền sử dụng mã nguồn BitTorrent. BitTorrent có rất nhiều biến thể khác nhau được viết bằng các ngôn ngữ lập trình khác nhau, chạy trên các hệ điều hành khác nhau.

BitTorrent hoạt động như thế nào?

Giao 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.

Tạo và phát hành tệp Torrent lên mạng

Để chia sẻ một tệp hay nhiều tệp bằng giao thức BitTorrent, đầu tiên cần tạo tệp “torrent”. Mỗi tệp torrent chứa thông tin miêu tả tệp muốn chia sẻ, và thông tin về máy vi tính cung cấp bản gốc của tệp. Thông tin chi tiết lưu trên máy vi tính theo dõi sẽ khác nhau tuỳ thuộc vào phiên bản của giao thức BitTorrent, nhưng dù ở phiên bản nào tệp “torrent” luôn luôn có đuôi mở rộng là .torrent. Cụ thể thì một tệp torrent chứa thông tin loan báo (địa chỉ URL của máy vi tính theo dõi), và thông tin về tên tệp được chia sẻ, kích thước mảnh, chiều dài khóa, chiều dài tệp, và vé thông hành để tải tệp. Một tệp torrent có thể chứa thông tin về một tệp hoặc nhiều tệp. Máy vi tính đã tải về tệp xong có thể lựa chọn hoạt động như máy gieo hạt, cung cấp bản sao hoàn chỉnh của tệp. Sau khi tệp torrent được tạo, một đường dẫn để tải tệp về từ máy bạn được đặt lên trang web, và tệp torrent được đăng ký với máy theo dõi (tiếng Anh: tracker). Máy theo dõi chứa một danh sách các máy vi tính hiện thời đang tải tệp về[3]. Máy ngang hàng đang cung cấp tệp hoàn chỉnh được gọi là máy gieo hạt (seeder).

Tải xuống tệp torrent và chia sẻ tệp

Dùng một trình duyệt Internet bất kì, như FireFox, duyệt trang web có danh sách các tệp torrent, tải nó về, sau đó dùng chương trình BitTorrent client mở tệp đấy ra. Sau khi đã mở tệp torrent, chương trình BitTorrent sẽ kết nối với máy theo dõi, máy theo dõi sẽ cung cấp cho nó một danh sách các máy vi tính đang tải tệp này. Một nhóm các thành viên của một mạng BitTorrent (hoặc mạng đồng đẳng) để tải về cùng một tệp được gọi là quần thể (swarm).

Việc chia sẻ được bắt đầu từ máy gieo hạt. Các máy tính kết nối đầu tiên sẽ hướng trực tiếp tới máy gieo hạt để bắt đầu tải về các mảnh của tệp. Giao thức BitTorrent chia tệp cần tải về thành các phần nhỏ có kích thước bằng nhau (thường là 1/4 mêgabyte = 256 kilôbyte), ví dụ một tệp có kích thước 4,37 GB thường sẽ bị chia thành các mảnh nhỏ có kích thước là 4 MB (4096 kB) hoặc nhỏ hơn nữa. Khi máy vi tính nhận được các mảnh này nó sẽ dùng giải thuật băm để kiểm tra xem mảnh nó tải về có bị lỗi hay không.

Khi máy vi tính kết nối vào quần thể, các máy vi tính sẽ bắt đầu chia sẻ tệp với nhau. Các máy vi tính sẽ chia sẻ các mảnh với nhau thay vì chia sẻ trực tiếp với máy gieo hạt, vì vậy số lượng máy trong quần thể chia sẻ theo giao thức BitTorrent có thể phát triển rất nhanh. Vì nguyên lý hoạt động của giao thức rất chặt chẽ nên các máy tự chọn máy ngang hàng có kết nối tốt nhất để tải về các mảnh nó cần. Một điểm mới đột phá của giao thức BitTorrent so với các giao thức đồng đẳng trước đó là nguyên lý “mảnh hiếm”. Theo giao thức BitTorrent máy khách luôn luôn yêu các mảnh hiếm nhất, mảnh này ít máy vi tính trong quần thể có nhất. Với nguyên lý yêu cầu mảnh hiếm nhất giao thức BitTorrent làm giảm tải của các máy khách trong việc đáp ứng các yêu cầu gửi đến nó, và không còn hiện tượng nút cổ chai.

Giao thức BitTorrent có một nguyên lý là “tín nhiệm mở” tạo nên “nhóm máy ưa thích”. Máy ưa thích là một tập các máy ngang hàng trong quần thể cung cấp băng thông tải lên lớn cho các máy khách có yêu cầu tải về. Tín nhiệm mở cho phép các chương trình BitTorrent kiểm tra định kỳ xem máy nào trong quần thể nên lựa chọn để tải về. Nếu một máy ngang hàng ngoài nhóm ưu thích có băng thông phục vụ các máy khác trong quần thể tốt hơn một máy trong nhóm ưa thích thì nó đẩy máy phục vụ kém hơn ra khỏi nhóm ưa thích và thay thế vào vị trí đó. Nguyên lý này làm cho các máy khách luôn luôn tải về từ nhóm máy ngang hàng phục vụ tốt nhất.

Giới hạn

Cần chú ý là giao thức BitTorrent không giúp người dùng giấu tên. Bởi vì máy theo dõi duy trì một danh sách các tệp đang được chia sẻ, đồng thời nó cũng chứa danh sách địa chỉ IP của các máy vi tính đang tải tệp, và danh sách các tệp đã được tải trước đó. Dựa vào giao thức BitTorrent còn biết chắc chắn địa chỉ của các máy ngang hàng trong quần thể, và tất nhiên là các máy ngang hàng có thể bị tấn công.

Nhược điểm của giao thức BitTorrent là ít khuyến khích các máy ngang hàng trở thành máy gieo hạt sau khi đã tải về xong tệp. Hệ quả là các máy gieo hạt sẽ biến mất và các máy trong quần thể cũng biến mất dần, nghĩa là tệp torrent càng cũ thì xác suất để tải tệp thành công càng thấp. BitTorrent có ưu thế trong môi trường băng thông, đối với người dùng Internet quay số sử dụng giao thức BitTorrent sẽ không hiệu quả, vì kết nối quay số hay bị đứt kết nối và tốc độ tải không cao.

Thuật ngữ

availability
Là số lượng bản sao hoàn chỉnh của tệp hiện hữu ở các máy ngang hàng. Mỗi máy gieo hạt cộng thêm 1 vào số này. Nếu máy ngang hàng có một phần của tệp chia sẻ mà các máy hạt mầm khác không có thì cộng phần phân số này vào chỉ số hiệu lực (ví dụ: máy ngang hàng tải về 65,3% tệp thì cộng 0,653 vào chỉ số hiệu lực, khi có 2 máy ngang hàng có 50% của tệp cần tải về như nhau và có một máy gieo hạt thì chỉ số hiệu lực là 1,5).
choked
Diễn tả máy ngang hàng đang tải lên làm nghẹt đường truyền dữ liệu đến của các máy ngang hàng khác. Tình trạng này do hai nguyên nhân sau:

* Máy ngang hàng là máy gieo hạt, trong trường hợp này nó không muốn nhận thêm bất kỳ mảnh dữ liệu nào từ các máy ngang hàng khác.
* Máy ngang hàng đang tải lên đã đạt đến giới hạn băng thông tải lên.

interested
Diễn tả máy ngang hàng cần tải về mảnh dữ liệu nó thiếu từ máy ngang hàng khác.
leech
Diễn tả một máy ngang hàng có tỉ lệ chia sẻ nhỏ, tải về nhiều hơn tải lên. Hầu hết các máy ngang hàng gian lận dùng kết nối Interet không đối xứng, các máy ngang hàng này không chia sẻ tệp sau khi đã tải về tệp xong. Và có một vài máy ngang hàng không muốn cho tải lên dữ liệu bằng cách chỉnh giới hạn tải lên của chương trình BitTorrent.
peer
peer là máy sử dụng chương trình BitTorrent kết nối Internet và tải dữ liệu. Thường máy ngang hàng diễn tả máy chưa có đủ tệp hoàn chỉnh. Cần lưu ý là ‘peer’ chỉ bất kỳ máy nào trong quần thể liên quan đến tệp torrent bao gồm cả máy gian lận, máy gieo hạt.
scrape
Xảy ra khi máy ngang hàng gửi máytheo dõi (tracker) để lấy thông tin về tình trạng của tệp .torrent
seed
Máy gieo hạt là máy ngang hàng có bản sao của tệp và đang tải lên tệp. Càng nhiều máy gieo hạt thì xác suất tải về tệp thành công càng cao và thời gian tải về càng nhanh.
snubbed
Máy trạm bị gắn cờ có giá trị snubbed khi quá thời gian 60s mà các máy ngang hàng khác không tải về được dữ liệu từ nó.
superseed
Nếu máy trạm lần đầu tiên tải lên tệp thì nó có thể tốn rất nhiều thời gian vì gửi đi gửi lại một mảnh dữ liệu như nhau cho các máy trạm khác nhau kết nối với nó. Để ngăn ngừa trường hợp này, các chương trình BitTorrent có khả năng hỗ trợ tính năng siêu tải lên, khi đó chương trình BitTorrent sẽ cố gắng chỉ tải lên một lần duy nhất các mãnh dữ liệu, nó chỉ tải lên các mãnh dữ liệu trước đây chưa bao giờ gửi đi phân phối cho các máy ngang hàng khác nhau trong mạng.
swarm
Tập hợp tất cả máy ngang hàng và máy gieo hạt có nhu cầu một tệp.
torrent
Chỉ tệp .torrent hoặc tất cả các tệp miêu tả bởi nó. Tệp torrent chứa tất cả các tệp có thể tải về từ nó, gồm tên, kích thước tệp mà giá trị kiểm checksums của tất cả các mảnh dữ liệu, địa chỉ của máy chủ theo dõi vị trí của các máy trạm giữa các máy trong tập hợp máy trạm.
tracker
Máy theo dõi là một máy ngang hàng ghi lại nhật ký máy nào là máy gieo hạt, máy ngang hàng. Các máy ngang hàng báo cáo thông tin cho máy theo dõi định kỳ và nhận lấy thông tin về các máy ngang hàng mà nó có thể kết nối tới để tải về dữ liệu nó cần và tải lên dữ liệu nó có mà các máy khác yêu cầu. Máy theo dõi không chuyển dữ liệu giữa các máy và không có bản sao của tệp.

Phép lịch sự khi sử dụng giao thức BitTorrent

Do BitTorrent dựa vào băng thông tải lên của người dùng, nên càng nhiều người dùng thì càng nhiều băng thông có hiệu lực để chia sẻ tệp. Vì vậy người dùng sau khi hoàn thành tải về tệp thì nên để tài nguyên đấy tải lên một thời gian để những người dùng khác tải về các phần của tài nguyên đã phân phối cho người dùng đấy.

Vậy câu hỏi đặt ra là nên để thời gian bao nhiêu lâu để tải tệp lên sau khi đã hoàn thành việc tải tệp về. Rất nhiều chương trình BitTorrent theo dõi dung lượng mà máy khách tải lên và tải về, vì vậy người dùng có thể biết được mình đã tải về bao nhiêu và đã trả lại bao nhiêu cho mạng chia sẻ bao nhiêu dữ liệu. Một số chương trình BitTorrent dùng thông số "tỉ lệ chia sẻ" (Share ratio), tỉ lệ giữa lượng dữ liệu tải lên và tải về. Tỉ lệ chia sẻ lớn hơn 1 nghĩa là người dùng tải lên nhiều hơn tải về. Nói tóm lại trong mạng chia sẻ theo giao thức BitTorrent một quy tắc ứng xử lịch sự là đã tải về bao nhiêu tài nguyên thì nên tải lên bấy nhiêu tài nguyên.

Tỉ lệ chia sẻ là một thông số rất quan trọng trong giao thức BitTorrent, bởi vì rất nhiều máy chủ theo dõi yêu cầu người dùng phải đạt được một chỉ số chia sẻ tối thiểu. Một vài trường hợp máy chủ theo dõi còn yêu cầu người dùng phải đăng ký, giá trị tối tiểu của chỉ số chia sẻ thường là 0,5 và nó tăng thường xuyên, vì vậy người dùng có thời gian tương ứng để tải lên và chia sẻ tài nguyên của họ. Người dùng nào có tỉ lệ chia sẻ dưới giá trị tối tiểu có thể bị đặt trong tình trạng "chỉ tải lên", và không thể tải về cho đến khi tỉ lệ chia sẻ lớn hơn giá trị tối tiểu.

Tỉ lệ chia sẻ được khuyến cáo là 1,0 (được hiểu trả lại cho mạng chia sẻ những gì bạn đã lấy, hoặc 1:1). Thường thì tài nguyên bao giờ cũng có người tải lên đầu tiên, người tải lên đầu tiên này sẽ có tỷ lệ chia sẻ là vô cùng (chỉ có tải lên, không có tải xuống).


- Bách Khoa Toàn Thư -

TLH
25-06-2008, 08:09 AM
BitTorrent có nhiều cái hay nhưng cũng có những điểm hạn chế khiến mình ít xài... :D

Trong những cái mạnh của nó thì mình thích dùng phần mềm PPS (http://www.pps.tv) để xem phim chất lượng cao online... :D PPS hoạt động dựa theo giao thức của BitTorrent nên xem phim chất lượng DVD với đường truyền ADLS mà không hề bị buffer trong đa số thời gian xem phim... :D Chỉ tiếc là ở đây toàn phim tiếng Hoa & tiếng Anh... :dien: Nhiều khi xem chẳng hiểu gì cả... :haha:

Xem phim chất lượng DVD mới thích... :sr: Xem phim bằng file .flv trong flash chất lượng kém lắm... :D

hoangkimlong0803
06-07-2008, 09:27 AM
http://torrentreactor.net/
một trang torrent đáng để bạn vào tham khảo
^^