<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 4815字,需瀏覽 10分鐘

           ·

          2021-04-23 12:30

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


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





          01 什么是架構(gòu)?

          架構(gòu)是一個過程、一個結(jié)果和一門學(xué)科。

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

          架構(gòu)的三個方面都適用于“真實(shí)的建筑”與計(jì)算機(jī)科學(xué)。

          1. 作為一個過程

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

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

          2. 作為一個結(jié)果

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

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

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


          3. 作為一門學(xué)科

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

          當(dāng)然,技術(shù)考慮可能需要盡早進(jìn)入設(shè)計(jì)過程,因?yàn)榻ㄖ熞幚碇T如能源效率或抗震等問題,但是建筑師主要是在設(shè)計(jì)過程中訓(xùn)練出來的。他們學(xué)的不是工程而是建筑。他們通過案例研究來學(xué)習(xí),需要觀察大量的建筑物,看它們有多適合(或不適合),看它們是否滿足用戶的需求,在視覺上是否有吸引力,如何處理設(shè)計(jì)權(quán)衡,等等。

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

          我們在理論和實(shí)踐方面對計(jì)算機(jī)科學(xué)家進(jìn)行訓(xùn)練,但往往不贊成研究以前的設(shè)計(jì),我們認(rèn)為它們“不科學(xué)”或“未基于基本原理”。

          我個人對試圖使架構(gòu)更加嚴(yán)謹(jǐn)而感到興奮,但是不應(yīng)該用“憑直覺”設(shè)計(jì)這樣的短語來反對我們今天所做的事情。我們的學(xué)科是一門設(shè)計(jì)學(xué)科,就像建筑架構(gòu)一樣,我們應(yīng)該努力超越它,而不是摒棄它。

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

          這個級別的設(shè)計(jì)決策構(gòu)建在核心架構(gòu)之上,但是沒有被核心架構(gòu)指定。那么,我們應(yīng)該在這個核心架構(gòu)中看到什么呢?



          02 網(wǎng)絡(luò)架構(gòu)的要素

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

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

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

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

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

          2. 便于達(dá)成一致的問題

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

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

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

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

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

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


          4. 功能依賴

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

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

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

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

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

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

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



          03 總結(jié):關(guān)于架構(gòu)的思考

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

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

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

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

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

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

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

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

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



          劃重點(diǎn)??



          干貨直達(dá)??


          更多精彩??

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

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

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

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  毛片一A免费网站 | 学生妹看毛片 | 成年男女啪啪网视频 | 日本一级婬片A片AAA毛片男男 | 韩国久久|