P2P(Peer to Peer 即對等網絡)就是在這種背景下提出的一種網絡技術,P2P可以簡單地定義為通過直接交換信息,共享計算機資源和服務,對等計算機兼有客戶機和服務器的功能。在這種網絡中所有的節點是對等的(稱為對等點),各節點具有相同的責任與能力並協同完成任務,對等點之間通過直接互連實現信息資源、處理器資源、存儲資源甚至高速緩存資源等的全面共享,無需依賴集中式服務器支持。
隨着寬帶網可使大家在互聯網上共享到平時用普通方式難以接觸到的各種各樣海量的資源。使用P2P軟件的每一台PC 都是客戶機在下載資源,也是服務器在上傳文件,在索取的同時也給予。
BT相信大家都知道了。解釋一下BitTorrent是一個多點下載的開放源碼的P2P軟件,使用的盛行,傳統的HTTP和FTP這種一點對多點的下載方式已經滿足不了大家的需求了。它會隨着下載人數增加而出現連接不上和速度驟減的現象。而P2P技術則打破常規格式,極大地節省了網絡帶寬。可使你直接連接其他用戶的計算機,交換和搜索文件,而不用再通過網頁瀏覽與下載,最大限度地利用了網絡帶寬。它非常方便。是一個多點下載的共享文件軟件,由於在下載的同時,也可為其他用戶提供上傳,所以不會隨着用戶人數的增加而降低下載速度,因此,下載的人越多,速度便越快。現在不少大公司如RedHat,都有使用BT讓他們的客戶下載開發版本。
Linux下的P2P協議主要包括:BitTorrent、aMule、Gnutella等。本文以普遍使用的BitTorrent為例介紹使用P2P服務的方法。
1、搭建BitTorrent服務器
BitTorrent使用Python語言編寫,是一個開放源代碼軟件,既可以在Windows下運行,也可以在Linux環境下運行,目前在Linux下的最新版本是6.1.2。
BitTorrent的官方網址:http://bitconjurer.org/BitTorrent/
安裝BitTorrent軟件
由於該軟件采用Python編寫,所以安裝BitTorrent前需要使用命令:#rpm -qa|grep Python
檢查是否配置了Python語言。否則需要到Python的官方網站http://www.python.org下載安裝,然后執行如下命令對BitTorrent軟件進行安裝:#rpm -ivh BitTorrent-6.1.2.Python2.4.noarch.rpm
安裝完成后所有BitTorrent命令和工具都安裝在/usr/bin目錄下。包括:btmaketorrent.py(制作種子工具)、bttest.py(測試種子工具)、bttrack.py(制作Tracker工具)、btdownloadheadless.py(制作共享源工具)、btlaunchmany.py(后台啟動共享源工具)、btshowmetainfo.py(查看下載情況工具)、btdownloadgui.py(圖形化制作共享源工具)、btmaketorrent.py(圖形化制作種子工具)。
配置和啟動BitTorrent
BitTorrent的核心是Tracker,BitTorrent服務不需要服務器,但是BitTorrent服務中仍然有服務器的概念,這里稱作Tracker。准確地說,Tracker是指運行的服務器上的一個程序,這個程序可以跟蹤多少人同時在下載同一個文件。BT客戶端連接到Tracker時會產生一個下載人員名單,根據這個名單,BT客戶端會自動連接網絡中其他節點進行下載。所以第一步要啟動一個Tracker:# ./bttrack.py --port 8760 --dfile dstate > /dev/null 2>&1 &
推薦使用普通用戶權限來啟動這個服務,這樣更加安全。這個命令會在當前目錄生成一個dstate的文件,並打開8760端口。
制作種子(Seed)
BT服務器的track服務並不提供下載服務,提供下載的是它的種子(seed),就是一個已經下載完成或正在下載的客戶端。因為一開始沒有這樣的種子,所以你得先自己生成一個,如果要為/home/cjh.avi制作種子,相關命令是:# ./btdownloadheadless.py --max_allow_in 200 --max_upload_rate 100 --minport 8888 --m
相關參數說明如下:
--max_allow 200:指明這個種子最多可以接受200個連接。
--max_upload_rate 100:指這個種子最大的可以接受下載的帶寬100 KB(byte)/s,這樣可以控制下載帶寬。
--minport 8888 --maxport 8888:設置最大最小監聽端口號碼,這樣寫就是說種子只監聽8888端口,這樣方便在防火牆上開端口。
mp3.vio.torrent:是制作的種子文件名稱。
設置Apache服務器
配置Web服務器讓種子(.torrent)文件和application/x-bittorrent相關聯。不久Apache配置文件:/etc/httpd.conf,加入一行:AddType application/x-bittorrent .torrent
然后,我們需要重新啟動Web服務器,並且打開防火牆6888端口: