天天看點

移動IP技術之我見

為何這麼說呢?說實話,所有的應用“連接配接”都應該由應用程式自己來定義和保持,TCP連接配接并不能說明是一個應用程式為保持會話而應保持的連接配接,TCP連接配接的破壞重連僅僅表明端到端網絡層/傳輸層的五元組被重置,即便這樣應用層也能定義一個協定保持應用層本身協定的有效性,再往下,IP連接配接僅僅表示一種IP位址間的可達性(IP本身并不是基于連接配接的,但是廣義的想,它的連接配接就是路由可達的意思)。之是以有移動IP這種技術出來,很大的問題來自于應用程式本身而不是TCP/IP協定的缺陷,當然TCP/IP确實存在缺陷,并且在我的那篇文章中所說的那些缺陷也确實真實,然而将應用程式的缺陷加在TCP/IP上面進行數罪并罰的話,也确實有失公允。

      考慮網絡購物應用,你進入店鋪,登入,購物,然後關機,注意,關機的意思是希望斷掉所有的TCP連接配接,然後開機,打開浏覽器,繼續購物,你并不需要重新登入,這就是說,在這類應用中,一個連接配接的保持就是你的購物過程不會因為TCP連接配接的中端而中斷,确實,想HTTP的session起的作用也類似,但是還是有更多更複雜的類似機制。是以,應用程式并不能過分的苛求傳輸層的所謂TCP連接配接,而更應該關注事務(Transaction)和會話(Session)。之是以目前的應用程式在移動時代遇到了這麼多的問題,就是因為很多的應用程式的設計者将應用層的連接配接錯誤的等同于TCP連接配接。我一直都不十分同意業界的一個說法,那就是TCP/IP模型完勝了OSI模型,這裡給出一個理由,其實OSI是一個定義模型而TCP/IP則是一個實作模型,TCP/IP模型中缺失了會話層和表示層,聲明二者在應用層自身實作,這意味着什麼?

      這意味着TCP/IP模型放棄了會話層和表示層的标準化工作,最終導緻應用程式直接把會話和表示這兩個本來應該标準化的工作嫁接在了BSD socket之上,BSD socket的INET族直接接在傳輸層,這說明應用程式偷了懶!即便這兩個層沒有标準化,應用程式也可以有自己的會話層和表示層,比如典型的HTTPS協定。對于表示層而言,SSL協定可以看做一個實作安全傳輸的表示層協定,也被标準化了,可是對于會話層,就沒有那麼簡單了,表示層可以根據表示需求熱插拔,可是在移動時代,會話在TCP之上需要維持是一個硬需求,應用程式本身積重難返!這正好給了玩基礎設施的裝置商以及營運商一個絕好的機會。

      如今的APP爆炸式的增長刺激了多少傳統産業,催生了多少新産業,真的是應用為王爆炸的全面開花的時代,這個誘惑力是巨大的,筆者一直以為底層網絡把戲台子搭好,唱戲的主角是網際網路應用,過去的二十年,一直都是搭建戲台子的時間,實際上整個網際網路可以看成是一個偌大的工地,戲台子勞工在玩了命的施工中,期間有加班加點,拓展創新,也有偷工減料,彌漫着的也包含行賄受賄,一些廠商積累了大量的經驗和财富,成了工程界的皎皎者,人們一度認為它們領先于網際網路的時代,其中包括Cisco,Juniper,H3C等。如今它們的戲台子好像是搭建完了,然而是不是想留下場地給應用廠商就不得而知了,于是乎它們便主動擔當了網際網路基礎設施的所謂“二期工程”策劃者的角色,無非就是想繼續占據業界領先的位置,再一次分一杯羹。正是應用“隻關注業務,不關注網絡”導緻了基礎設施建構者的上位。

      于是,網絡裝置廠商也開始玩爆炸,想把地層已經建立好的戲台子炸得遍地開花,然後再搭一個。說白了就是他們不想讓位。實際上,它們提出過的很多所謂的新技術,都很牽強,經不起仔細推敲,但是人們已經習慣了它們制定标準的角色,是以很少有人提出什麼異議,再說,即便有什麼問題,它們也能依靠自己的資源在業内占據的比重給出一個整理的解決方案,即便那是一個又一次修修補補的方案,鑒于人們隻要結果不管細節的特性,隻要是一個整體方案就行,整個故事中,到此為止我沒有提營運商,如果我把裝置廠商看做戲台承包商的話,那麼營運商扮演的角色就是有權準許誰可以承建戲台的有關部門,其中的合作與博弈我就不多說了,雖然資料中心的重要性也不可小觑,但是就網際網路基礎設施來說,誰控制了骨幹,誰說了算,至于支端Stub網絡,那是應用伺服器和存儲的天下!

      說了這麼多,該下結論了!TCP/IP誕生于實驗室,壯大于裝置廠商,支援于營運商,後兩者有紛繁複雜的利益交織,後兩者牽頭的網絡基礎設施改造計劃基本都是短視的,是TCP/IP缺失了兩個層的标準化導緻了廠商和營運商過度參與到了标準的制定中,很大程度上并不是為了真正标準化,而是為了自己利益最大化!然而這是一種雙赢局面的利益最大化,我對此持中立态度。

      移動IP技術本質上并不是一個基于全新架構的技術,它無非依靠封裝/适配,增加新協定進而增加新裝置在滿足使用者需求的前提下争取自己的利益最大化,當然對于不斷增資的網際網路産業而言,這是良性循環。網際網路基礎設施的使用者是應用開發商,應用當然不希望有什麼颠覆性的改變,它們早已習慣了即有開發平台,而此時基礎設施的改變就是必然,應用廠商可以平滑過度到移動時代的代價就是讓應用的最終使用者為基礎設施的移動化支援買單,而在應用爆炸的年代,成本被海量的使用者以及複雜的cross邊際效應所稀釋(比如廣告/公告,微信營銷之類的東西),人們反而覺得上網越來越便宜,終端成本效益越來越高,這不是良性循環是什麼?

      缺失的層總是要彌補,移動化時代,裝置廠商和營運商再一次舉起了大旗,和上一次建構網際網路基礎設施依托實驗室以及标準化組織做法不同的是,這一次它們不是在縱向插入一個新的标準化的層,而是将協定棧橫向拉伸,引入了很多新的協定和裝置,這就是雙赢的局面,裝置廠商/營運商和大學/标準化組織之間關系就是如此的微妙複雜。标準化組織和廠商/營運商的理念非常不同,标準化組織是接口驅動的,隻定義标準接口,不管内部實作,而廠商/營運商則是回報驅動型的,隻要有需求就滿足,然後接收使用者回報,疊代改進,是以标準化組織的東西會越做越高,變成細高型的,而廠商/雲營運商的東西會越鋪越寬,變成扁平狀的,二者一結合,就是現如今的TCP/IP局面,一個腰部逐漸撐大變肥的沙漏型的怪異形狀,移動時代的TCP/IP不再苗條。

      結論是什麼?結論就是移動IP并不是一個标準化的技術,IP在TCP/IP分層意義上并不需要支援移動性,IP隻求可達性就可以了。正是由于TCP/IP模型中會話層的不作為才導緻了複雜的移動IP技術的出現,本應該由會話層實作的标準技術成了又一個基礎設施類的東西,然而好處也是有的,那便是APP以及何其連接配接的庫可以真正做到“隻關注業務邏輯”了,像固定IP時代一樣,直接嫁接于标準socket接口上。

      以上,純粹個人的胡思亂想,不辯論,不較真。請不要用個案以及特殊環境下的個例來反駁,在那種或者也許任何情況下,我的所有想法都是大錯特錯!

 本文轉自 dog250 51CTO部落格,原文連結:http://blog.51cto.com/dog250/1365773

繼續閱讀