主頁 > 軟體設計 > 五萬字,快速讀完《圖解TCP/IP》核心內容!!!(建議收藏)

五萬字,快速讀完《圖解TCP/IP》核心內容!!!(建議收藏)

2021-10-25 10:31:53 軟體設計

目錄

1. 網路基礎知識

1.1 計算機網路出現的背景

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

1.3 協議

1.4 協議由誰規定

1.5 協議分層與OSI參考模型

1.6 OSI參考模型通訊處理舉例

1.7 傳輸方式的分類

1.8 地址

1.9 網路的構成要素

1.10 現代網路實態

2.TCP/IP基礎知識

2.1 TCP/IP出現的背景與歷史

2.2 TCP/IP的標準化

2.3 互聯網基礎知識

2.4 TCP/IP基礎模型

2.5 TCP/IP分層模型與通信實體

3. 資料鏈路

3.1 資料鏈路的作用

3.2 資料鏈路相關技術

3.3 以太網

3.4 無線通信

3.5 PPP

3.6 其他資料鏈路

3.7 公共網路

4.IP協議

4.1 IP即網路協議

4.2 IP基礎知識

4.3 IP地址的基礎知識

4.4 路由控制

4.5 IP分割與再構成處理

4.6 IPv6

4.7 IPv4 首部

4.8 IPv6 首部格式

5.IP協議相關技術

5.1 僅憑IP無法完成通信

5.2 DNS

5.3 APR

5.4 ICMP

5.5 DHCP

5.6 NAT

5.7 IP隧道

5.8 其他IP相關技術

6.TCP與UDP

6.1 傳輸層的作用

6.2 埠號

6.3 UDP

6.4 TCP

6.5 其他傳輸層協議

6.6 UDP首部的格式

6.7 TCP首部格式(強烈建議看看原文P222)

7.路由協議

7.1 路由控制的定義

7.2 路由控制范圍

7.3 路由演算法

7.4 RIP

7.5 OSPF

7.6 BGP

7.7 MPLS

8.應用協議

8.1 應用層協議概要

8.2 遠程登陸

8.3 檔案傳輸

?

8.4 電子郵件

8.5 WWW

8.6 網路管理

8.7 其他應用層協議

9.網路安全

9.1 TCP/IP與網路安全

9.2 網路安全構成要素

9.3 加密技識訓礎

9.4 安全協議

10.關于本博客


1. 網路基礎知識

1.1 計算機網路出現的背景

最早出現的計算機是美國軍方為了計算導彈落點而產生的,體積很大,很難普及,隨著技術的發展計算機越來越普及和多樣化,這時候就需要實作計算機的資訊交流,

起初計算機以獨立模式使用計算機,為了資訊交流,將一臺臺計算機連接在一起,形成一個計算機網路,人們便可以以網路互聯模式使用計算機,

計算機網路根據規模又分為廣域網(WAN,Wide Area Network)和局域網(LAN,Local Area Network),

局域網:一棟樓或大學校園中有限的,狹小的,區域內網路,

廣域網:跨接相距較遠的計算機或局域網的網路,

計算機網路好比一個人的神經系統,一個人身上的所有感覺都經神經傳遞到大腦,與之類似,世界各地的資訊也通過網路傳遞到每個人的計算機中,

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

20世紀50年代 批處理時代

為了讓更多的人使用計算機,出現了批處理系統,所謂批處理,是指事先將用戶程式和資料裝入卡帶或磁帶,并由計算機按照一定的順序讀取,使用戶所要執行的這些程式和資料能夠一并批量得到處理的方式,

這個時代的計算機主要用于大規模計算或處理,并不是普通人就能使用的工具,

20世紀60年代 分時系統時代

指多個終端與同一個計算機連接,允許多個用戶同時使用一臺計算機的系統,

當時計算機造價昂貴,分時系統的產生實作了“一人一機”的目的,讓用戶感覺好像“完全是自己在使用一臺計算機一樣,”這也體現了分時系統的獨占性,

這個時代,小型機也隨即產生,辦公場所和工廠也逐漸引入計算機,

20世紀70年代 計算機間通訊時代

這時計算機體積趨于小型化,為了提高效率,人們開始研究計算機之間的通信的技術,計算機與計算機之間由通訊線路連接,人們可以通過此技術讀取另一臺計算機中的資料,從而極大地縮短了傳送資料的時間,

20世紀80年代 計算機網路時代

到了80年代,一種能夠互聯多種計算機的網路隨之誕生,它能夠讓各式各樣的計算機相互連接,從大型的超級計算機到小型的個人電腦,

20世紀90年代 互聯網普及時代

這時,專注于資訊處理的公司和大學已為每一位員工或研究人員分配了一臺計算機,形成了“一人一機”的環境,但這種環境成本不菲,人們渴望連接不同廠商的計算機建立一個成本更低的網路環境,而連接異構型計算機的通信網路技術就是我們所看到的互聯網技術,

面臨互聯網的廣泛應用,各家廠商不僅力圖保證自家產品的互聯性,還著力于讓自己的網路技術不斷與互聯網技術兼容,

個人電腦在誕生之初可以說是一種單機模式的工具,而現在它則被更廣泛地應用于互聯網的訪問,而且,無論相距多遠,世界各地的人只要接入互聯網,就可以通過個人電腦實作即時溝通與交流,

2000年 以互聯網為中心的時代

互聯網的普及和發展對通訊領域產生了巨大的影響,許多技術都向互聯網靠攏,

2010年 無論何時何地一切皆TCP/IP的網路時代

從“單純建立連接”到“安全建立連接”,

互聯網是由許多獨立發展的網路通訊技術融合而成,使它們之間不斷融合并實作統一的正是TCP/IP技術,那什么是TCP/IP技術呢?

TCP/IP是通訊協議的統稱,下面我們來學習“協議”的概念,

1.3 協議

在計算機網路與資訊通信領域里,人們經常提及“協議”一詞,互聯網常用的具有代表性的協議有IP,TCP,HTTP等,

“計算機網路體系結構”將這些網路協議進行了系統的歸納,TCP/IP就是IP,TCP,HTTP等協議的集合,可用于互聯網和局域網,

簡單來說,協議就是計算機與計算機之間通過網路實作通信時實作達成的一種“約定”,這種“約定”使那些由不同廠商的設備,不同的CPU以及不同的作業系統組成的計算機之間,只要遵循相同的協議就能夠實作通信,

協議就好比是一種語言,兩人之間談話的協議(語言)不同,就無法將資料(所說的話)傳遞給對方,

計算機沒人智能,所以在設計計算機程式與硬體時,要充分考慮通訊程序中可能會遇到的各種例外以及對例外的處理,在實際遇到問題時,正在通訊的計算機之間也必須具備相應的設備和程式來應對例外,

分組交換是指將大資料分割為一個個的叫包(Packet)的較小單位進行傳輸的方法,這里所說的包,如同我們平常在郵局里見到的郵包,分組交換就是將大資料分裝為一個個這樣的郵包交給對方,

1.4 協議由誰規定

在計算機通信誕生之初,系統化和標準化并未得到重視,每家計算機廠商都出產各自的網路產品來實作計算機通信,對于協議的標準化,分層化等事宜沒有特別強烈的意識,

隨著計算機重要性的不斷提高,很多公司逐漸意識到兼容性的重要意義,人們開始著手研究使不同廠商生產的異構機型也能夠互相通信的技術,

為了實作協議的標準化,國際標準化組織(ISO)制定了一個OSI(開放式通信系統互聯參考模型),本文講解的TCP/IP協議作為互聯網上的一種標準,也作為行業標準,儼然已成為全世界所廣泛應用的通訊協議,

1.5 協議分層與OSI參考模型

OSI模型將通訊協議中必要的協議分為7層,通過這些分層,使得那些復雜的網路協議更加簡單化,

在分層中,每個分層都接收由它下一層所提供的特定服務,并且負責為自己的上一次提供特定的服務,上下層之間進行互動時所遵循的約定叫做“介面”,同一層之間的互動所遵循的約定叫做“協議”

為了更好的理解上圖,我們以電話聊天為例,下圖中A與C正在通過電話(通訊設備)用漢語(語言協議)聊天,

分層可以將每個分層獨立使用,即使系統中某些分層發生變化,也不會波及整個系統,通過分層可以細分通訊功能,

下面我們來認識OSI參考模型

OSI參考協議是一個“模型”,它也只是對各層的作用做了一系列粗略的界定,并沒有對協議和介面進行詳細的定義,對學習和設計協議只起到一個引導的作用,

各個分層的作用

應用層:為應用程式提供服務并規定應用層程式中通信相關的細節,包括檔案傳輸,電子郵件,遠程登錄(虛擬終端)等協議,

表示層:將應用處理的資訊轉換為適合網路傳輸的格式,或將來自下一層的資料轉按為上層能夠處理的格式,因此它主要負責資料格式的轉換,

具體來說,就是將設備固有的資料格式轉換為網路標準傳輸格式,不同設備對同一位元流解釋的結果可能會不同,因此,使它們保持一致是這一層的主要作用,

會話層:負責建立和斷開通信連接(資料流動的運輯通路),以及資料的分割等資料傳輸相關的管理,傳輸層:起著可靠傳輸的作用,只在通信雙方節點上進行處理,而無需在路由器上處理,

網路層:將資料傳輸到目標地址,目標地址可以是多個網路通過路由器連接而成的某一個地址,因此這一層主要負責尋址和路由選擇,

資料鏈路層:負責物理層面上互連的、節點之間的通信傳輸,例如與1個以太網相連的2個節點之間的通信,將0、1序列劃分為具有意義的資料楨傳送給對端(數捆楨的生成與接收),

物理層:負責0、1位元流(0、1序列)與電壓的高低、光的閃滅之間的互換,

1.6 OSI參考模型通訊處理舉例

(這一小節博主只介紹了關鍵流程,強烈建議下來有空看看書,對理解很有幫助)

下面舉例說明7層網路模型的功能,假設使用主機A的用戶A要給使用主機B的用戶B發來一封電子郵件,

發送端從上到下按照順序傳輸資料,接收端由下至上按照順序傳輸順序,

在每個分層上,在處理由上一層傳過來的資料時可以附上當前分層協議所必須的“首部”資訊,然后接收端對收到的資料進行資料“首部”與“內容”的分離,再轉發給上一分層,最終將發送端的資料恢復原狀,

1.7 傳輸方式的分類

網路與通信中可以根據其資料發送方法進行多種分類,下面我們來介紹幾種,

通過網路發送資料,大致可分為面向有連接與面向無連接兩種型別,

面向有連接型中,在發送資料之前,需要在收發主機之前連接一條通信線路,面向有連接型就好像人平常打電話,輸入完對方電話號碼播出之后,只有對方端拿起電話才是真正通話,

面向無連接型則不要求建立和斷開連接,發送端可于任何時間發送資料,接收端則永遠不知道自己會在何時從哪里接收資料,因此,接收端需要時常確認是否收到了資料,就好像郵差一樣,負責處理郵件業務的營業員,不需要確認收件人的詳細地址是否真的存在,也不需要確認收件人是否真的能收到包裹,只需要發件人有一個寄件地址就可以辦理郵寄包裹的業務,

