-
網絡和協議
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中,這個通過系統的邏輯通道實現從網絡到應用程序的接口被稱為端口。


二、TCP/IP的工作方式
-
TCP/IP協議系統
1. TCP/IP協議系統必須要完成的任務:


2. TCP/IP模型的協議層:應用層-傳輸層-網際層-網絡訪問層(數據鏈路層-物理層)
3. 網絡訪問層:提供了與物理網絡連接的接口。針對傳輸介質設置數據的格式,根據硬件的物理地址實現數據的尋址,對數據在物理網絡中的傳遞提供錯誤控制。
4. 網際層:提供獨立於硬件的邏輯尋址,從而讓數據能夠在具有不同物理結構的子網之間傳遞。提供路由功能來降低流量,支持網間的數據傳遞。實現物理地址與邏輯地址的轉換。
5. 傳輸層:為網絡提供了流量控制、錯誤控制和確認服務。充當網絡應用程序的接口。
6. 應用層:為網絡排錯、文件傳輸、遠程控制和internet操作提供了應用程序。
-
TCP/IP和OSI模型
1. 開放系統互連模型——OSI

2.

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

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.



四、網際層
-
尋址與發送
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
規定首字節不能是127、0、255,主機各位不能同時為0和1

3. 網絡管理員可以把網絡划分為更小的次級網絡,這被稱為子網。划分子網的是指就是借用主機ID中的一些為,在網絡內創建額外的網絡。AB類地址會廣泛應用子網划分技術。
-
地址解析協議——ARP
1. ARP把IP地址映射為物理地址。主機必須知道目的網絡適配器的物理地址才能向它發送數據。
2. 網段上每台主機在內存中都保存着一個被稱為ARP表或ARP緩存的表格,其中包含了網段上其他主機的IP地址與物理地址的對應關系。當主機需要向網段上的其他主機發送數據時,它會查看ARP緩存來獲得目的的物理地址。ARP緩存是動態變化的,如果要接收數據的地址當前並不存在於ARP緩存中,主機就會發送一個名為ARP請求幀的廣播。

-
逆向地址解析協議——RARP:在知道物理地址而不知道IP地址時,應該使用RARP。
-
INTERNET控制消息協議——ICMP
1. 發送到遠程計算機的數據通常會經過一個或多個路由器,這些路由器在把數據傳輸到最終目的地的過程中可能發生多種問題。路由器利用ICMP協議把問題通知給源IP。ICMP還有用於調試和排錯的功能。
2.


五、子網划分和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路由域中路由表條目的數量。
六、傳輸層
-
傳輸層簡介
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返回確認信息,連接就被關閉了。



7. TCP如何保證可靠性:TCP的可靠性是通過順序編號和確認(ACK)來實現的。TCP在開始傳送一個段時,為准備重傳而首先將該段插入到發送隊列之中,同時啟動時鍾。其后,如果收到了接受端對該段的ACK信息,就將該段從隊列中刪去。如果在時鍾規定的時間內,ACK未返回,那么就從發送隊列中再次送出這個段。TCP在協議中就對數據可靠傳輸做了保障,握手與斷開都需要通訊雙方確認,數據傳輸也需要雙方確認成功,在協議中還規定了:分包、重組、重傳等規則;而UDP主要是面向不可靠連接的,不能保證數據正確到達目的地。
-
UDP:無連接傳輸協議
1. UDP實際上能夠執行基本的錯誤檢驗,因此,可以說UDP具有有限的錯誤檢驗功能。UDP數據報中包含一個校驗和,接收端計算機可以利用它來檢驗數據的完整性。
2. UDP的開銷沒有TCP大。
3. UDP不會重新傳輸丟失或損壞的數據報、重新排列混亂的接收數據、消除重復的數據報、確認數據報的接收、建立或是終止連接。它主要是在程序不必使用TCP連接開銷的情況下發送和接收數據報的一種方式。
七、應用層
-
TCP/IP應用層與OSI
1. TCP/IP應用層對應於OSI模型的應用層、表示層和會話層。
2. 應用層:OSI的應用層包含的組件為用戶應用程序提供服務並支持網絡訪問。
3. 表示層:表示層把數據轉化為平台無關的格式,並處理加密和數據壓縮。
4. 會話層:負責管理聯網計算機上應用程序之間的通信,提供了一些傳輸層不具備、與連接相關的功能,比如名稱識別和安全。
-
應用層的部分協議
-
API和應用層:應用編程接口(API)是預定義的編程組件的集合,應用程序可以利用它訪問操作環境的其他部分,也就是與操作系統進行通信。網絡協議棧就是API概念的典型應用,網絡API提供了程序與協議棧的接口,應用程序利用API的函數打開和關閉連接、從網絡讀取和寫入數據。
八、路由選擇
-
路由器的概念
1. 路由器是負責根據邏輯地址對通信流量進行過濾的設備。經典的網絡路由器工作於網際層,使用網際層報頭中的IP尋址信息。
2. 向Internet這樣的大型網絡具有很多路由器,提供了從源到目的節點的多條路徑。這些路由器必須獨立工作,但整個系統必須保證數據能夠准確高效地在網絡中傳輸。
3. 當路由器將數據從一個網絡傳輸到下一個網絡時,它會替換網絡訪問層報頭信息,因此路由器可以連接不同類型的網絡。很多路由器還維護關於最佳路徑的詳細信息,這是根據距離、帶寬和時間綜合考慮的。
4. 早期的路由器實際上就是具有兩塊或多塊網絡適配器的計算機(也被稱為多宿主計算機)。

