網絡基礎知識彙總

  • 網絡和協議算法

 

 

1.     TCP/IP是一類協議系統,它是一套支持網絡通訊的協議集合。網絡是計算機或相似計算機的設備之間經過經常使用的傳輸介質進行通訊的集合。數據庫

 

2.     網絡協議就是一套通用規則,用來幫助定義複雜數據傳輸的過程。數據傳輸從一臺計算機上的應用程序開始,經過計算機網絡硬件,通過傳輸介質到正確目的地,而後上傳到目的地計算機網絡硬件,最後到達負責接收的應用程序。編程

 
 

 

 

3.     TCP/IP協議定義了網絡通訊過程,更重要的是,定義了數據單元的格式和內容,以便接收計算機可以正確解釋接收到的消息。TCP/IP被稱爲協議簇。瀏覽器

 

4.     TCP/IP標準定義了TCP/IP網絡的通訊規則;TCP/IP實現是一個軟件組件,計算機經過它參與到TCP/IP網絡中。緩存

 

 

  • TCP/IP的特性安全

 

 

1.     邏輯編址:TCP/IP經過邏輯編址提供了子網化的能力。邏輯地址是一個同過網絡軟件來配置的地址。在TCP/IP中,計算機的邏輯地址稱爲IP地址。服務器

 

2.     路由選擇:路由器是一種特殊的設備,可以讀取邏輯地址信息,並將數據經過網絡直接傳送到它的目的地。在局域網中,數據傳輸到另外一臺計算機或設備時,不用通過路由器,所以不會給大型網絡的傳輸線路帶來負擔。若是數據要傳送到子網之外的計算機上,路由器將負責轉發數據。網絡

 

3.     名稱解析:域名到IP地址的映射稱爲名稱解析。域名服務器的專用計算機中存儲了用於顯示域名和IP地址轉換方式的表。分佈式

 

4.     錯誤控制和流量控制:TCP/IP協議簇提供了確保數據在網絡中可靠傳送的特性。這些特性包括檢查數據的傳輸錯誤(確保到達的數據與發送的數據一致)和確認成功接收到網絡信息。函數

 

5.     應用支持:同一臺計算機能夠運行多種網絡應用程序。協議軟件必須提供某些方法來判斷接收到的數據包屬於哪一個應用程序。在TCP/IP中,這個經過系統的邏輯通道實現從網絡到應用程序的接口被稱爲端口。

 
 
 
 

 

 

 


 

 

2、TCP/IP的工做方式

 

 

  • TCP/IP協議系統

 

 

1.     TCP/IP協議系統必需要完成的任務:                                                                                                   

 
 
 
 

 

 

2.     TCP/IP模型的協議層:應用層-傳輸層-網際層-網絡訪問層(數據鏈路層-物理層)

 

3.     網絡訪問層:提供了與物理網絡鏈接的接口。針對傳輸介質設置數據的格式,根據硬件的物理地址實現數據的尋址,對數據在物理網絡中的傳遞提供錯誤控制。

 

4.     網際層:提供獨立於硬件的邏輯尋址,從而讓數據可以在具備不一樣物理結構的子網之間傳遞。提供路由功能來下降流量,支持網間的數據傳遞。實現物理地址與邏輯地址的轉換。

 

5.     傳輸層:爲網絡提供了流量控制、錯誤控制和確認服務。充當網絡應用程序的接口。

 

6.     應用層:爲網絡排錯、文件傳輸、遠程控制和internet操做提供了應用程序。

 

 

  • TCP/IP和OSI模型

 

 

1.     開放系統互連模型——OSI                                                                                                      

 
 

 

 

2.    

 
 

 

 

 

  • 數據包

 

 

1.     在數據發送的過程當中,其流程是從堆棧的上到下,每一層都把相關的信息(成爲「報頭」)捆綁到實際的數據上。包含報頭信息和數據的數據包就做爲下一層的數據,再次被添加報頭信息和從新打包。

 

2.    

 
 

 

 

3.     每一層封裝報頭的緣由:接收設備上的每一個協議層須要不一樣的信息來處理收到的數據,因此發送設備上的沒一些就封裝相應的報頭信息。                                                                                                                                                         

 
 

 

 

 


 

 

3、網絡訪問層

 

 

  • 協議和硬件

 

 

1.     網絡訪問層管理爲物理網絡準備數據所必須的服務與功能:與計算機網絡適配器的鏈接;根據合適的訪問方式調整數據傳輸;把數據轉化爲電子流或模擬脈衝的形式,以在傳輸介質上進行傳輸;對接收到的數據進行錯誤檢查;給發送的數據添加錯誤檢查信息,從而讓接收端計算機可以對數據進行錯誤檢查。

 

2.     網絡訪問層定義了與網絡硬件交互和訪問傳輸介質的過程。

 

 

  • 網絡訪問層與OSI模型

 

 

1.     網絡訪問層大體對應OSI模型的物理層和數據鏈路層。

 

2.     物理層負責把數據幀轉化爲適合於傳輸介質的比特流。在接收端,物理層把這些脈衝從新組合爲數據幀。

 

3.     數據鏈路層執行兩個獨立的任務:介質訪問控制(MAC)——這個子層提供與網絡適配器鏈接的接口。實際上,網絡適配器驅動程序一般被稱爲MAC驅動;邏輯鏈路控制(LLC)——這個子層對通過子網傳遞的幀進行錯誤檢查,而且管理子網上通訊設備之間的鏈路。

 

 

  • 網絡體系

 

 

1.     網絡體系具備一系列的規範來管理介質訪問、物理尋址、計算機與傳輸介質的交互。在決定網絡體系時,其實是在決定如何設計網絡訪問層。

 

