1. 程式人生 > >(一)網路基礎知識--圖解TCP/IP

(一)網路基礎知識--圖解TCP/IP

計算機網路,根據其規模分為WAN(Wide Area Network,廣域網)和LAN(LocaL Area Network,區域網)。

一、計算機與網路發展的7個階段

批處理(Batch Processing)系統

20世紀50年代。

分時系統(Time Sharging System)

指多個終端(鍵盤、顯示器、打字機等)與同一個計算機連線,允許多個使用者同時使用一臺計算機的系統,誕生於20世紀60年代。

分時作業系統將CPU的時間劃分成若干個片段,稱為時間片。作業系統以時間片為單位,輪流為每個終端使用者服務。

計算機之間的通訊

計算機網路

20世紀70–80年代,基於分組交換技術的計算機網路加上視窗系統的誕生。

網際網路普及

20世紀90年代。

以網際網路技術為中心的時代

2000年後,通過IP協議實現榮欣、播放的統一。

從“單純建立連線”到“安全建立連線”

二、協議

這裡寫圖片描述

協議就是計算機與計算機之間通過網路實現通訊時實現達成的一種“約定”。

CPU與OS
CPU(Central Processing Unit)中央處理器。每個程式實際上是由它排程執行的。

OS(Operating System)作業系統,是一種基礎軟體。它集合了CPU管理、記憶體管理、計算機外圍裝置管理以及程式執行管理等重要功能。很多TCP/IP協議的處理,已經內簽到具體作業系統中了。

一臺計算機可執行的指令,因其CPU、作業系統的不同而有所差異。
一個CPU通常在同一時間只能處理一個程式。為了讓多個程式同時執行,作業系統採用CPU時間片輪轉機制,在多個程式之間進行切換,合理排程。這種方式就叫做多工排程(分時系統就是採用這種方式)。

分組交換協議

分組交換是指將大資料分割為一個個叫做包(Packet)的較小單位進行傳輸的方法。

計算機通訊會在每個分組中附加上源主機地址和目標主機地址送給通訊線路。這些傳送端地址、接收端地址以及分組序號寫入的部分稱為“報文首部”。

一個較大資料被分為多個分組時,為了標明是原始資料中的哪一部分,就有必要將分組的需要寫入包中。接受端根據這個序號,再將每個分組按照序號重新裝配為原始資料。

協議的標準化

ISO(International Organization for Standards 國際標準化組織)制定了一個國際標準OSI(Open Systems Interconnection 開放式通訊系統互聯參考模型),對通訊系統進行了標準化。

但是TCP/IP並非ISO所制定的國際標準,而是由IETF建議、致力於推進器標準化的一種協議。

標準化
標準化是指不同廠商所生產的異構產品之間具有相容性、便於使用的規範化過程。

協議分層與OSI參考模型

分層的優點是分層獨立使用,可以構造一個擴充套件性和靈活性較強的系統,且更易於單獨實現每個分層的協議,並界定每個分層的具體責任和義務。

分層的劣勢,就在於過分模組化、使處理變得更加沉重以及每個模組都不得不實現相似的處理邏輯等問題。

這裡寫圖片描述

OSI參考模型

這裡寫圖片描述

OSI協議與OSI參考模型
OSI(參考模型)將通訊功能劃分為7個分層,稱為OSI參考模型。
OSI協議是為了讓異構的計算機之間能夠相互通訊的、由ISO和ITUT推進其標準化的一種網路體系結構。
OSI協議以OSI參考模型為基礎界定了每個階層的協議和每個階層之間介面相關的標準。

OSI參考模型中各個分層的作用

這裡寫圖片描述
這裡寫圖片描述

OSI參考模型通訊處理舉例

7層通訊

這裡寫圖片描述

會話層以上的處理

以傳送電子郵件為例解釋:

應用層

這裡寫圖片描述

從使用者輸入完要傳送的內容並點選“傳送”按鍵那一刻開始,就進入了應用層協議的處理。該協議會在鎖要傳送資料的前端附加一個首部(標籤)資訊。該首部標明瞭郵件內容為“早上好”和收件人為“B”。這一附有首部資訊的資料傳送給主機B以後由該主機上的收發郵件軟體通過“收信”功能獲取內容。

