1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        什么是架構?網(wǎng)絡架構中都有什么?終于有人講明白了

        共 4815字,需瀏覽 10分鐘

         ·

        2021-04-23 12:30

        導讀:理解架構這個詞的意思是十分重要的。它可能被過度使用,并且使用在各種環(huán)境中。如果缺少一致的理解,將會有交流失敗的風險。那么架構這個詞到底是什么意思呢?


        作者:大衛(wèi)·D.克拉克(David D. Clark)
        來源:大數(shù)據(jù)DT(ID:hzdashuju)





        01 什么是架構?

        架構是一個過程、一個結果和一門學科。

        • 作為一個過程,它涉及將組件與設計元素結合,以此來形成一個有目的的實體。
        • 作為一個結果,它描述了由其形式所定義的一系列實體。對于我們熟知的“哥特式大教堂”這種架構形式,它的特點是一系列公認的設計元素與方法,目的可能是構建一個禮拜場所,但“哥特式大教堂”實際上意味著更多。
        • 最后,作為一門學科,架構就是架構師接受訓練要掌握的本領。計算機科學領域從設計物理實物的學科中借用了這個術語,例如建筑物和城市,其中包含廣受認可的培訓與認證過程。

        架構的三個方面都適用于“真實的建筑”與計算機科學。

        1. 作為一個過程

        我的定義有兩個重要的方面:將組件整合在一起并應用于某個目的。

        • 將組件整合在一起:這是計算機科學家在考慮模塊、接口、依賴、分層、抽象以及組件復用等問題時所做的工作。這些都是設計模式,計算機科學家接受了相關的訓練,在思量設計挑戰(zhàn)時需要考慮這些設計模式。
        • 應用于某個目的:設計過程必須按照工件的預期目的來塑造,例如,是一所醫(yī)院而不是一座監(jiān)獄,是一個低功率處理器而不是超級計算機,是汽車中將剎車踏板掛在剎車上的網(wǎng)絡而不是因特網(wǎng)。作為架構的一部分,設計師必須解決系統(tǒng)不能做什么(或者做得很好)與將要做什么。
          在計算機科學中,系統(tǒng)設計存在著一種危險,這是眾所周知的,它被稱為第二系統(tǒng)綜合征,即首先構建一個或許把一些事做得很好的系統(tǒng),然后再提出一個試圖把所有事情都做得很好的替代方案的趨勢。

        2. 作為一個結果

        在建筑設計實踐中,設計通常會產(chǎn)生一份結果。也有一些例外,例如排房,其中一個設計會建造很多次,但大多數(shù)建筑物都只有一座。在描述結果時,架構這個術語通常意味著一類設計,以其最顯著的特征為代表(例如飛拱)。這個術語適用于這個抽象類,盡管架構師必須在建筑團隊接管之前將建筑描述到非常精細的程度。

        當計算機科學家重新使用架構這個術語時,他們稍微重新定義了一下。關于因特網(wǎng),有很多不同的網(wǎng)絡都是基于同樣的設計:我們稱之為“因特網(wǎng)”的公共全球網(wǎng)絡,屬于企業(yè)、軍隊等的私有網(wǎng)絡,以及金融網(wǎng)絡等特殊用途的網(wǎng)絡。

        在這種環(huán)境下,架構一詞僅描述所構建的部分內(nèi)容,給定示例的大部分設計過程都發(fā)生在之后的環(huán)節(jié)中,可能由不同的組來描述。


        3. 作為一門學科

        “真正的”建筑師——那些設計樓房的人——去學校里學習這一行業(yè)。作為外行,了解他們的培養(yǎng)方式對于我們也是有教育意義的。架構(相對于結構工程)不是建立在基礎科學與工程原理之上的設計學科。建筑師通常不關心結構工程等問題,并將這些留給別人。

        當然,技術考慮可能需要盡早進入設計過程,因為建筑師要處理諸如能源效率或抗震等問題,但是建筑師主要是在設計過程中訓練出來的。他們學的不是工程而是建筑。他們通過案例研究來學習,需要觀察大量的建筑物,看它們有多適合(或不適合),看它們是否滿足用戶的需求,在視覺上是否有吸引力,如何處理設計權衡,等等。

        在計算機科學中,我們往往希望設計能基于強大的工程基礎、具有限制性的理論以及優(yōu)先的設計選項等,但(至少在過去)系統(tǒng)架構的大部分業(yè)務都更類似于建筑師的業(yè)務(例如,從以前的設計中學習,問問什么運轉(zhuǎn)良好、什么效果不佳,問問這個設計是否與目標相符合)。

        我們在理論和實踐方面對計算機科學家進行訓練,但往往不贊成研究以前的設計,我們認為它們“不科學”或“未基于基本原理”。

        我個人對試圖使架構更加嚴謹而感到興奮,但是不應該用“憑直覺”設計這樣的短語來反對我們今天所做的事情。我們的學科是一門設計學科,就像建筑架構一樣,我們應該努力超越它,而不是摒棄它。

        因此,如果因特網(wǎng)的架構不是完整的規(guī)范,而只是該規(guī)范的一部分,那么架構中包含哪些內(nèi)容呢?我們可以說說不包括什么??纯椿谝蛱鼐W(wǎng)技術的所有不同網(wǎng)絡的例子,或者全球因特網(wǎng)的不同區(qū)域,試著發(fā)現(xiàn)它們的不同之處。我們看到它們在性能、彈性、對移動性的容忍、對安全性的關注等方面存在差異。

        這個級別的設計決策構建在核心架構之上,但是沒有被核心架構指定。那么,我們應該在這個核心架構中看到什么呢?



        02 網(wǎng)絡架構的要素

        我確定了可以決定某個特定問題是否上升到架構級別的幾個標準:對于系統(tǒng)的正常工作,是否需要就該問題達成一致;就該問題達成一致是否方便;該問題是否定義了系統(tǒng)的基本模塊性或功能依賴;或者該問題隨著時間的推移是穩(wěn)定的這一點是否重要。

        1. 對于系統(tǒng)的正常工作,我們必須一致同意的問題

        例如,因特網(wǎng)架構是基于包的使用,以及假設包頭總是具有相同的格式(不同的設計可能允許在不同的區(qū)域使用不同的格式,在這種情況下,架構可能會選擇描述為所需的轉(zhuǎn)換提供什么樣的架構支持)。

        另一個例子是,當我們第一次設計因特網(wǎng)時,認為設計依賴于單一的全球地址空間?,F(xiàn)在很顯然這種假設是不必要的,不需要就地址的統(tǒng)一含義達成全球一致。網(wǎng)絡地址轉(zhuǎn)換設備或“NAT箱”,允許因特網(wǎng)邊緣的區(qū)域使用私有地址空間,并僅在數(shù)據(jù)包向外傳輸?shù)焦惨蛱鼐W(wǎng)時才將這些地址轉(zhuǎn)換為全局路由地址。

        有趣的是,一旦因特網(wǎng)設計師意識到他們可以使用具有不同地址空間的區(qū)域來構建網(wǎng)絡,就不需要急于擴展架構來對不相交地址空間是如何互連的提供任何支持或指導。

        2. 便于達成一致的問題

        我們沒有要求應用使用域名系統(tǒng)(DNS),但由于基本上所有應用設計人員都使用它,因此它已經(jīng)強制成為因特網(wǎng)的一部分,盡管DNS不是最初設計的一部分。類似地,盡管通信應用沒有必要使用TCP,但是許多應用都依賴于它,以至于它也成為因特網(wǎng)的強制組成部分。

        3. 系統(tǒng)的基本模塊性

        計算機科學使用模塊這個詞來描述系統(tǒng)的子組件:一個模塊有一個特定的接口,通過這個接口可以連接到系統(tǒng)的其他部分,而接口下面的模塊內(nèi)部結構是隱藏的,不能從模塊外部訪問。

        模塊的設計人員通常會保持接口規(guī)范不變,因為其他模塊可能依賴于該接口,但是可以自由更改模塊的內(nèi)部結構,因為這些是模塊的私有結構。因特網(wǎng)協(xié)議(IP)的規(guī)范定義了三個模塊接口。它定義了兩層接口:服務接口(在其上構建更高級別的服務)和IP層下的技術接口。它還(隱式地和部分地)定義了AS接口:因特網(wǎng)中不同AS之間的接口。

        服務接口是因特網(wǎng)的盡力而為包級的傳送模型:如果端節(jié)點發(fā)送一個數(shù)據(jù)包,并在數(shù)據(jù)包中使用有效的目的地IP地址,就目前的網(wǎng)絡能力而言,因特網(wǎng)的路由器將把數(shù)據(jù)包轉(zhuǎn)發(fā)到由該IP地址定義的目的接口。服務接口隱藏了如何使用特定技術在因特網(wǎng)內(nèi)提供通信路徑的所有細節(jié)。

        因此,這個服務接口定義了網(wǎng)絡和端節(jié)點之間的抽象接口。該接口的技術細節(jié)依賴于用于連接到端節(jié)點的特定網(wǎng)絡技術,并根據(jù)技術的具體情況而有所不同,因此這些細節(jié)不屬于架構規(guī)范的一部分。


        4. 功能依賴

        架構的一個方面是明確設計的功能依賴。我將用因特網(wǎng)來說明這意味著什么。

        因特網(wǎng)的基本操作很簡單。路由器在后臺計算路由表,這樣它們就知道到因特網(wǎng)所有部分的路由。當收到數(shù)據(jù)包時,它們會查找最佳的路由,并將數(shù)據(jù)包發(fā)送到該路由上。雖然在因特網(wǎng)內(nèi)有很多東西在運行,但在內(nèi)核上,它所做的就是這個。因特網(wǎng)的正常運行必然取決于路由器的正常運行。

        但是因特網(wǎng)還需要什么來提供服務呢?事實上,因特網(wǎng)的早期設計師試圖限制使用的服務或要運行的組件的數(shù)量,以確保數(shù)據(jù)包流動。早期的設計目標如下:“如果有兩臺計算機掛到網(wǎng)絡上,并且每臺計算機都知道另一臺計算機的地址,那么它們應該能夠通信。不應當再需要其他任何東西”。

        這種設計偏好可以表示為“最少功能依賴”的目標。一些互聯(lián)網(wǎng)設計建議具有更多的功能依賴——它們依賴于更多的服務來啟動和運行,從而使基本通信成功。在出錯時,它們正在用(或許)更弱的彈性來換取功能。

        5. 系統(tǒng)中被視為持久不變的方面

        在像因特網(wǎng)這樣的系統(tǒng)中,我們知道很多東西將會改變。事實上,變化、升級和替換系統(tǒng)某些方面的能力,是成功長壽的關鍵。

        但是在某種程度上,有些方面看起來像是持久不變的,將它們指定為設計的一部分可以提供穩(wěn)定的點,系統(tǒng)的其他部分可以圍繞這些點向前演化。



        03 總結:關于架構的思考

        對于我所說的架構這個詞,我已經(jīng)有了一個基本的概念。在我看來,一個關鍵的原則是架構的極簡性。在計算機科學的背景下,系統(tǒng)的架構不應該試圖描述系統(tǒng)的每個方面。

        這種架構的概念似乎與建筑物的架構有所不同。當樓房建筑師把設計圖交給建造者時,規(guī)范就會完整到細節(jié)——不僅僅是形狀和結構,還有電源插座的位置。

        但是我不認為大部分決策是架構性的。就像我之前說的,建筑物的架構和像因特網(wǎng)這樣的人工制品的架構之間的區(qū)別之一是,有很多網(wǎng)絡是使用相同的因特網(wǎng)技術構建的,而不僅僅是一個。如果可以在不同的環(huán)境中使用因特網(wǎng)技術,則會有明顯的好處:商業(yè)產(chǎn)品更便宜,也可能更成熟,幾乎所有計算機系統(tǒng)都有相關的軟件,等等。

        然而,對于安全性、彈性以及其他方面,這些網(wǎng)絡可能沒有完全相同的要求,所以架構的力量不在于定義了如何構建網(wǎng)絡(就像建筑規(guī)劃描述如何建造樓房一樣),而在于允許這些需求得到滿足,或許在不同的環(huán)境中以不同的方式來滿足這些需求。

        改述一下愛因斯坦的話,我認為架構應該盡可能小,但不要過小。有人可能會說,正如我所描述的,因特網(wǎng)架構最基本的方面是其偏好極簡性??紤]到這一觀點,給定架構所要解決的需求,我們認為的網(wǎng)絡系統(tǒng)架構的范圍,應該只包括那些屬于我在這里列出的框架內(nèi)的那些方面。

        關于作者:大衛(wèi)·D. 克拉克(David D. Clark) ,麻省理工學院(MIT)計算機科學與人工智能實驗室高級研究科學家。20世紀80年代曾擔任因特網(wǎng)架構組主席,長期主持因特網(wǎng)的設計工作,以及未來互聯(lián)網(wǎng)技術的研究工作。

        本文摘編自互聯(lián)網(wǎng)的設計和演化》,經(jīng)出版方授權發(fā)布。

        延伸閱讀互聯(lián)網(wǎng)的設計和演化
        點擊上圖了解及購買
        轉(zhuǎn)載請聯(lián)系微信:DoctorData

        推薦語:因特網(wǎng)設計師親自執(zhí)筆, “互聯(lián)網(wǎng)之父”、圖靈獎得主Vint Cerf強力推薦!如果給你一個機會從頭開始設計互聯(lián)網(wǎng),你會怎么做?設計在一定程度上取決于品位,因特網(wǎng)這項設計品位如何?一系列不同的甚至相互沖突的需求如何形塑了今天的因特網(wǎng)?本書將帶你找到答案!



        劃重點??



        干貨直達??


        更多精彩??

        在公眾號對話框輸入以下關鍵詞
        查看更多優(yōu)質(zhì)內(nèi)容!

        PPT | 讀書 | 書單 | 硬核 | 干貨 | 講明白 | 神操作
        大數(shù)據(jù) | 云計算 | 數(shù)據(jù)庫 | Python | 爬蟲 | 可視化
        AI | 人工智能 | 機器學習 | 深度學習 | NLP
        5G | 中臺 | 用戶畫像 1024 | 數(shù)學 | 算法 數(shù)字孿生

        據(jù)統(tǒng)計,99%的大咖都關注了這個公眾號
        ??
        瀏覽 22
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            伊人网站| 欧美成人性爱视频| 亚洲欧美成人| 亚洲丁香五月天| 日韩天堂网| 青青草操逼视频| 性猛交╳XXX乱大交| 激情综合视频| 不卡无码在线观看| 伊人成人视频在线观看|