2.     網絡體系包含對物理網絡的定義,以及該物理網絡上定義的通訊規範。

 
 

 

 

3.     網絡訪問層的軟件必須伴隨於特定的硬件設計。TCP/IP協議棧的設計保證了與硬件交互相關的細節都發生在網絡訪問層,使得TCP/IP可以工做於多種不一樣的傳輸介質。如下是集中網絡體系的類型:

 
 
 
 

 

 

 

  • 物理尋址

 

 

1.     網絡訪問層須要把邏輯IP地址與網絡適配器的固定物理地址相關聯。

 

2.     物理尋址是由介質訪問控制(MAC)子層負責的。

 

3.     TCP/IP使用地址解析協議(ARP)和逆向地址解析協議(RARP)把IP地址關聯到網絡適配器的物理地址。ARP和RARP爲用戶提供的邏輯IP地址與局域網上使用的硬件地址創建了一個對應關係。

 

 

  • 以太網

 

 

1.     以太網是目前使用最普遍的局域網技術,是當今現有局域網採用的最通用的通訊協議標準。

 

2.     在典型的以太網上,所有計算機共享同一個傳輸介質。以太網使用成爲載波偵聽多路訪問/衝突檢測(CSMA/CD)的方法,來判斷計算機什麼時候能夠把數據發送到訪問介質。經過CSMA/CD,全部計算機都監視傳輸介質的狀態,在傳輸以前等待線路空閒。若是兩臺計算機嘗試同時發送數據,就會發生衝突,計算機就會中止發送,等待一個隨機的時間間隔,而後再次嘗試發送。

 

3.     傳統以太網在中低負載狀況下運行良好,但在大負載狀況下會因爲衝突的增多而影響性能。在現代以太網中,像網絡交換機這樣的設備會對流量進行管理,減小衝突的發生,從而讓以太網的運行更具效率。

 
 

 

 

 

  • 剖析以太網幀

 

 

1.     網絡訪問層的軟件從網際層接收數據報,把它轉化符合物理網絡規範的形式。在以太網中,網絡訪問層的軟件必須把數據轉化成可以經過網絡適配器硬件進行傳輸的形式。

 

2.    

 
 
 
 
 
 

 

 

 


 

 

4、網際層

 

 

  • 尋址與發送

 

 

1.     物理尋址方式適合單個局域網網段。由不間斷介質鏈接在一塊兒的若干臺計算機利用物理地址就能夠實現所須要的功能。只需使用網絡訪問層的低級協議就能夠把數據從網絡適配器直接傳遞另外一個網絡適配器。可是,在路由式網絡中,不能利用物理地址實現數據傳輸,由於根據物理地址進行傳輸所需的過程不能跨越路由接口來進行。

 

2.     TCP/IP隱藏了物理地址,以一種邏輯化、層次化的尋址方案對網絡進行組織。這種邏輯尋址方案由網際層的IP協議維護,而邏輯地址被稱爲IP地址。

 

3.     在一個路由式網絡中,TCP/IP要使用以下策略在網絡上發送數據:

 
 
 
 

 

 

 

  • 網際協議

 

 

1.     IP協議提供了一種分層的、與硬件無關的尋址系統,具備在複雜的路由式網絡中傳遞數據所需的服務。TCP/IP網絡上的每一個網絡適配器都有一個惟一的IP地址。

 

2.     IP地址分爲兩個部分:網絡ID和主機ID。網絡必須提供一種方式來判斷IP地址的哪一部分是網絡ID,哪一部分是主機ID。

 

 

  • IP報頭字段

 

 

1.     每一個IP數據報都以一個IP報頭開始。源計算機的TCP/IP軟件構造這個IP報頭,目的計算機的TCP/IP軟件利用IP報頭中封裝的信息處理數據。IP報頭包含大量信息,包括源IP地址、目的IP地址、數據報長度、IP版本號和路由器的特殊指令。

 

2.     IP數據報由報頭和數據兩部分組成。報頭由一個20字節的固定長度和一個可任選任意長度部分組成。IP數據報最長爲65535字節。                                                                                                                                                                         

 
 
 
 
 
 
 
 

 

 

 

  • IP尋址

 

 

1.     劃分網絡ID和主機ID的最初方案是使用地址分類。

 

2.     A類:0.0.0.0~127.255.255.255

 

B類:128.0.0.0~191.255.255.255

 

C類:192.0.0.0~223.255.255.255

 

D類:224.0.0.0~239.255.255.255

 

E類:240.0.0.0~247.255.255.255

 

規定首字節不能是12七、0、255,主機各位不能同時爲0和1

 
 

 

 

3.     網絡管理員能夠把網絡劃分爲更小的次級網絡,這被稱爲子網。劃分子網的是指就是借用主機ID中的一些爲,在網絡內建立額外的網絡。AB類地址會普遍應用子網劃分技術。

 

 

  • 地址解析協議——ARP

 

 

1.     ARP把IP地址映射爲物理地址。主機必須知道目的網絡適配器的物理地址才能向它發送數據。

 

2.     網段上每臺主機在內存中都保存着一個被稱爲ARP表或ARP緩存的表格,其中包含了網段上其餘主機的IP地址與物理地址的對應關係。當主機須要向網段上的其餘主機發送數據時,它會查看ARP緩存來得到目的的物理地址。ARP緩存是動態變化的,若是要接收數據的地址當前並不存在於ARP緩存中,主機就會發送一個名爲ARP請求幀的廣播。

 
 
                                                         ARP請求幀包含爲解析的IP地址,還包含發送這個請求的主機的IP地址和物理地址。網段上的其餘主機接收到這個ARP請求,擁有這個未解析IP地址的主機會向發出請求的主機發送本身的物理地址。這個新的IP地址與物理地址的對應關係就會添加到請求主機的ARP緩存中。

 

 

 

  • 逆向地址解析協議——RARP:在知道物理地址而不知道IP地址時,應該使用RARP。

 

 

  • INTERNET控制消息協議——ICMP

 

 