主機A與主機B通過它們各自應用層之間的通訊,最終實現郵件的儲存。

表示層

這裡寫圖片描述

表示層更關注資料的具體表現形式。所使用的應用軟體本身不同也會導致資料的表現形式不同。

會話層

決定採用何種連線方法是會話層的主要責任。例如何時建立連線、何時傳送資料等。

這裡寫圖片描述

傳輸層以上描述的是在應用層寫入的資料會經由表示層格式化編碼、再由會話層標記傳送順序後才被髮送出去。

傳輸層以下的處理

傳輸層

主機A確保與主機B之間的通訊並準備傳送資料,這一過程叫做“建立連線”。在兩個主機之間建立邏輯上的通訊連線即使傳輸層的主要作用。

這裡寫圖片描述

保證資料傳輸的可靠性是傳輸層的一個重要作用。然而,實際上將資料傳輸給對端的處理時由網路層來完成的。

網路層

這裡寫圖片描述

網路層作用是在網路與網路相互連線的環境中,將資料從傳送端主機發送到接收端主機。

這裡寫圖片描述

在實際傳送資料時,目的地址很重要。這個地址是進行通訊的網路中唯一指定的序號。

資料鏈路層、物理層

這裡寫圖片描述

通訊傳輸實際上是通過物理的傳輸介質實現的。資料鏈路層的作用就是在這些通過傳輸介質互連的裝置之間進行資料處理。

網路層與資料鏈路都是基於目標地址將資料傳送給接收端的,但是網路層負責將真個資料傳送給最終目標地址,而資料鏈路層則只負責傳送一個分段內的資料。

物理層中,將資料的0、1轉換為電壓和脈衝光傳輸給物理的傳輸介質,而相互直連的裝置之間使用地址實現傳輸。這種地址被稱為MAC地址,也被稱為實體地址或硬體地址。採用MAC地址,目的是為了識別連線到同一傳輸介質上的裝置。因此,這一分層將包含MAC地址資訊的首部附加到從網路層轉發過來的資料上,將其傳送到網路。

三、傳輸方式的分類

面向有連線型與面向無連線型

通過網路傳送資料,大致可以分為面向有連線與面向無連線兩種型別。

這裡寫圖片描述

面向有連線型

面向有連線型中,在傳送資料之前,需要在收發之間連線一條通訊線路。

面向無連線型

面向無連線型則不要求建立和斷開連線。

電路交換與分組交換

目前,網路通訊方式大致分為兩種–電路交換和分組交換。

電路交換歷史久遠,主要用於過去的電話網。電路交換中,交換機主要負責資料的中轉處理。電話網是獨佔線路進行資料傳輸。

分組交換技術則是一種新的通訊方式。讓連線到通訊電路的計算機將所要傳送的資料分成多個數據包,按照一定的順序排列之後分別傳送。

這裡寫圖片描述

在分組交換中,由分組交換機(路由器)連線通訊線路。分組交換大致處理過程是:傳送端計算機將資料分組表傳送給路由器,路由器收到這些分組資料以後,快取到自己的緩衝區,然後再轉發給目標計算機。因此,分組交換也有另一個名稱:蓄積交換。

分組交換中,計算機與路由器以及路由器與路由器之間只有一條通訊線路。因此,這條線路是一條共享線路。在電路交換中,計算機之間傳輸速度不變。然後再分組交換中,通訊線路的速度可能會有所不同。根據網路擁堵情況,資料達到目標地址的時間有長有短。另外,路由器快取飽和或溢位時,甚至可能會發生分組資料丟失、無法傳送到對端的情況。

這裡寫圖片描述

根據接收端數量分類

網路通訊當中,也可以根據目標地址的個數及其後續的行為對通訊進行分類。如廣播、多播等就是這種分類的產物。

單播(Unicast)

1對1通訊,早先固定電話就是單播通訊的典型例子。

廣播(Broadcast)

