趣談網路協定!華為18級技術大牛嘔心瀝血終成545頁神仙檔案!

2020-09-30 11:00:33

網路是用物理鏈路將各個孤立的工作站或主機相連在一起,組成資料鏈路,從而達到資源共用和通訊的目的。通訊是人與人之間通過某種媒體進行的資訊交流與傳遞。網路通訊是通過網路將各個孤立的裝置進行連線,通過資訊交換實現人與人,人與計算機,計算機與計算機之間的通訊。

網路通訊中最重要的就是網路通訊協定。當今網路協定有很多,區域網中最常用的有三個網路協定:MICROSOFT的NETBEUI、NOVELL的IPX/SPX和TCP/IP協定。應根據需要來選擇合適的網路協定。

  • 第一,會從身邊經常見到的事情出發,用講故事的方式來講解各種協定,然後慢慢擴大到不熟悉的領域。例如,每個人都會使用檢視I地址的命令,我們就從這個命令開始,展開講解一些相關概念。每個人都在大學宿舍組過簡單的網路來打遊戲,我們就從宿舍網路涉及的最簡單的網路概念開始講,然後說到辦公室網路,再說到日常常用的與上網、購物、視訊下載等活動相關的網路協定,最後才說到最陌生的資料中心。說到這裡的時候,很多概念已經在前面的「宿舍」和「辦公室」的例子中都出現過,因此更容易接受和理解。
  • 第二,講解網路協定時會更加貼近使用場景,將各個層次的關係串連起來,而非孤立地講解某個概念。
  • 常見的計算機網路課程往往會按照網路分層,一層一層地講,卻很少講層與層之間的關係。例如,我們在學習路由協定的時候,在真實場景中,這麼多的演演算法和二層是什麼關係呢?和四層又是什麼關係呢?再比如,我們在真實的網路通訊中存取一個網站、進行一次支付,那麼在TCP三次握手的時候,IP層在幹什麼? MAC層在幹什麼?這些內容本書都會逐一講解。
  • 第三,在講解完各個層次的協定之後,會講述如何在當前熱門領域(比如雲端計算、容器和微服務)中使用這些協定。
  • 通過學習本書,讀者一方面可以瞭解這些網路協定的真實應用場景,另一方面也可以通過上手使用雲端計算、容器、微服務來進一步加深對於網路協定的理解。

由於文章篇幅太長,無法全部展示出來,需要完整版的朋友新增小助理即可獲取

內容章節

第1章通訊協定概述.

1.1為什麼要學習網路協定

相信大家都聽過通天塔的故事,上帝為了阻止人類聯合起來,讓人類說不同的語言,人類沒法溝通,達不成「協定」,通天塔的計劃就失敗了。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

1.2網路分層的真實含義

由於長時間從事計算機網路相關的工作,我發現計算機網路有一個顯著的特點,就是這是一個不僅需要背誦,而且特別需要將原理爛熟於胸的學科。很多問題看起來懂了,但是就怕細問,一問就發現你懂得沒有那麼透徹。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

1.3ifconfig:熟悉又陌生的命令列

當面試者聽到這個問題的時候,常常會覺得走錯了房間。我面試的是技術崗位啊,怎麼問這麼簡單的問題?

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

1.4 DHCP與PXE:IP地址是怎麼來的,又是怎麼沒的

上一節,我們講了IP地址的一些基本概念。如果需要和其他機器通訊,就需要一個通訊地址,我們需要給網路卡設定一個IP地址。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

第2章︰從二層到三層

2.1從物理層到MAC層:如何在宿舍裡自己組網玩聯機遊戲

上一章我們見證了IP地址的誕生,或者說是整個作業系統的誕生。一旦機器有了I地址,就可以在網路環境裡和其他的機器展開溝通了。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

2.2交換機與VLAN:辦公室太複雜,我要回學校

上一節,我們在宿舍裡組建了一個原生的區域網,大家可以愉快地一起玩遊戲了。宿舍是一個非常簡單的場景。本節讓我們切換到一個稍微複雜一點的場景——辦公室。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

2.3ICMP與ping:投石問路的偵察兵

無論是在宿舍,還是在辦公室,或者運維一個資料中心,我們常常會遇到網路不通的問題。那臺機器明明就在那裡,你甚至都可以通過機器的終端連上去看。它看著好好的,可是就是連不上網,究竟是哪裡出了問題呢?

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

2.4世界這麼大,我想出閘道器:歐洲十國遊與玄奘西行

前幾節主要講了宿舍裡和辦公室裡用到的網路協定。你已經有了一些基礎,是時候去外網逛逛了!

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

2.5路由協定:「西出閘道器無故人」「敢問路在何方」