1.     發送到遠程計算機的數據一般會通過一個或多個路由器,這些路由器在把數據傳輸到最終目的地的過程當中可能發生多種問題。路由器利用ICMP協議把問題通知給源IP。ICMP還有用於調試和排錯的功能。

 

2.    

 
 

 

 

        

 
 

 

 

 


 

 

5、子網劃分和CIDR

 

 

  • 子網

 

 

1.     子網劃分能夠利用IP地址系統把物理網絡分解爲更小的邏輯實體——子網。

 

2.     子網的概念最先源自於地址分類系統,並且在ABC類地址中可以獲得很好的展示。然而硬件廠商和internet社區創建了一種解析地址的新系統,名爲無類別域間路由(CIDR),它不須要關心地址類別。

 

 

  • 劃分網絡

 

 

1.     ABC類網絡ID來識別網段具備一些侷限性,主要是在網絡級別之下不能對地址空間進行任何邏輯細分。數據報到達某個網關(90.0.0.0)地址空間,但若是要考慮它在這個地址空間中是如何傳遞的,這個就會變得很是複雜,由於A類網絡可以容納超過1600萬臺主機。

 

2.     爲了在大型網絡裏實現更高效的數據傳輸,地址空間被劃分爲較小的網段。惟一可行的解決辦法是在網絡標ID下對地址空間進行某種細分,讓主機和路由器可以根據IP地址判斷應該把數據發送到哪一個網段。

 

3.     TCP/IP的設計者借用了主機ID裏的一些位來造成子網地址。一個名爲子網掩碼的參數指明瞭地址中多少位用於子網ID,保留多少位做爲實際的主機ID。

 

4.     像IP地址同樣,子網掩碼是個32位的二進制值。子網掩碼裏的每一位表明IP地址中的一個位,用1表示IP地址中屬於網絡ID或子網ID的位,用0表示IP地址裏屬於主機ID的位。                                                                                                                  

 
 
 
 

 

 

5.     在子網網絡上,路由器和主機所使用的路由表包含了每一個IP地址相關的子網掩碼信息。數據報根據網絡ID被路由到目標網絡,而這個網絡ID是由地址類別決定的。當數據報到達目標網絡以後,它根據子網ID路由到合適的網段。在到達這個網段以後,再根據主機ID傳輸到正確的計算機。                                                                                                                                        

 
 

 

 

 

  • 使用子網

 

 

1.     子網掩碼決定了網絡ID以後又多少位是做爲子網ID的。子網ID的長度不是固定的,取決於子網掩碼的值。子網ID越長,留給主機ID的位數就越少。

 

2.     全0或全1的主機ID是不能分配的

 

3.    

 
 

 

 

 

  • 無類別域間路由——CIDR

 

 

1.     CIDR技術使用一個名爲CIDR前綴的值指定地址中做爲網絡ID的位數。這個前綴有時也被稱爲變長子網掩碼。

 

2.     這個前綴能夠位於地址空間的任何位置,讓管理者可以以更靈活的方式定義子網,以簡便的形式指定地址網絡ID部分與主機ID部分。

 

3.     CIDR標記使用一個斜線/,後面跟一個十進制數值來表示地址中網絡部分所佔的位數。

 

4.     例如一個ISP被分配了一些C類網絡,這個ISP準備把這些C類網絡分配給各個用戶羣,已經分配了三個C類網段給用戶,若是沒有實施CIDR技術.ISP的路由器的路由表中會有三條下連網段的路由條目,而且會把它通告給Internet上的路由器.經過實施CIDR技術,咱們能夠在ISP的路由器上把這三個網段198.168.1.0,198.168.2.0,198.168.3.0匯聚成一條路由198.168.0.0/16.這樣ISP路由器只向Internet通告198.168.0.0/16這一條路由,大大減小了路由表的數目.從而爲網絡路由器節省出了存儲空間。 值得注意的是,使用CIDR技術匯聚的網絡地址的比特位必須是一致的,如上例所示.若是上例所示的ISP鏈接了一個172.178.1.0網段,這些網段路由將沒法匯聚,沒法實現CIDR技術.

 

5.     CIDR創建於「超級組網」的基礎上,「超級組網」是「子網劃分」的派生詞,可看做子網劃分的逆過程。子網劃分時,從地址主機部分借位,將其合併進網絡部分;而在超級組網中,則是將網絡部分的某些位合併進主機部分。這種無類別超級組網技術經過將一組較小的無類別網絡匯聚爲一個較大的單一路由表項,減小了Internet路由域中路由表條目的數量。

 

 


 

 

6、傳輸層

 

 

  • 傳輸層簡介

 

 

1.     傳輸層須要提供以下功能:                                                                                                                                                 

 
 

 

 

2.     傳輸層爲網絡應用程序提供了一個接口。

 

3.     傳輸控制協議——TCP:TCP提供了完善的錯誤控制和流量控制,可以確保數據正確傳輸,它是一個面向鏈接的協議。

 

4.     用戶數據報協議——UDP:UDP只提供了很是基本的錯誤檢測,用於不須要TCP精細控制功能的場合,它是一個無鏈接的協議。

 

 

  • 面向鏈接協議和無鏈接協議

 

 