指將訊息從1臺主機發送給與之相連的所有其他主機。廣播通訊
的一個典型例子就是電視播放,它將電視訊號一齊發送給非特定的多個接收物件。

電視訊號一般都有自己的頻段。只有在相應頻段的可接收範圍內才能收到電視訊號。與此類似,進行廣播通訊的計算機也有它們的廣播範圍。只有在這個範圍之內的計算機才能收到相應的廣播訊息。這個範圍叫做廣播域

多播(Multicast)

多播與廣播類似,也是將訊息傳送給多個接收主機。不同之處在於多播要限定某一組主機作為接收端。多播通訊最典型的的就是電視會議,這是由多組人在不同的地方參加的一種遠端會議。

任播(Anycast)

任播是指在特定的多臺主機中選出一臺作為接收端的一種通訊方式。

任播通訊從目標主機群中選擇一臺最符合網路條件的主機作為目標主機發送訊息。通常,沒選中的那臺特定的主機將返回一個單播訊號,隨後傳送端主機只跟這臺主機進行通訊。

任播在實際網路中的應用有DNS根域名解析伺服器。

這裡寫圖片描述

四、地址

每一層的協議所使用的地址都不盡相同。例如,TCP/IP通訊中使用MAC地址、IP地址、埠號等資訊作為地址標識。甚至在應用層中,可以將電子郵件地址作為網路通訊的地址。

地址的層次性

當地址越來越多時,如何高效從中找出通訊的目標地址將成為一箇中重要的問題。為此地址除了具有唯一性還需要具有層次性。其實在電話和信件通訊過程中,早已存在地質分層的概念。例如,電話號碼包含國家區號和國內區號,通訊地址包含國名、省名、市名和區名等。正式有了這種層次分類才能更加快速地定位某一個地址。

MAC地址和IP地址在標識一個通訊主體時雖然都具有唯一性,但是它們當中只有IP地址具有層次性。

MAC地址由裝置製造廠商對每塊進行分別指定。人們可以通過製造商識別號、製造商內部產品編號記憶產品通用編號確保MAC地址的唯一性。但是人們無法確定哪家廠商的哪個網絡卡被用到哪個地方。

Ip地址如何實現分層?一方面,IP地址由網路號和主機號兩部分組成。即使通訊主機的IP地址不同,若主機號不同,網路號相同,說明它們處於同一網段。通常,同處一個網段的主機也都屬於同一個部門或集團組織。另外,網路號相同的主機在組織結構、提供商型別和地域分佈上都比較集中,也為IP定址帶來了極大的方便。

網路傳輸中,每個節點會根據分組資料的地址資訊,來判斷該報文應該由哪個網絡卡傳送出去。為此,每個地址會參考一個發出介面列表。在這一點上MAC定址與IP定址是一樣的。只不過MAC定址中所參考的這張表叫做地址轉發表,而IP定址中所參考的叫做路由控制表。MAC地址轉發表中所記錄的是實際的MAC地址本身,而路由表中記錄的IP地址是集中了之後的網路號(更確切的說是網路號與子網掩碼)。

這裡寫圖片描述

網路的構成要素

搭建一套網路環境要涉及各種各樣的電纜和網路裝置。在此僅介紹連線計算與計算機的硬體裝置。

這裡寫圖片描述

這裡寫圖片描述

交換機與路由器
交換機一般工作在OSI的第二層(資料鏈路層) ,當然現在有更多的2層交換機、3層交換機、4-7層交換機等。
路由器工作在OSI的第三層(網路層)

通訊媒介與資料鏈路

計算機之間通過電纜相互連線。電纜可以分為很多種,包括雙絞線電纜、光纖電纜、同軸電纜、序列電纜等。根據資料鏈路的不同選用的電纜型別也不盡相同。而媒介本身也可以被劃分為電波、微波等不同型別的電磁波。

資料鏈路(Datalink)
指相互直連的裝置之間進行通訊所涉及的協議及其網路。為此,有眾多傳輸介質與之對應。

下圖總結了各種不同資料鏈路、通訊媒介及其標準傳輸速率:

這裡寫圖片描述