俗話說得好,在家千日好,出門一日難。包一旦出了閘道器,就像玄奘西行—樣踏上了江湖漂泊的路。

上一節我們描述的是一個相對簡單的情形。跑出了閘道器之後,只有一條路可以走。但是,網路世界複雜得多,一旦出了閘道器,會面臨很多路由器,有很多條道路可以選。如何選擇一個最便捷的道路去求取真經呢?這裡面還有很多門道可以講。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

第3章最重要的傳輸層

3.1UDP:雖然簡單但是可以客製化化

講完層以後,接下來我們開始講傳輸層。在1.1節中已經講過,傳輸層裡比較重要的兩個協定,一個是TCP,一個是UDP。對不從事底層開發或者應用開發的人來講,最常用的就是這兩個協定。面試時,這兩個協定經常會被放在一起問,因而在本書中也會將兩者結合起來講。

3.2TCP(上):雖然複雜,使用起來卻輕鬆

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

3.2Tcp (上):雖然複雜,使用起來卻輕鬆

3.1節講了UDP,UDP包中基本上包括了傳輸層必需的埠欄位,就像我們小時候一樣簡單,相信「網」之初,性本善,不丟包,不亂序。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

3.3TCP(下):西行必定多妖孽,恆心智慧消磨難

我們前面說到玄奘西行,要出閘道器。既然出了閘道器,那就要在公網上傳輸資料,公網往往是不可靠的,因此需要很多機制去保證傳輸的可靠性,這時就需要各種重要的策略來堅定西行的恆心,還需要大量的演演算法來作為西行的智慧儲備。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

3.4 socket:Talk is cheap, show me the code

前面講完了TCP和UDP,還沒有上手實踐過,這一節就講一講基於TCP和UDP的socket(通訊端)程式設計。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

第4章最常用的應用層

4.1HTTP:看個新聞原來這麼麻煩

前面講述完傳輸層,接下來開始講應用層的協定。就從最常用的HTTP開始講起。

HTTP幾乎是每個人上網用的第一個協定,同時也是很容易被忽略的協定。

既然本節要講看新聞,咱們就先登入某新聞網站http://www. 決命.com。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

4.2HTTPS:點外賣的過程原來這麼複雜

用HTTP看個新聞沒有問題,但是換到更加嚴肅的場景中,就存在很多的安全風險。例如你要下單做一次支付,如果還是使用普通的HTTP,那你很可能就會被駭客盯上。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

4.3串流媒體協定:如何在直播裡看到帥哥美女

最近直播比較火,很多人都喜歡看直播,一個直播系統裡面都有哪些組成部分,都使用了什麼協定呢?

無論是直播還是點播,其實都是對視訊資料的傳輸。一提到視訊,大家都愛看,但是一提到視訊技術,大家都頭疼,因為名詞實在是太多了。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

4.4P2P協定:下載電影,分散式協定速度快

如果你想下載一個電影,一般會通過什麼方式呢?

當然,最簡單的方式就是通過HTTP進行下載。但是相信你有過這樣的體驗,通過瀏覽器下載的時候,只要檔案稍微大點,下載的速度就奇慢無比。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

第5章陌生的資料中心

5.1 DNS:網路世界的地址簿

前面我們講了平時常見的看新聞、支付、直播、下載等場景,現在網站的數量非常多,常用的網站就有二三十個,如果全部通過I地址進行存取,恐怕很難記住。因此,我們需要一個地址簿,根據網站名稱就可以檢視具體的地址。

例如,「西湖邊的‘外婆家’」就是名稱,通過地址簿,我們可以檢視它到底位於哪條路,門牌號是多少號。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

5.2HTTPDNS:網路世界的地址簿也會指錯路

上一節我們知道了DNS的兩項功能,第一項功能是根據網站名稱查到具體的IP地址,另一項功能是針對多個地址做負載均衡,而且可以在多個地址中選擇一個距離近的地址存取。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

5.3CDN:你去小賣部取過快遞嗎

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

5.4資料中心:我是開發商,自己拿地蓋別墅

無論是看新聞、下訂單、看視訊,還是下載檔案,最終的存取目的地都是資料中心。我們前面學了這麼多與網路協定相關的知識,你是不是很好奇資料中心究竟長什麼樣呢?

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

5.5VPN:朝中有人好做官

前面我們講到了資料中心,資料中心裡面很複雜。有的公司有多個資料中心,需要將多個資料中心連線起來,或將辦公室和資料中心連線起來,此時該怎麼辦呢?

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

5.6行動網路:去巴塞羅那,手機也上不了「臉書」

前面講的都是電腦上網的場景,那使用手機上網有什麼不同呢?

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

 

第6章是雲端計算中的網路

6.1雲中網路:自己拿地成本高,購買公寓更靈活