1.     面向鏈接協議:會在通訊計算機之間創建並維護一個鏈接,而且在通訊過程當中監視鏈接狀態。經過網絡傳輸的每一個數據包都會有一個確認,發送端計算機會記錄狀態信息來確保每一個數據包都被正確無誤的接收了,而且在須要時會重發數據。當數據傳輸結束後,發送端和接收端計算機會以適當方式關閉鏈接。

 

2.     無鏈接協議:以單向方式向目的發送數據報,不承擔通知目的計算機關於數據發送的職責。目的計算機接收到數據後也不須要向源計算機返回狀態信息。

 

 

  • 端口和套接字

 

 

1.     在TCP/IP系統中,應用程序可使用端口號經過TCP或UDP指定數據目的地。端口是一個預約義的內部地址,充當從應用程序到傳輸層或是從傳輸層到應用程序的通路。

 

2.     TCP或UDP數據實際是被髮送到一個套接字上的。套接字是一個由IP地址和端口號組成的地址。

 
 

 

 

 

  • 多路複用/多路分解

 

 

1.     多路複用是指把多個來源的數據導向一個輸出,而多路分解是把從一個來源接收的數據發送到多個輸出。多路傳輸/多路分解讓TCP/IP協議棧較低層的協議不比關心哪一個程序在傳輸數據。與應用程序相關的操做都由傳輸層完成了,數據經過一個與應用程序無關的管道在傳輸層與網際層之間傳遞。

 

2.     多路複用是指兩個或多個用戶共享公用信道的一種機制。經過多路複用技術,多個終端能共享一條高速信道,從而達到節省信道資源的目的,多路複用有頻分多路複用(FDMA),時分多路複用(TDMA),碼分多路複用(CDMA)幾種。

 

 

  • TCP:面向鏈接的傳輸協議

 

 

1.     TCP重要特性:                                                                                                                            

 
 

 

 

2.     TCP數據格式:                                                                                                                               

 
 
 
 
 
 
 
 
 

 

 

3.     TCP鏈接:TCP經過鏈接發送和接收數據,而這個鏈接必須根據TCP的規則進行請求、打開和關閉。TCP的功能之一是爲應用程序提供訪問網絡的接口。這個接口是經過TCP端口提供的,而爲了經過端口提供鏈接,必須打開TCP與應用程序的接口。                 被動打開——某個應用程序進程通知TCP準備經過TCP端口接收鏈接,這樣就會打開TCP到應用程序的鏈接,從而爲參與鏈接請求作準備。                                                                                                                                                                                     主動打開——程序要求TCP發起與另外一臺計算機的鏈接,這就是主動打開狀態。

 
 

 

 

4.     創建鏈接:三次握手老是發生在TCP鏈接創建的初期 。須要三次握手的緣由——TCP的三次握手最主要是防止已過時的鏈接再次傳到被鏈接的主機。                                                                                   

 
 
 
 

 

 

5.     TCP流量控制(滑動窗口方法):接收端計算機利用「窗口」字段(也被稱爲「緩存大小」字段)來定義一個超過最後一個已確認序列號的序列號「窗口」,在這個範圍內的序列號才容許發送端計算機進行發送。發送端計算機在沒有接收到下一個確認消息以前不能發送超過這個窗口的序列號。

 

6.     關閉鏈接:計算機A發送一個數據分段,其中的FIN標記設置爲1。以後應用程序進入"fin-wait"狀態。在這個狀態下,計算機的TCP軟件繼續接受數據分段,並處理已經在序列中的數據分段,但再也不從應用程序接收數據了。當計算機B接收到FIN數據分段時,它返回FIN確認信息,而後發送剩餘的數據分段,通知本地應用程序接收到了FIN消息。計算機B向計算機A發送一個FIN數據分段,計算機A返回確認信息,鏈接就被關閉了。                                                                                                     

 
 
                                                                                                                                                         【注意】中斷鏈接端能夠是Client端,也能夠是Server端。假設Client端發起中斷鏈接請求,也就是發送FIN報文。Server端接到FIN報文後,意思是說"我Client端沒有數據要發給你了",可是若是你還有數據沒有發送完成,則沒必要急着關閉Socket,能夠繼續發送數據。因此你先發送ACK,"告訴Client端,你的請求我收到了,可是我還沒準備好,請繼續你等個人消息"。這個時候Client端就進入FIN_WAIT狀態,繼續等待Server端的FIN報文。當Server端肯定數據已發送完成,則向Client端發送FIN報文,"告訴Client端,好了,我這邊數據發完了,準備好關閉鏈接了"。Client端收到FIN報文後,"就知道能夠關閉鏈接了,可是他仍是不相信網絡,怕Server端不知道要關閉,因此發送ACK後進入TIME_WAIT狀態,若是Server端沒有收到ACK則能夠重傳。「,Server端收到ACK後,"就知道能夠斷開鏈接了"。Client端等待了2MSL後依然沒有收到回覆,則證實Server端已正常關閉,那好,我Client端也能夠關閉鏈接了。Ok,TCP鏈接就這樣關閉了!          
 
 
 
 
                            雙方同時要求關閉鏈接:ESTAB->FIN-WAIT-1->CLOSING->TIME-WAIT->CLOSED                                                                             TIME-WAIT狀態以後等待2MSL(包的最大保存時間)是爲了確保全部該鏈接上的包都已在網絡消失。

 

 

7.     TCP如何保證可靠性:TCP的可靠性是經過順序編號和確認(ACK)來實現的。TCP在開始傳送一個段時,爲準備重傳而首先將該段插入到發送隊列之中,同時啓動時鐘。其後,若是收到了接受端對該段的ACK信息,就將該段從隊列中刪去。若是在時鐘規定的時間內,ACK未返回,那麼就從發送隊列中再次送出這個段。TCP在協議中就對數據可靠傳輸作了保障,握手與斷開都須要通信雙方確認,數據傳輸也須要雙方確認成功,在協議中還規定了:分包、重組、重傳等規則;而UDP主要是面向不可靠鏈接的,不能保證數據正確到達目的地。

 

 

  • UDP:無鏈接傳輸協議

 

 

