Akamai 的故事︰從理論到實務

第一部分

Akamai 的故事︰從理論到實務(一)

    好的 請各位注意 早上談到 CSAIL 的時候 我提到一些的其中一部分 我說 實驗室裡 共有四個團隊 其中之一就是理論團隊 我們的理論團隊十分龐大 且人數眾多 相較於其他團隊 理論團隊 研究資金的取得最為不易 我們的工作多半是 先提案 然後決定 想要研究的問題 以及想要解決的問題 然後再深入研究問題 並解決問題 我們用一種線性鏈的方式來安排 研究的執行 但理論上,理論團隊的成員會說 「嗯,我們可以考慮這個領域 也許還能證實一些原理 但也許我們不應該這麼做」 因為如果他們已經確定 所要進行的研究 他們早就該完成工作了 所以他們很難確切說明 日後要進行的研究 而且也多半屬於探索性研究 就算你知道在密碼學領域 或在多維幾何學領域 有哪些應用 但要在事前確定具體細節 恐怕也不容易 另一方面 從理論團隊中 也發展出不少公司 有些表現還不錯 像各位可能聽過 Rivest和同事 以原生加密演算法 創辦的 RSA security 安全廠商 還有今天下午 會來到攤位的幾家 新興公司 另外,我們也會在這裡 與其中一家公司 Peppercoin 會面 此外還有 Akamai 公司 Akamai 是由 Tom Leighton 教授所創辦的 各位記得 今天早上我也提到 CSAIL 實驗室是由各學科組成 成員來自各系所 而Tom就是麻省理工 的數學系教授 他在1981年 取得本校數學系博士學位 他也是數學系的教職人員 事實上 理論團隊 約有半數成員 都來自數學系 另一半則來自 資訊工程系所 所以理論團隊確實是跨系所 甚至跨學院的研究團隊 橫跨本校理、工學院 而 Tom從1981年起就是本校教職員 幾年後 他創辦了Akamai 在座應該多少都聽過 Akamai 的豐功偉業 而今天,我們終於請到 Tom現身說法 讓我們歡迎Tom 謝謝 感謝各位 演說中各位如果想提問 請起立 舉手或喊出聲 我很樂意為各位解答 之後我們也會預留時間 回答最後的一些問題 今天 我要談的是 Akamai 草創時期的心路歷程 我們如何在當時的資工系實驗室 展開學術研究 所處理的問題領域 該如何繼續 以及將這些問題帶入 是什麼樣的因緣際會下 將它們從實驗室帶入公司 還有我們之後 成功的一些方法和途徑 另外我也會提到一些 公司先前經歷的網路成長的瘋狂時期 當網路泡沫化後 我們何去何從 現在我先從學術研究談起 在 Akamai 剛成立時 我們的成員 壓根沒想過 之後會創辦公司 當時純粹是研究計畫而已 受到網路上一些問題 的刺激和啟發 網路是相當驚人的結構 網路革新了我們溝通 和做生意的方式 其實很簡單 有些人想要存取內容 像是家庭或企業 和大專院校中的一般使用者 而有些人則擁有其他人 想要存取的內容 他們就能透過網際網路互相存取 如果我們深入來看 事情就比較複雜了 特別是 資料傳送所選擇的路徑 從一開始的伺服器 至一般使用者的路徑 可能是漫長又崎嶇的過程 通常從來源到目的地途中 會通過許多 ISP 或網路服務業者 但有時 過程中可能出錯 其中最大的一個問題 就是原始的基礎建設 在一開始時就出現瓶頸 稍後我們會談一下這個瓶頸 還有網路交換中心的問題 無論是公開或私人的網路交換中心 其中資料從這個網路到其他網路 過程中可能發生問題 位元可能遺失或 指錯方向或被盜取 而無法抵達 最終的目的地 由於預期到這些問題的發生 因此 Tim Burners 決定 來到資訊科學實驗室LCS 尋求我們演算團隊的協助 其實這也是 LCS 的優點之一 它是跨領域的環境 今天的CSAIL是 結合多重領域的環境 它擁有各校數學系所的 理論專家 和那些實踐者攜手合作 還有像是Tim這些 在創辦網路上擁有 傑出成就的人士 早在 1995 年Tim就知道 網路會遭遇一些難題 特別是 基礎建設的問題 如果同時有很多人 想連上同一個網站 就會發生問題 Tim說︰「既然你們研究的是 一些複雜問題的演算和網路 那你們就負責理論的部分吧 也許你們可以 想出一個好的解決方法」 這已經是1995年的事情了 所以這就是我們的開始 關於那兩個問題 我想稍微談一下 首先是集中化的瓶頸 這目前還是個大問題 它的基本概念很簡單︰ 集中化的網站會產生 相同的瓶頸 對攻擊者來說是個誘人的目標 近年來我們在許多重要的網站上 都發現這樣的情形 像是白宮 微軟和Sco的網站 都很容易遭受攻擊 它原本就無法調整 由於網路使用量 寬頻連線的風行 傳送位元數的增加 這些都對單一基礎建設 造成莫大的負擔 各位了解 網路可以說是 一體兩面的東西 一方面是它以前所未有的 能力支援通訊 就算沒有聯邦通訊委員會的授權 或不買下廣播電台 任何人都可以架設網站 成千上萬的民眾 都可以存取其中的資訊 確實了不起 但另一方面 也可能真的有成千上萬的人 試著 存取其中的資訊 甚至在同一時間 大家一起存取 最著名的例子就是 「維多利亞的秘密」時裝秀 在1999年超級盃 推出了時裝秀的廣告 在場的許多人也許還記得 在超級盃的廣告裡,他們讓模特兒 穿著性感內衣走在伸展台上 廣告上說,如果你想 觀賞完整的服裝秀 請於週二晚間 九點上我們的網站 結果到了週二晚上九點 不到10秒鐘的時間該網站就掛了 「維多利亞的秘密」網站 和周圍的其他網站 全部一起被塞爆 這也使我們了解到 網路使用的普及化 還有不少例子 每當有熱門的資訊時 網站卻無法支援所有 想連上網站的人口流量 若你想試著支援這樣的流量 確實的人次數 可能讓你難以想像 像是各家電子商務業者 都必須估計 今年聖誕節會有 多少人次湧入 應該建立什麼樣的基礎建設規模 而對國稅局來說 最重要的就是4月15日 他們必須考慮這天的基礎建設 應該有多大? 對於花店或母親節的 線上商務業者 他們也必須 對這些重要的日子作準備 如果流量估計正確 你整年都可以高枕無憂 如果估計錯誤 你可能會灰頭土臉 這確實是個問題 這也帶出需求運算的完整概念 現在像是IBM 或其他大公司 在這方面都投注大量的資金 而較鮮為人知 的一些問題 則是網際網路中 基礎建設的問題 在 Tim加入之後 我們便展開研究 然後發現 其中甚至存在 一些更為根深蒂固的問題 而非只是傳輸內容的 集中化觀念 首先 我們知道 一般人總以為網際網路 存有許多未點亮的光纖 以及充裕的容量 這觀念不算全錯 像是紐約到洛杉磯間的主幹光纖 有些至今仍未點亮 因此存在額外的容量 但問題不在於 那些主幹光纖 而是在各ISP之間以對等關係 連接這些大管線的路由器 從洛杉磯到紐約 你可以經由MCI公司 取得你所需要的資料位元 你試著將這些資料位元 從MCI傳給紐約的Sprint 或一般使用者所屬 較不知名的ISP 現在問題來了 我們又回到另一項 非技術問題 我們可以建立大型路由器 有些公司的路由器 品質還不錯 但這也產生經濟 商業上的問題 對各家網路公司而言 取用彼此的流量或為各國 或全世界的流量提供傳輸 他們還沒確定該如何 相互計費 而最佳的防禦就是限制 你在骨幹網路上所允許的 其他廠商流量 在網路交換中心進行限縮 如果你在網路交換中心 執行限縮 不讓更多流量通過 就會造成網際網路大塞車 在大型骨幹管線 不常出現這種塞車情形 而是在交換關係上 當路由器忙得不可開交時 它會將管線 將封包丟棄在底層 另外 還有一件事情會使問題惡化 傳閱封包的演算法 會略過壅塞的情況 決定封包 由來源至目的地路徑的 演算法 稱為BGP 也就是邊界閘道通訊協定 它先巡覽各家ISP 再選擇封包採取的路徑 它根據通過 路由器的約略數目 試圖找出最短距離的路徑 但卻無法 區別不同的路由器 像是容量充足的路由器 或是容量耗盡開始丟棄封包的路由器 它只會沿著相同的路徑 不斷傳送封包 而忽略封包是否可以通過 所以基本上的問題是 我們無法實際解決網路上的問題 當我們再深入一層來探討 供應 BGP 尋找 捷徑的資料 你會發現還有更糟的問題 一般人總以為 我可以獲得資料 知道骨幹網路上點和點 之間的距離 然後以捷徑的演算法 將該資料傳送過去 這四十多年來 我們也都知道解決的辦法 然後就能得到解答 但其實並非如此 由於各家ISP之間的經濟 和商業上問題 每一家網路都會稍微杜撰 供應整個網際網路的資料 例如 若有一家網路公司不希望 紐約和洛杉磯之間的骨幹連結 被他人使用 而導致可能收不到使用費 他們就會說這其中的距離為二十 但實際的距離只有三 而當BGP算出最短路徑 當它發現二十時 它就會試著尋找 其他距離更短的路徑 網路就是以這樣的方式 左右流量的去向 所以假如你不付費 就無法用來傳輸 大家都得遵守遊戲規則 因此送入BGP的資料 其實在許多方面都沒有意義 當你根據杜撰的資料 找到捷徑 這條路徑也不是真的捷徑 路由追蹤 還有一個不錯的方法 你可以追蹤到其他位置的路由 查看它採取的路徑 通常你會發現 那絕不會是 網際網路上最短的路徑 像是 我記得有一天 我們從Akamai的大樓 追蹤傳送到麻省理工 大約五分鐘步行路程的位置 他的訊號卻必須經過以色列 對吧? 好的 BGP做得沒錯 它只是根據所獲得的資料 尋找最短的路徑 而為何資料都得經過以色列? 因為演算法所根據的數據都有錯誤 好的 在眾人瞎搞這些數據之後 各種各樣的慘劇都有可能發生 這樣各位了解嗎? 有個不錯的例子在第三層 我們若不小心 輸入無限大的負數時 相當於無限大負數的成本 或者-通過骨幹的距離 當你計算最短路徑時 有些邊緣 存在無限大的負數長度 所有使用該邊緣的路徑 都有無限大的負數長度 在網際網路上 所有的封包 都立刻爭相前往第三層 基本上 每個路徑都必須 通過第三層 但第三層的對等 點都很小 才能抵禦過多傳入的封包 若突然發生大塞車 BGP來不及反應 所有的封包就都會遺失 因此在他們找出 問題的肇因之前 網際網路將 停擺一個小時之久 直到他們修正好 資訊 才能再次傳播 隔天在報紙上 你就會看到 「某處的光纖被拖曳機切斷了 導致網際網路暫時嚴重當機」 瞭解了嗎? 因為他們不想讓你知道 他們究竟在玩什麼把戲 全世界哪有這麼多拖曳機 能造成網際網路的所有問題 更糟的是 路由演算法也很容易 損失整個路由 和遭受蓄意的路由盜竊 各位多半能透過網路黑洞的觀念 理解這問題 假如有某家ISP業者宣稱 他擁有你的IP位址 然後把你的位址輸入 他的路由器 並加以傳播 就在這一瞬間 所有將你作為目的地的流量 都不會傳到你那裡 而會傳給不小心 輸入錯誤位址的ISP業者 由於這家ISP並不擁有該 IP 位址 因此它就會忽略 並把封包遺失 這已經不是新鮮事了 對經營電子商務網站的人士而言 在經濟層面便有極大的影響 過去也有大型連鎖飯店業者 發生這種問題 還持續了五個小時 Comcast 不慎盜用了 這家飯店的網際網路IP位址 他們的網站 因此停用了五個小時 損失的美金約數百萬元 肇事責任的官司 至今仍在訴訟中 不過這只是意外的誤用 垃圾郵件發信者用此法發送大量 垃圾郵件,再嫁禍給無辜第三者 他們會竊取他人的IP區段 因為很少有人會實際確認 是誰擁有該IP區段 方法很簡單 你-只要找一台路由器或T1 並宣佈「我擁有這些IP位址」 然後告知 另一端的路由器 它就會透過網際網路 將資訊傳播出去 事實上 有心人士就會散佈 他們確實能控制這種資訊的散佈 範圍由他控制 當壞人擁有IP空間後 他可以用來發送大量垃圾郵件 發送出去之後 他可以離開 可以下線 離開網路 等你查到究竟是誰 發送垃圾郵件 你找到該IP位址的所有人 但這個人卻一頭霧水 各位瞭解了嗎? 在電子商務方面這將更嚴重 例如你在線上使用金融服務時 也許你在波士頓 有個Fleet銀行的帳戶 還有密碼 你可以設定你的 登入名稱和密碼 我輕易就能偷到你的名稱和密碼 方法很多 其中一個是因為BGP不會 驗證IP位址的所有權 所以我可以竊取你的密碼 我找到你的ISP 傳送訊息給你的ISP 說 我擁有銀行的IP位址 並限制該資訊的散佈 因此只有特定的ISP知道 這家ISP也不會檢查或確認 他們會說「沒問題」 之後這家ISP就會立刻將 銀行的所有流量傳送給我 全到我這裡來 同時 我已經從銀行下載了登入的網頁 我只要下載這個網頁 大家就會來我這裡登入 進行金融交易 請看我的登入網頁 可以嗎? 輸入你的登入 身分和密碼後 你會發現 你被重新導入這個網站 噢,你必須重新登入 因為發生了點小問題 所以請重新登入 知道吧? 你也沒有發現任何的異常狀況 對吧? 銀行當然不知情 他們只少了百分之三的流量 但這也無法證實 他們根本不會察覺 我只是從某家ISP 收集了所有的密碼 這是目前我可以在網際網路上 使用的五種方法之一 沒有人知道我做了什麼好事 好的 你可以 各位可能不是很瞭解 現在網際網路上的資訊有多珍貴 所以這些是更深一層的問題 這些是在目前的網際網路基礎建設中 比較少人瞭解的部分 這也是Akamai成立的原因