<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mr./Ms. Days (MMDays) - 網路, 資訊, 觀察, 生活MMDays &#8211; Peer to Peer</title>
	<atom:link href="http://mmdays.com/tag/peer-to-peer/feed/" rel="self" type="application/rss+xml" />
	<link>http://mmdays.com</link>
	<description>網路, 產業, 資訊, 觀察, 生活, 電影, 技術, 新知, 科技, 媒體, 趨勢, Web 2.0</description>
	<lastBuildDate>Wed, 08 Feb 2012 17:35:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>透視BT（一）­­── BT的基本運作原理</title>
		<link>http://mmdays.com/2007/04/06/bt1/</link>
		<comments>http://mmdays.com/2007/04/06/bt1/#comments</comments>
		<pubDate>Fri, 06 Apr 2007 09:40:05 +0000</pubDate>
		<dc:creator>mmdays</dc:creator>
				<category><![CDATA[Mr. Friday]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[專欄]]></category>
		<category><![CDATA[關於網路產業]]></category>
		<category><![CDATA[BitComet]]></category>
		<category><![CDATA[BitSpirit]]></category>
		<category><![CDATA[BitTorrent]]></category>
		<category><![CDATA[Bram Cohen]]></category>
		<category><![CDATA[BT]]></category>
		<category><![CDATA[p2p]]></category>
		<category><![CDATA[Peer to Peer]]></category>
		<category><![CDATA[Torrent]]></category>
		<category><![CDATA[點對點技術]]></category>

		<guid isPermaLink="false">http://mmdays.com/2007/04/06/bt1/</guid>
		<description><![CDATA[Posted by Mr. Friday 談到 BT，相信大家都不陌生。沒錯，今天要來談的就是這幾年在網路上非常重要，已經快要變成全民運動的──BT 程式。筆者有鑒於 BT 已經變成非常火紅的應用程式，但是了解這個程式的基本運作原理與影響的人卻寥寥無幾，於是決定撰寫這個主題；本篇會先介紹BT的源起與運作原理，接下來的幾篇則會根據這一兩年學術上對BT的觀察，介紹BT在各種使用情境下對網路行為的影響（當中包含一些相當出人意表的發現）。 BitTorrent，簡稱BT，由Bram Cohen於2002年獨立完成其核心程式碼的撰寫。從Bram Cohen簡陋而陽春的個人網頁上看來，他於1993年進入紐約州立大學就讀，輟學之後陸續做過研究員、網路程式設計師，就履歷上看來並不是非常特出，2002年間他發表的BT一開始也沒有獲得很大的關注。隔年五月他把BT的理論基礎寫成一篇簡短五頁的學術文章發表在「Workshop on Economics of Peer-to-Peer Systems, 2003」上，文章本身沒有知名教授的背書、用字遣辭顯然也不夠精練，然而這篇文章至今卻已累積了474篇的reference數。2004年六月時，據CNN報導，BT已經佔據了網路上所有P2P流量的53%。至今，BT程式檔的下載量已經超過一億三千五百萬人次，而這些數字還不包含網路上經其他使用者修改過的版本，如BitComet、BitSpirit…等等。 Bram Cohen照片，在他blog裡還有各種用電腦變形過後的照片，例如變身成美少女戰士的樣子。 就Mr. Friday自己的觀察，BT程式已經成為眾多網路鄉民平日不可或缺的「資料來源」之一，就算沒有使用過，或多或少也會在生活中聽到相關的用語，比如說torrent檔、種子、斷種等等術語。更有甚者，許多網路應用也開始使用BT的模式，比如說某些Linux的ISO檔、魔獸世界WOW的更新檔就是透過BT方式在網路上散佈，也有一些網路電視程式是從BT處得到靈感來源，例如現在相當火紅的PPStream。 BT最讓人驚奇的地方在於下載的速度極快。使用過的人都曉得，BT下載往往比傳統的FTP、網頁下載來得快很多。這當中的原理可以從下圖解釋： 左圖是FTP與HTTP下載的基本原理，道理很簡單，擁有檔案的人負責將檔案傳送給所有想下載檔案的人。假設今天的同時下載這個檔案的人有三個（A、B、C），則每個人的下載速度就是檔案擁有者上傳速度的1/3。 BT的原理就比較複雜一點。擁有檔案（例如File.txt）的人（稱為種子）會將檔案切很多很多的小塊（例如File1.txt、File2.txt、…、File100.txt），每當有人（假設也叫A）想下載檔案時，種子（或者其他的下載者）就把一部份的小塊檔案寄給這個A，A就拿著這些檔案片段去跟另外一個也在下載的人B、C說：「Hey！我有一部分的小檔案，你也有一部分的小檔案，我們來互相交換彼此沒有的部分吧！」。對於A來說，他就可以同時從種子與B、C處抓取檔案片段，因此下載的速度就會變快，而不僅限於種子頻寬的1/3。如果今天網路上的下載者不只2個，而是成千上萬，那麼理論上A的速度就可以一飛千里。透過這個「下載者互通有無」的想法，讓下載的速度來得比以往的FTP、HTTP還快。 BT對於分享檔案的種子也有好處。以往如果要讓所有的下載者都抓到檔案，種子就不能下線，直到所有人都抓完檔案為止。頻寬的消耗也是單方面的：只消耗種子的上傳頻寬，因此常常造成種子端的網路塞車。BT就不會這樣：只要網路上出現另外一個把整個檔案都下載成功的人，等於就是出現另外一個新種子，原來的種子就可以下線休息去了──甚至不用等到新種子出現！沿用前例，原先的種子把檔案片段1~3給了A，片段4~6給了B，片段7~10給了C，那麼就算種子下線休息去了，ABC之間仍然能夠透過互通有無的機制，把檔案下載成功。BT一方面減輕了單一種子的負擔，另一方面也延長了檔案的壽命－就算原先種子離開了，如果A、B、C當中有人志願留下來等到新下載者D出現，那麼檔案就能繼續流傳下去。 當然，要讓這套機制成功，還有幾個配套的措施： （1） Torrent檔與Tracker： 由於BT中的種子、下載成員一直在變動，必須要有方法讓其他新成員找到他們，因此就出現了Torrent檔與Tracker。Tracker是個小程式，紀錄著目前所有下載成員的名單與網路位置。Torrent檔則是紀錄Tracker的位置與檔案片段的全部名稱。因此對於新成員來說，他首先要獲得的就是一個torrent檔，從torrent檔中他知道tracker的位置，然後再經由tracker與其他下載成員取得聯繫。 （2） Rarest First Policy 為了增進檔案分享的速度，每個成員會盡量分享網路上最少見的檔案片段。例如A擁有片段1、2、3，B擁有2、4、5，C擁有1、3、5，則網路上最罕見的是片段4，因此若有人想向B互通有無，B會優先傳給他片段4。 （3） Choking Policy 當一個檔案很流行的時候，一個BT系統可能會同時擁有成千上萬的下載者。A身為一個參與者，必定會收到非常多人希望跟他交換檔案的請求。但是A的頻寬很小，只允許同時上傳給4個人（在BT最初原始程式裡預設是4；其他軟體的設定就不一定了，我知道BitComet之前是10個），那麼A要如何決定拒絕這當中的誰呢？這叫做choking（拒絕）policy。BT的做法是：接受（unchoke）那些現在正上傳檔案給我、而且速度最快的前4個人！BT的Choking Policy至為重要，因為它傳達出一種「施比受更有福」的概念：願意付出更多上傳頻寬的人，將會收到其他人的回報－更快的下載速度。日後有許多關於BT的研究，都是針對這個特性作一番探討。 （4） Optimistic Unchoking 承續前述的理念，想要獲得更快的下載速度，就應該先將檔案分享給別人。Optimistic Unchoking是說，每個人每30秒就挑網路中任意一個人，將檔案上傳給他。這麼作的用意是發掘網路上未知的潛力檔案提供者：假如A與K之前並未有檔案的往來，但其實這兩個人住得很近，網路互傳的速度比其他人快。今天A透過Optimistic Unchoking隨機給K上傳了一些檔案片段，讓K驚覺A的上傳速度很快，進而允許A從K處下載檔案片段。如果A與K之間的連線速度很慢，那麼過30秒之後，A會停止提供檔案給K，而去別處尋找下一個候選人。 透過上述的幾種機制，Bram Cohen成功的開發出一套獨特的下載技術，也讓BT成為近幾年來最流行的話題，網路上更逐漸出現許多以BT為核心，內容卻略有不同的幾套下載軟體，如前述BitComet、BitSpirit等。這些軟體多少在技術上修改了BT，比如說改變檔案傳輸時使用的port、改變同時最多上傳人數等等，但技術的基本概念卻是不變的：透過鼓勵分享，達到更快的下載速度。 接下來的幾篇，會引述幾篇學術上研究BT機制的論文，讓我們看看BT這套機制透過長時間實驗與數學流體模型、機率模型、排隊模型、賽局理論……等等的驗證下，在各方面的效能如何？這些論文又會給我們什麼啟示？敬請大家拭目以待，下回再見。 延伸閱讀: Bram Cohen的個人網頁 Bram Cohen的Blog Wikipedia [...]]]></description>
			<content:encoded><![CDATA[<p style="margin: 0pt" class="MsoNormal"><span><font face="Times New Roman"><strong>Posted by <a href="http://mmdays.wordpress.com/tag/mr-friday" title="mr. friday"><font color="#0000ff">Mr. Friday</font></a></strong></font></span></p>
<p><span></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 新細明體">談到 BT，相信大家都不陌生。沒錯，今天要來談的就是這幾年在網路上非常重要，已經快要變成全民運動的──</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體"> 程式。筆者有鑒於 </span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體"> 已經變成非常火紅的應用程式，但是了解這個程式的基本運作原理與影響的人卻寥寥無幾，於是決定撰寫這個主題；本篇會先介紹</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">的源起與運作原理，接下來的幾篇則會根據這一兩年學術上對</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">的觀察，介紹</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">在各種使用情境下對網路行為的影響（當中包含一些相當出人意表的發現）。</span></p>
<p><span></span></p>
<p style="margin: 0pt" class="MsoNormal"><span><font face="Times New Roman">BitTorrent</font></span><span style="font-family: 新細明體">，簡稱</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">，由</span><span><font face="Times New Roman">Bram Cohen</font></span><span style="font-family: 新細明體">於</span><span><font face="Times New Roman">2002</font></span><span style="font-family: 新細明體">年獨立完成其核心程式碼的撰寫。從</span><span><font face="Times New Roman">Bram Cohen</font></span><span style="font-family: 新細明體">簡陋而陽春的<a href="http://bitconjurer.org/" title="Bram Cohen個人網頁">個人網頁</a>上看來，他於</span><span><font face="Times New Roman">1993</font></span><span style="font-family: 新細明體">年進入紐約州立大學就讀，輟學之後陸續做過研究員、網路程式設計師，就履歷上看來並不是非常特出，</span><span><font face="Times New Roman">2002</font></span><span style="font-family: 新細明體">年間他發表的</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">一開始也沒有獲得很大的關注。隔年五月他把</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">的理論基礎寫成一篇簡短五頁的學術文章發表在「</span><span class="a"><span style="font-family: Arial">Workshop on Economics of Peer-to-Peer Systems, 2003</span></span><span class="a"><span style="font-family: 新細明體">」上</span></span><span style="font-family: 新細明體">，文章本身沒有知名教授的背書、用字遣辭顯然也不夠精練，然而這篇文章至今卻已累積了</span><span><font face="Times New Roman">474</font></span><span style="font-family: 新細明體">篇的</span><span><font face="Times New Roman">reference</font></span><span style="font-family: 新細明體">數。</span><span><font face="Times New Roman">2004</font></span><span style="font-family: 新細明體">年六月時，據</span><span><font face="Times New Roman">CNN</font></span><span style="font-family: 新細明體">報導，</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">已經佔據了網路上所有</span><span><font face="Times New Roman">P2P</font></span><span style="font-family: 新細明體">流量的</span><span><font face="Times New Roman">53%</font></span><span style="font-family: 新細明體">。至今，</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">程式檔的下載量已經超過一億三千五百萬人次，而這些數字還不包含網路上經其他使用者修改過的版本，如</span><span><font face="Times New Roman">BitComet</font></span><span style="font-family: 新細明體">、</span><span><font face="Times New Roman">BitSpirit…</font></span><span style="font-family: 新細明體">等等。</span></p>
<p><span></span><span><span><img src="http://bitconjurer.org/bram.gif" alt="Bram Cohen照片" style="width: 307px; height: 284px" height="284" width="307" /></span></span><span> </span></p>
<p><span id="more-3944"></span><br />
<span></span><span>Bram Cohen照片<font face="新細明體">，在他blog裡還有<a href="http://bitconjurer.org/manglings.html" title="Bram Cohen變形照">各種用電腦變形過後的照片</a>，例如變身成美少女戰士的樣子<span style="font-family: 新細明體">。</span></font></span></p>
<p><span><font face="新細明體"><span style="font-family: 新細明體"></span></font></span><span style="font-family: 新細明體">就</span><span><font face="Times New Roman">Mr. Friday</font></span><span style="font-family: 新細明體">自己的觀察，</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">程式已經成為眾多網路鄉民平日不可或缺的「資料來源」之一，就算沒有使用過，或多或少也會在生活中聽到相關的用語，比如說</span><span><font face="Times New Roman">torrent</font></span><span style="font-family: 新細明體">檔、種子、斷種等等術語。更有甚者，許多網路應用也開始使用</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">的模式，比如說某些</span><span><font face="Times New Roman">Linux</font></span><span style="font-family: 新細明體">的</span><span><font face="Times New Roman">ISO</font></span><span style="font-family: 新細明體">檔、魔獸世界</span><span><font face="Times New Roman">WOW</font></span><span style="font-family: 新細明體">的更新檔就是透過</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">方式在網路上散佈，也有一些網路電視程式是從</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">處得到靈感來源，例如現在相當火紅的</span><span><font face="Times New Roman">PPStream</font></span><span style="font-family: 新細明體">。</span></p>
<p><span></span></p>
<p style="margin: 0pt" class="MsoNormal"><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">最讓人驚奇的地方在於下載的速度極快。使用過的人都曉得，</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">下載往往比傳統的</span><span><font face="Times New Roman">FTP</font></span><span style="font-family: 新細明體">、網頁下載來得快很多。這當中的原理可以從下圖解釋：</span></p>
<p style="margin: 0pt" class="MsoNormal"><span></span></p>
<p><a href="http://mmdays.files.wordpress.com/2007/04/ftp_vs_bt.jpg" title="FTP vs BT"><img src="http://mmdays.files.wordpress.com/2007/04/ftp_vs_bt.jpg" alt="FTP vs BT" /></a><br />
<span></span><span><span></span></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 新細明體">左圖是</span><span><font face="Times New Roman">FTP</font></span><span style="font-family: 新細明體">與</span><span><font face="Times New Roman">HTTP</font></span><span style="font-family: 新細明體">下載的基本原理，道理很簡單，擁有檔案的人負責將檔案傳送給所有想下載檔案的人。假設今天的同時下載這個檔案的人有三個（</span><span><font face="Times New Roman">A</font></span><span style="font-family: 新細明體">、</span><span><font face="Times New Roman">B</font></span><span style="font-family: 新細明體">、</span><span><font face="Times New Roman">C</font></span><span style="font-family: 新細明體">），則每個人的下載速度就是檔案擁有者上傳速度的</span><span><font face="Times New Roman">1/3</font></span><span style="font-family: 新細明體">。</span></p>
<p><span></span></p>
<p style="margin: 0pt" class="MsoNormal"><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">的原理就比較複雜一點。擁有檔案（例如</span><span><font face="Times New Roman">File.txt</font></span><span style="font-family: 新細明體">）的人（稱為種子）會將檔案切很多很多的小塊（例如</span><span><font face="Times New Roman">File1.txt</font></span><span style="font-family: 新細明體">、</span><span><font face="Times New Roman">File2.txt</font></span><span style="font-family: 新細明體">、</span><span><font face="Times New Roman">…</font></span><span style="font-family: 新細明體">、</span><span><font face="Times New Roman">File100.txt</font></span><span style="font-family: 新細明體">），每當有人（假設也叫</span><span><font face="Times New Roman">A</font></span><span style="font-family: 新細明體">）想下載檔案時，種子（或者其他的下載者）就把一部份的小塊檔案寄給這個</span><span><font face="Times New Roman">A</font></span><span style="font-family: 新細明體">，</span><span><font face="Times New Roman">A</font></span><span style="font-family: 新細明體">就拿著這些檔案片段去跟另外一個也在下載的人</span><span><font face="Times New Roman">B</font></span><span style="font-family: 新細明體">、</span><span><font face="Times New Roman">C</font></span><span style="font-family: 新細明體">說：「</span><span><font face="Times New Roman">Hey</font></span><span style="font-family: 新細明體">！我有一部分的小檔案，你也有一部分的小檔案，我們來互相交換彼此沒有的部分吧！」。對於</span><span><font face="Times New Roman">A</font></span><span style="font-family: 新細明體">來說，他就可以同時從種子與</span><span><font face="Times New Roman">B</font></span><span style="font-family: 新細明體">、</span><span><font face="Times New Roman">C</font></span><span style="font-family: 新細明體">處抓取檔案片段，因此下載的速度就會變快，而不僅限於種子頻寬的</span><span><font face="Times New Roman">1/3</font></span><span style="font-family: 新細明體">。如果今天網路上的下載者不只</span><span><font face="Times New Roman">2</font></span><span style="font-family: 新細明體">個，而是成千上萬，那麼理論上</span><span><font face="Times New Roman">A</font></span><span style="font-family: 新細明體">的速度就可以一飛千里。透過這個「下載者互通有無」的想法，讓下載的速度來得比以往的</span><span><font face="Times New Roman">FTP</font></span><span style="font-family: 新細明體">、</span><span><font face="Times New Roman">HTTP</font></span><span style="font-family: 新細明體">還快。</span></p>
<p><span></span></p>
<p style="margin: 0pt" class="MsoNormal"><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">對於分享檔案的種子也有好處。以往如果要讓所有的下載者都抓到檔案，種子就不能下線，直到所有人都抓完檔案為止。頻寬的消耗也是單方面的：只消耗種子的上傳頻寬，因此常常造成種子端的網路塞車。</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">就不會這樣：只要網路上出現另外一個把整個檔案都下載成功的人，等於就是出現另外一個新種子，原來的種子就可以下線休息去了──甚至不用等到新種子出現！沿用前例，原先的種子把檔案片段</span><span><font face="Times New Roman">1~3</font></span><span style="font-family: 新細明體">給了</span><span><font face="Times New Roman">A</font></span><span style="font-family: 新細明體">，片段</span><span><font face="Times New Roman">4~6</font></span><span style="font-family: 新細明體">給了</span><span><font face="Times New Roman">B</font></span><span style="font-family: 新細明體">，片段</span><span><font face="Times New Roman">7~10</font></span><span style="font-family: 新細明體">給了</span><span><font face="Times New Roman">C</font></span><span style="font-family: 新細明體">，那麼就算種子下線休息去了，</span><span><font face="Times New Roman">ABC</font></span><span style="font-family: 新細明體">之間仍然能夠透過互通有無的機制，把檔案下載成功。</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">一方面減輕了單一種子的負擔，另一方面也延長了檔案的壽命－就算原先種子離開了，如果</span><span><font face="Times New Roman">A</font></span><span style="font-family: 新細明體">、</span><span><font face="Times New Roman">B</font></span><span style="font-family: 新細明體">、</span><span><font face="Times New Roman">C</font></span><span style="font-family: 新細明體">當中有人志願留下來等到新下載者</span><span><font face="Times New Roman">D</font></span><span style="font-family: 新細明體">出現，那麼檔案就能繼續流傳下去。</span></p>
<p><span></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 新細明體">當然，要讓這套機制成功，還有幾個配套的措施：</span></p>
<p style="margin: 0pt 0pt 0pt 36pt; text-indent: -36pt" class="MsoNormal"><font face="Times New Roman"><span><span>（1）<span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal"> </span></span></span><span>Torrent</span></font><span style="font-family: 新細明體">檔與</span><span><font face="Times New Roman">Tracker</font></span><span style="font-family: 新細明體">：</span></p>
<p style="margin: 0pt 0pt 0pt 24pt" class="MsoNormal"><span style="font-family: 新細明體">由於</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">中的種子、下載成員一直在變動，必須要有方法讓其他新成員找到他們，因此就出現了</span><span><font face="Times New Roman">Torrent</font></span><span style="font-family: 新細明體">檔與</span><span><font face="Times New Roman">Tracker</font></span><span style="font-family: 新細明體">。</span><span><font face="Times New Roman">Tracker</font></span><span style="font-family: 新細明體">是個小程式，紀錄著目前所有下載成員的名單與網路位置。</span><span><font face="Times New Roman">Torrent</font></span><span style="font-family: 新細明體">檔則是紀錄</span><span><font face="Times New Roman">Tracker</font></span><span style="font-family: 新細明體">的位置與檔案片段的全部名稱。因此對於新成員來說，他首先要獲得的就是一個</span><span><font face="Times New Roman">torrent</font></span><span style="font-family: 新細明體">檔，從</span><span><font face="Times New Roman">torrent</font></span><span style="font-family: 新細明體">檔中他知道</span><span><font face="Times New Roman">tracker</font></span><span style="font-family: 新細明體">的位置，然後再經由</span><span><font face="Times New Roman">tracker</font></span><span style="font-family: 新細明體">與其他下載成員取得聯繫。</span></p>
<p><span></span></p>
<p style="margin: 0pt 0pt 0pt 36pt; text-indent: -36pt" class="MsoNormal"><font face="Times New Roman"><span><span>（2）<span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal"> </span></span></span><span>Rarest First Policy</span></font></p>
<p style="margin: 0pt 0pt 0pt 24pt; text-indent: -24pt" class="MsoNormal"><span><span></span></span><span style="font-family: 新細明體">為了增進檔案分享的速度，每個成員會盡量分享網路上最少見的檔案片段。例如</span><span><font face="Times New Roman">A</font></span><span style="font-family: 新細明體">擁有片段</span><span><font face="Times New Roman">1</font></span><span style="font-family: 新細明體">、</span><span><font face="Times New Roman">2</font></span><span style="font-family: 新細明體">、</span><span><font face="Times New Roman">3</font></span><span style="font-family: 新細明體">，</span><span><font face="Times New Roman">B</font></span><span style="font-family: 新細明體">擁有</span><span><font face="Times New Roman">2</font></span><span style="font-family: 新細明體">、</span><span><font face="Times New Roman">4</font></span><span style="font-family: 新細明體">、</span><span><font face="Times New Roman">5</font></span><span style="font-family: 新細明體">，</span><span><font face="Times New Roman">C</font></span><span style="font-family: 新細明體">擁有</span><span><font face="Times New Roman">1</font></span><span style="font-family: 新細明體">、</span><span><font face="Times New Roman">3</font></span><span style="font-family: 新細明體">、</span><span><font face="Times New Roman">5</font></span><span style="font-family: 新細明體">，則網路上最罕見的是片段</span><span><font face="Times New Roman">4</font></span><span style="font-family: 新細明體">，因此若有人想向</span><span><font face="Times New Roman">B</font></span><span style="font-family: 新細明體">互通有無，</span><span><font face="Times New Roman">B</font></span><span style="font-family: 新細明體">會優先傳給他片段</span><span><font face="Times New Roman">4</font></span><span style="font-family: 新細明體">。</span></p>
<p><span></span></p>
<p style="margin: 0pt 0pt 0pt 36pt; text-indent: -36pt" class="MsoNormal"><font face="Times New Roman"><span><span>（3）<span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal"> </span></span></span><span>Choking Policy</span></font></p>
<p style="margin: 0pt 0pt 0pt 24pt; text-indent: -24pt" class="MsoNormal"><span><span></span></span><span style="font-family: 新細明體">當一個檔案很流行的時候，一個</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">系統可能會同時擁有成千上萬的下載者。</span><span><font face="Times New Roman">A</font></span><span style="font-family: 新細明體">身為一個參與者，必定會收到非常多人希望跟他交換檔案的請求。但是</span><span><font face="Times New Roman">A</font></span><span style="font-family: 新細明體">的頻寬很小，只允許同時上傳給</span><span><font face="Times New Roman">4</font></span><span style="font-family: 新細明體">個人（在</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">最初原始程式裡預設是</span><span><font face="Times New Roman">4</font></span><span style="font-family: 新細明體">；其他軟體的設定就不一定了，我知道</span><span><font face="Times New Roman">BitComet</font></span><span style="font-family: 新細明體">之前是</span><span><font face="Times New Roman">10</font></span><span style="font-family: 新細明體">個），那麼</span><span><font face="Times New Roman">A</font></span><span style="font-family: 新細明體">要如何決定拒絕這當中的誰呢？這叫做</span><span><font face="Times New Roman">choking</font></span><span style="font-family: 新細明體">（拒絕）</span><span><font face="Times New Roman">policy</font></span><span style="font-family: 新細明體">。</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">的做法是：接受（</span><span><font face="Times New Roman">unchoke</font></span><span style="font-family: 新細明體">）那些現在正上傳檔案給我、而且速度最快的前</span><span><font face="Times New Roman">4</font></span><span style="font-family: 新細明體">個人！</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">的</span><span><font face="Times New Roman">Choking Policy</font></span><span style="font-family: 新細明體">至為重要，因為<strong><font color="#ff0000">它傳達出一種「施比受更有福」的概念：願意付出更多上傳頻寬的人，將會收到其他人的回報－更快的下載速度</font></strong>。日後有許多關於</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">的研究，都是針對這個特性作一番探討。</span></p>
<p><span></span></p>
<p style="margin: 0pt 0pt 0pt 36pt; text-indent: -36pt" class="MsoNormal"><font face="Times New Roman"><span><span>（4）<span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal"> </span></span></span><span>Optimistic Unchoking</span></font></p>
<p style="margin: 0pt 0pt 0pt 24pt; text-indent: -24pt" class="MsoNormal"><span><span></span></span><span style="font-family: 新細明體">承續前述的理念，想要獲得更快的下載速度，就應該先將檔案分享給別人。</span><span><font face="Times New Roman">Optimistic Unchoking</font></span><span style="font-family: 新細明體">是說，每個人每</span><span><font face="Times New Roman">30</font></span><span style="font-family: 新細明體">秒就挑網路中任意一個人，將檔案上傳給他。這麼作的用意是發掘網路上未知的潛力檔案提供者：假如</span><span><font face="Times New Roman">A</font></span><span style="font-family: 新細明體">與</span><span><font face="Times New Roman">K</font></span><span style="font-family: 新細明體">之前並未有檔案的往來，但其實這兩個人住得很近，網路互傳的速度比其他人快。今天</span><span><font face="Times New Roman">A</font></span><span style="font-family: 新細明體">透過</span><span><font face="Times New Roman">Optimistic Unchoking</font></span><span style="font-family: 新細明體">隨機給</span><span><font face="Times New Roman">K</font></span><span style="font-family: 新細明體">上傳了一些檔案片段，讓</span><span><font face="Times New Roman">K</font></span><span style="font-family: 新細明體">驚覺</span><span><font face="Times New Roman">A</font></span><span style="font-family: 新細明體">的上傳速度很快，進而允許</span><span><font face="Times New Roman">A</font></span><span style="font-family: 新細明體">從</span><span><font face="Times New Roman">K</font></span><span style="font-family: 新細明體">處下載檔案片段。如果</span><span><font face="Times New Roman">A</font></span><span style="font-family: 新細明體">與</span><span><font face="Times New Roman">K</font></span><span style="font-family: 新細明體">之間的連線速度很慢，那麼過</span><span><font face="Times New Roman">30</font></span><span style="font-family: 新細明體">秒之後，</span><span><font face="Times New Roman">A</font></span><span style="font-family: 新細明體">會停止提供檔案給</span><span><font face="Times New Roman">K</font></span><span style="font-family: 新細明體">，而去別處尋找下一個候選人。</span></p>
<p><span></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 新細明體">透過上述的幾種機制，</span><span><font face="Times New Roman">Bram Cohen</font></span><span style="font-family: 新細明體">成功的開發出一套獨特的下載技術，也讓</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">成為近幾年來最流行的話題，網路上更逐漸出現許多以</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">為核心，內容卻略有不同的幾套下載軟體，如前述</span><span><font face="Times New Roman">BitComet</font></span><span style="font-family: 新細明體">、</span><span><font face="Times New Roman">BitSpirit</font></span><span style="font-family: 新細明體">等。這些軟體多少在技術上修改了</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">，比如說改變檔案傳輸時使用的</span><span><font face="Times New Roman">port</font></span><span style="font-family: 新細明體">、改變同時最多上傳人數等等，但技術的基本概念卻是不變的：透過鼓勵分享，達到更快的下載速度。</span></p>
<p><span></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 新細明體">接下來的幾篇，會引述幾篇學術上研究</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">機制的論文，讓我們看看</span><span><font face="Times New Roman">BT</font></span><span style="font-family: 新細明體">這套機制透過長時間實驗與數學流體模型、機率模型、排隊模型、賽局理論</span><span><font face="Times New Roman">……</font></span><span style="font-family: 新細明體">等等的驗證下，在各方面的效能如何？這些論文又會給我們什麼啟示？敬請大家拭目以待，下回再見。</span></p>
<p><span></span></p>
<p><span>延伸閱讀:</span></p>
<p><span><a href="http://bitconjurer.org/">Bram Cohen的個人網頁</a></span></p>
<p><span><a href="http://bramcohen.livejournal.com/">Bram Cohen的Blog</a></span></p>
<p><span><a href="http://en.wikipedia.org/wiki/Bram_Cohen">Wikipedia &#8211; Bram Cohen</a></span></p>
<p><span><a href="http://mmdays.wordpress.com/2007/04/07/bt2/" title="網路的頻寬分享與BT的隨機過程">透視BT（二）­­── 網路的頻寬分享與BT的隨機過程</a></span></p>
<p><span><a href="http://mmdays.wordpress.com/2007/04/10/bt3/" title="BT的問題">透視BT（三）­­── 數字會說話, BT有什麼問題?</a></span></p>
<p><span><a href="http://mmdays.wordpress.com/2007/04/14/bt4/">透視BT（四）──為什麼BT沒有內建搜尋功能?</a></span><br/>
<div>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><a href="http://plurktop.mmdays.com/replurkdetail/?link=890bc8351e6ed42679b2c96de61888a9" title="看看其他人討論內容" target="_blank"><img src="http://plurktop.mmdays.com/images/replurk_1.png" style="border:0"></a></td>
</tr>
<tr>
<td><a href="http://plurk.com/?qulaifier=shares&#038;status=http%3A%2F%2Fmmdays.com%2F2007%2F04%2F06%2Fbt1%2F+%28%E9%80%8F%E8%A6%96BT%EF%BC%88%E4%B8%80%EF%BC%89%C2%AD%C2%AD%E2%94%80%E2%94%80+BT%E7%9A%84%E5%9F%BA%E6%9C%AC%E9%81%8B%E4%BD%9C%E5%8E%9F%E7%90%86%29+-+%E8%BD%89%E5%99%97%E6%8E%92%E8%A1%8C%E6%A6%9C+http%3A%2F%2Fplurktop.mmdays.com%2Freplurk" title="推到噗浪" target="_blank"><img style="border:0" src="http://plurktop.mmdays.com/images/replurk_2.png" /></a></td>
</tr>
</table>
</div>
<p><br/><a href="http://www.facebook.com/MMDays" target="_blank">加入MMDays在facebook的粉絲團 隨時閱讀最新文章</a><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://mmdays.com/2007/04/06/bt1/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
	</channel>
</rss>