1.     UDP實際上可以執行基本的錯誤檢驗,所以,能夠說UDP具備有限的錯誤檢驗功能。UDP數據報中包含一個校驗和,接收端計算機能夠利用它來檢驗數據的完整性。

 

2.     UDP的開銷沒有TCP大。

 

3.     UDP不會從新傳輸丟失或損壞的數據報、從新排列混亂的接收數據、消除重複的數據報、確認數據報的接收、創建或是終止鏈接。它主要是在程序沒必要使用TCP鏈接開銷的狀況下發送和接收數據報的一種方式。

 

 


 

 

7、應用層

 

 

  • TCP/IP應用層與OSI

 

 

1.     TCP/IP應用層對應於OSI模型的應用層、表示層和會話層。

 

2.     應用層:OSI的應用層包含的組件爲用戶應用程序提供服務並支持網絡訪問。

 

3.     表示層:表示層把數據轉化爲平臺無關的格式,並處理加密和數據壓縮。

 

4.     會話層:負責管理聯網計算機上應用程序之間的通訊,提供了一些傳輸層不具有、與鏈接相關的功能,好比名稱識別和安全。

 

 

  • 應用層的部分協議                                                                                                                                                        

     
     

     

 

 

  • API和應用層:應用編程接口(API)是預約義的編程組件的集合,應用程序能夠利用它訪問操做環境的其餘部分,也就是與操做系統進行通訊。網絡協議棧就是API概念的典型應用,網絡API提供了程序與協議棧的接口,應用程序利用API的函數打開和關閉鏈接、從網絡讀取和寫入數據。


    8、路由選擇

 

 

 

  • 路由器的概念

 

 

1.     路由器是負責根據邏輯地址對通訊流量進行過濾的設備。經典的網絡路由器工做於網際層,使用網際層報頭中的IP尋址信息。

 

2.     向Internet這樣的大型網絡具備不少路由器,提供了從源到目的節點的多條路徑。這些路由器必須獨立工做,但整個系統必須保證數據可以準確高效地在網絡中傳輸。

 

3.     當路由器將數據從一個網絡傳輸到下一個網絡時,它會替換網絡訪問層報頭信息,所以路由器能夠鏈接不一樣類型的網絡。不少路由器還維護關於最佳路徑的詳細信息,這是根據距離、帶寬和時間綜合考慮的。

 

4.     早期的路由器實際上就是具備兩塊或多塊網絡適配器的計算機(也被稱爲多宿主計算機)。

 
 

 

 

 

  • 路由選擇過程

 

 

1.     路由器全面功能:                                                                                                                                                

 
 

 

 

2.     路由表和創建路由表的協議是路由器具備的兩個顯著特性。對於路由器的大多數討論都是關於創建路由表、聚集路由表的路由協議如何讓全部的路由器像一個總體同樣提供服務。

 

3.     靜態路由:要求網絡管理員手工輸入路由信息。

 

4.     動態路由:根據使用路由協議得到的路由信息來動態創建路由表。

 

 

  • 路由表的概念

 

 

1.     路由表和忘記曾其餘路由元素的用途在於把數據傳遞到正確的本地網絡。當數據到達本地網絡以後,網絡訪問協議就會知道它的目的地。所以,路由表不須要存儲完整的IP地址,只須要列出網絡ID便可。

 

2.    

 
 
                                                                                            路由表就是把目的網絡ID映射到下一跳的IP地址,即數據報通往目的網絡的下一站。路由表會區分直接鏈接到路由器自己的網絡和經過其餘路由器間接鏈接過來的網絡。下一跳能夠是目的網絡,也能夠是通向目的網絡的下一個下游路由器。

 

 

 

  • IP轉發

 

 

1.     主機的路由表比路由器簡單得多,它可能只包含兩行:一個條目用於本地網絡,另外一個用於默認路由(用於處理不能在本地網段上傳輸的數據包)。

 

2.     IP轉發過程實際上不會再IP報頭中寫入路由器的地址,而是由主機把數據報和路由器的IP地址向下傳遞到網絡訪問層,該層的協議軟件會使用一個獨立的查詢過程把數據包封裝到一個幀中,經過本地網段傳遞給路由器。換句話說,被轉發的數據報裏的IP地址指向最終要接收數據的主機 ,而轉發數據報的幀中的物理地址指向路由器上本地適配器的地址。

 

3.    

 
 

 

 

 

  • 直接路由和間接路由

 

 

1.    

 
 

 

 

2.     路由器瞭解間接路由的方式有兩種:從系統管理員和從其餘路由器。這兩種方式分別對應靜態路由和動態路由。

 

3.     大多數現代路由器使用了某種形式的動態路由。路由器彼此之間的相互通訊,共享關於網段和網絡路徑的信息,每臺路由器都根據從這種通訊過程當中獲得的信息創建本身的路由表。

 

 

  • 動態路由算法——距離矢量路由

 

 

1.     距離矢量路由是一種高效、簡單的路由方法,被不少路由協議所採用。其設計目標是讓路由器之間所需的通訊最少,讓路由表中必須保存的數據最少。這種設計理念認爲路由器沒必要知道通向每一個網段的完整路徑,而是隻需知道向哪一個方向發送數據報便可。

 

