<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>

          讀書筆記之《網(wǎng)絡(luò)是怎樣連接的》

          共 14663字,需瀏覽 30分鐘

           ·

          2022-06-26 07:21

          大家好呀,我是小菜~

          本文主要分享 《網(wǎng)絡(luò)是怎樣連接的》

          如有需要,可以參考

          如有幫助,不忘 點贊 ?

          微信公眾號已開啟,菜農(nóng)曰,沒關(guān)注的同學們記得關(guān)注哦!

          今天帶來的是 《網(wǎng)絡(luò)是怎樣連接的》 的讀書筆記

          (文中使用到的例子貼圖均出于原書)

          在正式進入分享之前,我們想看下這本樹的目錄架構(gòu)

          網(wǎng)絡(luò)是怎樣連接的

          本書共 6 章,156482 個字,篇幅不多,內(nèi)容較意思,是一本很好的網(wǎng)絡(luò)基礎(chǔ)入門書籍,穿插專業(yè)術(shù)語的解釋和插圖,對復雜的網(wǎng)絡(luò)通信世界能有一定的了解

          本書路線:

          第一章:瀏覽器生成消息

          1)生成 HTTP 請求

          • https://www.baidu.com 中的 www 是 Web服務(wù)器上的一種命名,World Wide Web 不是一個協(xié)議的名字,而是 Web 的提出者最早開發(fā)的瀏覽器兼 HTML 編輯器的名稱
          • 瀏覽器等網(wǎng)路應用程序?qū)嶋H上并不具備網(wǎng)絡(luò)控制功能,而是委托操作系統(tǒng)來控制網(wǎng)路

          什么是網(wǎng)址?網(wǎng)址準確來說稱之為 URL,就是日常生活中以 Http:  開頭的一串字符。

          我們生活中常用的幾種 URL:

          雖然 URL 有各種不同的寫法,但是開頭部分的內(nèi)容決定了后面部分的寫法,也就是定義了某種協(xié)議的存在,這樣子在使用的過程中并不會造成混亂。

          1. 解析URL

          當我們輸入某一串 URL 時,瀏覽器需要對 URL 進行解析,然后生成發(fā)送給 Web 服務(wù)器的請求消息,當然這一步在我們使用的過程中是無感的,因為瀏覽器幫我們做好了這一切,我們只關(guān)心響應的結(jié)果。

          解析的過程包括以下幾步:

          我們先識別出了 HTTP,這說明要訪問 Web 服務(wù)器,然后我們可以繼續(xù)往后面拆分,包含了服務(wù)器名稱、目錄名和文件名,到這一步我們就知道了原來用戶要訪問 dir1 目錄下的 file1.html 文件

          2. 省略文件名

          上述我們要訪問的 http://www.lab.glasscom.com/dir1/file1.html URL 中清晰的描述了我們訪問的是 file1.html 文件,有時可能也會出現(xiàn)類似一些特殊的 URL

          1. http://www.lab.glasscom.com/dir/ ,其中文件名被省略了,但這不代表我們訪問不到文件了,一般來說這種情況會在服務(wù)器上事先設(shè)置好文件名省略的默認名稱,比如 index.htmldefault.html 之類的

          2. http://www.lab.glasscom.com/,該 URL 中帶上了 / ,表示訪問的是根目錄,在知道目錄名的情況下,我們可以按照情況 1 的方式推測出要訪問的文件名

          3. http://www.lab.glasscom.com,該 URL 連 / 都省略了,這種情況就代表訪問根目錄下事先設(shè)置好的默認文件(最早的時候這個文件稱之為主頁

          4. http://www.lab.glasscom.com/dir,該 URL 末尾沒有 /,則表示如果 Web 服務(wù)器上存在名為 dir 的文件,則將 dir 以文件名的方式處理,如果存在名為 dir 的目錄,則以目錄名的方式處理

          3. 處理的基本思路

          首先,客戶端會向服務(wù)器發(fā)送請求消息(包含 對什么做什么 兩個部分)

          • 對什么:指的是 URL
          • 做什么:指的是方法

          URL 不做過多的解釋,就是發(fā)往服務(wù)器的那串請求地址,方法我們調(diào)接口的時候也不少見,通常有以下幾種:

          1. GET:通常用于獲取信息。
          2. POST:通常用于新增數(shù)據(jù)。
          3. PUT:通常用于更新數(shù)據(jù)。
          4. DELETE:通常用于刪除數(shù)據(jù)。
          5. HEAD:與 GET 基本相同。不過它只返回 HTTP 的消息頭,并不返回數(shù)據(jù)的內(nèi)容
          6. TRACE:將服務(wù)器收到的請求行和頭部(header)直接返回給客戶端
          7. OPTIONS:用于通知或查詢通信選項
          4. 響應處理

          當請求的消息發(fā)出后,Web服務(wù)器會返回響應消息。在響應消息中,第一行的內(nèi)容為 狀態(tài)碼響應短語,用來表示請求的執(zhí)行結(jié)果是成功還是出錯。狀態(tài)碼和響應短語表示的內(nèi)容一致,但用途不同。

          狀態(tài)碼是一個數(shù)字,用來向程序告知執(zhí)行的結(jié)果,響應短語是一段文字,同樣使用來告知執(zhí)行的結(jié)果

          狀態(tài)碼概要

          • 1xx:告知請求的處理進度和情況
          • 2xx:請求成功
          • 3xx:表示要進一步的操作
          • 4xx:客戶端錯誤
          • 5xx:服務(wù)端錯誤

          2)向DNS服務(wù)器查詢Web服務(wù)器的IP地址

          客戶端要向服務(wù)端發(fā)送請求之前還有一個工作需要完成,那就是查詢網(wǎng)址中服務(wù)器域名對應的 IP 地址。

          因為瀏覽器本身不具備將消息發(fā)送到網(wǎng)絡(luò)中的功能,而是需要委托操作系統(tǒng)來完成。

          但是委托操作系統(tǒng)來完成通信的條件就是需要提供通信對象的 IP 地址,而不是域名。

          1. 什么是 IP 地址

          1. TCP/IP 初知

          了解什么是 IP 地址,我們就需要了解 TCP/IP。

          TCP/IP 結(jié)構(gòu)圖

          這是一個 TCP/IP 的結(jié)構(gòu)圖。TCP/IP 就是由一些小的子網(wǎng)(用集線器連接起來的幾臺計算器),通過路由器連接起來組成的一個大網(wǎng)絡(luò)。

          在網(wǎng)路中所有設(shè)備都會被分配一個地址(相當于我們現(xiàn)實中的xx號xx室),其中 是分配給整個子網(wǎng)的(網(wǎng)絡(luò)號),而 是分配給子網(wǎng)中的計算機的(主機號),這就是網(wǎng)絡(luò)中的地址,整體稱之為 IP地址

          那么消息發(fā)送的過程就是:

          發(fā)送者發(fā)出的消息首先經(jīng)過子網(wǎng)中的集線器,然后轉(zhuǎn)發(fā)到距離發(fā)送者最近的路由器上,路由器會根據(jù)消息的目的地判斷下一個路由器的位置,然后將消息發(fā)送到下一個路由器,多次轉(zhuǎn)發(fā)后就到了最終的目的地

          2. IP 地址

          IP 地址實際上是一串 32 比特的數(shù)字,按照 8 比特(1字節(jié))為一組分成4組,分別用十進制表示然后用圓點 . 隔開。

          IP 地址是由 網(wǎng)路號主機號 組成的,但是通過這一串數(shù)字我們無法得知哪些是網(wǎng)路號,哪些是主機號,因此我們還需要 子網(wǎng)掩碼 的幫助。

          子網(wǎng)掩碼:是一串與 IP 地址長度相同的 32 比特數(shù)字,左邊一半是1,右邊一半是0,其中子網(wǎng)掩碼為 1 的部分表示網(wǎng)絡(luò)號,為 0 的部分表示為主機號,子網(wǎng)掩碼表示網(wǎng)絡(luò)號與主機號之間的邊界。

          主機號部分的比特全部為 0 或全部為 1 表示兩種特殊的含義:

          • 全 0:表示整個子網(wǎng)
          • 全 1:表示向子網(wǎng)上所有設(shè)備發(fā)送包,即 廣播
          2. 域名的出現(xiàn)

          想要達到最終目的地,我們就需要知道目的地的 IP 地址。但 IP 地址是一串數(shù)字,我們每天打交道的網(wǎng)站實在是太多了,那么為了記憶簡單,就出現(xiàn)了 域名

          為了填補兩者之間的障礙,就需要有一個機制能夠通過名稱來查詢 IP 地址,或者通過 IP 地址來查詢名稱,這個機制就是 DNS

          3. Socket 庫

          瀏覽器想要發(fā)送請求,需要委托操作系統(tǒng),但是委托操作系統(tǒng)查詢,我們需要告知操作系統(tǒng)目的地的IP地址。因此瀏覽器需要查詢域名對應的 IP 地址再告知操作系統(tǒng),但是瀏覽器又不具備發(fā)送請求的功能,這豈不是死循環(huán)了嗎?

          實際上負責 DNS 查詢 IP 地址的操作稱之為域名解析,因此負責解析這一操作就叫做解析器

          解析器實際上是一段程序,它包含在操作系統(tǒng)的 Socket 庫中,它是一堆通用程序組件的集合,其中包含的程序組件可以讓其他的應用程序調(diào)用操作系統(tǒng)的網(wǎng)路功能,而解析器就是這個苦衷的一種組件。

          4. 解析器

          當流程流轉(zhuǎn)到解析器的時候,解析器會生成要發(fā)送給 DNS 服務(wù)器的查詢消息,同樣發(fā)送消息這個操作并不是由解析器自身來執(zhí)行,而是要委托給操作系統(tǒng)內(nèi)部的協(xié)議棧來執(zhí)行(解析器本身也不具備網(wǎng)絡(luò)收發(fā)的能力)

          向 DNS 服務(wù)器發(fā)送消息時,我們也需要知道 DNS 服務(wù)器的 IP 地址,不過這個 IP 地址是已經(jīng)實現(xiàn)設(shè)置好的,比如 windows 上的網(wǎng)絡(luò)設(shè)置

          3)全世界DNS服務(wù)器的大接力

          1. 域名的查詢

          通常客戶端想要向 DNS 查詢通常包含以下 3 種消息:

          • 域名
          • Class:用來識別網(wǎng)絡(luò)的信息,永遠是代表互聯(lián)網(wǎng)的 IN
          • 記錄類型:表示域名對應哪種類型的記錄。比如,當類型為 A 時,表示域名對應的 IP 地址,為 MX 時,表示對應的是郵件服務(wù)器,對于不同的記錄類型,服務(wù)器向客戶端返回的信息也會不同
          2. 域名的層次

          互聯(lián)網(wǎng)上存在不計其數(shù)的服務(wù)器,將這些服務(wù)器的信息全部都保存在一臺 DNS 服務(wù)器上是不可能的,因此就需要將信息分布保存在多臺 DNS 服務(wù)器中,這些 DNS 相互接力配合,從而查找出要查詢的信息。

          比如 www.life.cbuc.com,在靠右的位置表示層級越高,這段域名的大致意思為 com 集團 cbuc 部門 life 組的 www。這種具有層次結(jié)構(gòu)的域名信息會被注冊到 DNS 服務(wù)器中,而每個域都是作為一個整體來處理,也就是不能將一個域拆開存放在多臺 DNS 服務(wù)器中。

          一個域是不可分割的,但我們可以在域的下面創(chuàng)建下級域(子域),然后再將它們分別分配給各個事業(yè)集團,比如 life.cbuc.com 可以創(chuàng)建兩個子域:a1.life.cbuc.coma2.life.cbuc.com

          DNS 查詢的結(jié)果有點類似樹形結(jié)果。

          負責管理下級域的 DNS 服務(wù)器的 IP 地址注冊到它們上級 DNS 服務(wù)器中,然后上級 DNS 服務(wù)器的 IP 地址再注冊到更上一級的 DNS 服務(wù)器中,以此類推。也就是說,負責管理 life.cbuc.com 這個域的 DNS 服務(wù)器的IP地址需要注冊到 cbuc.com 域的DNS服務(wù)器中,而 cbuc.com 域的 DNS 服務(wù)器的 IP 地址又需要注冊到 com 域的 DNS 服務(wù)器中,這樣,就可以通過上級 DNS 服務(wù)器查詢出下級 DNS 服務(wù)器的 IP 地址,也就可以向下級服務(wù)器發(fā)送查詢請求了。

          3. 根域的存在

          經(jīng)過上面的講解,如果覺得 com、cn 這類就屬于頂級域的話就錯了。

          實際上還有 根域 的存在,一般在書寫的時候會被省略,如果要明確表示根域,則需要在域名的最后面加上 .www.baidu.com. ,雖然書寫的時候不寫,但根域確是真實存在的,根域的 DNS 保管著 comcn 等 DNS 服務(wù)器的信息,所以我們解析域名的時候需要從根域開始一路往下找到任意一個域的 DNS 服務(wù)器

          4. 緩存加快響應

          有時候并不需要從最上級的根域開始查找,因為 DNS 服務(wù)器有一個緩存的功能,可以記住之前查詢過的域名,如果要查詢到域名和相關(guān)信息已經(jīng)在緩存中,那么就可以直接返回響應。

          同理,當要查詢到域名不存在時,“不存在”這一響應結(jié)果也會被緩存。

          緩存都具備有效期,當緩存中的信息超過有效期后,數(shù)據(jù)就會從緩存中刪除。而且,在對查詢進行響應時,DNS服務(wù)器也會告知客戶端這一響應的結(jié)果是來自緩存中還是來自負責管理該域名的DNS服務(wù)器。

          4)委托協(xié)議棧發(fā)送消息

          當獲得了 IP 地址之后,操作系統(tǒng)就可以進行消息收發(fā)了,消息實際上是一種 數(shù)字信息, 這一操作不僅限于瀏覽器,對于各種使用網(wǎng)絡(luò)的應用程序來說都是共通的。

          向操作系統(tǒng)內(nèi)部的協(xié)議棧發(fā)出委托時,需要按照指定的順序來調(diào)用 Socket 庫中的組件。

          在進行收發(fā)數(shù)據(jù)之前,雙方需要先建立一條管道,建立管道的關(guān)鍵在于 管道兩端數(shù)據(jù)的出入口,這些出入口就稱為 套接字,然后將套接字連接起來就形成了管道,數(shù)據(jù)沿著這條通道流動(雙向),最終到達目的地。

          當數(shù)據(jù)全部發(fā)送完畢之后,連接的管道將會斷開,管道在連接時是由客戶端發(fā)起的,但在斷開的時可以由任意一方發(fā)起。

          總結(jié),收發(fā)數(shù)據(jù)的大致操作如下:

          • 創(chuàng)建套接字階段:創(chuàng)建套接字
          • 連接階段:將管道連接到服務(wù)器端的套接字上
          • 通信階段:收發(fā)數(shù)據(jù)
          • 斷開階段:斷開管道并刪除套接字

          第二章:用電信號傳輸 TCP/IP 數(shù)據(jù)

          1)創(chuàng)建套接字

          1. 協(xié)議棧的內(nèi)部結(jié)構(gòu)

          圖的結(jié)構(gòu)也是一種層級關(guān)系,上層會向下層逐層委派工作。

          • 最上面的部分是網(wǎng)絡(luò)應用程序,也就是瀏覽器、電子郵件客戶端、Web服務(wù)器、電子郵件服務(wù)器等程序,它們會將收發(fā)數(shù)據(jù)等工作委派給下層的部分來完成。

          • 應用程序的下層是 Socket 庫,其中包括解析器,解析器用來向DNS服務(wù)器發(fā)出查詢。

          • 再下面就是操作系統(tǒng)內(nèi)部了,其中包括協(xié)議棧。協(xié)議棧的上半部分有兩塊

            • 負責用 TCP 協(xié)議收發(fā)數(shù)據(jù)的部分

            • 負責用 UDP 協(xié)議收發(fā)數(shù)據(jù)的部分

          下面一半是用 IP 協(xié)議控制網(wǎng)路包收發(fā)操作的部分。在互聯(lián)網(wǎng)上傳送數(shù)據(jù),數(shù)據(jù)會被切分成一個一個的網(wǎng)絡(luò)包,而將網(wǎng)絡(luò)包發(fā)送給通信對象的操作就是由 IP 來負責。此外,IP 中還包括 ICMP 協(xié)議(用于告知網(wǎng)絡(luò)包傳送過程中產(chǎn)生的錯誤以及各種控制消息)和 ARP 協(xié)議(用于根據(jù)IP地址查詢相應的以太網(wǎng)MAC地址)

          • IP 下面的網(wǎng)卡驅(qū)動程序負責控制網(wǎng)卡硬件
          • 最下面的網(wǎng)卡則負責完成實際的收發(fā)操作,也就是對網(wǎng)線中的信號執(zhí)行發(fā)送和接收操作
          2. 套接字的概念

          套接字就是一個概念,并沒有實際意義上的實體,但它具備了例如通信對象的IP地址、端口號、通信操作的進行狀態(tài)等。協(xié)議棧在執(zhí)行操作的時候會查詢這些控制信息。

          它的作用就是:記錄了用于控制通信操作的各種控制信息,協(xié)議棧則需要根據(jù)這些信息判斷下一步的行動

          2)連接服務(wù)器

          創(chuàng)建了套接字之后,應用程序就會調(diào)用 connect,隨后協(xié)議棧會將本地的套接字與服務(wù)器的套接字進行連接。這里的連接指的是通信雙方交換信息的操作過程。

          1. 保存控制信息的頭部

          控制信息可以分為兩類

          • 客戶端和服務(wù)器相互聯(lián)絡(luò)時交換的控制信息。這些信息不僅連接時需要,數(shù)據(jù)收發(fā)和斷開連接都需要。
          • 保存在套接字中,用來控制協(xié)議棧操作的信息。應用程序傳遞來的信息以及從通信對象接收到的信息都會保存在這里,還有收發(fā)數(shù)據(jù)操作的執(zhí)行狀態(tài)等信息也會保存在這里。
          2. 連接的實際過程

          連接是從應用程序調(diào)用 Socket 庫的 connect 開始的

          connect(<描述符>, <服務(wù)器IP地址和端口號>,...)

          上述連接的信息會傳遞給TCP模塊,然后 TCP 會與該 IP 地址對應的通信對象進行交換控制信息。大致過程為以下幾個步驟:

          • 在 TCP 模塊處創(chuàng)建表示連接控制信息的頭部

          • 通過 TCP 頭部找到要連接的套接字

          • 將信息傳遞給 IP 模塊并委托它進行發(fā)送

          這期間其實還涉及到TCP 三次握手的過程

          3)收發(fā)數(shù)據(jù)

          1. 將消息交給協(xié)議棧

          當控制流程從 connect 回到應用程序之后,接下來就進入到數(shù)據(jù)收發(fā)階段。

          數(shù)據(jù)收發(fā)操作是從應用程序調(diào)用 write 將要發(fā)送的數(shù)據(jù)交給協(xié)議棧開始的。

          協(xié)議棧并不是一收到數(shù)據(jù)就馬上發(fā)送出去,而是將數(shù)據(jù)存放在內(nèi)部的發(fā)送緩沖區(qū)中,并等待應用程序的下一段數(shù)據(jù)。這樣做的好處是協(xié)議棧發(fā)送的數(shù)據(jù)長度由應用程序本身決定。而什么時候是否才發(fā)出去有以下幾個因素決定:

          • MTU:一個網(wǎng)絡(luò)包的最大長度,以太網(wǎng)中一般為 1500 字節(jié)

          • MSS:除去頭部之后,一個網(wǎng)路包所能容納的TCP數(shù)據(jù)的最大長度

          • 時間:當應用程序發(fā)送數(shù)據(jù)的頻率不高的時候,如果每次都等到長度接近 MSS 時再發(fā)送,可能會因為等待時間太長而造成發(fā)送延遲,這種情況下,即便緩沖區(qū)中的數(shù)據(jù)長度沒有達到MSS,也應該果斷發(fā)送出去,為此協(xié)議棧內(nèi)部有個計時器,當經(jīng)過一定時間之后,就會把網(wǎng)路包發(fā)送出去

          2. 數(shù)據(jù)拆分

          發(fā)送緩沖區(qū)中的數(shù)據(jù)超出 MSS  的長度時,需要以 MSS 的長度為單位進行拆分,拆分出來的每塊數(shù)據(jù)都會被放進單獨的網(wǎng)絡(luò)包匯總,根據(jù)發(fā)送緩沖區(qū)的數(shù)據(jù)拆分情況,當判斷需要發(fā)送這些數(shù)據(jù)時,就在每一塊數(shù)據(jù)前面加上TCP頭部,并根據(jù)套接字中記錄的控制信息標記發(fā)送方和接收方的端口號,然后交給 IP 模塊進行發(fā)送

          4)從服務(wù)器斷開并刪除套接字

          和服務(wù)器的通信結(jié)束之后,用來通信的套接字也就不會再使用了,這時我們就可以刪除這個套接字了,不過套接字并不會馬上被刪除,而是會等待一段時間之后再被刪除,等待一段時間的原因是為了防止誤操作。

          具體等待多長的時間與包重傳的操作方式有關(guān)。網(wǎng)絡(luò)包丟失之后會進行重傳,這個操作通常會持續(xù)幾分鐘,如果重傳了幾分鐘之后依然無效,則停止重傳。

          1. 收發(fā)操作小結(jié)

          數(shù)據(jù)收發(fā)操作第一步便是創(chuàng)建套接字,一般來說服務(wù)器一方的應用程序在啟動時就會創(chuàng)建好套接字并進入等待連接的狀態(tài)。客戶端則一般是在用戶觸發(fā)特定動作,需要訪問服務(wù)器的時候才創(chuàng)建套接字

          創(chuàng)建好套接字之后,客戶端會向服務(wù)器發(fā)起連接操作,也就是經(jīng)典的 TCP 三次握手操作

          建立完連接之后便進入了數(shù)據(jù)收發(fā)操作

          5)IP與以太網(wǎng)的包收發(fā)操作

          1. 包的基本知識

          包是有頭部和數(shù)據(jù)兩部分構(gòu)成的

          • 頭部:包含目的地址等控制信息,相當于快遞包裹的面單
          • 數(shù)據(jù):發(fā)送給對方的內(nèi)容,相當于快遞包裹中的貨物

          網(wǎng)絡(luò)中有 路由器集線器 兩種不同的轉(zhuǎn)發(fā)設(shè)備

          • 路由器:根據(jù)目標地址判斷下一個路由器的位置
          • 集線器:在子網(wǎng)中將網(wǎng)絡(luò)包傳輸?shù)较乱粋€路由

          實際上,集線器是按照 以太網(wǎng)規(guī)則 傳輸包的設(shè)備,而路由器是按照 IP 規(guī)則 傳輸包的設(shè)備,因此可以得出一個結(jié)論:

          • IP 協(xié)議:根據(jù)目標地址判斷下一個 IP 轉(zhuǎn)發(fā)設(shè)備的位置
          • 以太網(wǎng)協(xié)議:在子網(wǎng)中將包傳輸?shù)较乱粋€轉(zhuǎn)發(fā)設(shè)備

          在 TCP/IP 中包含兩個頭部

          • MAC 頭部:用于以太網(wǎng)協(xié)議
          • IP 頭部:用于 iP協(xié)議
          2. 包的收發(fā)操作

          實際上將包從發(fā)送方傳輸?shù)浇邮辗降墓ぷ魇怯杉€器、路由器等網(wǎng)絡(luò)設(shè)備來完成的,因此 IP 模塊僅僅是整個包傳輸過程的入口而已。

          IP 模塊負責添加兩個頭部:

          • MAC 頭部:以太網(wǎng)用的頭部,包含 MAC 地址
          • IP 頭部:IP 用的頭部,包含 IP 地址

          接下來封裝好的包會交給網(wǎng)絡(luò)硬件(網(wǎng)卡),網(wǎng)路硬件會將這些數(shù)字信息轉(zhuǎn)換為電信號或光信號,并通過網(wǎng)線(光纖)發(fā)送出去,然后這些信號就會到達集線器、路由器等轉(zhuǎn)發(fā)設(shè)備,再由轉(zhuǎn)發(fā)設(shè)備一步一步地送達接收方。

          無論要收發(fā)的包是控制包還是數(shù)據(jù)包,IP 對各種類型的包的收發(fā)操作都是相同的

          3. 生成 IP 頭部

          IP 并不知道接收方的IP 地址,這個地址是由應用程序指定的。IP 頭部中除了接收方的 IP 地址,還需要填寫發(fā)送發(fā)的 IP 地址,這里 IP 地址并不是指計算機的 IP 地址,而是網(wǎng)卡的 IP 地址,因為一個計算機中可能存在多張網(wǎng)卡。

          4. 生成 MAC 頭部

          IP 頭部中的接收方 IP 地址表示網(wǎng)絡(luò)包的目的地,通過這個地址我們就可以判斷要將包發(fā)送到哪里,但在以太網(wǎng)的世界中, TCP/IP 的這個思路是行不通的,以太網(wǎng)在判斷網(wǎng)絡(luò)包目的地時和 TCP/IP  的方式不同,因此必須采用 相匹配 的方式才能在以太網(wǎng)中將包發(fā)往目的地,而 MAC 頭部就是干這個用的

          MAC 頭部的開頭是接收方和發(fā)送方的 MAC 地址,不過 IP 地址是 32 比特,而 MAC 地址是 48 比特。

          發(fā)送方的 MAC 地址好知道,但是接收方的 MAC 地址卻比較麻煩,我們需要根據(jù) IP 地址查詢對應的 MAC 地址

          5. ARP 查詢 MAC地址

          以太網(wǎng)中,有一種叫作廣播的方法,可以把包發(fā)給連接在同一個以太網(wǎng)中的所有設(shè)備。

          ARP 就是利用廣播對所有設(shè)備提問:“xx 這個 IP 地址是誰的,請把你的 MAC 地址告訴我”

          同樣 ARP 中存在緩存,在發(fā)送的時候會先查詢 ARP 緩存。

          6. 以太網(wǎng)的基本知識

          以太網(wǎng)是一種為多臺計算機能夠彼此自由和廉價相互通信而設(shè)計的通信技術(shù)。

          這種網(wǎng)路的本質(zhì)其實就是一根網(wǎng)線,借助一種叫作收發(fā)器的小設(shè)備,它的功能只是將不同網(wǎng)線之間的信號連接起來。

          當一臺計算機發(fā)送信號時,信號就會通過網(wǎng)線流過整個網(wǎng)絡(luò),最終到達所有的設(shè)備,而這個時候需要在信號的開頭加上接收者的信息,才能判斷一個信號到底是發(fā)給誰的

          隨著后來的發(fā)展,之前的原型轉(zhuǎn)換成了一個中繼集線器,將收發(fā)器網(wǎng)線替換成了雙絞線,網(wǎng)絡(luò)的結(jié)構(gòu)雖然發(fā)生變化,但是信號會發(fā)送給所有設(shè)備這一基本性質(zhì)并沒有變

          到了后面采用交換式集線器的時候,信號就不會發(fā)送給所有設(shè)備了,而是發(fā)送給指定 MAC 地址的設(shè)備

          總結(jié)來說就是三個特性:

          • 將包發(fā)送到 MAC 頭部的接收方
          • 用發(fā)送方 MAC 地址識別發(fā)送方
          • 用以太類型識別包的內(nèi)容
          7. 向集線器發(fā)送網(wǎng)絡(luò)包

          我們可以將包通過網(wǎng)線發(fā)送出去,發(fā)出信號的操作分為兩種

          • 使用集線器的半雙工模式

          為了避免信號碰撞,首先要判斷網(wǎng)線中是否存在其他設(shè)備發(fā)送的信號,如果有則需要阻塞等待

          • 使用交換機的全雙工模式

          發(fā)送和接受可以同時進行,不會發(fā)生碰撞

          8. 接受返回包

          在使用集線器的半雙工模式以太網(wǎng)中,一臺設(shè)備發(fā)送的信號會到達連接在集線器上的 所有設(shè)備, 將信號全都接收后,便會進行 FCSMAC 校驗,如果校驗通過,則將包放入緩沖區(qū)中,然后網(wǎng)卡會通知計算機收到了一個包。

          通知計算機的操作會使用一個叫做 中斷 的機制,需要打斷計算機正在執(zhí)行的任務(wù),讓計算機注意到網(wǎng)卡中發(fā)生的事情

          6)UDP 協(xié)議的收發(fā)操作

          1. 控制用的短數(shù)據(jù)

          像 DNS 查詢等交換控制信息的操作基本上都可以在一個包的大小范圍內(nèi)解決,這種場景就可以用 UDP 來代替 TCP。

          2. 音頻和視頻數(shù)據(jù)

          在發(fā)送音頻和視頻數(shù)據(jù)的時候,必須在規(guī)定的時間內(nèi)送達,一旦送達完晚了,就會錯過播放時機,導致聲音和圖像卡頓。因此通常會采用 UDP 來達到更高的傳輸效果,因為就算缺少了某些包并不會產(chǎn)生嚴重問題,知識會產(chǎn)生一些失真或卡頓。

          第三章:從網(wǎng)線到網(wǎng)絡(luò)設(shè)備

          1)信號在網(wǎng)線和集線器中傳輸

          網(wǎng)絡(luò)包從客戶端計算機發(fā)出之后,要經(jīng)過集線器、交換機和路由器最終進入互聯(lián)網(wǎng)。實際上我們家用的路由器已經(jīng)集成了 集線器交換機 的功能

          2)防止網(wǎng)線中的信號衰減很重要

          信號到達集線器的時候斌不是跟剛發(fā)出去的是哦戶一模一樣,集線器收到的信號有時會出現(xiàn)衰減,信號在網(wǎng)絡(luò)傳輸過程中能量會逐漸損失,網(wǎng)線越長,信號衰減越嚴重

          即便線路條件很好,沒有噪聲,信號在傳輸過程中依然會發(fā)生失真,如果再加上噪聲的影響,失真就會更厲害。

          3)雙絞是為了抑制噪聲

          雙絞線中雙絞的意思是以兩根信號線為一組纏繞在一起,這種擰麻花一樣的設(shè)計就是為了抑制噪聲的影響。

          產(chǎn)生噪聲的原因

          網(wǎng)線周圍存在電磁波,當電磁波接觸到金屬等導體時,在其中就會產(chǎn)生電流。由于信號本身也是一種帶有電壓變化的電流,其本質(zhì)和噪聲產(chǎn)生的電流是一樣的,所以信號和噪聲的電流就會混雜在一起,是導致信號的波形發(fā)生失真,這就是噪聲的影響

          電磁波的種類

          • 由電機、熒光燈、CRT 顯示器燈設(shè)備泄露出來的電磁波,這種電磁波來自網(wǎng)線之外的其他設(shè)備

          要抑制這種電磁波,首先信號線是用金屬做的,當電磁波接觸到信號線時,會沿著電磁波傳播傳播的右旋方向產(chǎn)生電流,這種電流會導致波形發(fā)生失真,如果將信號線纏繞在一起,信號線就會變成螺旋形,其中兩根信號線中產(chǎn)生的噪聲電流防線就會相反,從而使得噪聲電流相互抵消,噪聲就得到了抑制

          • 從網(wǎng)線中相鄰的信號線泄露出來

          這種噪聲的強度并不大,但是距離比較近。抑制這種噪聲的方式就在于雙絞線的纏繞,在一根網(wǎng)線中,每一對信號線的扭絞節(jié)距都有一定的差異,這使得在某些地方正信號線距離近,另一些地方則是負信號線距離近。由于正負信號線產(chǎn)生的噪聲影響是相反的,所以兩者就會相互抵消

          4)集線器將信號發(fā)往所有線路

          當信號到達集線器后,會被廣播到整個網(wǎng)絡(luò)中。以太網(wǎng)的基本架構(gòu)[插圖]就是將包發(fā)到所有的設(shè)備,然后由設(shè)備根據(jù)接收方MAC地址來判斷應該接收哪些包,而集線器就是這一架構(gòu)的忠實體現(xiàn),它就是負責按照以太網(wǎng)的基本架構(gòu)將信號廣播出去

          2)交換機根據(jù)地址表進行轉(zhuǎn)發(fā)

          交換機的設(shè)計是將網(wǎng)絡(luò)包原樣轉(zhuǎn)發(fā)到目的地。

          當信號到達網(wǎng)線接口,并由 PHY(MAU)模塊進行接收,這一部分和集線器是相同的,PHY(MAU)模塊會將網(wǎng)線中的信號轉(zhuǎn)換為通用模式,然后傳遞給 MAC 模塊,MAC 模塊會將信號轉(zhuǎn)換為數(shù)字信號,然后通過包末尾的 FCS 校驗錯誤,如果沒有問題則存放到緩沖區(qū)中。

          這部分的操作和網(wǎng)卡基本相同,可以認為交換機的每個網(wǎng)線接口后面都是一塊網(wǎng)卡,與網(wǎng)卡不同的是,交換機的端口不具有 MAC 地址

          當包存入緩沖區(qū)后,就需要查詢這個包的接收方 MAC 地址是否已經(jīng)在 MAC 地址表有記錄了,然后通過交換電路將包發(fā)送到響應的端口

          MAC 地址表

          當網(wǎng)路包通過交換電路到達發(fā)送端口時,端口中的 MAC 模塊和 PHY(MAU)模塊會執(zhí)行發(fā)送操作,將信號發(fā)送到網(wǎng)線中,這部分和網(wǎng)卡發(fā)送信號的過程是一樣的。

          3)MAC 地址表的維護

          交換機在轉(zhuǎn)發(fā)包的過程中,還需要對 MAC 地址表的內(nèi)容進行維護,維護分為兩種:

          • 在收到包時,將發(fā)送方 MAC 地址以及其輸入端口號寫入 MAC 地址表
          • 刪除地址表中的某條記錄的操作,防止設(shè)備移動時產(chǎn)生的問題(比如當我們把計算機從辦公桌移動到會議室時,設(shè)備就發(fā)生了移動,端口也會發(fā)生變化)。為了防止終端設(shè)備移動產(chǎn)生的問題,需要將一段時間不使用的過時記錄從地址表中刪除就可以了
          4)全雙工模式

          全雙工模式是交換機特有的工作模式,它可以同時進行發(fā)送和接收操作,集線器不具備這樣的特性

          5)自動協(xié)商:確定最優(yōu)的傳輸速率

          自動協(xié)商指的是在相互連接的雙方探測對方是否支持全雙工模式,并支持切換成相應的工作模式,并且除了能自動切換工作模式之外,還能探測對方的傳輸速率并進行自動切換。

          3)路由器的包轉(zhuǎn)發(fā)操作

          1. 路由器的基本知識

          網(wǎng)線包經(jīng)過集線器和交換機之后,便會到達路由器。

          路由器是基于 IP 設(shè)計的,交換機是基于以太網(wǎng)設(shè)計的。路由器包括 轉(zhuǎn)發(fā)模塊端口模塊

          • 轉(zhuǎn)發(fā)模塊:負責判斷包的轉(zhuǎn)發(fā)目的地(類似 IP 模塊)
          • 端口模塊:負責包的收發(fā)操作(類似網(wǎng)卡)

          路由器基本原理

          路由器在轉(zhuǎn)發(fā)包時,首先會通過端口將發(fā)過來的包接收進來,這一步的工作過程取決于端口對應的通信技術(shù)。對于以太網(wǎng)端口來說,就是按照以太網(wǎng)規(guī)范進行工作,而無線局域網(wǎng)端口則按照無線局域網(wǎng)的規(guī)范工作,總之就是委托端口的硬件將包接收進來。接下來轉(zhuǎn)發(fā)模塊會根據(jù)接收到的包的 IP 頭部中記錄的接收方 IP 地址,在路由表中進行查詢,以此判斷轉(zhuǎn)發(fā)目標,然后轉(zhuǎn)發(fā)模塊將包轉(zhuǎn)移到轉(zhuǎn)發(fā)目標對應的端口,端口再按照硬件的規(guī)則將包發(fā)送出去,也就是轉(zhuǎn)發(fā)模塊委托端口模塊將包發(fā)送出去。

          第四章:通過接入網(wǎng)進入互聯(lián)網(wǎng)內(nèi)部

          1)ADSL 接入網(wǎng)的結(jié)構(gòu)和工作方式

          1. 互聯(lián)網(wǎng)的基本結(jié)構(gòu)和家庭、公司網(wǎng)絡(luò)是相同的

          互聯(lián)網(wǎng)也是通過路由器來轉(zhuǎn)發(fā)包的,我們可以將互聯(lián)網(wǎng)理解為家庭、公司網(wǎng)路的一個放大版。

          而互聯(lián)網(wǎng)與家庭、公司網(wǎng)絡(luò)之間最主要的兩個不同點在于:距離的不同路由的維護方式不同

          2. 連接用戶與互聯(lián)網(wǎng)的接入網(wǎng)

          所謂接入網(wǎng),就是指連接互聯(lián)網(wǎng)與家庭、公司網(wǎng)絡(luò)的通信線路。一般家用的接入網(wǎng)包括 ADSL、FTTH、CATV、電話線、ISDM等,公司則還可能使用專線。

          3. ADSL Modem 將包拆分成信元

          在這張圖中網(wǎng)絡(luò)包是從右往左傳輸?shù)摹S脩舳寺酚善靼l(fā)出的網(wǎng)絡(luò)包通過 ASDL Modem 和電話線達到電話局,然后到達 ADSL 的網(wǎng)絡(luò)運營商(ISP)。

          客戶端生成的網(wǎng)絡(luò)包先經(jīng)過集線器和交換機到達互聯(lián)網(wǎng)接入路由器,并在此從以太網(wǎng)中取出 IP 包并判斷轉(zhuǎn)發(fā)目標。在這里網(wǎng)絡(luò)包會加上 MAC 頭部、PPPoE 頭部、PPP 頭部總共3種頭部,然后按照以太網(wǎng)規(guī)則轉(zhuǎn)換成電信號后被發(fā)送給 ADSL Modem,然后 ADSL Modem 會把包拆分成很多個小格子,每一個小格子稱為一個信元。

          4. ADSL 將信元調(diào)制成信號

          以太網(wǎng)采用的是用方波信號表示 0 和 1 的方式,ADSL 會比較復雜,它是采用一種用 圓滑波形(正弦波)對信號進行合成來表示 0 和 1,這種技術(shù)稱為 調(diào)制

          調(diào)制的方式有很多種,ADSL 采用的調(diào)制方式是 振幅調(diào)制(ASK)相位調(diào)制(PSK) 相結(jié)合的正交振幅調(diào)制(QAM)方式

          5. ADSL 通過使用多個波來提高速率

          信號不一定要限制在一個評率,不同頻率的波可以合成,因此可以使用多個頻率合成的波來傳輸信號,這樣能表示的比特數(shù)就可以成倍提高了,ADSL 就是利用了這一性質(zhì),通過多個波增加能表示的比特數(shù)來提高速率。

          6. 分離器的作用

          ADSL Modem 將信元轉(zhuǎn)換為電信號之后,信號會進入一個叫做分離器的設(shè)備,然后 ADSL 信號會和電話的語音信號混合在一起從電話線傳輸出去。

          分離器的作用其實在相反的方向,也就是信號從電話線傳入的時候,需要將電話和 ADSL 的信號進行分離。

          分離器的功能是將一定頻率以上的信號過濾掉,也就是過濾掉了ADSL使用的高頻信號,這樣一來,只有電話信號才會傳入電話機,但對于另一頭的ADSL Modem,則是傳輸原本的混合信號給它。

          7. 從用戶到電話局

          從分離器出來就是插電話線的接口,信號從這里出來之后,會通過室內(nèi)電話線,然后到達大樓的 IDF 和 MDF。由于電話局附近的地下電纜很多,集中埋設(shè)電纜的地方就形成了一條地道,這部分稱為電纜隧道。通過電纜隧道進入電話局后,電纜會逐根連接到電話局的MDF上。

          2)光纖接入網(wǎng)

          1. 光纖的基本知識

          接入網(wǎng)技術(shù)除了上述說到的 ADSL ,還有一種稱為 FTTH,是一種基于光纖的接入網(wǎng)技術(shù)。FTTH 的關(guān)鍵在于對光纖的使用。

          光纖是由一種雙層結(jié)構(gòu)的纖維狀透明材質(zhì)(玻璃和塑料)構(gòu)成的,通過在里面的纖芯中傳導光信號來傳輸數(shù)字信息。亮表示 1,暗表示 0

          2. 單模與多模

          光纖通信的關(guān)鍵技術(shù)就是能夠傳導光信號的光纖。光纖可以分成幾種類型,大體上包括較細的單模光纖(8~10 um)和較粗的多模光纖(50 um或62.5 um)

          多模光纖: 可以傳導多條光線,意味著通過的光線較多,對光源和興敏元件的性能要求也就較低,從而可以降低光源和光敏元件的性能要求

          單模光纖: 只能傳導一條光線,能通過的光線較少,對光源和興敏元件的性能要求較高

          單模光纖的失真小,可以比多模光纖更長,因此多模光纖主要用于一座建筑物里面的連接,單模光纖則用于距離較遠的建筑物之間的連接

          3)接入網(wǎng)中使用的 PPP 和隧道

          1. 用戶認證和配置下發(fā)

          ADSL和FTTH接入網(wǎng)中,都需要先輸入用戶名和密碼,登錄之后才能訪問互聯(lián)網(wǎng),而BAS就是登錄操作的窗口。BAS使用PPPoE方式來實現(xiàn)這個功能。

          PPP 工作方式:

          首先,用戶向運營商的接入點撥打電話,電話接通后輸入用戶名和密碼進行登錄操作。用戶名和密碼通過RADIUS協(xié)議從RAS發(fā)送到認證服務(wù)器,認證服務(wù)器校驗這些信息是否正確。當確認無誤后,認證服務(wù)器會返回IP地址等配置信息,并將這些信息下發(fā)給用戶。

          2. 在以太網(wǎng)上傳輸 PPP 消息

          ADSL 和 FTTH 接入方式也需要為計算機分配公有地址才能上網(wǎng),這一點和撥號上網(wǎng)是相同的。

          PPP協(xié)議中沒有定義以太網(wǎng)中的報頭和FCS等元素,也沒有定義信號的格式,因此無法直接將PPP消息轉(zhuǎn)換成信號來發(fā)送。要傳輸PPP消息,必須有另一個包含報頭、FCS、信號格式等元素的“容器”,然后將PPP消息裝在這個容器里才行。于是,在撥號接入中PPP借用了HDLC協(xié)議作為容器,而HDLC協(xié)議原本是為在專線中傳輸網(wǎng)絡(luò)包而設(shè)計的,撥號接入方式對這一規(guī)格進行了一些修正。對于 ADSL 和 FTTH ,并不能使用 HDLC ,但可以使用以太網(wǎng)包代替 HDLC 來轉(zhuǎn)載 PPP 協(xié)議,并且為了彌補這些問題就設(shè)計了一個新的規(guī)格,就是 PPPoE

          3. 通過隧道將網(wǎng)絡(luò)包發(fā)送給運營商

          BAS除了作為用戶認證的窗口之外,還可以使用隧道方式來傳輸網(wǎng)絡(luò)包

          隧道就類似于套接字之間建立的 TCP 連接,將包含頭部在內(nèi)的整個包從隧道的一頭扔進去,這個包就會原封不動地從隧道的另一頭出來,就好像在網(wǎng)絡(luò)中挖了一條滴到,網(wǎng)絡(luò)包從這個地道穿過去。

          隧道的實現(xiàn)方式:

          • 類似 TCP 連接,需要在網(wǎng)路上的兩臺隧道路由器之間建立 TCP 連接,然后將連接兩端的套接字當做是路由器的端口,并從這個端口來收發(fā)數(shù)據(jù)。
          • 基于封裝的隧道實現(xiàn)方式。將包含頭部在內(nèi)的整個包裝入另一個包中傳輸?shù)剿淼赖牧硪欢恕_@種方式下,包本身可以原封不動地到達另一端的出口。

          4)網(wǎng)絡(luò)運營商的內(nèi)部

          1. POP 和 NOC

          互聯(lián)網(wǎng)是由多個運營商網(wǎng)絡(luò)相互連接組成的。ADSL、FTTH等接入網(wǎng)是與用戶簽約的運營商設(shè)備相連的,這些設(shè)備稱為 POP,也就是互聯(lián)網(wǎng)的入口。

          POP 的結(jié)構(gòu)根據(jù)接入網(wǎng)類型以及運營商的業(yè)務(wù)類型不同而不同。

          5)跨越運營商的網(wǎng)絡(luò)包

          1. 運營商之間的連接

          當網(wǎng)絡(luò)包到達 POP 路由器之后,如果最終目的地 Web 服務(wù)器和客戶端連接在同一個運營商中,那么 POP 路由器的路由表中應該有相應的轉(zhuǎn)發(fā)目標。運營商的路由器可以和其他路由器交換路由信息,從而自動更新自己的路由表,實現(xiàn)了自動化管理。

          如果服務(wù)器的運營商和客戶端的運營商是不同的,那么需要先發(fā)到服務(wù)器的運營商,這些信息也可以在路由表找到,因為運營商的路由器也在和其他運營商的路由器交換信息。

          2. 運營商之間的路由信息交換

          只要讓相連的路由器告知路由信息就可以了,只要獲得了對方的路由信息,就可以知道對方路由器連接的所有網(wǎng)絡(luò),將這些信息寫入自己的路由表,也可以向那些網(wǎng)絡(luò)發(fā)送包了。這個路由信息交換使用的機制成為 BGP

          這種路由交換可分為兩類:

          • 將互聯(lián)網(wǎng)中的路由全部告知對方
          • 兩個運營商之間僅將與各自網(wǎng)絡(luò)相關(guān)的路由信息告知對方,這樣雙方之間的網(wǎng)絡(luò)可以互相收發(fā)網(wǎng)絡(luò)包,這種方式稱為非轉(zhuǎn)接,也叫對等。

          第五章:服務(wù)器端的局域網(wǎng)中有什么玄機

          1)Web 服務(wù)器的部署地點

          1. 在公司里部署Web服務(wù)器

          傳統(tǒng)的部署方式:服務(wù)器直接部署在公司網(wǎng)絡(luò)上,并且可以從互聯(lián)網(wǎng)直接訪問。這種情況下,網(wǎng)絡(luò)包通過最近的 POP 中的路由器、接入網(wǎng)以及服務(wù)器端路由器之后,就到達了服務(wù)器。

          這種方式存在弊端:

          • IP 地址不足。這種方式需要為公司網(wǎng)絡(luò)中的所有設(shè)備,包括服務(wù)器和客戶端計算機,都分配各自的公有地址。
          • 安全問題。互聯(lián)網(wǎng)中的網(wǎng)絡(luò)包會無節(jié)制進入服務(wù)器。
          2. 將Web服務(wù)器部署在數(shù)據(jù)中心

          服務(wù)器可以放在網(wǎng)絡(luò)運營商管理的數(shù)據(jù)中心,或直接租用運營商提供的服務(wù)器。

          數(shù)據(jù)中心是與運營商核心部分 NOC 直接連接的,或是與運營商之間的樞紐IX直

          接連接的。可以通過高速線路直接連接到互聯(lián)網(wǎng)的核心部分,因此將服務(wù)器部署

          在這里可以獲得很高的訪問速度,

          2)防火墻的結(jié)構(gòu)和原理

          1. 主流的包過濾方式

          無論服務(wù)器部署在哪里,都會在前面部署一個防火墻。如果包無法通過防火墻,就無法到達服務(wù)器。

          2. 如何設(shè)置包過濾的規(guī)則

          網(wǎng)路包的頭部包含了用于控制通信操作的控制信息,只要檢查這些信息,就可以獲得很多有用的內(nèi)容。

          在這是包過濾規(guī)則時,首先要觀察包是如何流動的。通過接收方 IP 地址和發(fā)送方 IP 地址,可以判斷出包的起點和終點,并將IP地址設(shè)為判斷條件。

          3. 通過端口號限定應用程序

          當我們要限定某個應用程序時,可以在判斷條件中加上 TCP 頭部或者 UDP 頭部中的端口號作為判斷條件。

          4. 通過控制位判斷連接方向

          通過上述兩個條件,可以限定到某個具體的應用程序,但還是沒辦法阻止 Web 服務(wù)器訪問互聯(lián)網(wǎng),Web 使用的 TCP 協(xié)議是雙向收發(fā)網(wǎng)絡(luò)包的,因此如果單純地阻止從 Web 服務(wù)器發(fā)往互聯(lián)網(wǎng)的包,則從互聯(lián)網(wǎng)訪問 Web 服務(wù)器的操作也會收到影響而而無法進行。因此單判斷包的流向還不夠,還需要根據(jù)訪問的方向來進行判斷,這里就需要用到 TCP 頭部的控制位。

          3)內(nèi)容分發(fā)服務(wù)

          1. 利用內(nèi)容分發(fā)服務(wù)分擔負載

          當緩存服務(wù)器部署在服務(wù)端并不能減少流量,因此如果將緩存服務(wù)器部署在客戶端就可以不受或者少受某些擁塞點的影響,讓網(wǎng)絡(luò)流量更穩(wěn)定。但如果部署在客戶的函,Web服務(wù)器的育嬰師并不能控制它,無法擴縮容數(shù)量。因此可以將緩存服務(wù)器部署在互聯(lián)網(wǎng)的邊緣

          三種部署方式:

          作為Web 服務(wù)器運營商如果自己部署服務(wù)器,在一定程度上還是吃不消的,因此出現(xiàn)了專門提供這種服務(wù)(內(nèi)容分發(fā)服務(wù))的廠商稱為 CDSP.

          2. 如何找到最近的緩存服務(wù)器

          利用 DNS 服務(wù)器來分配訪問,它們可以通過相互接力來處理 DNS 查詢。但 DNS 只能以輪詢的方式按照順序返回 IP 地址,完全不考慮客戶端與緩存服務(wù)器的遠近,因此可能會返回離客戶端較遠的緩存服務(wù)器IP地址。

          如果要訪問到最近的緩存服務(wù)器,不應采用輪詢,而是應該判斷客戶端與緩存服務(wù)器的距離,并返回距離客戶端最近的緩存服務(wù)器 IP 地址。

          不要空談,不要貪懶,和小菜一起做個吹著牛X做架構(gòu)的程序猿吧~點個關(guān)注做個伴,讓小菜不再孤單。咱們下文見!

          今天的你多努力一點,明天的你就能少說一句求人的話!

          我是小菜,一個和你一起變強的男人。 ??

          微信公眾號已開啟,菜農(nóng)曰,沒關(guān)注的同學們記得關(guān)注哦!


          瀏覽 141
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  殴美一级黑人 | 国产三级成人综合视频 | 黄色视频网站在线观看 | 午夜无码人妻AV大片 | 天天舔天天射天天干 |