傳輸速率與吞吐量

在資料傳輸過程中,兩個裝置之間資料流動的物理速度稱為傳輸速率。單位為bps(Bits Per Second,每秒位元數)。從嚴格意義講,各種傳輸媒介中訊號的流動速度是恆定的。因此,即使資料鏈路的傳輸速率不相同,也不會出現傳輸的速度忽快忽慢的情況(因為光和電流的傳輸速度是恆定的)。傳輸速率高也不是指單位資料流動速度快,而是指黨委時間內傳輸資料量有多少。

以我們生活中道路交通為例,低速資料鏈路就如同車道較少無法讓很多車同時通過的情況。與之相反,告訴資料鏈路就相當於有多個車道,一次允許更多車輛行駛的道路。傳輸速率又稱作頻寬(Bandwidth)。頻寬越大網路傳輸能力就越強。

主機之間實際的傳輸速率被稱作吞吐量。其單位與頻寬相同,都是bps(Bits Per Second)。吞吐量這個測不僅衡量頻寬,同時也衡量主機的CPU處理能力、網路的擁堵程度、報文中資料欄位的佔有份額(不含報文首部,只計算資料欄位本身)等資訊。

網絡卡(NIC)

任何一臺計算機連線網路時,必須要是用網絡卡(全稱為網路介面卡)。網路介面卡(NIC Network Interface Card)有時也被叫做網路介面卡、網絡卡、LAN卡。

網絡卡的作用就是把資料進行串並轉換(串連資料是位元流形式的,存在與本計算機內部,而計算機與計算機之間是通過幀形式的資料來進行資料傳輸的),MAC子層規定了如何在物理線路上傳輸的frame,LLC的作用是識別不同協議型別然後進行encapsulation(封包), 所以精確的說,網絡卡工作在Data Link Layer的MAC子層。

網絡卡是屬於資料鏈路層。

網絡卡集成了連線區域網功能的裝置。有時會被整合到計算機的主機板中,有時也可以單獨插入擴充套件槽使用。Network Information Center的縮寫也是NIC,要注意區分。

很多產品目錄中都加入了“內建LAN埠”的引數,說明越來越多計算機在出廠設定中就具備了乙太網(Ethernet)1000BASE-T或100BASE-TX的埠。沒有配置NIC的計算機如果想接入乙太網,至少得外接一個擴充套件槽以便插入NIC。無線區域網也是如此,計算機必須具備能夠接入無線網的NIC才能保證連線到網路。膝上型電腦如果沒有內建NIC,可以通過ExpressCard或CardBus、壓縮快閃記憶體以及USB方式插一塊NIC以後再連網。

ExpressCard
膝上型電腦中的卡型擴充套件裝置。由定製PC卡標準的PCMCIA(Personal Computer Meomory Card International Association)統一規格。

這裡寫圖片描述

中繼器(Repeater)

中繼器是在OSI模型的第一層–物理層上延長網路的裝置。

中繼器是**區域網(LAN)**環境下用來延長網路距離的最簡單最廉價的網路互聯裝置,由電纜傳過來的電訊號或光訊號經由中繼器的波形調整和放大再傳給另一個電纜。

這裡寫圖片描述

一般,中繼器兩端連線的是相同的通訊媒介,但有的中繼器也可以完成不同媒介之間的轉接工作。如,可以在同軸電纜與光纜之間調整訊號。然而,這種情況下,中繼器也只是單純負責訊號在0和1位元流之間的替換,並不負責判斷資料是否有錯誤。同時,它只負責將電訊號轉換為光訊號,因此不能在傳輸速度不同的媒介之間轉發。

用中繼器無法連線一個100Mbps的乙太網和另一個10Mbps的乙太網。連線兩個不同速度的網路需要的網橋或路由器這樣的裝置

通過中繼器而進行的網路延長,距離也並非可以無限擴大。例如一個10Mbps的乙太網最多可以用4箇中繼器分段連線,而一個100Mbps的乙太網則最多隻能連兩個中繼器。

集線器