2.     網段之間的距離以數據報在兩個網絡之間傳輸必須通過的路由器的數量來表示,而使用距離矢量路由的路由器優化路徑的方式是讓數據報必須通過的路由器達到最少。這個距離參數成爲「跳數」。

 

3.     距離矢量路由的工做方式:                                                                                                                                                               

 
 
 
 

 

 

 

  • 動態路由算法——鏈路狀態路由:鏈接狀態路由背後的理念在於每一個路由器都嘗試創建關於網絡拓撲的內部映射。每臺路由器按期向網絡發送狀態信息,其中列出了本身直連的其餘路由器以及鏈路的狀態。路由器利用從其餘路由器收到的狀態消息創建網絡拓撲的映射,當它須要轉發數據報時,會根據現有條件選擇最佳路徑。

 

 

  • 複雜網絡上的路由

 

 

1.     對於internet上的路由器來講,並非每臺路由器都須要知道其餘全部路由器的信息。在網絡有效組織的狀況下,大多數路由器只須要與相鄰路由器交互協議信息便可。

 

2.     在孕育了internet的ARPnet系統中,一組核心路由器做爲網絡互聯的中央骨幹網,把自動配置和管理的獨立網絡鏈接在一塊兒。核心路由器瞭解每一個網絡,但沒必要知道每一個子網。只要數據報可以找到到達核心路由的路徑,就可以到達整個網絡的任何位置。附屬網絡中的路由器沒必要了解世界上的所有網絡,只須要知道如何在相鄰路由器之間如何傳輸數據和如何到達核心路由器便可。

 

3.    

 
 

 

 

 

  • 路由選擇協議

 

 

1.     因特網有兩大類路由選擇協議:內部網關協議IGP(Interior Gateway Protocol)即在一個自治系統內部使用的路由選擇協議。目前這類路由選擇協議使用得最多,如RIP和OSPF協議。外部網關協議EGP(External Gateway Protocol)若源站和目的站處在不一樣的自治系統中,當數據報傳到一個自治系統的邊界時,就須要使用一種協議將路由選擇信息傳遞到另外一個自治系統中。這樣的協議就是外部網關協議EGP。在外部網關協議中目前使用最多的是BGP-4。

 

2.     路由信息協議RIP是內部網關協議IGP中最早獲得普遍使用的協議。RIP是一種分佈式的基於距離向量的路由選擇協議。RIP協議要求網絡中的每個路由器都要維護從它本身到其餘每個目的網絡的距離記錄。距離的解釋:從一路由器到直接鏈接的網絡的距離定義爲1。從一個路由器到非直接鏈接的網絡的距離定義爲所通過的路由器數加1。RIP協議中的「距離」也稱爲「跳數」(hop count),由於每通過一個路由器,跳數就加1。這裏的「距離」實際上指的是「最短距離」。RIP認爲一個好的路由就是它經過的路由器的數目少,即「距離短」。RIP容許一條路徑最多隻能包含15個路由器。「距離」的最大值爲16時即至關於不可達。可見RIP只適用於小型互聯網。RIP不能在兩個網絡之間同時使用多條路由。RIP選擇一個具備最少路由器的路由(即最短路由)哪怕還存在另外一條高速(低時延)但路由器較多的路由。

 

3.        「開放」代表OSPF協議不是受某一家廠商控制,而是公開發表的。「最短路徑優先」是由於使用了Dijkstra提出的最短路徑算法SPF。OSPF只是一個協議的名字,它並不表示其餘的路由選擇協議不是「最短路徑優先」。是分佈式的鏈路狀態協議。

 

4.     BGP是不一樣自治系統的路由器之間交換路由信息的協議。邊界網關協議BGP只能是力求尋找一條可以到達目的網絡且比較好的路由(不能兜圈子),而並不是要尋找一條最佳路由。

 

 


 

 

9、連網

 

 

  • 撥號鏈接

 

 

1.     鏈接TCP/IP網絡的一種最經常使用的方式是經過電話線,而近幾年,向電纜調制解調器和DSL這樣的寬帶技術下降了撥號鏈接的重要性。調制解調器(modem)經過電話線提供網絡訪問,它的做用在於把來自計算機的數字傳輸轉化爲可以經過電話系統的端口進行傳輸的模擬信號,也把來自電話線的模擬信號轉化爲計算機可以理解的數字信號。

 

2.     電話線兩段的計算機不須要與其餘計算機爭用傳輸介質,他們只須要在彼此之間共享介質就能夠了。這種鏈接方式被稱爲點到點鏈接。

 

3.     調制解調器協議:串行線路網際協議(SLIP)——基於TCP/IP的早期調制解調器協議,相對簡單,有不少侷限性。點到點協議(PPP)——最初當前用於調制解調器鏈接的最流行協議,是對SLIP的細化,具備SLIP所不具有的不少重要特性。

 

 

  • 電纜寬帶:電纜調制解調器直接鏈接到一條同軸電纜,後者被鏈接到有線電視服務網絡上。這個調制解調器一般具備一個以太網接口,能夠鏈接到單臺計算機或小型局域網中的交換機或路由器。電纜調制解調器實現數字信號與模擬信號的轉換,從而讓數據可以經過電纜鏈接高效傳輸。                                                                                                                      

     
     

     

 

 

  • 鏈接設備

 

 

1.     網橋:根據物理地址過濾和轉發數據包的鏈接設備,它工做與OSI模型的數據鏈路層。網橋監聽它所鏈接的每一個網段,創建一個表來反應物理地址位於哪一個網段。當數據在一個網段上傳輸時,網橋會查看數據的目的地址,與路由表進行比較。若是目的地址屬於發送數據的網段,網橋就忽略這個數據。若是目的地址在不一樣的網段,網橋就把數據轉發到適當的網段。若是目的地址不在路由表,網橋就會把數據轉發到除源網段以外的所有網段。

 