目前,網路通信方式大致分為兩種——電路交換分組交換,(這里博主本想簡單概括,但還是需要大家結合圖片耐心細讀~

前者多用于過去的電話網,后者是一種較新的通信方式,TCP/IP協議就是采用了分組交換技術,

在電路交換中,交換機主要負責資料的中轉處理,計算機首先被連接到交換機上,而交換機與交換機之間則有眾多通信線路再繼續連接,因此計算機之間在發送資料時,需要通過交換機與目標主機建立通信電路,我們將連接電路稱為建立連接,建立好連接后,用戶可以一直使用這條電路,直到該連接被斷開為止,

如果某條電路只是用來連接兩臺計算機的通信線路,就意味著只需在這兩臺計算機之間實作通信,因此這兩臺計算機是可以獨占線路進行資料傳輸的,但是,如果一條電路上連接了多臺計算機,而這些計算機之間需要相互傳遞資料,就會出現新的問題,鑒于一臺計算機在收發資訊時會獨占整個電路,其他計算機只能等待這臺計算機處理結束以后才有機會使用這條線路收發資料,并且在此程序中,誰也無法預測某一臺計算機的資料傳輸從何時開始又在何時結束,如果并發用戶數超過交換機之間的通信線路數,就意味著通信根本無法實作,

為此,人們想出了一個新的方法,即讓連接到通信電路的計算機將所要發送的資料分成多個資料包,按照一定的順序排列之后分別發送,這就是分組交換,有了分組交換,資料被紙分后,所有的計算機就可以一齊收發資料,這樣也就提高了通信線路的利用率,由于在分組的程序中,已經在每個分組的首部寫人了發送端和接收端的地址,所以即使同一條線路同時為多個用戶提供服務,也可以明確區分每個分組資料發往的目的地,以及它是與哪臺計算機進行的通信,

圖為分組交換

分組交換中,由分組交換機(路由器)連接通信線路,分組交換的大致處理程序是:發送端計算機將資料分組發送給路由器,路由器收到這些分組資料以后,快取到自己的緩沖區,然后再轉發給目標計算機,因此,分組交換也有另一個名稱:蓄積交換,路由器接收到資料以后會按照順序快取到相應的佇列當中,再以先進先出的順序將它們逐一發送出去”,在分組交換中,計算機與路由器之間以及路由器與路由器之間通常只有一條通信線路,因此,這條線路其實是一條共享線路,

電路交換中,計算機之間的傳輸速度不變,然而在分組交換中,通信線路的速度可能會有所不同,根據網路擁堵的情況,資料達到目標地址的時間有長有短,另外,路由器的快取飽和或溢位時,甚至可能會發生分組資料丟失,無法發送到對端的情況,

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

分為單播,廣播,多播,任播

單播:比如早先的固定電話,1對1通信

廣播:典型例子就是電視播放,將電視信號一齊發送非非特定的多個接受物件,

多播:和廣播類似,不同的是要限定某一組主機為接收端,

任播:在特定的多臺主機中選出一臺作為接受端,

1.8 地址

通訊程序中,發送端和接收端可以被視為通信主體,它們都能由一個所謂的“地址”的資訊標識出來,當人們使用電話時,電話號碼就相當于“地址”,

在實際的網路通信中,每一層的協議所使用的地址都不盡相同,例如在TCP/IP通信中使用MAC地址,IP地址,埠號等資訊作為OSI模型不同層的地址標識,

一個地址必須明確地表示一個主體物件,在同一個通信網路中不允許由兩個相同地址的通信主體存在,這就是地址的唯一性,

在1:1的單播中可以理解,那如何理解多播,廣播,任播呢?如何做到通過一個地址訪問多個設備?

這種情況下,接收端設備可能不止一個,為此,可以對這些由多個設備組成的一組通信賦予同一個具有唯一特性的地址,從而接收物件,就好比

當地址總數越來越多時,如何高效的從中找出通信的目標地址成為一個重要的問題,為此人們發現地址除了具有唯一性還需要具有層次性,

其實電話和信件通信中就有了地址分層的概念,電話地址包含國家區號和國內區號,通信地址包含國名,省名,市名和區名等,正是有了這些層次分類才能更加快速的定位某一個地址,

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

那IP地址時如何實作分層的呢?(原文P36可加強理解

一方面,IP地址由網路號和主機號兩部分組成,即使IP地址不同,若主機號不同,網路號相同,說明它們處于同一個網段,通常,處于同一網段的主機也都屬于同一個部門或集團組織,另一方面,網路號相同的主機在組織結構,供應商型別和地域分布都比較集中,也為IP尋址帶來了極大的方便,這也是為什么說IP地址具有層次性的原因,

1.9 網路的構成要素

搭建一套網路環境要涉及各種各樣的電纜和網路設備,在此僅介紹連接計算機與計算機的硬體設備,

問:計算機網路是指計算機與計算機相連而組成的網路,那么現實中計算機之間又是怎樣連接的呢?

答:計算機之間通過電纜相互連接,電纜有很多種,雙絞線電纜,光纖電纜,同軸電纜,串行電纜等,根據資料鏈路(相互直連的設備之間進行通信所涉及的協議及其網路,為此,有眾多介質與之對應)的不同選用的電纜型別也不盡相同,而媒介本身也可以被劃分為電波,微波等不同型別的電磁波,

現在我們來認識一硬體,網卡,任何一臺計算機連接網路時,必須使用網卡(全稱是網路介面卡),網路介面卡(NIC)有時也被叫做網路配接器,網卡,LAN卡,

現在許多設備都已內置網卡,如果沒有配置網卡,至少得外接一個拓展槽以便插入網卡,

接下來我們來認識中繼器———是OSI模型的第一層,物理層面延長網路的設備,由電纜傳來的電信號或光信號經由中繼器的波形調整和放大再傳給另一個電纜,

一般而言,中繼器兩端連接的是相同的通信媒介,但有的中繼器也可以完成不同媒介之間的傳遞作業,中繼器的網路距離并非無限延長,例如一個10Mbps的以太網最多可以由4個中繼器分段連接,而一個100Mbps的以太網則最多只能連接兩個中繼器,

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

網橋/2層交換機

網橋在OSI模型的第2層———資料鏈路層面上連接兩個網路的設備,它能夠識別資料鏈路層的資料幀(與分組資料意思大致相同,但是在資料鏈路層習慣稱為幀),并將這些資料幀臨時儲存于記憶體,再重新生成信號作為一個全新的幀轉發給另一個網段,

資料幀中有一個資料位叫做FCS,用以檢測資料是否正確送達目的地,用以檢測資料是否送達目的地,網橋通過檢測這個值,將那些損壞的值丟棄,此外,網橋還能通過地址自學機制和過濾功能控制網路流量,

有些網橋能夠判斷是否將資料報文轉發給相鄰的網段,這種網橋稱為自學式網橋,這類網橋會記住曾經通過自己轉發的所有的資料幀的MAC地址,并保存到自己的記憶體表里,來判斷哪個網段中包含持有哪類MAC地址的設備,(很聰明有沒有?

以太網中使用的交換集線器現在基本也屬于網橋的一種,交換集線器中連接電纜的每個埠都能提供類似網橋的功能,

路由器/3層交換機

路由器是在OSI模型的第3層———網路層面連接兩個網路,并對分組報文進行轉發的設備,網橋是根據物理地址(MAC地址)進行處理,而路由器/3層交換機則是根據IP地址進行處理的,路由器可以連接到不同的資料鏈路,

4·~7層交換機

4·~7層交換機負責處理OSI模型中從傳輸層到資料層的資料,如果有TCP/IP分層模型,4~7層交換機就是以TCP等協議的傳輸層機器上面的應用層為基礎,分析收發資料,并對其進行特定的處理,

我們來舉例一種4~7層交換機模型,對于一個并發訪問量非常大的企業級Web站點,使用一臺服務器不足以滿足前端的訪問需求,需要架設多臺服務器來分擔,為了能通過同一個URL將前端訪問分發到后臺多個服務器上,可以在這些服務器的前端加一個負載均衡器,這個負責均衡器就是4~7層交換機的一種,

網關

網關是OSI模型中負責從傳輸層到應用層的資料進行轉換和轉發的設備,網關不僅轉發資料還對資料進行轉換,它通常會使用一個表示層或應用層網關,在兩個不能進行直接通信的協議之間通信,最終實作兩者之間的通信,

一個典型的例子就是互聯網郵件和手機郵件之間的轉換服務,為什么連到互聯網的電腦與手機之間能夠互發郵件呢?

互聯網和手機設定了一道網關,網關負責讀取完各種不同的協議后,對它們逐一進行合理的轉換,再將相應的資料轉發出去,這樣一來不用電子郵件的協議也可以互相發郵件,

1.10 現代網路實態

我們以交通道路為例說明現實當中的網路配置,

高速公路的“骨干”或“核心”相當于計算機網路的中心,人們 通常選用高速路由器相互連接使之快速傳遞大量資料,

網路中相應于高速公路出入口的部分被稱為“邊緣網路”,常用的設備有多功能路由器和3層交換機,

高速公路出入口連接出國道,省道,從而可以直接通往市區街道對應計算機網路中連接“邊緣網路”的部分叫做“接入層”或“匯聚層”,

問:那實際的互聯網通信是怎么構成的呢?

答:人們在連接互聯網時,一般會選用互聯網接入服務,聯網之后,匯集到無線局域網路由器和最近交換器和最近交換機的通信會再次被連接到前面所提到的“接入層”,甚至還有可能通過“邊緣網路”或“主干網”實作與目標地址間的通信,

手機開機就會和最近的基站發生無線通信,基站上有手機基站天線,基站本身也相當于網路的“接入層”,基站收集發通信請求被匯集到控制中心(“邊緣網路”),之后會再被接入到互聯通信控制中心的主干網,

接下來我們從資訊發布者的角度來看網路,網路資訊傳播的以往的主流做法是個人或企業自己制作網站(主頁)部署到服務器中將所要發布的資訊公之于眾,現在,通過博客,托管主機的方式被更多人選擇,

2.TCP/IP基礎知識

2.1 TCP/IP出現的背景與歷史

目前,計算機網路領域中,TCP/IP協議可謂名氣最大,使用范圍最廣,那TCP/IP協議是如何在短時間內獲得如此廣泛普及的呢?

還記得我們剛開始說的嗎?計算機通信技術最早是美國軍方為了計算導彈落點而產生的一項技術,在20世紀60年代,以美國國防局為中心的組織展開了類似的研究,

美國國防局希望通信時即使遭到了敵方的破壞,也可以通過迂回的方式實作通信,使通信不間斷,

分組交換技術不僅能實作軍工防衛的應用,還可以使多個用戶同一時間共享同一條通信線路,降低了搭建線路的成本,

1969年,為驗證分組交換技術的實用性,研究人員搭建了一套網路在研究所和高校之間,這套網路被稱為ARPANET,也是全球互聯網的鼻祖,這也說明基于分組交換技術的通信方法是可行的,

20世紀70年代,ARPANET的一個研究機構研發出了TCP/IP,直到1982年,TCP/IP才被最終定下來,于1983年成為ARPANET網路唯一指定的協議,

1980年,ARPANET中的很多大學與研究機構開始使用一種叫做BSD UNIX的作業系統, 由于BSD UNIX實作了TCP/IP協議,所以很快在1983年,TCP/IP被ARPANET正式采用,

由于當時局域網,UNIX作業站,TCP/IP構建網路盛行,那些大學和研究機構也逐漸開始將ARPANET連接到了NSFnet網路,此后,基于TCP/IP而形成的世界性范圍的網路——互聯網誕生了,以連接UNIX主機的形式連接各個終端節點,這一主要方式使互聯網得到了迅速的普及,

互聯網最初是用于實驗和研究,到了1990逐漸被引入公司企業和一般家庭,也出現了專門提供互聯網接入服務的公司(ISP),這些都使互聯網得到了更為廣泛的普及,

連接到互聯網可以以www獲取世界各處的資訊,可以通過電子郵箱進行交流,還可以向全世界發布自己的資訊,互聯網使人們的生活變得更加多姿多彩,因此商用互聯網得到廣泛的普及,

2.2 TCP/IP的標準化

為什么OSI協議并沒有得到普及,真正被廣泛使用的是TCP/IP協議?究其原因,是由TCP/IP的標準化所致,

從字面意思上講,有人認為TCP/IP是指TCP與IP兩種協議,實際生活中有時也確實是指這兩種協議,但很多時候,它只是利用IP通信時所必要用到的協議群的統稱,

問:TCP/IP的標準化和其他的有什么不同呢?

答:在于它的開放性和實用性,

開放性:首先,TCP/IP協議是由IETF討論制定的,而IETF本身是一個允許任何人加入進行討論的組織,其次,TCP/IP標準化程序中的首要任務是實作真正能夠通信的技術,難怪有人打趣說“TCP/IP簡直就是先開發程式,后寫規格標準,”

實用性:標準化的協議能否被實際采用可行性較強,

那些需要標準化的協議,被人們列入RFC檔案并在互聯網公布,RFC不僅記錄了協議規范內容,還包含了協議的實作和運用的相關資訊,以及實驗方面的資訊,

RFC檔案通過編號組織每個協議的標準化請求,RFC的編碼是既定的,一旦成為某一RFC的內容,就不能再對其進行任意修改,不論擴展還是從新發行都需要一個新的RFC檔案,重新發行時舊的檔案作廢,新的檔案會明確規定擴展了那個已有的檔案以及要作廢哪個檔案,

這時,就有人覺得每當修改時都要產生新的編號太麻煩,為此,人們采用STD方式管理編號,STD用來記載哪個編號制定哪個協議,因此,同一個協議的規范內容即便發生了變化也不會導致STD編號發生變化,今后協議內容更改不會改變STD編號,但有可能導致某個STD下的RFC編號視情況有所增減,

與STD相似,有FYI也開始標注編號組織,為了方便人們檢索,在每個編號里覆寫了所涉及的RFC編號,即使更新內容,編號也不會發生變化,

問:那標準化流程是怎樣的呢?(原書P58,這里建議看看

答:TCP/IP的一個協議的標準化一定要經過IETF討論,雖然一年只組織三次會議,但是日常都會通過郵件組的形式進行討論,

流程分為互聯網草稿階段,提議標準階段,草稿標準階段,標準階段四個階段,

2.3 互聯網基礎知識

說到“互聯網”家喻戶曉,但互聯網到底是什么呢?

internet指的是多個網路連接使其構成一個更大的網路,所以internet一詞本意為網際網,現在“互聯網”已經是一個專屬名詞了,對應的英文單詞是“The Internet”,

TCP/IP是互聯網的協議,

互聯網一詞原意是網際網,連接一個又一個網路,那么連接全世界的互聯網也是如此,較小范圍的網路之間相連組成機構內部的網路,機構內部的網路之間相連再形成區域網路,而各個區域網路之間再互聯,最終就形成了連接全世界的互聯網,因此,互聯網是一個有層次的網路,

互聯網中的每個網路都是由骨干網和末端網組成的,每個網路之間通過網路控制中心(NOC)相連,如果網路的運營商不同,它的網路連接方式和使用方法也會不同,連接這種網路需要有IX的支持,總之,互聯網就是眾多異構的網路通過IX互連的一個巨型網路,

連接互聯網需要向ISP或區域網提出申請,公司企業或家庭申請入網只要聯系ISP簽約即可,(或許就等于找人接寬帶吧...

2.4 TCP/IP基礎模型

我們聊了太多TCP/IP,那它究竟是什么呢?本節對其做一個簡單的介紹,

TCP/IP和OSI參考模型

兩者相比,OSI模型更注重“通信協議必要的功能是什么”,而TCP/IP則更強調“在計算機上實作協議應該開發那種程式”,

硬體(物理層)

TCP/IP的最底層是負責資料傳輸的硬體,相當于以太網或電話線路等物理層的設備,

網路介面層(資料鏈路層)(這里的網路介面層對應圖的網卡層)

網路介面層是利用以太網中的資料鏈路進行通信,因此屬于介面層,也就是說,把它當作讓NIC起作用的“驅動程式”也無妨,計算機添加外設或拓展卡需要相應驅動的支持,因此,人們常常還需要在作業系統的基礎上安裝一些驅動軟體以便使用這些附加硬體,

互聯網層(網路層)

互聯網層使用IP協議,相當于OSI模型中的第3層網路層,IP協議基于IP地址轉發分包資料,

TCP/IP分層中的互聯網層與傳輸層通常由作業系統提供,尤其是路由器,它必須得實作通過互聯網層轉發分組資料的功能,此外,連接互聯網的所有主機和路由器都必須實作IP的功能,其他連接互聯網的網路設備(如網橋,中繼器或集線器)就沒必要一定實作IP或TCP的功能,

IP

IP是跨越網路傳輸資料包,使整個互聯網都能收到資料的協議,IP協議使資料能夠發送到地球的另一端,這期間它使用IP地址作為主機的標識,雖然IP也是分組交換的一種協議,但是他不具有重發機制,因此,屬于非可靠傳輸協議,

ICMP

IP資料包在發送途中一旦發生例外導致無法到達對端目標地址時,需要給發送端一個發生例外的通知,ICMP就是為這一功能而制定的,它有時也被用來診斷網路的健康情況,

APR

從分組資料包的IP地址中決議出物理地址(MAC地址)的一種協議,

傳輸層

TCP/IP的傳輸層有兩個具有代表性的協議,該層的功能本身與OSI參考模型的傳輸層類似,

傳輸層最主要的功能就是能夠讓應用程式之間實作通信,計算機內部通常同一時間運行著多個程式,為此,必須分清是哪些程式與哪些程式在進行通信,識別這些應用程式的是埠號,

TCP

TCP是一種面向有連接的傳輸層協議,它可以保證兩端通信主機之間的通信可達, TCP 能夠正確處理在傳輸程序中丟包、傳輸順序亂掉等例外情況,此外, TCP 還能夠有效利用帶寬,緩解網路擁堵,然而,為了建立與斷開連接,有時它需要至少7次的發包收包,導致網路流量的浪費,此外,為了提高網路的利用率, TCP 協議中定義了各種各樣復雜的規范,因此不利于視頻會議(音頻、視頻的資料量既定)等場合使用,

UDP

UDP和TCP不同,它是一種面向無連接的傳輸層協議,因為面向無連接的特性,UDP不會關注對端是否真的收到了資料,可以在應用程式中實作此功能,UDP常用于分組資料較少或多播,廣播通信以及視頻通信等多媒體領域,

應用層(會話層以上的分層)

TCP/IP的分層中,將OSI模型中會話層,表示層和應用層的功能都集中到了應用程式來實作,

TCP/IP應用的架構絕大多數屬于客戶端/服務端模型,提供服務的程式叫服務端,接收服務的程式叫客戶端,在這種通信模式中,提供服務的程式會預先被部署到主機上,等待接收任何時刻客戶可能發送的要求,客戶端可以隨時發送請求給服務端,有時服務端可能會有處理例外,超出負載等情況,這時客戶可以在等待片刻后重發一次請求,

WWW

WWW(萬維網)可以說是互聯網能夠如此普及的一個重要原動力,用戶在一種叫做游覽器的軟體上借助滑鼠和鍵盤就可以輕輕松松地在網上沖浪(從今天來看,這個解釋真的感覺好古老~),
游覽器和服務端通信使用的協議是HTTP,所傳輸資料的主要格式是HTML,WWW中的HTTP屬于OSI應用層的協議,而HTML屬于表示層的協議,

電子郵件

電子郵件就是在網路上發送信件,發送電子郵件用到的協議叫做SMTP,最初,人們只能發送文本格式的電子郵件,但現在,電子郵件格式由MIME協議拓展以后,就可以發送聲音,影像等各式各樣的資訊,甚至修改郵件文字的大小,顏色,

檔案傳輸(FTD)

檔案傳輸是指將保存在其他計算機硬碟上的檔案轉移到本地的硬碟上,或將本地硬碟的檔案傳送到其他機器硬碟上的意思,該程序使用的協議叫做FTP,FTP很早就已經投入使用,傳輸程序中可以選擇用二進制還是文本方式,

在FTP中進行檔案傳輸時會建立兩個TCP連接,分別是發出傳輸請求時所要用到的控制連接與實際傳輸資料時所要用到的連接,(屬于OSI會話層的功能)

遠程登陸(TELNET與SSH)

遠程登陸是指登錄到遠程的計算機上,使那臺計算機上的程式得以運行的一種功能,TCP/IP網路中遠程登陸常用TELNET與SSH兩種協議,

網路管理(SNMP)

TCP/IP中進行網路管理時,采用SNMP協議,使用SNMP管理的主機,網橋,路由器等稱作SNMP代理,而進行管理的那一段叫做管理器,SNMP正是這個管理器和代理所要用的協議,

在 SNMP 的代理端,保存著網路介面的資訊、通信資料量、例外資料量以及 設備溫度等資訊,這些資訊可以通過 MIB ( Management Information Base )訪問,因此,在 TCP / IP 的網路管理中, SNMP 屬于應用協議, MIB 屬于表示層協議,

一個網路范圍越大,結構越復雜,就越需要對其進行有效的管理,而 SNMF 可以讓管理員及時檢查網路擁堵情況,及早發現故障,也可以為以后擴大網路收集必要的資訊,

2.5 TCP/IP分層模型與通信實體

TCP/IP是如何在媒介上傳輸的呢?本節介紹使用TCP/IP時,從應用層到物理媒介為止資料處理的流程,

資料包首部

每個分層中,都會對所發送的資料附加一個首部,包含了該層必要的資訊,如發送的目標地址以及協議相關資訊,通常,為協議提供的資訊是包首部,所要發送的內容是資料

論包、幀、資料報、段、訊息

以上五個述語都用來表述資料的單位,大致區分如下:

可以說是全能性述語,用于表示資料鏈路層中包的單位,而資料報是 I 和 UDP 等網絡層以上的分層中包的單位,則表示 TCP 資料流中的資訊,最后,訊息是指應用協議中資料的單位,

:如何實作資料包的發送呢?

答:

經過資料鏈路的包

分組資料包經過以太網的資料鏈路時的大致流程如下圖

每個包首部中至少都會包含兩個資訊:一個是發送端和接收端的地址,另一個是上一層的協議型別,

經過每個協議分層時,都必須有識別包發送端和接收端的資訊,以太網會用MAC地址,IP會用IP地址,而TCP/UDP會用埠號作為識別兩端主機的地址,

此外,每個分層的包首部中還包含一個識別位,它是用來標識上一層協議的種類資訊,例如以太網的包首部中的以太網型別,IP中的協議型別以及TCP/IP中兩個埠的埠號等都起著標識協議型別的作用,

3. 資料鏈路

3.1 資料鏈路的作用

資料鏈路,指的是OSI參考模型中的資料鏈路層,有時也指以太網,無線局域網等通信手段,

雖然TCP/IP對資料鏈路未作定義,但資料鏈路對深入理解TCP/IP有著至關重要的作用,

資料鏈路層處理的資料也不是單純的0,1序列,該層把他們集合為一個叫做“幀“的塊,然后在進行傳輸,

本章介紹資料鏈路層的相關技術,包括MAC尋址,介質共享,非公共網路,分組交換,環路檢測,VLAN等,也會涉及作為傳輸方式的資料鏈路,如以太網,WLAN,PPP等概念,資料鏈路也可被視為網路傳輸中的最小單位,

在以太網與 FDDI ( Fiber Distributed Data Interface ,光纖分布式資料介面)的規范中,不僅包含0SI參考模型的第2層資料鏈路層,也規定了第1層物理層的規格,在 ATM ( Asynchronous Transfer Mode ,異步傳輸方式)的規范中,還包含了第3層網路層的一部分功能,

資料鏈路層的段是指一個被分割的網路,根據使用者的不同,含義也不禁相同,

網路拓樸

網路的連接和構成的形態稱為網路拓撲,網路拓撲包括總線型,環型,星型,網狀型等,拓撲一詞不僅適用于直觀可見的配線方式上,也用于邏輯上網路的組成結構,兩者有時可能不一致,

3.2 資料鏈路相關技術

MAC地址用于識別資料鏈路中互聯的節點,

MAC地址長48位元,在使用網卡(NIC)的情況下,MAC地址一般會被燒入到ROM中,因此,任何一個網卡的MAC地址都是唯一的,

關于廠商識別碼,每個NIC廠商都有特定唯一的識別數字,

在全世界,MAC地址也并不總是唯一的,實際上,即使MAC地址相同,只要不是同屬同一個資料鏈路就不會出現問題,

從通信介質的使用方法來看,網路可分為共享介質層非共享介質層

共享介質層是指多個設備共享一個通信介質的一種網路(以太網,FDDI),設備之間使用同一個載波資訊進行發送與接收,并有必要對介質進行控制訪問,

有兩種介質訪問控制方式:一種是爭用方式,另一種是令牌傳遞方式

爭用方式

爭用方式是指爭奪資料傳輸的權力,也叫CSMA(載波監聽多路訪問),這種方式令網路的各個站(節點)采用先到先得的方式占用信道發送資料,如多個站同時發送幀,則會產生沖突現象,

在一部分以太網當中,采用了改良CSMA的另一種方式——CSDA/CD方式,要求每個站提前檢查沖突,一旦發生沖突,則盡早釋放信道,作業原理如下:

如果載波信道上沒有資料流動,則任何站都可以發送資料,

檢查是否會發生沖突,一且發生沖突時,放棄發送資料,同時立即釋放載波信道,

放棄發送以后,隨機延時一段時間,再重新爭用介質,重新發送幀,

令牌傳遞方式

令牌傳遞方式是沿著令障環發送一種叫做“令牌”的特殊報文,是控制傳輸的一種方式,只有獲得令牌的站オ能發送資料,這種方式有兩個特點:一是不全有沖突,二是每個站都有通過平等回圈獲得令牌的機會,因此,即使網路擁堵也不會導致性能下降,

非共享介質網路

非共享介質網路不共享介質,是對介質采用專用的一種傳輸控制方式,在這種方式下,每個站直連交換機,由交換機負責轉發資料幀,

根據MAC地址轉發 (有點多,得細看一下

在使用同軸電纜的以太網(10BASE5、10BASE2)等介質共享網路中,同一時間只能有一臺主機發送資料,當連網的主機數量增加時,通信性能會明顯下降,若將集線器或集中器等設備以星型連接,就出現了一款新的網路設備一交換集線器,這是一種將非介質共享型網路中所使用的交換機用在以太網中的技術,交換集線器也叫做以太網交換機,

以太網交換機就是持有多個埠”的網橋,它們根據數據鏈路層中每個幀的目標 MAC 地址,決定從哪個網路介面發送資料,這時所參考的、用以記錄發送介面的就叫做轉發表( Forwarding Table ),

這種轉發表的內容不需要使用者在每個終端或交換機上手工設定,而是可以自動生成,資料鏈路層的每個通過點在接到包時,會從中將源 MAC 地址以及曾經接收該地址發送的資料包的介面作為對應關系記錄到轉發表中,以某個 MAC 地址作為源地址的包由某一介面接收,實質可以理解該 MAC 地址就是該介面的目標,因此也可以說,以該 MAC 地址作為目標地址的包,經由該介面送出即可,這一程序也叫自學程序,

交換機轉發方法有存盤轉發直通轉發,前者可以表面轉發錯誤幀,后者延遲較短,

環路檢測技術

通過網橋連接網路時,一且出現環路該如何處理?這與網路的拓撲結構和所使用的網橋種類有直接關系,最壞的情況下,資料幀會在環路中被一而再再而三地持續轉發,而一且這種資料幀越積越多將會導致網路癱瘓,

解決網路中的環狀問題,具體有生成樹和源路由兩種方式,只要搭建合適的網橋,在發生某一處路由故障時繞行,可以提高容災能力,

生成樹方式

每個網橋必須在每1~10秒內相互交換BPDU包,從而判斷哪些埠使用哪些不使用,以便消除環路,一旦發生故障就會自動切換通信線路,利用那些沒有被使用的埠繼續進行傳輸,

以某一個埠為構造樹的根,并對每個埠設定權重,指定優先使用哪些埠以及發生問題時該使用那些埠,

生成樹法其實與計算機和路由器的功能沒有關系,但是只要有生成樹的功能就足以消除環路,

但這種生成樹有一個弊端,就是在發生故障切換網路時需要幾十秒的時間,為了解決這一問題,有RSTP的方法,該方法可以將時間縮短到幾秒之內,

源路由法

源路由法最早由IBM提出,以解決令牌環網路問題,該辦法可以判斷發送資料的源地址是通過哪個網橋實作傳輸的,并將幀寫入RIF,網橋則根據這個RIF資訊發送幀給目標地址,在這種機制中發送端本身必須具備源路由的功能,

VLAN

進行網路管理的時候,時常會遇到分散網路負載、變換部署網路設備的位置等情況,而有時管理員在做這些操作時,不得不修改網路的拓撲結構,這也就意味著必須進行硬體線路的改造,然而,如果采用帶有 VLAN 技術的網橋,就不用實際修改網路布線,只需修改網路的結構即可,
問:那么VLAN究竟是什么?

答:下圖交換器根據埠區分了多個網段,從而區分了廣播資料的范圍,減少了網路負載并提高了網路的安全性,(圖為簡單的VLAN

對這種VLAN進行了拓展,又定義了TAG VLAN,該標準允許包含跨越異構交換機的網段,TAG VLAN中對每個網段都用一個VLAN ID的標簽進行唯一標識,在交換機傳輸幀時,在以太網首部加入這個VID標簽,根據這個值決定將資料幀發送給哪個網段,

盡管通過VLAN技術的可以實作不修改布線,只實作網段即可,但有時物理結構與邏輯網路結構也可能會出現不一致的情況,不宜管理,為此應加強對網段構成及網路運行等的管理,

3.3 以太網

資料鏈路層最著名,廣泛的莫過于以太網,普及的原因是規范簡單,易于實作且成本較為低廉,

以太網的連接形式

在以太網普及之初,一般采用多臺終端使用同一根同軸電纜的共享介質型連接方式,

現在,隨著互聯設備的處理能力以及傳輸速度的提高,一般都采用終端與交換機之間獨占電纜的方式實作以太網通信,

以太網的分類

以太網因通信電纜的不同及通信速度差異,衍生出了眾多不同的以太網型別,

以太網幀格式

以太網幀前端有一個叫做前端碼的部分,它由0,1數字交替組合而成,表示一個以太網幀的開始,也是對端網卡能夠確保與其同步的標志,前端碼末尾是一個叫SFD的域,它的值是“11”,在這個域后就是以太網幀的本體,前端碼與STD合起來占8個位元組,

以太網幀本體的前端就是以太網的首部,它總共占14個位元組,分別是6個位元組的目標MAC地址,6個位元組的源MAC地址以及2個位元組的上層協議型別,

緊隨幀頭后面的是資料,一個資料幀所能容納的最大資料范圍是46~1500個位元組,幀尾是一個叫做 FCS ( Frame Check Sequence ,幀檢驗序列)的4個位元組,

在目標 MAC 地址中存放了目標作業站的物理地址,源 MAC 地址中則存放構造以太網幀的發送端作業站的物理地址,

型別通常跟資料一起傳送,它包含用以標識協議型別的編號,即表明以太網的再上一層網路協議的型別,在這個欄位的后面,則是該型別所標識的協議首部及其資料,

幀尾最后出現的是FCS,用它可以檢測幀是否有所損壞,出現錯誤幀丟棄,

3.4 無線通信

無線通信通過使用電磁波,紅外線,激光等方式進行傳播資料,

無線通信的種類

無線通信可根據距離分為以下種類,

這里省略了一些相關協議,感興趣可看P96

使用無線LAN的注意事項

無線LAN可以自由移動,通過無線電波實作較廣的范圍通信,這就意味著通信范圍內任何人都可以使用該無線LAN,因此會有被竊聽或被篡改的危險,它還可能收到其他同頻道設備(微波爐)的干擾,

藍牙

使用2.4GHz頻率無線電波的一種標準,資料傳輸速率在V2中能達到3Mbps,通信距離根據無線電波的信號的強弱,有1m,10m,100m三種型別,通信終端設備最多允許8臺設備,

WIMAX

使用微波在公司或家庭實作無線通信的一種方式,WIMAX屬于無線MAN,支持城域網范圍內的無線通信,

ZigBee

主要用于家電的遠程控制,是一種短距離,低功耗的無線通信技術,

3.5 PPP

PPP是點對點,即1對1的協議,PPP相當于OSI模型第二層的資料鏈路層,

LCP與NCP

在開始進行資料傳輸前,要先建立一個PPP級連接,之后就可以進行身份認證,壓縮和加密,

PPP的主要功能中包括兩個協議,一個是不依賴上層的LCP協議,另一個是依賴上層的NCP協議,如果上層是IP,此時的NCP也叫IPCP,

LCP 主要負責建立和斷開連接、設定最大接收單元( MRU , Maximum Receive Unit )、設定驗證協議( PAP 或 CHAP )以及設定是否進行通信質量的監控,而 IPCP 則負責 I 地址設定以及是否進行 TCP / IP 首部壓縮等設備 ,

PPP連接時,通常需要進行用戶名密碼的驗證,并對兩端進行雙方向的驗證,驗證協議有兩種,分別是PAP和CHAP

PAP 是 PPP 連接建立時,通過兩次握手進行用戶名和密碼驗證,其中密碼以明文方式傳輸,因此一般用于安全要求井不很高的環境,否則會有竊聽或盜用連接的危險,

CHAP 則使用一次性密碼0TP( One Time Password ),可以有效防竊聽,此外,在建立連接后還可以進行定期的密碼交換,用來檢驗對端是否中途被替換,

PPP的幀格式

其中識別符號用來區分每個幀,PPP是基于HDLC,HDLC就是在每個幀的前后加上一個8位位元組“01111110”用來區分幀,

PPPoE

有些互聯網接入服務商在以太網上利用PPPoE提供PPP功能,

在這種互聯網接人服務中,通信線路由以太網模報,由于以太網越來越普及在加上它的網路設備與相應的 NIC 價格比較便宜,因而 ISP 能夠提供一個單價更低的互聯網按人服務,

單純的以太網沒有驗證功能,也沒有建立和斷開連接的處理,因此無法按時計費,而如果果用 PPPoE 管理以太網連接,就可以利用 PPP 的驗證等功能使各家 ISP 可以有效地管理終端用戶的使用,

3.6 其他資料鏈路

ATM

是以一個叫做信元(5位元組首部加48位元組資料)的單位進行傳輸的資料鏈路,由于線路占用時間短和能夠高效傳輸大容量資料等特點主要用于廣域網路的連接,

特點

ATM是一種面向連接的一種資料鏈路,它允許同時與多個對端建立通信連接,

ATM中沒有類似以太網和FDDI那種發送權限的限制,它允許在任何時候發送任何資料,

ATM與上層協議

ATM的一個信元只能發送固定的48位元組資料,這48個位元組的資料部分中若包含IP首部和TCP首部,則基本無法存放上層的資料,為此,一般不會單獨使用ATM,而是使用上層的AAL,在上層IP是為AAL5.每個IP包被附加各層的協議首部以后,最多可以被分為192個信元發送出去,

192個信元任意一個的丟失都會導致幀檢查位的報錯,

FDDI最后這里在著重介紹FDDI

FDDI叫做分布式光線資料介面,曾幾何時,人們為了用光纖和雙絞線實作10oMbps的傳輸速率,在主干網或計算機之間的高速連接上廣泛使用了 FDDI ,但是由于后來高速 LAN 提供了 Cbps 級的傳輸連率, FDDI 也就逐漸淡出了應用領域,

FDDI 采用令牌(追加令牌)環的訪向方式,令牌環訪向方式在網路擁堵的情況下極容易導致網路收斂,

FDDI 中的每個站通過光纖連接形成環狀,如下圖所示, FDDI 為了防止在環在某處斷開時導致整個通信的中斷,采用雙環的結構,雙環中站叫做 DAS,單環中的站叫做 SAS ,

3.7 公共網路

前面介紹了很多局域網相關的知識,本小節旨在介紹連接公共通信服務相關的細節,

這里將介紹模擬電話路線,移動通信,ADSL,FTTH,有線電視,專線,VPN以及公共無線LAN等內容,

模擬電話線路

利用固定電話線路進行通信,電話線中的音頻帶寬用于撥號上網,讓計算機和電話線相連需要有一個將數字信號轉化為模擬信號的調制解調器(俗稱“貓”),現已被淘汰,

移動通信服務

移動通信服務包括手機和PHS服務,特點是只要在服務區范圍內,就可以連接到運營商的網路,

ADSL

ADSL是對已有的模擬電話線路進行拓展的一種服務,模擬電話線路雖然也能傳輸高頻數字通信,但是它與電信局的交換機之間只有發送音頻信號時才能顯示極好的傳輸效率,并會對其他多余頻率的信號進行丟棄,尤其是在近兒年,隨著電話網逐漸數字化,通過電話線路的信號再經過電信的交換機時會變成64khp左右的數字信號,因此,從理論上就無法傳輸64kbp更快的數字信號,然而,每個話機到電信局交換機之前的這段線路,是可以實作高速傳輸的,

ADSL 正是利用話機到電信局交換機之間這段線路,附加一個叫微分離春的裝置,將音頻信號《低頻信號)和數字信號(高頻信號)隔離以免產生噪聲干擾,

類似這種型別的通信方式除了 ADSL 還有其他諸如 YDSL 、 HDsL 、 SnsL 等,它們被統稱為 xDSl , ADSL 是其中最為得及的一種方式,

ADSL 中的線路速度根據通信方式或線路的質量以及距寓電信局的遠近有所不同,從ISP到家里/辦公室的速率在1.5Mbps-50Mbpe左右,而從家里/辦公室到1P端的速率一般在512kbpa-2Mbpa左右,

FTTH

是一根高速光纖直接連到用戶家里或公司建筑物處的方法,

有線電視

專線

用戶的上升專線向著價格更低,帶寬更廣以及多樣化的方向發展,專線的連接一定是一對一的連接,

VPN

虛擬專用網路(VPN)用于連接距離較遠的地域,這種服務包括IP-VPN和廣域以太網

IP-VPN

意指在IP網路上建立VPN,

廣域以太網

服務提供商所提供的用于連接相距較遠的地域的一種服務,

IP-VPN是在 IP 層面的連接,廣域以太網則是在作為資料鏈路層的以太網上利用 VLAN (虛擬局域網)實作 VPN 的技術,該技識訓可以使用 TCP / IP 中的其他協議,

廣域以太網以企業專門使用服務提供商構建的 VLAN 網路為主要形式,只要指定同一個 VLAN ,無論從哪里都能接人到同一個網路,由于廣域以太網利用的是資料鏈路層技術,因此為了避免一些不必要的資訊傳輸,使用者應謹慎操作,

公共無線LAN

指公開的可以使用WI-FI的服務,服務提供者可以在車站或餐飲店等人員比較密集的地方架設的一個叫做熱點的無線電波接收器,使用者在這些區域使用帶有無線LAN 網卡的筆記本電腦或智能手機連接上網,

其他公共無線通信服務

X25

X25網是電話網的改良版,它允許一個端點連接多個站點,傳輸速率為9.6kbps或64kbps,由于現在已出現其他多種網路服務,X25已經不再使用,

幀中繼

幀中繼是對 X25進行精簡并高速化的網路,與 X25相似,它允許1對 N 的通信,一般提供64kbps~1. SMbps 的傳輸速率,目前由于以太網和IP-VPN的廣泛應用,幀中繼的用戶也在逐漸減少,

ISDN

IsDN 是 Integrated Services Digital Network (綜合業務數字網)的縮寫,它是一種集合了電話、 FAX 、資料通信等多種型別的綜合公共網路,目前它的使用者也在日趨減少,

4.IP協議

IP協議作為真個TCP/IP中至關重要的協議,負責將資料包發送給最終的目標計算機,

4.1 IP即網路協議

TCP/IP的心臟是互聯網層,這一層主要由IP和ICMP兩個協議組成,本章僅對IP協議進行詳細說明,目前的IP4已經無法應對互聯網的需求,于是出現了更高版本的IP6,

IP相當于OSI模型的第3層

IP相當于OSI參考模型的第3層——網路層,

網路層的主要功能是“實作終端節點之間的通信”,這種終端節點之間的通信也叫“點對點通信”,

從上一章知道,資料鏈路層的主要作用是在互聯同一種資料鏈路的節點之間進行包傳輸,而一旦跨越多種資料鏈路,就需要借助網路層,

主機與節點

在互聯網世界中,將那些配有 IP 地址的設備叫做“主機”,這里的主機可以是超大型計算機,也可以是小型計算機,這是因為互聯網在當初剛發明的時候,只能連接這類大型的想勢設備,因此習慣上將配有 IP地址的設備稱為“主機”,

然而,準確地說,主機的定義應該是指“配置有 IP 地址,但是不進行路由控制"的設備”,既配有 IP 地址又具有路由控制能力的設備叫做“路由器”,跟主機有所區別,而節點則是主機和路由器的統稱”,

網路層和網路鏈路層的關系

資料鏈路層提供直連兩個設備之間的通信功能,網路層的IP則負責在沒有直連的兩個網路之間進行通信傳輸,它們的區別又是什么呢?

就好像我們坐火車或飛機旅游,每張票只能在某一限定區間內移動,此處的“區間內”就如同通信網路上的資料鏈路,而這個區間內的出發地點和目的地點就如同某一個資料鏈路的源地址和目標地址等首部資訊,整個全程的行程表的作用就相當于網路層

4.2 IP基礎知識

IP大致分為三大作用模塊,它們是IP尋址,路由(最終節點為止的轉發),以及IP分包與組包,

IP地址屬于網路層地址

通信中為了實作通信對端,必須要有一個類似于地址的識別碼進行標識,MAC是標識同一種鏈路中不同計算機的一種識別碼,網路層的IP也有這種地址資訊,一般也叫IP地址,IP地址用于在“連接到網路中的所有主機識別出進行通信的目標地址”,因此,在TCP/IP通信中所有主機或路由器必須設定自己的IP地址,

不論主機與哪種資料鏈路層連接,其IP地址的形式都保持不變,另外,在網橋或交換集線器等物理層設備中,不需要設定IP地址,

路由控制

將分組資料發送到最終目標地址的功能,一旦這個路由控制的運行出現例外,分組資料極有可能“迷失”,無法到達目標地址,因此,一個資料包之所以能夠成功地到達最終地目標地址,全靠路由控制,

發送資料到最終目標地址

Hop 譯為中文叫“跳”,它是指網路中的一個區間,IP包正是在網路中一個個跳間被轉發,因此 I 路由也叫做多跳路由,在每一個區間內決定著包在下一跳被轉發的路徑,

多跳路由是指路由器或主機在轉發 IP 資料包時只指定下一個路由器或主機,而不是將到最終目標地址為止的所有通路全都指定出來,因為每一個區間(跳)在轉發 IP 資料包時會分別指定下一跳的操作,直至包達到最終的目標地址,如圖,以乘坐火車旅游為例具體說明

可以把旅行者看成IP資料包,把車站和作業人員看成路由器,當有IP到達路由器時,路由器會先查找其目標地址,從而決定下一步應該把這個包發往那個路由器,以此往復直到找到最終的目標地址,

路由控制表

為了將資料包發給目標主機,所有主機都維護著一張路由控制表( Routing Table ),該表記錄 IP 資料在下一步應該發給哪個路由器,IP包將根據這個路由表在各個資料鏈路上傳輸,

資料鏈路的抽象化

IP是實作多個資料鏈路之間通信的協議,資料鏈路根據種類的不同各有特點,對這些不同的資料鏈路的相異特性抽象化也是IP的重要作用之一,

不同資料鏈路有個最大的區別,就是它們各自的最大傳輸單位不同,就好像人們在郵寄包裹或行李時有各自的大小限制,

MTU 的值在以太網中是1500位元組,在 FDDI 中是4352位元組,而 ATM 則為9180位元組,IP 的上一層可能會要求傳送比這些 MTU 更多位元組的資料,因此必須在線路上傳送比包長還要小的 MTU ,

為了解決這個問題,IP進行分片處理,將較大的IP包分成多個較小的IP包,到了對端目標地址以后再組合起來傳給上一層,

IP屬于面向無連接型

:那么,為什么IP要采用面向無連接呢?

:主要有兩點原因;一是為了簡化,二是為了提速,面向連接比起面向無連技處理相對復雜,甚至管理每個連接本身就是一個相當緊瑣的事情,此外,每次通信之前都要事先建立連淡,又會降低處理速皮,需要有連接時,可以委托上一層提供此項服務,因此, I 為了實作簡單化與高速化采用面向無連接的方式,

4.3 IP地址的基礎知識

用 TCP / IP 通信時,用 IP 地址識別主機和路由器,為了保證正常通信,有必要為每個設備配置正確的 IP 地址,在互聯網通信中,全世界都必須設定正確的 IP 地址,否則,根本無法實作正常的通信,因此, IP 地址就像是 TCP / IP 通信的一塊基石,

IP地址的定義

IPv4地址由32位正整數來表示,TCP/IP通信要求將這樣的IP地址分配給每一個參與通信的主機,IP地址在計算機內部以二進制方式被處理,然而人類并不習慣采用二進制方式,需要采用一種特殊的標記方式,那就是將32位的IP地址以每8位為一組分為四組,每組以“.”隔開,再將每組數轉換為十進制數,

IP地址由網路和主機兩部分組成

網路標識在資料鏈路的每個段配置不同的值,必須保證連接的每個段的地址不相重復,而相同段內相連的主機必須有相同的網路地址,IP地址的“主機標識‘則不允許在同一個網段內重復出現,

也因此,可以通過設定網路地址和主機地址,在相互連接的整個網路中保證每臺主機的IP都不會重疊,即IP有了唯一性

問:那網路標識和主機標識分別是第幾位呢?

答:有兩種約定熟成的型別,最初兩種以分類進行區別,而現在以子網掩碼區分,當然,第一種情況仍然存在,

IP地址的分類

IP地址分為A類,B類,C類,D類 四類,根據IP地址中第1位到第4位的位元對其網路標識和主機識別進行區分,

A類地址

A類IP地灶是首位以“0”開頭的地址,從第1位到第8位是它的網路標識用十進制表示的話, 0.0.0.0-127.0.0.0是 A 類的網絡地址, A 類地址的后24位相當于主機標識,因此,一個兩段內可容納的主機地址上限為16,777,214個,

B類地址

B 類 IP 地址是前兩位為“10”的地址,從第1位到第16位’是它的網路標識,用十進倒表示的話,128.0.0.1~191.255.0.0是 B 類的網路地址, B 類地址的后16位相當于主機標識,因此,一個網段內可容納的主機地址上限為65,534個",

C類地址

C 類護地址是前三位為“110”的地址,從第1位到第24位是它的網路標識,用十進制表示的話,192.168.0.0-239.255.255.0是 C 類的網路地址, C類地址的后8位相當于主機標識,因此,一個網段內可容納的主機地址上限為254個,

D類地址

D類護地址是前四位為“1110”的地址,從第1位到第24位是它的網路標識,用十進制表示的話,224.0.0.0-239.255.255.255是 D 類的網絡地址,D 類地址沒有主機標識,常被用于多播,

廣播地址

廣播地址用于在同一個鏈路中相互連接的主機之間發送資料包,IP地址中的主機地址部分全部設定為1,就成了廣播地址,

廣播分為本地廣播直接廣播,在本網路內的叫做本地廣播,在不同網路之間的廣播叫做直接廣播,

IP多播

同時發送提高效率

多播用于將包發送給特定組內的所有主機,由于其直接使用IP協議,因此也不存在可靠傳輸,

人們在此之前是將廣播資料發送給所有終端主機,再由這些主機IP之上的一層去判斷是否有必要接收資料,造成網路上很多不必要的流量,而且廣播無法穿透路由,

IP多播與地址

多播使用D類地址,因此如果從首位開始到第4位是”1110“,就可以認為是多播地址,而剩下的28位可以成為多播的組編號,

子網掩碼

分類會造成浪費?

根據IP地址分類,倘若用“1”表示IP網路地址的位元范圍,用“0”表示主機地址范圍,

下面用十進制表示

網路標識相同的計算機必須同屬于網一個鏈路,例如,架構 B 類 I 網路時理論上-個鏈路內允許6萬5千多臺計算機連接,然而,在實際網路架構當中一般不會有在同一個鏈路上連接6萬5千多臺計算機的情況,因此,這種網路結構實際上是不存在的,

因此,直接使用 A 類或B類地址,確實有些渡費,隨著互聯網的覆益拖圍逐漸増大,網路地址會越來越不足以應對需求,直接使用 A 類、 B 類、 C 類地址就更加顯得浪費資源,為此,人們已經開始一種新的組合方式以減少這種浪費,

子網與子網掩碼

現在,一個IP地址的網路標識和主機標識已不再受限于該地址的類別,而是由一個叫做“子網掩碼”的識別碼通過子網網路地址細分出比 A 類、B 類、C 類更小粒度的網路,這種方式實際上就是將原來 A 類、B 類 ,C 類等分類中的主機地址部分用作子網地址,可以將原網路分為多個物理網路的一種機制,自從引人了子網以后,一個 IP 地址就有了兩種識別碼,一是IP地址本身,另一個是表示網路部的子網掩碼,子網掩碼用二進制方式表示的話,也是一個32位的數字,它對應IP地址網路標識部分的位全都為“1”,對于IP 地址主機標識的部分則全部為“0”,由此,一個IP地址可以不再受限于自己的類別,而是可以用這樣的子網掩碼自由地定位自己的網路標識長度,當然,子網掩碼必須是IP地址的首位開始連續的"1".

對于子網掩碼,目前有兩種表示方式,以172.20.100.52的前26位是網路地址的情況為例,以下是其中一種表示方法,它將IP地址與子網掩碼的地址分別用兩行來表示,

假定有一個B類的IP地址定義了10位子網掩碼,

CIDR與VLSM

由于地址缺乏,人們放棄IP地址的分類,采用任意長度分割IP地址的網路標識和主機標識,這種方式加做CIDR(“無型別域間選路”),根據CIDR,連續多個C類網路就可以劃分到一個較大的網路,VLSM是可以隨意修改組織內各個部門的子網掩碼長度的機制,

全域網路和私有網路

起初,互聯網中的任何一臺主機或路由都必須配一個唯一的IP地址,可隨著互聯網的發展,如果采用唯一地址的話,會有IP地址耗盡的風險,于是出現了一種新技術,只要求在必要的時候為相應數量的設備分配唯一的IP地址,

不過讓每個獨立的網路各自設定IP地址也可能存在問題,于是出現了私有網路的IP地址,如下

包含在這個范圍內的IP地址都屬于私有IP,而在此之外的IP地址稱為全域IP,

現在有很多學校、家庭、公司內部正采用在每個終端設定私有IP,而在路由器(寬帶路由器)或在必要的服務器上設定全域IP地址的方法,而如果配有私有IP的地址主機連網時,則通過 NAT 進行通信,

全域地址由誰決定

在世界范圍內,全域IP由ICANN進行管理,日本則由一個叫做IPNIC的機構進行管理,

在互聯網被廣泛商用之前,用戶只有向JPNIC申請全域IP地址才能接入互聯網,隨著ISP的出現,人們向其申請即可,

4.4 路由控制

發送資料包所使用的地址是網路層的地址,即IP地址,僅有IP地址還不足以實作將資料包發送到對端目標地址,在資料發送中還需要有類似于“指明路由器或主機”的資訊,以便發往目標地址,保存這種資訊的就是路由控制表,實作IP通信的主機和路由器都必須持有一張這樣的表,

路由控制表的形成方式有兩種:一種是管理員手動設定,另一種是路由器與其他路由器相互交換資訊時自動重繪,

該表是由一個叫做“路由協議”的協議制作而成,

IP地址與路由控制

IP地址的網路地址部分用于進行路由控制,

路由控制表記錄著網路地址與下一步應該發送至路由器的地址,

默認路由

如果一張路由表中包含所有的網路及其子網的資訊,將會造成無端的浪費,這是默認路由是很好的 選擇,默認路由是指路由表中任何一個地址都能與之匹配的記錄,

主機路由

“IP地址/32”被稱為主機路由,它的意思是整個IP地址的所有位都將參與路由,意味著要基于主機上網卡上配置的IP地址本身,而不是基于該地址的網路地址部分進行路由,

環回地址

環回地址是在同一臺計算機上的程式之間進行網路通信時所使用的一個默認地址,

路由控制表的聚合(路由匯總)

利用網路地址的位元分布可以有效地進行分層配置,對被即使有多個子網掩碼,對外呈現出的也是同一個網路地址,這樣可以更好的構建網路,

能夠縮小路由器的大小是它最大的優勢,構建大規模,高性能網路,則需要盡可能削減路由表的大小,

例子中路由器 C 正是將已知192.168.2.0/24與192.168.3.0/24的網路這一資訊聚合成為對“192.168.2.0/23的網路也已知”,從而進行公示,

4.5 IP分割與再構成處理

資料鏈路不同,MTU則相異

每種資料鏈路的最大傳輸單元(MTU)都不盡相同,下圖列出了很多不同的鏈路及MTU,

IP報文的分片與重組

任何一臺主機都有必要對IP分片進行相應的處理,分片往往在網路上遇到比較大的報文無法一下子發送出去時才會進行處理,

經過分片之后的IP資料報在被重組的時候,只能由目標主機進行,路由器雖然做分片但不會進行重組,

路徑MTU發現

分片機制也有它的不足,它加重了路由器的處理負荷,為了更高速,網路的安全,要盡可能不用路由器進行IP資料包的分片處理,而且分片丟失會造成IP資料包的報廢,為了解決這一問題,產生了一種新的技術“路徑MTU的發現”,

指從發送端主機到接收端主機之間不需要分片時最大MTU的大小,即路徑中存在的所有資料鏈路中最小的MTU,而路徑MTU發現從發送主機按照路徑MTU的大小將資料包分片后進行發送,就可以避免在中途的路由器進行分片處理,也可以在TCP中發送更大的包,

4.6 IPv6

IPv6的必要性

IPv6是為了根本解決IPv4地址耗盡的問題而被標準化的網際協議,IPv4的地址長度為4個8位位元組,而IPv6的地址長度則是原來的4倍,一般寫為8個16位位元組,但替換IP地址會是更為艱巨的任務,

IPv6的特點

IPv6具有以下幾個特點,這些功能的一部分在IPv4中已經得以實作,而IPv6則將這些統統作為必要的功能,減少了管理員的負擔,

IP地址的擴大與路由控制表的聚合

IP 地址依然適應互聯網分層構造,分配與其地址結構相適應的 IP 地址,盡可能避免路由表膨大,

性能提升

包首部長度采用固定的值(40位元組),不再采用首部檢驗碼,簡化首部結構,減輕路由器負荷,路由器不再做分片處理(通過路徑 MTU 發現只由發送端主機進行分片處理),

支持即插即用功能

即使沒有 DHCP 服務器也可以實作自動分配 IP 地址,

采用認證與加密功能

應對偽造 IP 地址的網路安全功能以及防止線路竊聽的功能( IPsec ),

多播、 Mobile IP 成為擴展功能

多播和 Mobile IP 被定義為IPv6的擴展功能,由此可以預期,曾在IPv4中難于應用的這兩個功能在IPv6中能夠順利使用,

IPv6中IP地址的標記方法

IPv6地址長度為128位,能表示的數字高達38位,足以包含人們所能想到所有主機和路由器分配地址,

如果將IPv6也用十進制資料表示的話,是16個數字的序列,但用16個數字序串列示顯得麻煩,因此,將128位元IP地址以每16位元為一組,每組用冒號(;)隔開進行標記,而且如果出現連續的0時還可以將這些0省略,并用兩個冒號(::)隔開,但是一個IP地址中只允許出現一兩個連續的冒號,

IPv6地址的結構

IPv6類似IPv4,也是通過IP地址的前幾位標識IP地址的種類,

在互聯網通信中,使用一種全域的單播地址,它是互聯網中唯一的一個地址,不需要正式分配 IP 地址,

限制型網路,即那些不與互聯網直接接人的私有網路,可以使用唯一本地地址,該地址根據一定的演算法生成亂數并融合到地址當中,可以像IPv4的私有地址一樣自由使用,

在不使用路由器或者在同一個以太網網段內進行通信時,可以使用鏈路本地單播地址,而在構建允許多種型別 IP 地址的網路時,在同一個鏈路上也可以使用全域單播地址以及唯一本地地址進行通信,

在IPv6的環境下,可以同時將這些IP地址全都配置在同1個 NIC 上,按需靈活使用,

全域單播地址

全域單播地址是指世界上唯一的一個地址,它是互聯網通信以及各個域內部通信中最為常用的一個IPv6地址,現在IPv6的網路中所使用的格式為,n = 48,m = 16以及128-n-m = 64,即前64位元為網路標識,后64位為主機標識,

4.7 IPv4 首部

通過IP進行通信時,需要在資料的前面加入IP首部資訊,IP首部中包含著用于IP協議進行分包控制時所有的必要資訊,了解IP首部的結構,也就對IP提供的功能有一個詳細的把握,

版本

由4個位元構成,標識標識IP首部的版本號,IPv4的版本號為4,因此值也為4,

首部長度

由4位元組成,表示首部的長度,單位為4位元組,對于沒有可選項的IP包,首部長度則設定為“5”,也就是說,當沒有可選項時,IP首部的長度為20(4*5=20),

區分服務

由8位元服務,用來表明服務質量,每一為具體含義如圖所示,

總長度

表示IP首部與資料部分合起來的總位元組數,該位元組長16位元,因此IP包的最大長度為65535(2的16次方)位元組,

標識

由16位元組成,用于分片重組,同一個分片的標識值相同,不同分片的標識值不同,通常,每發一個包,它的值也逐漸遞增,此外,即使ID相同,如果目標地址,源地址或協議不同的話,也會被認為是不同的分片,

標志

由3位元組成,標識被分片的相關資訊,含義如下表,

片偏移

由13位元構成,用來標識被分片的每一個分段相對于原始資料的位置,

生存時間

由8位元組成,它最初的意思是以秒為單位記錄當前包在網路上應該生存的期限,然而,在實際中它是指可以中轉多少個路由器的意思,沒經過一個路由器,TTL會減少1,知道變成0則丟棄該包,

協議

由8位元組成,標識IP收不到 下一個首部隸屬于哪個協議,

首部校驗和

由8個位元構成,該欄位只校驗資料包的首部,不校驗資料部分,它主要用來確保IP資料包不被破壞,

源地址

由32位元構成,表示發送端IP地址,

目標地址

由32位元構成,表示接收端IP地址,

可選項

長度可變

安全級別

源路徑

路徑記錄

時間戴

填充

也稱作填充物,在有可選項的情況下,首部長度可能不是32位元的整數倍,為此,通過向欄位填充0,調整為32位元的整數倍,

資料

存入資料,將IP上層協議的首部也作為資料進行處理,

4.8 IPv6 首部格式

IPv6中為了減輕路由器的負擔,省略了首部校驗和欄位,因此路由器不再需要計算校驗和,從而提升了包的轉發速率,

版本

與IPv4一樣,由4位元構成,IPv6其版本號為6,因此在這個欄位上的值為“6”.

通信量類

相當于IPv4的TOS欄位,也由8位元組成,

流標號

由20位元構成,準備用于服務質量控制,

有效載荷長度

有效載荷是指包的資料部分,

下一個首部

相當于IPv4中的協議欄位,由8位元構成,

跳數限制

由8位元構成,與IPv4中的TTL意思相同,

源地址

由128位元構成,表示發送端IP地址,

目標地址

由128位元構成,表示發送端IP地址,

5.IP協議相關技術

IP旨在讓最終主機收到資料包,但是在這一程序中僅僅有IP是無法實作通信的,必須還有能夠決議主機名稱和MAC地址的功能,以及資料包子啊發送程序中例外情況處理的功能,此外,還會涉及IP必不可少的其他功能,

本章主要介紹作為IP的輔助和擴展規范的DNS,ARP,ICMP以及DHCP等功能,

5.1 僅憑IP無法完成通信

在之前的章節,我們了解了如何利用IP實作讓資料包到達最終主機的功能,但上網時我們很少直接輸入IP地址,為了更便捷的訪問,我們通常使用應用層是實作的地址,為了能讓主機根據實際的IP地址進行通信,就有必要實作一種功能——將應用中使用的地址映射為IP地址,

5.2 DNS

我們平常在訪問某個網站時不使用 I 地址,而是用一串由羅馬字和點號組成的字串,而一般用戶在使用 TCP / IP 進行通信時也不使用 IP 地址,能夠這樣做是因有了 DNS ( Domain Name System )功能的支持, DNS 可以將那串字串自動轉換為具體的 IP 地址,

IP地址不便記憶

TCP/IP要求每一個互聯的計算機都具有其唯一的IP地址,并基于這個IP地址進行通信,但IP地址是由一串資料序列組成,并不好記,

為此,就有了一種叫做主機識別碼的東西,這種識別方式是指為每臺計算機賦以唯一的主機名,在進行網路通信時可以直接使用主機名稱而無需輸入一長串的IP地址,并且此時,系統必須自動將主機名轉換為具體的IP地址,為了實作這樣的功能,主機往往會利用一個叫做hosts檔案才能正常使用網路,但隨著網路規模的擴大,這種方式慢慢變得不再適用,

DNS的產生

在上述背景下,產生了一個可以有效管理主機名和IP地址之間對應關系的系統,那就是DNS系統,可以用來維護一個表示組織內部主機和IP地址之間對應關系的資料庫,

域名的構成

在理解DNS規范時,首先要理解什么是域名,域名是指為了識別主機名稱和組織機構名稱的一種具有分層的名稱,

DNS的分層如下所示,由于看起來像一顆倒掛的樹,人們也把這種分層結構叫做樹形結構,

域名服務器和決議器感興趣書中P161

DNS查詢

那么DNS查詢的機制是什么呢?

決議器為了調查IP地址,向域名服務器進行查詢處理,接收這個查詢請求的域名服務器首先會在自己的資料庫進行查找,如果有該域名對應的IP地址就回傳,如果沒有,則域名服務器在向上一層根域名服務器進行查詢處理,

決議器和域名服務器將最新了解到的資訊暫時保存在快取里,這樣,可以減少每次查詢時的性能消耗,

DNS如同互聯網中的分布式資料庫

DNS是一種通過主機名檢索IP地址的系統,然而,它所管理的資訊不僅僅是這些主機名和IP地址之間的映射資訊,

它還要管理眾多其他資訊,例如,主機名與IP地址的對應資訊叫做A記錄,反之,從IP地址檢索主機名稱的資訊叫做PTR,此外,上層或下層域名服務器IP地址的映射叫做NS記錄,

在此特別需要指出的是MX記錄,這類記錄中注冊了郵件地址與郵件接收服務器的主機名,

5.3 APR

只要確認了IP地址,就可以向這個目標地址發送IP資料報,然而,在底層資料鏈路層,進行實際通信時卻有必要了解每個IP地址所對應的MAC地址,

ARP概要

ARP是一種解決地址問題的協議,以目標IP為線索,用來定位下一個應該接收資料分包的網路設備對應的MAC地址,

ARP的作業機制

那ARP是如何知道MAC地址的呢?

ARP是借助ARP請求ARP回應兩種型別的包確認MAC地址的,

主機A為了獲得主機B的MAC地址,起初要通過廣播發送一個ARP請求包,這個包中包含了想要了解其MAC地址的IP地址,由于廣播的包可以被同一條鏈路上的所有主機和路由器進行決議,如果請求包的IP地址與自己的IP地址一致,那么這個節點就將自己的MAC地址塞入ARP回應包回傳給主機,

IP地址和MAC地址缺一不可?

是的,盡管資料鏈路層需要MAC就可發送,IP一個廣播(浪費流量)就能發送到區間段,但發送給其他資料鏈路的某一個主機,就需要兩者結合了,

RARP

與ARP相反,從MAC地址定位IP地址的一種協議,

代理ARP

通常ARP包會被路由器隔離,但是使用代理ARP的路由器可以將ARP請求轉發給相鄰的網段,由此,兩個以上網段的節點之間可以像在同一個網段中一樣通信,

5.4 ICMP

輔助IP的ICMP

架構IP網路時要特別注重兩點:確認網路是否正常作業,以及遇到問題時進行問題診斷,

例如,一個剛剛搭建好的網路,需要驗證該網路的設定是否正確,此外,為了確保網路能夠按照預期正常作業,一且遇到什么問題需要立即制止問題的蔓延,為了減輕網路管理員的負擔,這些都是必不可少的功能, ICMP 正是提供這類功能的一種協議,

ICMP 的主要功能包括,確認IP包是否成功送達目標地址,通知在發送程序當中IP包被廢棄的具體原因,改善網路設定等,有了這些功能以后,就可以獲得網路是否正常、設定是否有誤以及設備有何例外等資訊,從而便于進行網路上的問題診斷,

ICMP的訊息大致可以分為兩類:一類是通知出錯的錯誤資訊,另一種是用于診斷的查詢資訊,

主要的ICMP資訊

ICMP目標不可達資訊

IP路由器無法將IP資料包發送給目標地址時,會給發送端主機回傳一個目標不可達的ICMP資訊,并在這個訊息中顯示不可達的具體原因,

ICMP目標重定向資訊

如果路由器發現發送端主機使用了次優的路徑發送資料,那么它會回傳一個ICMP重定向的訊息給這個主機,在這個訊息中包含了最合適的路由資訊和資料,這主要發生在路由器持有更好路由資訊的情況下,路由器會通過這樣的ICMP訊息給發送端主機一個更合適的發送路由,

不過,多數情況下由于這種重定向訊息成為引發問題的原因,所以往往不進行這種設定,

ICMP目標超時資訊

IP包中有一個欄位叫做TTL(生存周期),它的值隨著每經過一次路由器就會減1,直到減到0該IP包會被丟棄,此時,IP路由器將會發送一個ICMP超時的資訊,并通知該包已被丟棄,

ICMP目標回送資訊(型別0,8)

用于進行通知的主機或路由器之間,判斷所發送的資料包是否已經成功到達對端的一種資訊,可以向對端主機發送回送請求的訊息(型別8),也可以接收對端主機發回來的回送應答訊息(型別0),

ICMPv6

ICMPv6的作用

IPv4中ICMP僅作為一個輔助功能,但在IPv6中,ICMP的作用被擴大,如果沒有IPMv6,IPv6就無法實作正常通信,

ICMPv6中大致分為兩類:一類是錯誤資訊,另一類是資訊訊息,型別0~127屬于錯誤訊息,128~255屬于資訊訊息,

鄰居探索

ICMPv6中從型別133至137的訊息叫做鄰居探索資訊,鄰居請求資訊用于查詢IPv6的地址與MAC地址的對應關系,并由鄰居宣告得知MAC地址,鄰居請求資訊利用IPv6的多播第hi實作傳輸,

5.5 DHCP

DHCP實作即插即用

如果逐一為每一臺計算機設定IP地址會是非常繁瑣的事,于是為了實作自動設定IP地址,統一管理IP地址分配,就產生了DHCP協議,有了DHCP,即插即用變成可能,

DHCP的作業機制

使用DHCP之前,首先要架設一臺DHCP服務器,然后將DHCP所要分配的IP地址設定到服務器上,從DHCP中獲取IP地址的流程,簡單來說,主要分為兩個階段,

為了避免服務器故障無法分配IP地址,通常假設兩臺或多臺DHCP服務器,

5.6 NAT

NAT定義

NAT是用于本地網路中使用私有地址,在連接互聯網時轉而使用全域IP地址的技術,除轉換IP地址外,還出現了可以轉換TCP,UDP埠號的NAPT技術,由此可以實作一個全域IP地址與多個主機的通信,

NAT的作業機制

下圖利用NAT實作通信

NAT服務器內部,有一張自動生成的用來轉換地址的表,當私有網路內的多臺機器同時都要與外部進行通信時,僅僅轉換IP地址,人們不免擔心全域IP地址是否不夠用,這時采用包含埠號一起轉換的方式可以解決這個問題,

NAT-PT

現在很多互聯網服務都基于IPv4,但需要在IPv6上也適用,就產生了NAT-PT規范,NAT-PT是將IPv6的首部轉換為IPv4首部的一種技術,

NAT-PT有很多形式,其中最讓人期待的當屬DNS和IP首部替換的DNS-ALG,

NAT的潛在問題

由于NAT都依賴于自己的轉換表,因此會有如下幾點限制:

無法從 NAT 的外部向內部服務器建立連接,

轉換表的生成與轉換操作都會產生一定的開銷,

通信程序中一旦 NAT 遇到例外需重新啟動時,所有的 TCP 連接都將被重置,

即使備置兩臺 NAT 做容災備份, TCP 連接還是會被斷開,

解決NAT的潛在問題與NAT穿越

兩種辦法,一種是改用IPv6,另一種是在一個沒有NAT的環境里,根據所制作的應用,用戶可以完全忽略NAT的存在而進行通信,

5.7 IP隧道

如下圖網路環境中,網路A,B使用IPv6,雖然處于中間位置的C使用IPv4的話,網路A和網路B之間將無法直接進行通信,為了讓他們之間正常通信,這時必須采用IP隧道的功能,

IP隧道可以將那些從網路A發過來的IPv6的包統和為一個資料,再為之追加一個IPv4的首部以后轉發給網路C,

一般情況下,緊接著IP首部的時TCP或UDP的首部,然而,現在應用當中“IP首部的后邊還是IP首部”或“IP首部的后面是IPv6的首部”等情況日益俱增,這種再網路層后面繼續追加網路層首部的通信方法就叫做“IP隧道”,

5.8 其他IP相關技術

IP多播相關技術

在多播通信中,確認接收端是否存在非常重要,如果沒有接收,發送多播訊息將會造成網路流量的浪費,而確認是否有接收端,要通過 MLD 實作,它是 IPv4中IGMP和IPv6中ICMPv6的重要功能之一,

ICMP( MLD )主要有兩大作用:

1.向路由器表明想要接收多播訊息(并通知想接收多播的地址),

2向交換集線器通知想要接收多播的地址,

IP任播

IP任播主要用于報警電話110與消防電話119系統,當人們撥打110或119時,其接受電話并不是一個,而是可以撥打到一個區域管轄范圍內的所有公安或消防部門,這種機制的實作,在互聯網上就是IP任播,

IP任播是指那些提供同一種服務的服務器配置同一個IP地址,并與最近的服務器進行通信的一種方法,在IP任播的應用中最為有名的當屬DNS根域名服務器,

IP任播聽起來方便,實際上也有不少限制,例如,它無法保證將第一個和第二個包發送給同一個主機,

通信質量控制

通信質量的定義

IP協議設定的初衷是作為一個“盡力服務”的協議,是一款“沒有通信服務質量保證”的協議,當通信線路出現擁堵,可能導致通信性能的下降,

隨著音頻和視頻服務對實時性要求的逐漸提高,在使用IP通信程序中能夠保證服務質量的技術收到了前所未有的追捧,

控制通信質量的機制

控制通信質量的作業機制類似于高速公路的VIP通道,對于需要保證質量的包,路由器會進行特殊處理,

顯式擁擠通知

當發生網路擁擠時,發送主機應該減少資料包的發送量,為了解決這個問題,人們在IP層新增了一種使用顯式擁擠通知的機制——ECN,實作擁擠通知的功能,

6.TCP與UDP

6.1 傳輸層的作用

TCP/IP中有兩個具有代表性的傳輸層協議,它們分別是TCP和UDP,TCP提供可靠的通信傳輸,UDP則常被用于讓廣播和細節控制交給應用的通信傳輸,

傳輸層定義

IP首部中有一個協議欄位,用來標識網路層的上一層采用的是哪一種傳輸層協議,

傳輸層的TCP和UDP,為了識別自己所傳輸的資料部分究竟應該發給哪個應用,也設定了這樣一個編號,

以包裹為例,郵遞員( IP )根據收件人地址(目標IP地址)向目的地(計算機)投遞包裹( IP資料報),包裏到達目的地以后由對方(傳輸層協議)根據包裘資訊判斷最終的接收人(接收端應用程式),

通信協議

TCP / IP 的眾多應用協議大多以客戶端/服務端的形式運行,客戶端類似于客戶的意思,是請求的發起端,而服務端則表示提供服務的意思,是請求的處理端,另外,作為服務端的程式有必要提前啟動,準備接收客戶端的請求,否則即使有客戶端的請求發過來,也無法做到相應的處理,

兩種傳輸層協議TCP和UDP

TCP

TCP是面向連接的,可靠的流協議,流就是指不間斷的資料結構,當應用程式采用TCP發送訊息時,雖然可以保證發送的順序,但還是猶如沒有任何間隔的資料流發送給接收端,

UDP

UDP 是不具有可靠性的資料報協議,細微的處理它會交給上是的應用去完成,在 UDP 的情況下,雖然可以確保發送訊息的大小,卻不能保證訊息一定會到達,

TCP與UDP的區分

TCP可靠,UDP高效,

6.2 埠號

埠號定義

資料鏈路和IP中的地址,分別指的是MAC地址和IP地址,前者用來識別同一鏈路中不同的計算機,后者用來識別 TCP / IP 網路中互連的主機和路由器,在傳輸層中也有這種類似于地址的擬念,那就是埠號,埠號用來識別同一臺計算機中進行通信的不同應用程式,因此,它也被稱為程式地址,

根據埠號識別應用

一臺計算機上可同時運行多個程式,傳輸層協議正是利用這些埠號識別本機中正在進行通信的應用程式,

通過IP地址,埠號,協議號進行通信識別

僅憑目標埠識別某一個通信是遠遠不夠的,

如下圖所示,①和②的通信是在兩臺計算機上進行的,它們的目標埠號相同,都是80,例如打開兩個 Web 瀏覽器,同時訪問兩個服務器上不同的頁面,就會在這個瀏覽器跟服務器之間產生類似前面的兩個通信,在這種情況下也必須嚴格區分這兩個通信,因此可以根據源埠號加以區分,

下圖中③限①的目標埠號和源埠號完全相同,但是它們各自的源 IP 地址不同,此外,還有一種情況上圖中并未列出,那就是 IP 地址和埠全都一樣,只是協議號(表示上層是 TCP 或 UDP 的一種編號)不同,這種情況下,也會認為是兩個不同的通信,

因此, TCP / IP 或 UDP / IP 通信中通常采用5個資訊來識別一個通信,它們是“源地址”、“目標 IP 地址”、“協議號”、“源埠號”、“目標埠號”,只要其中某一項不同,則被認為是其他通信,

埠號如何確定

確認埠號的方法分為兩種:

標定即成的埠號

這種方法也叫靜態方法,它是指每個應用程式都有其指定的埠號,但并不亜器是說可以隨意使用任何一個埠號,每個埠號都有其對應的使用目的,

時序分配法

此時,服務器有必要確定監聽段埠號,但是接收服務的客戶端沒必要確認埠號,

在這種方法下,客戶端應用程式可以完全不用自己設定埠號,而全權交給作業系統進行分配,作業系統可以為每個應用程式分配互不沖突的埠號,例如每需要一個新的縮口號時,就在之前分配號碼的基礎上加1,這樣,操作系統就可以動態地管理埠號了,
動態分配到埠號取值范圍在49152到65535之間,

埠號與協議

埠號由其使用的傳輸層協議決定,因此,不同的傳輸協議可以使用相同的埠號,例如, TCP 與 UDP 使用同一個埠號,但使用目的各不相同,這是因為埠號上的處理是根據每個傳輸協議的不同而進行的,

資料到達IP層后,會先檢查 IP 首部中的協議號,再傳給相應協議的模塊如果是 TCP 則傳給 TCP 模塊、如果是 UDP 則傳給 UDP 模塊去做埠號的處理即使是同一個埠號,由于傳輸協議是各自獨立地進行處理,因此相互之間不會受到影響,

6.3 UDP

UDP的特點及其目的

UDP不提供復雜的控制機制,利用IP提供面向無連接的通信服務,并且它是將應用程式發來的資料在收到的那一刻,立刻按照原樣發送到網路上的一種機制,

由于 UDP 面向無連接,它可以隨時發送資料,再加上 UDP 本身的處理既簡單又高效,因此經常用于以下幾個方面:

包總量較少的通信( DNS 、 SNMP 等)

視頻、音頻等多媒體通信(即時通信)

限定于 LAN 等特定網路中的應用通信

廣播通信(廣播、多播)

6.4 TCP

與UDP不同,TCP是對“傳輸,發送,通信”進行“控制”的“協議”,

TCP 與 UDP 的區別相當大,它充分地實作了資料傳輸時各種控制功能,可以進行丟包時的重發控制,還可以對次序亂掉的分包進行順序控制,而這些在 UDP 中都沒有,此外, TCP 作為一種面向有連接的協議,只有在確認通信對端存在時才會發送資料,從而可以控制通信流量的浪費,

根據 TCP 的這些機制,在 IP 這種無連接的網路上也能夠實作高可靠性的通信,

TCP的特點及其目的

為了通過 IP 資料報實現可靠性傳輸,需要考慮很多事情,例如資料的破壞丟包、重復以及分片順序混亂等問題,如不能解決這些問題,也就無從談起可靠傳輸, TCP 通過檢驗和、序列號、確認應答、重發控制、連接管理以及視窗控制等機制實作可靠性傳輸,


通過序列號與確認應答提高可靠性

在TCP中,當發送端的資料到達接受主機時,接收端主機會回傳一個已收到訊息的通知,這個資訊叫做確認應答

如下圖所示,在一定時間內沒有等到確認皮答,發送端就可以認為資料已經丟失,并進行重發,由此,即使產生了丟包,仍然能夠保證資料能夠到達對端,實作可靠傳輸,

未收到確認應答并不宜味著資料一定丟失,也有可能是資料對方已經收到只是回傳的確認應答在途中丟失,這種情況也會導致發送端因沒有收到確認應答,而認為資料沒有到達目的地,從而進行重新發送,如下圖所示,

重發超時如何確定

重發超時是指在重發資料之前,等待確認應答到來的那個特定時間間隔,如果超過了這個時間仍未收到確認應答,發送端將進行資料重發,那么這個重發超時的具體時間長度又是如何確定的呢?

最理想的是,找到一個最小時間,它能保證“確認應答一定能在這個時間內回傳”,然而這個時間長短隨著資料包途徑的網路環境的不同而有所變化,例如在高速的 LAN 中時間相對較短,而在長距離的通信當中應該比 LAN 要長一些,

為了保持TCP的高性能通信,在每次發包時都會計算往返時間及其偏差,將這個往返時間和偏差相加重發超時的時間,就是比這個總和稍大一點的值,

連接管理

TCP提供面向有連接的通信傳輸,面向有連接是指在資料通信開始之前先做好通信兩端之間的準備作業,TCP會在資料通信之前,通過 TCP 首部發送一個SYN包作為建立連接的請求等待確認應答,如果對端發來確認應答,則認為可以進行資料通信,如果對端的確認應答未能到達,就不會進行資料通信,此外,更多維節請參在通信結束時會進行斷開連接的處理(FIN包),

可以使用 TCP 首部用于控制的欄位來管理 TCP 連接,一個連接的建立與斷開,正常程序至少需要來回發送7個包才能完成,

TCP以段為單位發送資料

在建立TCP連接的同時,也可以確認發送資料包的單位,我們也可以稱其為“最大訊息長度”(MSS),最理想的情況是,最大資訊長度正好是IP中不會被分片處理的最大資料長度,

利用視窗控制提高速度

TCP 以1個段為單位,每發一個段進行一次確認應答的處理,如圖,這樣的傳輸方式有一個缺點,那就是,包的往返時間越長通信性能就越低,

為了解決這個問題,TCP引入了視窗這個概念,即使往返較長的情況下,它也能控制網路性能的下降,如圖所示,確認應答不再是以每個分段,而是以更大的單位進行確認時,轉發時間將會被大幅度的縮短,也就是說,發送端主機,在發逸了一個段以后不必要一直等待確認應答,而是繼續發送,

視窗大小就是指無需等待確認應答而可以繼續發送資料的最大值,上圖視窗大小為4,

視窗控制與重發控制

在使用視窗控制中,如果出現了段丟失該怎么辦?

首先,我們先考慮確認應答未能回傳的情況,在這種情況下,資料已經到達對端,是不需要再進行重發的,然而,在沒有使用窗ロ控制的時候,沒有收到確認應答的資料都會被重發,而使用了視窗控制,就如下圖所示,某些確認應答即便丟失也無需重發,

其次,我們來考慮一下某個報文段丟失的情況,如圖所示,接受主機如果收到一個應該接收的序號以外的資料時,會針對當前為止收到資料回傳取人應答,

流控制

接收端將本應該接收的資料丟棄的話,就又會觸發重發機制,從而導致網路流量的無端浪費,為了防止這種現象的發生, TCP 提供一種機制可以讓發送端根據接收端的實際接收能力控制發送的資料量,這就是所謂的流控制,

它的具體操作是,接收端主機向發送端主機通知自己可以接收資料的大小,于是發送端會發送不超過這個限度的資料,該大小限度就被稱作視窗大小,

擁塞控制

有了 TCP 的視窗控制,收發主機之間即使不再以一個資料段為單位發送確認應答,也能夠連續發送大量資料包,然而,如果在通信剛開始時就發送大量資料,也可能會引發其他問題,

一般來說,計算機網路都處在一個共享的環境,因此也有可能會因為其他主機之間的通信使得網路擁堵,在網路出現擁堵時,如果突然發送一個較大量的資料,極有可能會導致整個網路的癱瘓,

TCP 為了防止該問題的出現,在通信一開始時就會通過一個叫做慢啟動的演算法得出的數值,對發送資料量進行控制,

為了在發送端調節所要發送資料的量,定義了一個加做“擁塞視窗”的概念,

使用TCP的應用

到此為止,我們了解到各種各樣的控制機制,TCP采用這些機制可以提供高速,可靠的通信服務,

如果需要應用自己處理一些更為細節上的控制,使用 UDP 協議是不錯的選擇,如果轉發資料量較多、對可靠性的要求比較高時,可以選擇使用 TCP , TCP 和 UDP 兩者各有長短,在設計和開發應用時,應準確掌握它們各自協議的特點酌情選擇,

6.5 其他傳輸層協議

除了TCP,UDP協議,還有幾種傳輸層協議曾被提案并進行了實驗,最近(是之前)更是有幾個協議從試驗階段步入了實用階段,

本章旨在介紹部分已經被提案并在今后可能廣泛使用的傳輸層協議,

UDP-Lite

UDP-Lite( Lightweight User Datagram Protoeol ,輕量級用戶資料報協議)是擴展 UDP 機能的一種傳輸層協議,在基于 UDP 的通信當中如果校驗和出現錯誤,所收到的包將被全部丟棄,

SCTP

SCTP是流控制傳輸協議,與TCP一樣,都是一種對提供資料到達與否相關可靠性檢查的傳輸層協議,其主要特點如下:

以訊息為單位收發

TCP 中接收端并不知道發送端應用所決定的訊息大小,在 SCTP 中卻可以,

支持多重宿主

在有多個 NIC 的主機中,即使其中能夠使用的 NIC 發生變化,也仍然可以繼續通信,

支持多資料流通信

TCP 中建立多個連接以后才能進行通信的效果,在 SCTP 中一個連接就可以,

可以定義訊息的生存期限

超過生存期限的訊息,不會被重發,

DCCP

DCCP ( Datngram Congestion Control Protocol ,資料報擁塞控制協議)是一個輔助 UDP 的嶄新的傳輸層協議, UDP 沒有擁塞控制機制,為此,當應用使用 UDP 發送大量資料包時極容易出現問題,互聯網中的通信,即使使用 UDP 也應該控制擁塞,而這個機制開發人員很難將其融合至協議中,于是便出現了 DcCP 這樣的規范,

DCCP 具有如下幾個特點:

與 UDP 一樣,不能提供發送資料的可靠性傳輸,

它面向連接,具備建立連接與斷開連接的處理,在建立和斷開連接上是具有可靠性,

能夠根據網路擁堵情況進行擁塞控制,使用 DCCP (RFC4340)應用可以根據自身特點選擇兩種方法進行擁塞控制,它們分別是“類似 TCP ( TCP Like )擁塞控制”和“ TCP 友好升級控制”( TCP - Friendly Rate Control )(RFC4341),

為了進行擁塞控制,接收端收到包以后回傳確認應答( ACK ),該確認應答將被用于重發與否的判斷,

6.6 UDP首部的格式

UDP首部由源埠號,目標埠號,包長和校驗和組成,

源埠號

表示發送端埠號,欄位長16位,該欄位是可選項,有時可能不會設定埠號,沒有根埠號的時候該欄位的值設定位0,可用于不需要回傳的通信中,

目標埠號

表示接收端埠,欄位長度16位,

包長度

該欄位保存了UDP首部的長度跟資料的長度之和,單位為位元組(八位位元組),

校驗和

校驗和是為了提供可靠的UDP首部根資料而設計,

6.7 TCP首部格式(強烈建議看看原文P222

TCP首部相比于UDP首部要復雜的多

源埠號

表示發送端埠號,欄位為16位,

目標埠號

表示接收端埠號,欄位為16位,

序列號

欄位長32位,序列號是指發送資料的位置,每發送一次資料,就累計一次該資料位元組數的大小,

確認應答號

確認應答號欄位長度32位,是指下一次應該收到的資料的序列號,

資料偏移

該欄位表示TCP所傳輸的資料部分應該從TCP包的哪個位開始計算,當然也可以把它看成TCP數不對長度,

保留

該欄位主要是為了以后拓展時,其長度為4位,一般設定為0,但即使收到的包在該欄位不為0,此包也不會被丟棄,

7.路由協議

7.1 路由控制的定義

IP地址與路由控制

互聯網是由路由器連接的網路組合而成的,為了能讓資料包正確達地到達目標主機,路由器必須在途中進行正確地轉發,這種向“正確的方向”轉發資料所進行的處理就叫做路由控制或路由,

路由器根據路由控制表( Routing Table )轉發資料包,它根據所收到的資料包中目標主機的 IP 地址與路由控制表的比較得出下-個應該接收的路由器,因此,這個程序中路由控制表的記錄一定要正確無誤,但凡出現錯誤,資料包就有可能無法到達目標主機,

靜態路由和動態路由

那么,是誰又是怎樣制作和管理路由控制表的呢?路由控制分靜態"和動態"兩種型別,

靜態路由是指事先設定好路由器和主機中并將路由資訊固定的一種方法,而動態路由是指讓路由協議在運行程序中自動地設定路由控制資訊的一種方法,這些方法都有它們各自的利弊,

不論是靜態路由還是靜態路由,不要只使用其中一種,可以將它們組合起來使用,

動態路由的基礎

動態路由如圖所示,會給相鄰路由器發送自己已知的網路連接資訊,而這些資訊又像接力一樣依次傳遞給其他路由器,直至整個網路都了解時,路由控制表也就制作完成了,而此時也就可以正確轉發IP 資料包了,

7.2 路由控制范圍

隨著IP網路的發展,想要對所有網路統一管理是不可能的事,因此,人們根據路由控制的范圍使用IGP和EGP兩種型別的路由協議,

接入互聯網的各種組織機構

互聯網連接著世界各地的組織機構,不僅包括語言不相通的,甚至包括宗教信仰全然不同的組織,沒有管理者,也沒有被管理者,每個組織之間保持著平等的關系,

自治系統與路由協議

企業內部網路的管理方針,往往由該企業組織內部自行決定,

制定自己的路由策略,并以此為準在一個或多個網路群體中采用的最小單位叫做自治系統或路由選擇域,

自治系統(路由選擇城)內部動態路由采用的協議是域內路由協議,即ICP 而自治系統之間的路由控制采用的是域間路由協議,即ECP,

IGP和EGP

如前面述,路由協議大致分為兩大類,一類是外部網關協設 ECP ,另一類是內部網關協議ICP( Interar Catewy Protocol ).

IP 地址分為網路部分和主機部分,它們有各自的分功, EGP 與 IGP 的關系與 IP 地址網路部分和主機部分的關系有相似之處,就像根據 IP 地址中的網路部分在網路之間進行路由選擇、根據主機部分在鏈路內部進行主機識朋一樣,可以欖然 ECP 在區域網絡之間(或ISP之間)進行路由選擇,也可以模據 ICP 在區域網繪內部(或 ISP內部)進行主機識別,

由此,路由協議被分為 EGP 和 IGP 兩個層次,沒有 ECP 就不可能有世界上各個不同組織機構之間的通信,沒有IGP機構內都也就不可能進行通信,

7.3 路由演算法

路由控制由各種各樣的演算法,其中最具代表性的有兩種,是距離向量演算法鏈路狀態演算法

距離向量演算法

距離向量演算法是根據距離和方向決定目標網路或主機位置的一種方法,

路由器之間可以互換目標網路的方向及其距離的相關資訊,并以這些資訊基礎制作路由控制表,這種方法在處理上比較簡單,不過由于只有距離和方向的資訊,所以當網路構造變得分外復雜時,在獲得穩定的路由資訊之前需要消耗一定時間,也極易發生路由回圈等問題,

鏈路狀態演算法

鏈路狀態演算法是路由器在了解了網路整體連接狀態的基礎上生成路由控制表的一種方法,該方法中,每個路由器必須保持同樣的資訊才能進行正確的路由選擇,

主要路由協議
下面還有幾種路由協議,

7.4 RIP

RIP是距離向量型的一種路由協議,廣泛用于LAN,

廣播路由控制資訊

RIP將路由控制資訊定期(30秒一次)向全網廣播,如果沒有收到路由控制資訊,連接就會被斷開,不過,這有可能是由于丟包導致的,因此 RIP 規定等待5次,如果等了6次(180秒)仍未收到路由資訊,才會真正關閉連接,

根據距離向量確定路由

RIP 基于距離向量演算法決定陪經,距離( Metnes )的單位為“跳數”,跳數是指所經過的路由器的個數, RIP 希望盡可能少通過路由器將資料包轉發到目標 IP 地址,如下圖所示,根據距離向量生成距離向量表,再抽出較小的路由生收最終的路由控制表,

RIP2

RIP2是RIP第二版,與第一版作業機制基本相同,不過有如下幾個新的特點,

使用多播

RIP 中當路由器之間交換路由資訊時采用廣播的形式,然而在RIP2中改用了多播,這樣不僅減少了網路的流量,還縮小了對無關主機的影響,

支持子網掩碼

與 OSPF 類似的,RIP2支持在其交換的路由資訊中加人子網掩碼資訊,

路由選擇域

與OSPF的區域類似,在同一個網路中可以使用邏輯上獨立的多個 RIP ,

外部路由標志

通常用于把從 BGP 等獲得的路由控制資訊通過 RIP 傳遞給 AS 內,

身份驗證密鑰

與OSPF一樣,RIP包中擲帶密碼,只有在自己能夠識別這個密碼時才接收資料,否則忽略這個RIP包,

7.5 OSPF

OSPF ( Open Shortest Path First )是根據 OSI 的IS-IS協議而提出的一種鏈路狀態型路由協議,由于采用鏈路狀態型別,所以即使網路中有環路,也能夠進行穩定的路由控制,

另外, OSPF 支持子網掩碼,由此,曾經在 RIP 中無法實作的可變長度子網構造的網路路由控制成為現實,

甚至為了減少網路流量, OSPF 還引人了“區域”這一概念,區域是將一個自治網路劃分為若干個更小的范圍,由此,可以減少路由協議之間不必要的交換,

OSPF可以針對 IP 首部中的區分服務(T0s)欄位,生成多個路由控制表,不過,也會出現已經實作了 OSPF 功能的路由器無法支持這個TOS的情況,

OSPF是鏈路狀態型路由協議

OSPF為鏈路狀態型路由器,路由器之間交換鏈路狀態生成網路拓撲資訊,然后再根據這個拓撲資訊生成路由控制表,

RIP的路由選擇,要求途中所經過的路由器個數越少越好,與之相比,OSPF可以給每條鏈路賦予一個權重,并選擇一個權重最小的路徑作為最終路由,

OSPF基礎知識

OSPF中,把連接到同一個鏈路的路由器稱作相鄰路由器,簡單的網路結構中,相鄰路由器之間可以交換路由資訊,但再復雜到達網路中,是確定一個制定路由器,并以它為中心交換路由資訊即可,

在OSPF中,根據作用的不同可以分為5種型別的包,

OSPF作業原理概述

OSPF種進行連接確認端協議叫做HELLO協議,

LAN 中每10秒發送一個HELLO包,如果沒有HELLO包到達,則進行連接是否斷開的判斷,具體為,允許空等3次,直到第4次(40秒后)仍無任何反應就認為連接已經斷開,之后在進行連接斷開或恢復連續操作時,由于鏈路狀態發生了變化,路由器會發送一個鏈路狀態更新包通知其他路由器網路狀態的變化,

鏈路狀態通知包所要傳達的訊息大致分為兩類:一是網路鏈路狀態通告,二是路由器鏈路狀態通告,

將區域分層化進行細分管理

鏈路狀態型路由協議的潛在問題在于,當網路規模越來越大時,表示鏈路狀態的拓撲資料庫就變得越來越大,路由控制資訊的計算也就越困難,OSPF為了減少計算負荷,引人了區域的概念,

區域是指連接在一起的網路和主機劃分為小組,使一個自治系統內可以擁有多個區域,不過具有多個區域的自治系統必須要有一個主干區域,并且所有其他區域必須都與這個主干系統相連接,

連接區域與主干區城的路由器稱作區域邊界路由器;而區域內部的路由器叫做內部路由器;只與主干區域內連接的路由器叫做主干路由器;與外部相連接的路由器就是 AS邊界路由器,

每個區域內的路由器都持有本區域網路拓撲的資料庫,至于區域之外的路徑資訊,只能從區域邊界路由器那里獲取他們的距離,

只了解區域內部的鏈路狀態資訊,減輕了處理的負擔,

此外,作為區域出口的區域邊界路由器若只有一個的話叫做末端區域(如圖區域2),末端區域內不需要發送區域外的路由資訊,它的區域邊界路由器(在本圖中為路由器 E )將成為默認路徑傳送路由資訊即可,因此,由于不需要了解到達其他各個網路的距離,所以它可以減少一定地路由資訊,

要想在OSPF中構造一個穩定的網路,物理設計和區域設計同樣重要,如果區域設計不合理,就有可能無法充分發揮 OSPF 的優勢,

7.6 BGP

邊界網關協議是連接不同組織機構的一種協議,

BGP與AS號

在RIP和OSPF中利用IP的網路地址進行著路由控制,然而BGP則需要放眼整個互聯網互聯網進行路由控制,BGP的最終路由控制表由網路地址和下一戰的路由器組來表示,不過它會根據所要經過的AS個數進行路由控制,

ISP,區域網路等會將每個網路編制成一個個自治系統進行控制,它們為每個自治系統分配一個16位元的AS編號,BGP就是根據這個編號進行相應的路由控制,

BGP是路徑向量協議

根據 BCP 交換路由控制資訊的路由器叫做 BCP 揚聲器, BcP 揚聲器為了在 AS 之間交換 BCP 資訊,必須與所有 AS 建立對等的 BCP 連接,此外,如下圖中的自治系統AS2、AS4、AS5,它們在同一個 AS 內部有多個 BCP 揚聲器,在這種情況下,為了使 AS 內部也可以交換 BCP 資訊,就需要建立 BCP 連接,

7.7 MPLS

現在,在轉發IP資料包的程序中除了使用路由技術外,還在使用標記交換技術,路由技術基于 IP 地址中最長匹配原則進行轉發,

標記交換則對每個 IP 包都設定一個叫做“標記”的值,然后根據這個“標記”再進行轉發,記交換技術中最具代表性的當屬多協議標記交換技術,即 MPIS

MPLS的網路基本動作(建議看看,P249

MPLS 網路中實作 MPLS 功能的路由器叫做標記交換路由器( LSR ),特別是與外部網路連接的那部分 LSR 叫做標記邊緣路由器( LER ), MPLS 正是在 LER 上對資料包進行追加標記和洗掉標記的操作,

MPLS的優點

MPLS的優勢可歸納為兩點.第一是轉發速度快,第二在于利用標記生成虛擬的路徑,并在它的上面實作IP等資料包的通信,

8.應用協議

8.1 應用層協議概要

之前介紹的主要是指OSI參考模型的下半部分,從本章開始介紹OSI上半部分,

應用協議的定義

利用網路的應用程式有很多,包括 Web 瀏覽器、電子郵件、遠程登錄、檔案傳輸、網路管理等,能夠讓這些應用進行特定通信處理的正是應用協議,

TCP 和 IP 等下層協議是不依賴于上層應用型別、適用性非常廣的協議,而應用協議則是為了實作某種應用而設計和創造的協議,

應用協議與協議的分層

網路應用由不同的用戶和軟體供應商開發而成,為了實作網路應用的功能,在應用之間進行通信時將其連接的網路協議是非常重要的”,設計師和開發人員根據所開發模塊的功能和目的,可以利用現有的應用協議,也可以自己定義一個新的應用協議,

應用可以直接享用傳輸層以下的基礎部分,因為開發者只要關心選用哪種應用協議、如何開發即可,而不必擔心應用中的資料該以何種方式發送到目標主機等問題,這也是得益于網路層的功勞,

相當于OSI中第5,第6,第7層的協議

8.2 遠程登陸

遠程登陸是為了實作TSS(分時系統:分時是指多個用戶分享使用同一臺計算機)環境,將終端和主機相連,

從自己的本機計算機登錄到網路另一端的應用就叫遠程登陸,

TELNET

TELNET 利用 TCP 的一條連接,通過這一條連接向主機發送文字命令并在主機上執行,本地用戶好像直接與遠端主機內部的 Shell 相連著似的,直接在本地進行操作,

TELNET 可以分為兩類基本服務,一是仿真終端功能,二是協商選項機制

通過TELNET登陸主機或路由器等設備時需要將自己的登陸用戶名和密碼注冊到服務端,

選項

TELNET中除了處理用戶所輸入的文字外,還提供選項的互動和協商功能,

下圖是TELNET中的行模式或透明模式,

SSH

SSH是加密的遠程登陸系統,

SSH還包括很多非常方便的功能,

可以使用更強的認證機制,

可以轉發檔案,

可以使用埠轉發功能,

埠轉發是指將特定埠號所收到的訊息轉發到特定的 IP 地址和埠號碼的一種機制,由于經過 SSH 連接的那部分內容被加密,確保了資訊安全,提供了更為靈活的通信,

8.3 檔案傳輸

FTP是在兩個相連的計算機之間進行檔案傳輸時使用的協議,FTP中也需要在登錄到對方對方的計算機后才能進行相應的操作,

FTP的作業機制概要

:FTP如何實作檔案傳輸呢?

:它使用兩條TCP連接:一條用來控制,另一條用于資料的傳輸,

8.4 電子郵件

電子郵件顧名思義就是網路上的郵政,

電子郵件的作業機制

提供電子郵件的協議加做SMTP,SMTP為了實作高效發送郵件內容,在傳輸層使用了TCP協議,

為了避免對方因未插電而無法接收郵件,引進了一種一直會連接電源的郵件服務器,

郵件地址

使用電子郵件時需要擁有的地址叫做郵件地址,互聯網中電子郵件地址的格式如下:

名稱@通信地址

MIME

很長一段時間里,電子郵件只能處理文本格式的郵件,有了MIME就可以發送動態影像,影片,聲音,程式等各種各樣的資料

SMTP

SMTP是發送電子郵件的協議,它使用的是TCP的25號埠,客戶端以文本的形式發出請求,服務端回傳一個3位數字的應答,

每個指令和應答的最后都必須追加換行指令,

POP

之前講到SMTP是發送郵件的協議,起初這種機制沒有任何問題,但后來個人電腦連接互聯網的環境中就出現了問題,個人電腦不可能長時間處于開機狀態,人們希望一開機就能接收到郵件,但SMTP沒有這種處理機制,

為了解決這個問題,就引入了POP協議,

如圖所示,該協議是一種用于接收電子郵件的協議,發送端的郵件根據 SMTP 協議將被轉發給一直處于插電狀態的 PoP 服務器,客戶端再根據 POP 協議從 PoP 服務器接收對方發來的郵件,在這個程序中,為了防止他人盜竊郵件內容,還要進行用戶驗證,

IMAP

IMAP 與 POP 類似,也是接收電子郵件的協議,在 POP 中郵件由客戶端進行管理,而在 IMAP 中郵件則由服務器進行管理,

有了 IMAP 人們就可以通過個人電腦、公司的電腦、筆記本電腦以及智能手機等連接到 IMAP 服務器以后進行收發郵件,由此,在公司下載的電子郵件就不必在筆記本電腦和智能手機上轉來轉去, IMAP 確實為使用多種異構終端的人們提供了非常便利的環境,

8.5 WWW

互聯網的蓬勃發展

萬維網(www)是將互聯網中的資訊以超文本形式呈現的系統,可以顯示WWW資訊的客戶端軟體叫做Web游覽器,借助游覽器,人們不需要考慮該資訊保存在哪個服務器,只需要輕輕點擊滑鼠就可以訪問頁面上的鏈接并打開相關資訊,

很多公司的主頁形式如下:

http://www.公司名稱.co.jp/

www基本概念

www 定義了3個重要的概念,它們分別是訪問資訊的手段與位置( URI )、資訊的表現形式( HTML )以及資訊轉發( HTTP )等操作,

URI

用于標識資源,是一種可以用于WWW之外的高效的識別碼,它被用于主頁地址,電子郵件,電話號碼等各種組合中,URL屬于一般主頁地址,

HTML

HTMP 是記述 Web 頁的一種語言(資料格式),它可以指定瀏覽器中顯示的文字、文字的大小和顏色,此外,不僅可以對影像或影片進行相關設定,還可以設定音頻內容,

HTML 具有純文本的功能,在頁面中不僅可以為文字或影像附加鏈接,當用戶點擊那些鏈接時還可以呈現該鏈接所指示的內容,因此它可以將整個互聯網中任何一個 WWW 服務器中的資訊以鏈接的方式展現,絕大多數互聯網中的 Web 頁,都以鏈接的形式指向關聯的其他資訊,

逐一點開這些鏈接就可以了解全世界的資訊, HTML 也可以說是 www 通用的資料表現協議,

HTTP

當用戶在瀏覽器的地址欄里輸人所要訪問 Web 頁的 URI 以后, HTTP 的處理即會開始, HTTP 中默認使用80埠,它的作業機制,首先是客戶端向服務器的80埠建立一個 TCP 連接,然后在這個 TCP 連接上進行請求和應答以及資料報文的發送,

HTTP常用的有兩個版本,一個是HTTP1.0,另一個是HTTP1.1,從1.1開始允許在一個TCP連接上發送多個命令和應答,

8.6 網路管理

SNMP

以前,網路管理都是憑借管理員的記憶和直覺進行,而隨著網路規模的擴大,需要一個嚴密的管理工具或方法顯得格外重要,TCP/IP使用SNMP收集必要的協議,

SNMP中管理端叫做管理器,被管理端叫做代理,

SNMPv3中將“訊息處理”、“用戶安全”和“訪問控制”三部分分開考慮,可以為每一個部選擇各自必要的機制,

訊息處理中如果選擇了SNMPv2的模型,那么會進行以下8種操作,它們分別是:查詢請求,上次要求的下一個資訊的查詢請求(GetNexiRequest-PDU)、應答、設定請求、批量查詢請求(CetBulkRequest-PDU)、向其他管理器發送資訊通知(InformRequest-PDU)、事件通知、用管理系統定義的命令(Report-PDU)等操作,

MIB

SNMP 中互動的資訊是 MIB ( Management Information Base ), MIB 是在樹形結構的資料庫中為每個專案附加編號的一種資訊結構,

MIB 相當于 SNMP 的表示層,它是一種能夠在網路上傳輸的結構, SNMP 中可以將 MIB 值寫人代理,也可以從代理中讀取 MIB 值,通過這些操作可以收集沖突的次數和流量統計等資訊,可以修改介面的 IP 地址,還可以進行路由器的啟停、設備的啟動和關閉等處理,

RMON

RMON 是 Remote Monitoring MIB 的縮寫, MIB 由監控網路中某個設備介面(某個點)的眾多引數構成,相比之下, RMON 則由監控網路上線路的眾多引數構成,

RMON 中可監控的資訊從原來的一個點擴展到了一條線上,這樣可以更高效率地監控網路,可監控的內容上也增加了很多從用戶角度看極為有意義的資訊,如網路流量統計等,

8.7 其他應用層協議

隨著互聯網范圍的擴大,被用于電視電話會議,現場轉播等領域,

多媒體通信實作技術

互聯網電話和電話會議非常注重系統的即時性,因此采用UDP(更高效),

然而,只使用 UDP 還不足以達到進行實時多媒體通信的目的,例如,在互聯網電視電話議會中需要提供查詢對方號碼模擬電話機的撥號以及以什么形式互動資料等功能,為此,需要一個叫做“呼叫控制”的支持,呼叫控制主要采用 H .323與 SIP 協議,此外,還需要 RTP 協議(結合多媒體資料本身的特性進行傳輸的一種協議)和壓縮技術(在網路上傳輸音頻、視頻等大型多媒體資料時進行壓縮)的支持,

H.323

H .323是由 mTU 開發用于在 IP 網上傳輸音頻、視頻的一種協議,起初,它主要是作為接入ISDN 網和IP網之上的電話網為目的的一種規范而被提出的,H323定義了4個主要組件,它們分別是終端(用戶終端)、網關(吸收用戶資料壓縮順序的不一致性)、網閘(電話本管理、呼叫管理)以及多點控制單元(允許多個終端同時使用),

SIP

SIP提出要晚于H.323,但被普遍認為更適合互聯網,相比下SIP的構成簡單了許多,

通過終端之間收發訊息,可以令 SIP 進行呼叫控制并做一些多媒體通信中必要的準備,不過僅憑 SIP 對資料收發的準備作業還不足以進行多媒體資料的傳輸, SIP 訊息通常都由終端進行直接處理,但是也有在服務器上進行處理的情況,由于 SIP 非常相似于 HTTP 的作業機制,不僅在 VoIP ,在其他應用當中也已經被廣泛使用,

主要SIP命令

RTP

UDP 不是一種可靠性傳輸協議,因此采用 UDP 實作實時的多媒體通信需要附加一個表示報文順序的序列號欄位,還需要對報文發送時間進行管理,這些正是 RTP (Real-Time Protocol )的主要職責 RTP 為每個報文附加時間戳和序列號,

資料壓縮技術

通過有效的壓縮可以大量減少音頻和視頻資料的大小,在有限的網絡資源中進行多媒體資料的傳輸,壓縮技術成為一個必要的手段,


P2P

互聯網電子郵件的通信,通常是1對N的通信形式,

與之不同,網路上的終端或主機不經服務器直接1對1相互通信的情況叫做P2P,

LDAP

LDAP ( Lightweight Directory Access Protocol )是訪問目錄服務的一種協議,也叫輕量級目錄訪問協議,所謂“目錄服務”是指網路上存在的一種提供相關資源的資料庫的服務,這里的目錄也有地址簿的意思,可以認為目錄服務就是管理網路上資源的一種服務,

LDAP 定義了目錄樹的結構、數需格式、命名規則、目錄訪問順序和安全認證,

圖列出了 LDNP 設定的一般結構,

圖則為單純目錄樹的例子,

大公司中,用戶和設備數量龐大,為了讓用戶能夠使用計算機或某個應用,有必要事先進行可否使用計算機或應用的設定,

此時如果這些設備和應用應對了 LDAP 并在一個可以進行統一管理的 LDAP 服務器中注冊了所有用戶,那么就可以對這些用戶是否有效進行判斷, LDAP 常被用于這一類的認證管理和資源管理中,

9.網路安全

9.1 TCP/IP與網路安全

起初,TCP/IP只用于一個相對封閉的環境,

隨著互聯網的普及,發生了很多非法訪問,惡意攻擊等問題,影響了企業和個人的利益,由此,網路安全逐漸成為人們不可忽視的一個重要內容,

“便利性”和“安全性”作為兩個對立的特性進行兼容,為了安全,需要犧牲部分便利,

9.2 網路安全構成要素

網路安全最基本要領是要有預備方案,強調事前制定對策,而不是事后處理,

在此,我們針對每一個要素進行介紹,

防火墻

組織機構內部的網路和互聯網相連時,為了避免域內收到非法訪問的威脅,往往會設定防火墻,

下圖中是一個設定防火墻的例子,對路由器設定了只向其發送特定地址和埠號的包,

IDS(入侵檢測系統)

資料包符合安全策略,防火墻才會讓其通過,但只要與策略相符,就無法判斷當前訪問是否非法訪問,所以全部允許通過,

而IDS正是檢查這種已經侵入內部網路進行非法訪問的情況,并及時通知給網路管理員的系統,

反病毒/個人防火墻

反病毒和個人防火墻是繼IDS和防火墻之后的另外兩種安全對策,它們往往是用戶使用的計算機或服務器上運行的軟體,

既可以監控計算機中進出的所有包,資料和檔案,也可以防止對計算機的例外操作和病毒入侵,

9.3 加密技識訓礎

一般情況下,網頁訪問、電子郵件等互聯網上流動的資料不會被加密,另外,互聯網中這些資料經由哪些路徑傳輸也不是使用者可以預知的內容,因此,通常無法避免這些資訊會泄露給第三方,

為了防止這種資訊的泄露、實作機密資料的傳輸,出現了各種各樣的加密技術,加密技術分布與 OSI 參考模型的各個階層一樣,相互協同保證通信,

對稱密碼體制與公鑰密碼體制

加密是指利用某個值(密鑰)對明文的資料通過一定的演算法變換成加密(密文)資料的程序,它的逆反程序叫做解密,

加密和解密使用相同的密鑰叫做對稱加密方式,反之,如果在加密和解密程序中分別使用不同的密鑰則叫做公鑰加密方式

對稱加密方式包括 AES ( Advanced Encryption Standard )、 DES ( Data Encryptior Sandasd )等加密標準,而公鑰加密方法中包括 RSA 、 DH (Difie-Helman)、橢圓曲線等加密演算法,

身份認證技術

在實施安全對策時,有必要驗證使用者的正確性和真實性,如果不是正當的使用者要拒絕其訪問,為此,需要資料加密的同時還要有認證技術,

認證可以分為如下幾類

根據所知道的資訊進行認證

指使用密碼或私有代碼(私有識別瑪)的方式,為了不讓密碼丟失或不被輕易推測出來,用戶自己需要多加防范,使用公鑰加密方式進行的數字認還,就需要驗證是否持有私鑰,

根據所擁有的資訊進行驗證

據所擁有的資訊進行認證指利用 ID 卡、密鑰、電子證書、電話號碼等資訊的方式,在移動手機互聯網中就是利用手機號碼成終端資訊進行權限認證,

根據獨一無二的體態特征進行認證

指根據指紋、視網膜等個人特有的生物特征進行認證的方式,

從認證級別和成本效益的角度考慮,一般會綜合上述3種方式的情況更為普遍,另外,還有一種集合各種終端、服務器和應用的認證于一起進行綜合管理的技術叫做 IDM ( IDentity Managrment ),

9.4 安全協議

IPsec與VPN

以前,為了防止資訊泄焦,對機密資料的傳輸一般不使用互聯網等公共網路( Publie Nctvork ),而是使用由專線連接的私有網路( Paivate Network ),從而在物理上杜絕了竊聽和篡改資料的可能,然而,專線的造價太高是一個不可回避的問題,

為了解決此類問題,人們想出了在互聯網上構造一個虛擬的私有網路VPN ( Virtual Private Network ,虛擬專用網),互聯網中采用加密和認證技術可以達到“即使讀取到資料也無法讀慌”、“檢查是否被篡改”等功效, VPN 正是一種利用這兩種技術打造的網路,

在構建 VPN 時,最常被使用的是 IPsec ,它是指在 IP 首部的后面追加“封裝安全有效載荷”和“認證首部”,從而對此后的資料進行加密,不被盜取者輕易解讀,

TLS/SSL與HTTPS

現在有很多互聯網應用已經逐漸進人人們的生活,例如網上購物、網上訂車票、訂飛機票或預訂演出票等,在這些系統的支付程序中經常會涉及信用卡網上支付,而網上銀行系統還備要用戶直接在網上輸人賬號和密碼,

而信用卡卡號、銀行賬號、密碼都屬于個人的機密資訊,因此,在網路上傳輸這些資訊時有必要對它們進行加密處理, Web 中可以通過 TLS/SSL 對 HTTP 通信進行加密,使用 TLS / SSL 的 HTTP 通信叫做 HTTPS 通信, HTTPS 中采用對稱加密方式,而在發送其公共密鑰時采用的則是公鑰加密方式,

確認公鑰是否正確主要使用認證中心簽發的正護士,而主要的認證中心的資訊已經嵌入到游覽器的出廠設定中,

IEEE802.1X

IEEE802. 1X 是為了能夠接入 LAN 交換機和無線 LAN 接人點而對用戶進行認證的技術,并且它只允許被認可的設備才能訪問網路,雖然它是一個提供資料鏤路層控制的規范,但是與 TCP / IP 關系緊密,一般,由客戶端終端、 AP (無線基站)或2層交換機以及認證服務器組成,

10.關于本博客

本博客是博主閱讀《圖解TCP/IP》(第五版)后為了加深理解,也覺得能讓一些朋友快速看完此書的關鍵內容,就有了這篇博客,到發表的時候,擔心有一些問題,如果有問題,麻煩聯系博主,大家多多交流,

參考

《圖解TCP/IP》 【日】竹下隆史 村山公保 荒井透 苅田幸雄 著 烏尼日其其格 譯

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/335514.html

標籤:其他

上一篇:計算機網路面經——計算機網路詳細知識點

下一篇:【C++從0到1】新手都能看懂的C++入門(下篇)類入門,建議收藏!!!

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more