有些中繼器可以提供多個埠服務。這種中繼器被稱為中繼集線器或集線器。因此,集線器可以看做是多口中繼器,每個埠都可以成為中繼器。

這裡寫圖片描述

集線器(HUB)屬於資料通訊系統中的基礎裝置,它和雙絞線等傳輸介質一樣,是一種不需任何軟體支援或只需很少管理軟體管理的硬體裝置。它被廣泛應用到各種場合。集線器工作在區域網(LAN)環境

集線器實際上就是中繼器的一種,其區別僅在於集線器能夠提供更多的埠服務,所以集線器又叫多口中繼器。

網橋/2層交換機

這裡寫圖片描述

網橋也稱為橋接器,是連線兩個區域網的儲存轉發裝置,用它可以使完全具有相同或相似體系結構網路系統的連線,這樣不但能擴充套件網路的距離或範圍,而且可提高網路的效能、可靠性和安全性。

網橋工作在OSI參考模型的資料鏈路層(第二層)將兩個區域網LAN連起來,根據MAC地址來轉發幀,可以看作一個“低層的路由器”(路由器工作在網路層,根據網路地址如IP地址進行轉發)。

它能夠識別資料鏈路層中的資料幀,並將這些資料幀臨時儲存於記憶體,再重新生成訊號作為一個全新的幀轉發給相連的另一個網段。由於能夠儲存這些資料幀,網橋能夠連線10BASE-T與100BASE-TX等傳輸速率完全不同的資料鏈路,並且不限制連線網段的個數

資料鏈路的資料幀中有一個數據位叫做FCS,用以教研資料是否正確宋代目的地。網橋通過檢車這個域中的值,將那些損壞的資料丟棄,從而避免傳送給其他的網段。此外,網橋還能通過地址自學機制和過濾功能控制網路流量。

這裡所說的地址是指MAC地址、硬體地址、實體地址以及介面卡地址,也就是網路上針對NIC分配的具體地址。如下圖所示,主機A與主機B之間進行通訊時,只針對主機A傳送資料幀即可。網橋會根據地址自學機制來判斷是否需要轉發資料幀。

這裡寫圖片描述

如上這類功能是OSI參考模型的第2層所具有的功能,為此有時也把網橋稱為2層交換機(L2交換機)。

有些網橋能夠判斷是否將資料報文轉發給相鄰的網段,這種網橋被稱為自學式網橋。這類網橋會記住曾經通過自己轉發的所有資料幀的MAC地址,並儲存到自己的記憶體表中。由此,可以判斷哪個網段中包含持有哪些MAC地址的裝置。

乙太網等網路中經常使用的交換集線器(Hub),現在基本也屬於網橋的一種。交換集線器中連線電纜的每個埠都能提供類似網橋的功能。

具有網橋功能的Hub叫做交換集線器。只有中繼功能的Hub叫做集線器。

交換機就是一個多埠的網橋。

這裡寫圖片描述

路由器/3層交換機

這裡寫圖片描述

路由器工作在OSI模型第3層–網路層。負責連線兩個網路、並對分組報文進行轉發的裝置。

網橋是根據實體地址(MAC地址)進行處理,而路由器/3層交換機是根據IP地址進行處理的。TCP/IP中網路層的地址就成為了IP地址。

路由器可以連線不同的資料鏈路。例如連線兩個乙太網,或者連線一個乙太網一個FDDI。寬頻路由器也是路由器的一種。

路由還有分擔網路負荷的作用,甚至有些路由器具備一定網路安全功能。

4~7層交換機

這裡寫圖片描述

47層交換機負責處理OSI模型中從傳輸層至應用層的資料。如果用TCP/IP分層模型來表述,47層交換機就是以TCP等協議的傳輸層及其上面的應用層為基礎,分析收發資料,並對其進行特定的處理。

負載均衡器,就是4~7層交換機的一種。 寬頻控制,也是4~7層交換機的重要功能之一。

4~7層交換機的應用場景還有很多。例如廣域網加速器、特殊應用訪問加速以及防火牆(可以防止網際網路上的非法訪問)等。

閘道器

這裡寫圖片描述