2.     HUB(集線器):做爲一個物理設備從一個端口接收數據,而後把數據重複到其他所有的端口。換句話說,所有計算機就好像是被一條連續線路鏈接在一塊兒的。HUB不會過濾或路由任何數據,知識接收和從新發送信息。

 
 

 

 

3.     交換機:每臺計算機也是經過一條線路鏈接到交換機。可是,交換機知道應該把接收到的數據發送到哪個端口。大多數交換機把端口與所鏈接設備的物理地址關聯起來。當一個端口所鏈接的計算機發送數據幀時,交換機會查看幀的目的地址,把幀發送到目的地址相關聯的端口。

 
 

 

 

 


 

 

10、名稱解析

 

 

  • 使用主機文件進行名稱解析

 

 

1.     主機文件是一個保存有一個主機名、相關IP地址列表的文件。主機名解析實在更復雜的DNS名稱解析以前被開發出來的。

 

2.     在小型網絡上配置主機名解析一般很簡單。支持TCP/IP的操做系統都能識別主機文件,並能夠將它用於名稱解析,並且期間幾乎不須要用戶干預。

 

3.     配置名稱解析的大體步驟以下:爲每臺計算機分配IP地址和主機名;建立映射了IP地址和全部計算機主機名的主機文件。這些文件的名稱通常是hosts;將主機文件放置每臺計算機的指定位置上。對於具體位置每種操做系統都有本身的規定。

 

 

  • DNS名稱解析

 

 

1.     DNS會將名稱解析數據防止在一個或多個專用服務器上,由DNS服務器爲網絡提供名稱解析服務。若是網絡上計算機須要將某個主機名解析成IP地址,會向服務器發送一個查詢,詢問與這個地址關聯的主機名。若是DNS服務器保存了相應的地址,就將這個地址返回給發出請求的計算機。接下來,這臺計算機會用IP地址來替代主機名,進而再執行命令。

 

2.     DNS服務器又多個有點,它爲本地網絡提供了一個單一的DNS配置點,使得網絡資源的利用更加有效。然而,DNS沒法高效地保存Internet上全部主機名的數據庫。解決辦法是,使全部名稱服務器均可以彼此通訊。

 

3.     若是DNS在本身保存的地址數據庫中發現了被請求的地址,則將這個地址發回給客戶端。若是名稱服務器在本身保存的記錄中沒有找到這個地址,會要求其餘的名稱服務器查找這個地址,接着將這個地址發回給客戶端。

 

4.     工做原理:當DNS客戶機須要在程序中使用名稱時,它會查詢DNS服務器來解析該名稱。客戶機發送的每條查詢信息包括三條信息:包括:指定的DNS域名,指定的查詢類型,DNS域名的指定類別。基於UDP服務,端口53. 該應用通常不直接爲用戶使用,而是爲其餘應用服務,如HTTP,SMTP等在其中須要完成主機名到IP地址的轉換。

 

 

  • 瀏覽器輸入網址以後的過程                                

 

 

1.     應用層:客戶端瀏覽器經過DNS解析到www.baidu.com的IP地址220.181.27.48,經過這個IP地址找到客戶端到服務器的路徑。客戶端瀏覽器發起一個HTTP會話到220.161.27.48,而後經過TCP進行封裝數據包,輸入到網絡層。

 
 
DNS解析IP地址                                                                 
 
 
HTTP訪問服務器                                                                       

 

 

2.     傳輸層:在客戶端的傳輸層,把HTTP會話請求分紅報文段,添加源和目的端口,如服務器使用80端口監聽客戶端的請求,客戶端由系統隨機選擇一個端口如5000,與服務器進行交換,服務器把相應的請求返回給客戶端的5000端口。而後使用IP層的IP地址查找目的端。

 

3.     客戶端的網絡層不用關心應用層或者傳輸層的東西,主要作的是經過查找路由表肯定如何到達服務器,期間可能通過多個路由器,這些都是由路由器來完成的工做,經過查找路由表決定經過那個路徑到達服務器,其中用到路由選擇協議。

 

4.     客戶端的鏈路層,包經過鏈路層發送到路由器,經過鄰居協議查找給定IP地址的MAC地址,而後發送ARP請求查找目的地址,若是獲得迴應後就可使用ARP的請求應答交換的IP數據包如今就能夠傳輸了,而後發送IP數據包到達服務器的地址。無論網絡層使用的是什麼協議,在實際網絡的鏈路上傳送數據幀時,最終仍是必須使用硬件地址。每個主機都設有一個 ARP 高速緩存(ARP cache),裏面有所在的局域網上的各主機和路由器的 IP 地址到硬件地址的映射表。當主機 A 欲向本局域網上的某個主機 B 發送 IP 數據報時,就先在其 ARP 高速緩存中查看有無主機 B 的 IP 地址。若有,就可查出其對應的硬件地址,再將此硬件地址寫入 MAC 幀,而後經過局域網將該 MAC 幀發往此硬件地址。

 

 


 

 

11、TCP/IP安全

 

 

  • 防火牆

 

 

1.     防火牆就是一個放置在網絡路徑上的設備,它能夠檢查、接受或拒絕打算進入網絡的數據包。防火牆和傳統的路由器最重要的區別是傳統路由器會盡量轉發數據包,而防火牆則只轉發本身承認的數據包。對數據包的轉發決定再也不是僅基於地址,而是基於網絡全部者配置的一組規則,這些規則能夠肯定哪些流量類型能被網絡所容許。

 

2.     防火牆能夠阻止任何或者全部的外界流量進入網絡,可是它並不干涉內部網絡中的通訊。                                                

 
 

 

 