在5.4 節中,我們知道了資料中心裡面堆著一大片一大片的機器,相互之間用網路連線。如果機器數量非常多,那麼維護起來還是挺麻煩的,有好多不靈活的地方,比如以下幾點。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

6.2軟體定義網路:共用基礎設施的小區物業管理辦法

上一節我們瞭解了使用原生的VLAN和Linux網橋的方式來進行雲平臺的管理,但是這種方式在靈活性、隔離性方面都略顯不足,而且整個網路缺少統一的檢視、統一的管理。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

6.3雲中網路之安全:雖然不是土豪,也需要基本保障

上一節我們看到,做一個小區物業維護一個大家共用的環境,還是挺不容易的。如果大家都是自覺遵守規則的住戶還好,如果遇上不自覺的住戶就會很麻煩。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

6.4雲中網路之QoS:室友瘋狂下電影,我該怎麼辦

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

6.5雲中網路之隔離GRE、VXLAN:雖然住一個小區,也要保護隱私

對於雲平臺中的隔離問題,前面用的策略-直都是VLAN,但是我們也說過這種策略的問題:VLAN只有12位元,4096個。雖然當時設計時看起來夠用,但是現在已經絕對不夠用了,那麼該怎麼辦呢?

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

第7章容器技術中的網路

7.1容器網路:來去自由的日子,不買公寓去合租

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

7.2容器網路之Flannel:每人一畝三分地

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

7.3容器網路之Calico:為了高效說出善意的謊言

7.2節我們講了Flannel如何解決容器跨主機互通的問題,這個解決方式其實和虛擬機器器的網路互通模式是差不多的,都是通過隧道進行的。但是Flannel有一個非常好的模式,就是給不同的物理機設定不同的網段,這一點和虛擬機器器的Overlay模式完全不一樣。在虛擬機器器的場景下,整個網段在所有的物理機之間都是可以「飄來飄去」的。網段不同,就給了我們做路由策略的可能。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

7.4 RPC概述:遠在天邊,近在眼前

前面我們講了容器網路如何實現跨主機互通,以及微服務之間的相互呼叫。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

第8章有微服務相關協定

8.1基於XML的SOAP:不要說NBA,請說美國職業籃球聯賽

7.4節我們講了RPC 的經典模型和設計要點,並以早期的ONC RPC為例,詳述了具體的實現。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

8.2基於JSON的RESTful介面協定:我不關心過程,請給我結果

8.1節我們講了基於XML的SOAP,SOAP中S的意思是Simple,但是好像一點兒都不簡單啊!

你會發現,對於SOAP來講,無論XML中呼叫的是什麼函數,多是通過HTTP 的POST方法傳送的。但是之前學習HTTP時,我們知道HTTP除了POST,還有PUT、DELETE、GET等方法,這些也可以是一個個動作,而且基本滿足增刪查改的需求——增POST、刪DELETE、查GET、改PUT。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

8.3二進位制類RPC協定:還是叫NBA吧,總說全稱多費勁

前面講了兩個常用文字類的RPC協定,陌生人之間的溝通,用NBA、CBA這樣的縮略語,會使協定約定非常不方便。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

8.4跨語言類RPC協定:交流之前,雙方先交換一下專業術語表

到目前為止,我們已經講解了4種RPC協定,分別是ONC RPC、基於XML的SOAP、基於JSON的RESTful和Hessian2。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

第9章網路協定知識串講

9.1知識串講:用「雙11」的故事串起網路協定的碎片知識(上)

基本的網路知識都講完了,還記得最初舉的那個「雙11」下單的例子嗎?本章會詳細地講解這個過程,用這個過程將我們講過的網路協定知識連貫起來。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

9.2知識串講:用「雙11」的故事串起網路協定的碎片知識(中)

上一節我們講到,手機App經過了一個複雜的過程,終於拿到了電商網站的SLB的IP地址,是不是該下單了?

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

9.3知識串講:用「雙11」的故事串起網路協定的碎片知識(下)

上—節我們封裝了一個長長的網路包,「大炮」準備完畢,開始傳送。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

9.4搭建一個網路實驗環境:授人以魚不如授人以漁.

網路是一門實驗性很強的學科,就像我經常說的一樣:一看覺得懂,一問就打鼓,一用就糊塗。在本書寫作過程中,我自己也深深體會到了。這個時候,我常常會拿一個現實的環境上手操作一下,抓個包看看,這樣心裡就會有定論。

華為18級工程師歷時五年總結出趣談網路協議(大牛精講)

因為這本書內容實在是太多了!沒有辦法給大家全部展示出來了,需要獲取的小夥伴可以直接點贊+關注後新增小助理即可免費獲取以上筆記