閘道器是OSI參考模型中負責從傳輸層到應用層的資料進行轉換和轉發的裝置。它與4~7層交換機一樣都是處理傳輸層以上的資料,但是閘道器不僅轉發資料還負責對資料進行轉換,它通常會使用一個表示層或應用層閘道器,在兩個不能進行直接通訊的協議之間的進行翻譯,最終實現兩者之間的通訊。

一個典型例子就是網際網路郵件與手機郵件之間的轉換服務。手機郵件有時候可能會與網際網路郵件互不相容,這是由於它們在表現層和應用層中的“電子郵件協議”互不相同所導致的的。

網際網路與手機之間設定了一道閘道器。閘道器負責讀取各種不同協議後,對它們逐一進行合理的轉換,再將相應的資料轉發出去。這樣即使應用的是不同電子郵件的協議,計算機與手機之間也能相互發送郵件。

這裡寫圖片描述

有時為了控制網路流量以及出於安全考慮,有時會使用代理伺服器(Proxy Server)。這種代理伺服器也是閘道器的一種,稱為應用閘道器。有了代理伺服器,客戶端已伺服器之間無需再網路層上直接通訊,而是從傳輸層到應用層對資料和訪問進行各種控制和處理。防火牆就是通過閘道器通訊的安全性產品。

這裡寫圖片描述

各種裝置及其對應網路分層概覽:

這裡寫圖片描述

現代網路實態

網路的構成

在計算機網路中有類似高速公路的部分,人們稱為**“骨幹”或“核心”**。它們是計算機網路的中心。人們通常會選用高速路由器相互連線使之款速傳輸大量資料。

網路中相應於高速公路入口的部分被稱作**“邊緣網路”**,常用的裝置由多功能路由器(在路由器基本功能上增加了按順序/種類傳送資料的公恩那個,可以根據TCP/IP層的協議變換處理方法)和3層交換機。

高速公路出入口通常連線國道,省道,從而可以通往市區街道。計算機網路中連線“邊緣網路”的部分叫做**“接入層”或“匯聚層”**。
這樣,骨幹網可以專注於如何提高業務傳輸效能和網路的生存性,而將具有業務智慧化的高速路由器和交換機移到網路的邊緣。邊緣網路的常用裝置多為2層交換機或3層交換機。

這裡寫圖片描述

網際網路通訊

這裡寫圖片描述

人們在家或公司連線網際網路時,一般會使用網際網路接入服務。聯網之後,彙集到無線區域網路由器和最近交換機的通訊會再次被連線到前面所提到的“接入層”,設定還有可能通過“邊緣網路”或“主幹網”實現與目標地址之間的通訊。

在公司規模較大,網路使用者較多,或者從外部有大量訪問進入的情況下,有時可以直接連線到“邊緣網路”。

行動通訊

手機一開機,就會自動與距離最近的基站發生無線通訊。基站上設有特定手機基站天線,基地本身也就相當於網路的“接入層”。

由一步手機終端傳送訊號給另一個終端時,它所發出的請求會一直傳送到註冊對端手機號碼的基站,如果對方接聽了電話,就等於在這兩部手機之間建立了通訊連線。

基站收集的通訊請求被彙集到控制中心(“邊緣網路”),之後會再被接入到互聯通訊控制中心的主幹網。這種手機網路的構成與網際網路接入服務很相似。

這裡寫圖片描述

從資訊釋出者的角度看網路

為了解決高併發問題,減少訪問延遲,會進行託管主機服務,集合多個儲存於一起,通過連線高速網路,以提高響應速度。這種方式被稱為資料中心。

資料中心由大型伺服器、儲存以及計算機網路構成。資料中心內部網路中分佈著3層交換機和高速路由器。

虛擬化和雲
虛擬化是指當一個網站需要調整運營所使用的的資源時,並不增減伺服器、儲存裝置、網路等實際物理裝置,而是利用軟體講這些物理裝置虛擬化,在有必要時增減資源的時候,通過軟體按量增減的一種機制、
利用虛擬化技術,根據使用者的情況動態調整必要資源的機制被人們稱為“雲”。