3.     當代的防火牆一般是包過技術、狀態查看和應用層過濾技術的組合。一些防火牆還能夠做爲DHCP服務器和網絡地址轉換工具。防火牆能夠是硬件也能夠是軟件,既能夠簡單又能夠複雜。

 

4.     最先的防火牆是數據包過濾器。它經過檢查數據包來找出該數據包的企圖。許多包過濾防火牆會查看封裝在傳輸層報頭中的TCP和UDP端口號,能夠肯定數據包的企圖。

 

5.     防火牆進化過程當中,出現了有狀態防火牆設備。有狀態防火牆不只僅是單獨檢查每個數據包,還會檢查數據包包含在哪一個通訊會話序列中。這種狀態敏感性有助於有狀態防火牆監視諸如無效數據包、會話劫持企圖,以及某些拒絕服務攻擊這樣的攻擊手段。

 

6.     應用層防火牆是最新一代防火牆。這種防火牆是在TCP/IP應用層工做的,在這裏能夠更全面地理解與協議和服務相關聯的數據包。

 

 

  • 代理服務

 

 

1.     全部用來保護和簡化內部網絡,將潛在的不安全Internet活動限制在邊界以外的技術中,防火牆是核心技術。另外一種相關的技術是代理服務。

 

2.     代理服務器能夠截獲對Internet資源的請求,並替代客戶端轉發這些請求,它在客戶端和請求的目的服務器之間扮演了一箇中介的角色。                                                                                                                                                                        

 
 

 

 

3.     經過代理客戶端發送和接受Internet請求,代理服務器可使客戶端免於直接與惡意網站聯繫。一些代理還能夠執行內容過濾,查看信息是否來自黑名單上的服務器,或者內容是否帶有潛在的危險。代理客戶端還常被用來限制內部網絡客戶端的瀏覽範圍。

 

 

 

 

1.     安全套接字(SSL)是爲了保護WEB通訊而引入的一個TCP/IP安全協議集。SSL的目的是,在傳輸層上的套接字和提供那些套接字訪問網絡的應用程序之間提供一層安全。                                                                                          

 
 
 

 

 

2.     SSL包含有兩個子層。SSL記錄協議是訪問TCP的一個標準庫。在這個記錄協議紙上,是一組執行特定服務的SSL相關協議。

 
 

 

 

3.     支持SSL的服務直接經過SSL記錄協議運行。在鏈接創建以後,SSL記錄協議提供確保會話機密性和完整性所需的加密和驗證。

 

4.     如同其餘協議安全技術同樣,這裏的技巧是要檢驗參與者的身份和安全地交換將用來加解密數據傳輸的密鑰。SSL採用公開密鑰加密,並提供對數字這個數的支持。

 

5.     在SSL中會使用密鑰交換算法交換密鑰;使用密鑰對數據進行加密;使用散列算法對數據的完整性進行驗證,使用數字證書證實本身的身份。

 

6.     握手協議:握手協議是客戶機和服務器用SSL鏈接通訊時使用的第一個子協議,握手協議包括客戶機與服務器之間的一系列消息。SSL中最複雜的協議就是握手協議。該協議容許服務器和客戶機相互驗證,協商加密和MAC算法以及保密密鑰,用來保護在SSL記錄中發送的數據。握手協議是在應用程序的數據傳輸以前使用的。

 

7.     記錄協議:記錄協議在客戶機和服務器握手成功後使用,即客戶機和服務器鑑別對方和肯定安全信息交換使用的算法後,進入SSL記錄協議,記錄協議向SSL鏈接提供兩個服務——                                                                                    

 
 

 

 

8.     警報協議:客戶機和服務器發現錯誤時,向對方發送一個警報消息。若是是致命錯誤,則算法當即關閉SSL鏈接,雙方還會先刪除相關的會話號,祕密和密鑰。每一個警報消息共2個字節,第1個字節表示錯誤類型,若是是警報,則值爲1,若是是致命錯誤,則值爲2;第2個字節制定實際錯誤類型。

 

 


 

 

12、配置

 

 

  • 服務器提供IP地址的狀況

 

 

1.     每一臺計算機都已經預先配置了一個IP地址。這種狀況被稱爲靜態IP地址。每一臺計算機在啓動時就知道本身的IP地址,而且可以馬上使用網絡。靜態IP尋址在小型網絡中表現得很好,可是因爲大型網絡上常常會出現從新配置和更改的狀況,所以靜態IP尋址也受到不少限制。

 

2.     靜態IP地址的缺點:                                                                                                                              

 
 

 

 

 

  • DHCP

 

 

1.     DHCP是一個用來向計算機分配TCP/IP配置參數的協議。DHCP服務器能夠爲DHCP客戶端提供一組TCP/IP設置,好比IP地址、子網掩碼和DNS服務器地址。

 

2.     DHCP是用來分配IP地址的,因此必須使用靜態IP地址信息來配置DHCP服務器。須要在客戶端進行配置的惟一一個網絡參數是將客戶端設置爲從DHCP服務器接收IP地址信息。

 

3.     當DHCP客戶端計算機啓動時,TCP/IP軟件將被載入到內存中並開始執行相應的操做。然而,由於這是TCP/IP棧尚未IP地址,因此沒法直接發送或接收數據包。計算機只能發送和監聽廣播數據。這種經過廣播進行通訊的功能正是DHCP進行工做的基礎。從DHCP服務器中租用IP地址的過程須要4個步驟:                                                                                

 
 
 
做者:龍貓小爺 連接:https://www.jianshu.com/p/674fb7ec1e2c 來源:簡書 著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。
相關文章
相關標籤/搜索