-
路由選擇過程
1. 路由器全面功能:

2. 路由表和建立路由表的協議是路由器具有的兩個顯著特性。對於路由器的大多數討論都是關於建立路由表、匯集路由表的路由協議如何讓所有的路由器像一個整體一樣提供服務。
3. 靜態路由:要求網絡管理員手工輸入路由信息。
4. 動態路由:根據使用路由協議獲得的路由信息來動態建立路由表。
-
路由表的概念
1. 路由表和忘記曾其他路由元素的用途在於把數據傳遞到正確的本地網絡。當數據到達本地網絡之后,網絡訪問協議就會知道它的目的地。因此,路由表不需要存儲完整的IP地址,只需要列出網絡ID即可。
2.

-
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只能是力求尋找一條能夠到達目的網絡且比較好的路由(不能兜圈子),而並非要尋找一條最佳路由。
九、連網
-
撥號連接
1. 連接TCP/IP網絡的一種最常用的方式是通過電話線,而近幾年,向電纜調制解調器和DSL這樣的寬帶技術降低了撥號連接的重要性。調制解調器(modem)通過電話線提供網絡訪問,它的作用在於把來自計算機的數字傳輸轉化為能夠通過電話系統的端口進行傳輸的模擬信號,也把來自電話線的模擬信號轉化為計算機能夠理解的數字信號。
2. 電話線兩段的計算機不需要與其他計算機爭用傳輸介質,他們只需要在彼此之間共享介質就可以了。這種連接方式被稱為點到點連接。
3. 調制解調器協議:串行線路網際協議(SLIP)——基於TCP/IP的早期調制解調器協議,相對簡單,有很多局限性。點到點協議(PPP)——最初當前用於調制解調器連接的最流行協議,是對SLIP的細化,具有SLIP所不具備的很多重要特性。
-
電纜寬帶:電纜調制解調器直接連接到一條同軸電纜,后者被連接到有線電視服務網絡上。這個調制解調器通常具有一個以太網接口,可以連接到單台計算機或小型局域網中的交換機或路由器。電纜調制解調器實現數字信號與模擬信號的轉換,從而讓數據能夠通過電纜連接高效傳輸。
-
連接設備
1. 網橋:根據物理地址過濾和轉發數據包的連接設備,它工作與OSI模型的數據鏈路層。網橋監聽它所連接的每個網段,建立一個表來反應物理地址位於哪個網段。當數據在一個網段上傳輸時,網橋會查看數據的目的地址,與路由表進行比較。如果目的地址屬於發送數據的網段,網橋就忽略這個數據。如果目的地址在不同的網段,網橋就把數據轉發到適當的網段。如果目的地址不在路由表,網橋就會把數據轉發到除源網段之外的全部網段。
2. HUB(集線器):作為一個物理設備從一個端口接收數據,然后把數據重復到其余全部的端口。換句話說,全部計算機就好像是被一條連續線路連接在一起的。HUB不會過濾或路由任何數據,知識接收和重新發送信息。

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

十、名稱解析
-
使用主機文件進行名稱解析
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進行封裝數據包,輸入到網絡層。


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 幀發往此硬件地址。
十一、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個字節制定實際錯誤類型。
十二、配置
-
服務器提供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
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。