1. 程式人生 > >計算機網路(讀書筆記)

計算機網路(讀書筆記)

基本概念

三網:電信網路有線電視網路計算機網路
ISP(因特網服務提供者):主幹ISP地區ISP本地ISP
IXP( Internet eXchange Point)英特網交換點
計算機之間的通訊:主機A的某個程序和主機B上的另一個程序進行通訊。

OIS的七層協議:

應用層、表示層、會話層、運輸層、網路層、資料鏈路層、物理層。

TCP/IP協議應用層(各種應用層協議如TELNET,FTP,SMTP等)、運輸層(TCP或者UDP)、網際層IP網路介面層。由上至下。

五層協議應用層運輸層網路層資料鏈路層物理層

第一章 物理層

特性:機械特性、電氣特性、功能特性、過程特性。
資料通訊系統:源系統(或傳送端、傳送方)、傳輸系統(或傳輸網路)和目的系統(或接受端、接受方)

源系統:

  • 源點:源點裝置產生要傳輸的資料。源點又稱為源站或者信源
  • 傳送器:通常,源點生成的數字位元流要通過傳送器編碼後才能夠在傳輸系統進行傳輸。典型的傳送器就是調製器。現在很多PC實用內建的調變解調器。

目的系統:

  • 接收器:接受傳輸系統傳送過來的訊號,並把它轉換為能夠被目的裝置處理的資訊。典型的接收器就是解調器,它把來自傳輸路線上的模擬訊號進行解調,提取出在傳送端置入的資訊,還原出發送端產生的數字位元流。
  • 終點:終點裝置從接收器獲取傳送來的數字位元流,然後把資訊輸出。終點又稱目的站,或信宿。

訊號:模擬訊號(連續訊號)、數字訊號(離散訊號)
通訊方式:單向通訊(單工通訊)、雙向交替通訊(半雙工通訊)、雙向同時通訊(雙全工通訊)
夏農公式

:通道的極限資訊傳輸速率C為:

    C=B log2(1+S/N)

式中:B是通道頻寬(赫茲),S是訊號功率(瓦),N是噪聲功率(瓦)。該式即為著名的夏農公式,顯然,通道容量與通道頻寬成正比,同時還取決於系統信噪比以及編碼技術種類夏農定理指出,如果資訊源的資訊速率R小於或者等於通道容量C,那麼,在理論上存在一種方法可使資訊源的輸出能夠以任意小的差錯概率通過通道傳輸。該定理還指出:如果R>C,則沒有任何辦法傳遞這樣的資訊,或者說傳遞這樣的二進位制資訊的差錯率為1/2。
通道的頻寬或通道中的信噪比越大,資訊的極限傳輸速率就越高。

物理層下面的傳輸媒體
傳輸媒體可分為兩大類:導引型傳輸媒體

(有線傳輸銅線或者光纖)和非導引型傳輸媒體(自由空間,無線傳輸)

第二章 資料鏈路層

資料鏈路層使用通道種類:點對點通道、廣播通道
鏈路:從一個結點到相鄰結點的一段物理路線(有線或無線),而中間沒有任何其他的交換點。
資料鏈路:當在一條線路上傳輸資料時,除了必須有一條物理路外,還必須有一些必要的通訊協議來控制這些資料的傳輸。把實現這些協議的硬體和軟體加到鏈路上就構成了資料鏈路。現在最常用的是使用網路介面卡來實現這些協議。
:點通道的資料鏈路層的協議資料單元。
資料鏈路層把網路層交下來的資料構成幀傳送到鏈路上,以及把接收到的幀中的資料取出來並上交給網路層。在因特網中,網路協議資料單元就是IP資料報(簡稱資料報、分組或包)。
資料鏈路層三個基本問題:
封裝成幀透明傳輸差錯檢測

  • 封裝成幀就是在一段資料的前後分別新增首部和尾部,這樣就構成了一個幀。首部和尾部的一個重要作用就是進行幀定界(確定幀的界限)。幀定界可以使用特殊的幀定界符。幀開始字元SOH,幀結束字元EOT
  • 透明傳輸當傳送的幀是文字檔案組成的幀時。其資料部分不會出現SOH和EOT這樣的幀定界控制字元。不管從鍵盤上輸入什麼字元都能傳輸過去,這樣的傳輸就是透明傳輸。“透明”某一個實際存在的事物看起來是好像不存在一樣。為了解決不透明問題在接收端的資料鏈路層吧資料送網路層之前刪除這個插入的轉義字元,這種方法稱為位元組填充或字元填充。
  • 差錯檢測位元傳輸過程中可能會出現差錯,1可能會變成0,0可能會變成1.這就叫做位元差錯。在一段時間內傳輸錯誤的位元佔所傳輸位元總數的比率稱為誤位元速率。目前在資料鏈路層廣泛使用了迴圈冗餘檢測CRC( Cyclic Redundancy Check)的檢錯技術。CRC運算就是在資料M後面新增供差錯檢測用的n位冗餘碼。為了檢錯而新增的冗餘碼常稱為幀檢驗序列FCS(Frame Check Sequence).在CRC檢測的基礎上增加幀編號、確認、重傳機制

點對點協議PPP(高階資料鏈路控制HDLC)

1.PPP協議滿足的需求

(1)簡單
(2)封裝成幀
(3)透明性
(4)多種網路層協議 在同一物理鏈路上同事支援多種網路協議
(5)多種型別的鏈路
(6)差錯檢測
(7)檢測連結狀態
(8)最大傳送單元
(9)網路層地址協商
(10)資料壓縮協議

2.PPP協議的組成

(1)一個將IP資料報封裝到序列鏈路的方法。PPP既支援非同步鏈路(無奇偶檢測的8位元資料),也支援面向位元的同步鏈路。IP資料報在平PPP幀中就是其資訊部分。這個資訊部分的長度受最大傳送單元MTU的限制。
(2)一個用來建立、配置和測試資料鏈路的鏈路控制協議LCP
(3)一套網路控制協議NCP,其中的每一個協議支援不同的網路層協議,如IP、OSI的網路層。。。。
PPP幀首部和尾部分別為四個欄位和兩個欄位

3.PPP協議的工作狀態

鏈路的傳送響應:
(1)配置確認幀(Configure-Ack):所有的選項都接受。
(2)配置否認幀(Configure-Nak):所有選項都理解但是不接受。
(3)配置拒絕幀(Configure-Reject):選項有的無法識別或不能接受,需要協商。
口令鑑別協議PAP(Password Authentication Protocol).口令握手鑑別協議CHAP(Challenge-Handshake Authentication Protocol).

4.使用廣播通道的資料鏈路層

1.區域網的資料鏈路層

星形網、環形網、匯流排網。
共享通道分為兩種:
(1)靜態劃分通道
(2)動態媒體接入控制,又稱為多點接入。

  • 隨機接入 所有的使用者可隨機的傳送資訊
  • 受控接入 使用者不能隨機的傳送資訊必須服從一定的控制。

2.CSMA/CD協議

CSMA/CD協議的要點。:

  • 多點接入
  • 載波監聽 不管在傳送前,還是傳送中,每個站都必須不停的檢測通道。

電磁波在1km電纜的傳播時延約為5us
一個站不可能同時進行傳送和接受(但必須邊傳送邊監聽通道)。因此使用CSMA/CD協議的乙太網不可能進行全雙工通訊而只能進行雙向交替通訊(半雙工通訊)。
乙太網使用截斷二進位制指數退避演算法來確定碰撞後重傳的時機。
凡是長度小於64位元組的幀都是由於衝突而異常終止的無效幀。乙太網還規定了幀間最小間隔為9.6us,相當於96位元時間。

5.使用廣播通道的乙太網

1.使用集線器的星型拓撲

集線器:在星形拓撲的中心增加了一種可靠性非常高的裝置。
集線器的特點:
(1)使用集線器的乙太網在邏輯上仍是一個匯流排網,個站共享邏輯上的匯流排,使用的還是CSMA/CD協議。網路中的各佔必須競爭對傳輸媒體的控制,並且在同一時刻至多隻允許一個站傳送資料。
(2)一個集線器有很多介面,一個集線器就像一個多介面的轉發器。
(3)集線器工作在物理層,他的每個介面僅僅簡單地轉發位元~~接收到1就轉發1,就到到0就轉發0,不進行碰撞檢測。
(4)集線器採用了專門的晶片,進行自適應串音回波抵消。這樣就可以使介面轉發出去的較強訊號不致對該介面接收到的較弱的訊號產生干擾。

2.乙太網的MAC層

(1)MAC層的硬體地址
實際上就是介面卡地址或介面卡識別符號
發往本站的幀:單播(unicast)幀(一對一),即受到的幀的MAC地址與本站硬體地址相同。
廣播(broadcast)幀(一對全體),即傳送給本區域網上所有站點的幀。
多播(multicast)幀(一對多),即傳送給本區域網上一部分站點的幀。

第三章 網路層

3.1網路層提供的兩種服務

網路層提供的服務:
(1)虛電路服務。(2)數資料報服務
(網路層向上只提供簡單靈活的、無連線的、盡最大努力交付的資料報服務)**

3.2網際協議IP

與IP協議配套使用的三個協議:

  • 地址解析協議ARP(Address Resolution Protocol)
  • 網際控制報文協議ICMP(Internet Control Protocol)
  • 網際組管理協議IGMP(Internet Group Management Protocol)

網路連線的中間裝置:

  • 物理層使用的中間裝置轉發器(repeater
  • 資料鏈路層使用的中間裝置網橋或橋接器(bridge
  • 網路層使用的中間裝置路由器(router
    *在網路層以上使用的中間裝置叫閘道器(gateway

3.3IP地址

IP地址就是給因特網上的每一個主機(或路由器)的每一個介面分配一個在全世界範圍唯一的32位識別符號。IP地址由因特網名字和數字分配機構ICANN(Internet Corporation for Assigned Names and Numbers)進行分配。
IP地址的編址方法三個階段:

  • 分類的IP地址 就是將IP地址劃分為若干個固定類,每一類地址都由兩個固定長度的欄位組成,其中第一個欄位是網路號(net-id),它標誌主機(或路由器)所連線到的網路。網路號必須是唯一的。第二個欄位是主機號(host-id),它標誌該主機(或路由器)
  • 子網的劃分
  • 構成超網

                IP地址 ::{<網路號>,<主機號>}
    

    IP地址並不僅僅指明一個主機,而是還指明瞭主機所連線到的網路。

IP地址的特點:

  • 每一個IP地址都是由網路號和主機號組成。IP地址是一個分等級的地址結構。第一,IP地址管理機構在分配IP地址時只分配網路號(第一級),剩下的主機號(第二級)由得到該網路號的單位自行分配。第二,路由器僅根據目的主機所連線的網路號轉發分組,這樣就可以使路由器表中的專案數大幅度減少,從而減少了路由表所佔的儲存空間以及查詢路由表的時間。
  • 實際上IP地址是標誌一個主機和一條鏈路的介面。當一個主機同時連線到兩個網路上時,該主機就必須同時具有兩個相應的IP地址,其網路號必須是不同的。這種主機稱為多歸屬主機。由於一個路由器至少連線到兩個網路,因此一個路由器至少應當有兩個不同的IP地址。
  • 用轉發器或網橋連線起來的若干個區域網仍為一個網路
  • 在IP地址中,所有分配到的網路號的網路都是平等的。

實體地址是資料鏈路層和物理層使用的地址,IP地址是網路層和以上各層使用的地址,是一種邏輯地址。IP地址放在IP資料報的首部,硬體地址放在MAC幀的首部。
(1)在IP層抽象的網際網路上只能看到IP資料報。
(2)雖然在IP資料報首部有源站IP地址,但路由器只根據目的站的IP地址的網路號進行路由選擇。
(3)在區域網的鏈路層,只能看到MAC幀。
(4)皮層抽象的網際網路遮蔽了下層複雜的細節,使用統一的、抽象的IP地址研究主機和主機或者路由器之間的通訊。

IP資料報首部的固定部分中的各欄位

  • 版本 佔4位,IP協議的版本。
  • 首部長度 佔4位,可表示最大十進位制數值是15.
  • 區分服務 佔8位,用來獲得更好的服務
  • 總長度 總長度欄位為16位

在IP層下面的每一種資料鏈路層協議都規定了一個數據幀中的資料欄位的最大長度,這稱為最大傳送單元MTU。

  • 標識 佔16位
  • 標誌 佔3位,標誌欄位中的最低位記為MF(More Fragment)。MF = 1 表示後面“還有分片”的資料報。MF= 0 表示這已經是資料報中的最後一個。標誌欄位中間的一位記為DF(Don’t Fragment),意思“不能分片”,只有當DF = 0時才允許分片。
  • 片偏移 佔13位,片偏移指出:較長的分組在分片後,某片在原分組中的相對位置。片偏移一8個位元組為偏移單位,每個分片的長度一定是8位元組的整數倍。
  • 生存時間 佔8位,TTL(Time To Life),資料報在網路中的壽命。
  • 協議 佔8位,表示資料報使用何種協議。
  • 首部檢驗和 佔16位,檢驗資料報的首部,不包括資料部分。
  • 源地址 佔32位
  • 目的地址 佔32位

3.4劃分子網和構造超網

1.劃分子網

(1)從兩級IP地址到三級IP地址

           IP地址::={<網路號>,<子網號>,<主機號>}

(2)子網掩碼

從IP資料報的首部無法看出源主機或目的主機所連線的網路是否進行子網的劃分。32位的IP地址本身以及資料報的首部都沒有包含任何有關子網劃分的資訊。所以使用子網掩碼(subnet mask).
使用子網掩碼的好處:不管網路有沒有子網,只要把子網掩碼和IP地址進行逐位的“與”運算(AND),就能立即得出網路地址來。這樣在路由器處理到來的分組是就可以採用同樣的演算法。
(現在因特網的標準規定:所有的網路必須使用子網掩碼,路由表中也必須有子網掩碼這一欄。如果不劃分子網掩碼,使用預設子網掩碼。)
A類地址的預設子網掩碼是255.0.0.0,或0xFF000000;
B類地址的預設子網掩碼是255.255.0.0,或0xFFFF0000;
C類地址的預設子網掩碼是255.255.255.0,或0xFFFFFF00;
子網掩碼是一個網路或一個子網的重要屬性。劃分子網增加了靈活性,但卻減少了能夠連線在網路上的總計數。

2.使用子網時分組轉發

路由表必須包含三項內容:目的網路地址、子網掩碼和下一跳地址。

3.無分類編址CIDR(構成超網)

1網路字首

無分類域路由選擇CIDR(Classless Inter-Domain Routing)
CIRD特點:
(1)CIDR消除了傳統的A類、B類、C類地址以及劃分子網的概念,可以更加有效的分配IPv4的地址空間。使用“網路字首”,從三級變回無分類的兩級編址。

                IP地址::={<網路字首>,<主機號>}

CIDR還使用“斜線記法”,在IP地址後面增加“/”,然後寫上網路字首所佔的位數。
(2)CIDR把網路字首都相同的連續的IP地址組成一個“CIDR地址塊”。我們只要知道CIDR地址塊中的任何一個地址,就可以知道之歌地址塊的起始地址(最小地址)和最大地址,以及地址塊中的地址樹。(斜線記法中,斜線後面的數字就是地址掩碼中1的個數)
由於一個CIDR地址塊中有很多地址,所以在路由表中就利用CIDR地址塊來查詢目的網路。這種地址的聚合常稱為路由聚合。路由聚合也稱構成超網。
網路字首越短,其地址塊所包含的地址數就越多。而在三級結構的IP地址中,劃分子網是使網路字首邊長。

2最長字首匹配

網路字首,應當從匹配結果中選擇具有最長網路字首的路由,叫做最長字首匹配。

3使用二叉線索查詢路由表(為了提高二叉線索的查詢速度,使用壓縮技術)

3.5網際控制報文協議ICMP

1.ICMP報文種類有兩種,ICMP差錯報告報文和ICMP詢問報文

ICMP差錯報告報文:

  • 終點不可達 當路由器或主機不能交付資料報時就向源點發送終點不可達報文。
  • 源點抑制 當路由器或主機由於擁塞而丟棄資料報時,就向源點抑制報文,使源點知道應當把資料報的傳送速率放慢
  • 時間超長 當路由器接收到生存時間為0的資料報時,除了丟棄資料報外,還要向源點發送時間超過報文。
  • 引數問題 當路由器或目的主機收到的資料報的首部中有的欄位的值不正確時,就該丟棄該資料報,並向源點發送引數問題報文。
  • 改變路由(重定向) 路由器把改變路由報文傳送給主機,讓主機知道下次應將資料報傳送給另外的路由器

ICMP詢問報文:

  • 回送請求和回答 ICMP回送請求報文是由主機或路由器向一個特定的目的主機發出的詢問。收到此報文的主機必須給源主機或路由器傳送ICMP回送回答報文。
  • 時間戳請求和回答 ICMP時間戳請求報文是請某個主機或路由器回答當前的日期和時間。

3.6因特網的路由器選擇協議

1.理想的路由演算法

(1)演算法必須是正確的和完整的。
(2)演算法應能適應通訊量和網路拓撲的變化。
(3)演算法在計算上應簡單。
(4)演算法應具有穩定性。
(5)演算法應是公平的。
(6)演算法應是最佳的。“最佳”只能是相對於某一種特定要求得出的較為合理的選擇而已。

2.分層次的路由選擇協議

因特網將整個網際網路劃分為許多較小的自治系統(autonomous system),記為AS。一個AS對其他AS表現出的是一個單一和一致的路由選擇策略。
在目前的因特網中,一個大的ISP就是一個自治系統。因特網把路由選擇協議劃分為兩類:

  • 內部閘道器協議IGP(Interior Gateway Protocol) 在一個自治系統內部使用的路由選擇協議,與在網際網路中的其他自治系統選用什麼路由選擇協議無關。如RIP和OSPF協議。
  • 外部閘道器協議EGP(External Gateway Protocol) 若源主機和目的主機處在不同的自治系統中(這兩個自治系統可能使用不同的內部閘道器協議)。當資料報傳到一個自治系統的邊界時,就需要使用一種協議將路由選擇資訊傳遞到另一個自治系統中。

    自治系統之間的路由選擇也叫域間路由選擇(interdomain routing),而在自治系統內部的路由選擇叫做域內路由選擇(intradomain routing)

內部閘道器協議RIP

2.1工作原理

RIP(Routing Information Protocol)是內部閘道器協議中最先的到廣泛使用的協議,叫路由資訊協議。RIP是一種分散式的基於距離向量的路由選擇協議,最大特點就是簡單。
RIP協議“距離”:從一路由器到直接連線的網路的距離定義為1.從一路由器到非直接連線的網路的距離定義為所經過的路由器數加1.
RIP協議的“距離”也成為“跳數”(hop count),因為每經過一個路由器,跳數就加1。RIP認為好的路由就是通過的路由器的數目少,即距離短。RIP允許一條路徑最多隻能包含15個路由器。RIP只適用於小型網際網路。
RIP協議的特點:

  • 僅和相鄰路由器交換資訊。
  • 路由器交換的資訊是當前本路由所知道的全部資訊,即自己的路由表。
  • 按固定的時間間隔交換路由資訊

路由表中最重要的資訊就是:到某個網路的距離最短,下一跳地址。路由表更新的原則是找出到每個目的網路的最短距離。這種更新叫做距離向量演算法。

2.2距離向量演算法

(1)對地址X的路由器發來的RIP報文,每一個專案都有三個關鍵資料:到目的網路N,距離d,下一跳路由器是X。
(2)對修改後的RIP報文中的每一個專案,進行以下步驟:
若原來的路由表沒有目的網路N,則把該專案新增到路由表中,若下一跳路由器地址是X,則把收到的專案替換原路由表中的專案,若收到的專案中的距離d小於路由表中的距離,則進行更新。
(3)若3分鐘黑沒有收到響鈴路由器的更新路由表,則把此距離路由器記為不可達的路由器,即把距離置為16.
(4)返回。距離向量演算法的基礎就是Bellman-Ford演算法(或Ford-Fullkerson演算法):設X是結點A到B的最短路徑上的一個結點。若把路徑A->B拆成兩段路徑A->X和X->B,則每一段也都是最短路徑。

2.3RIP協議的報文格式


RIP報文由首部和路由部分組成。路由標記填入自治系統號ASN(Autonomous System Number),這是考慮使RIP有可能受到本自治系統以外的路由選擇資訊。再後面指出某個網路地址、該網路的子網掩碼、下一跳路由器地址以及到此網路的距離。一個RIP保溫最多可包括25個路由,RIP報文最大長度4+20*25=504位元組.
RIP存在一個問題是當網路出現故障時,要經過比較常的時間才能將此資訊傳送到所有的路由器。這一特點叫做:好訊息傳播得快,而壞訊息傳播得慢。

內部閘道器協議OSPF

2.4OSPF(Open Shortest First)開放最短路徑優先。

它只是一個協議名字,並不表示其他的路由選擇協議不是“最短路徑優先”。OSPF最主要的特徵就是使用分散式的鏈路狀態協議(link state protocol),OSPF有三個要點:
(1)向本自治系統中所有路由器傳送資訊。使用洪泛法(flooding),路由器通過所有輸出埠向所有相鄰的路由器傳送資訊。
(2)傳送的資訊就是與本路由器相鄰的所有路由器的鏈路狀態,但這只是路由器所知道的部分資訊。鏈路狀態就是說明本路由器都和那些路由器相鄰,以及該鏈路的“度量”(metric)。用來表示費用、距離、時延、頻寬、等等。
(3)只有當鏈路狀態發生變化時,路由器才向所有路由器用洪泛法傳送資訊。
OSPF特點:
(1)OSPF允許管理員給每條路由指派不同的代價。OSPF對於不同型別的業務可計算出不同的路由。
(2)若果到同一個目的網路有多條相同代價的路徑,那麼可以將同信量分配給這幾條路徑,這叫做路徑間的負載均衡。
(3)所有在OSPF路由器之間交換的分組,都具有鑑別的功能。
(4)OSPF支援可變長度的子網劃分和無分類的編址CIDR.
(5)由於網路中的鏈路狀態可能經常發生變化,因此OSPF讓每一個鏈路狀態都帶上一個32位的序號,序號越大狀態就越新。

2.5OSPF的五種分組型別

  • 問候(hello)分組,用來發現和維持鄰站的可達性。
  • 資料庫描述(database description)分組,向鄰站給出自己的鏈路狀態資料庫中的所有鏈路狀態專案的摘要資訊。
  • 鏈路狀態請求(link state request)分組,向對方請求傳送某些鏈路狀態專案的詳細資訊。
  • 鏈路狀態更新(link state update)分組,用洪泛法對全網更新鏈路狀態。
  • 鏈路狀態確認(link state acknowledgment)分組,對鏈路更新分組的確認。

外部閘道器協議BGP

BGP採用了路徑向量(path vector)路由選擇協議。BGP協議交換路由資訊的結點數量級是自治系統個數的量級。
BGP-4的四種報文:
(1)open(開啟)報文,用來與相鄰的另一個BGP發言人建立關係,使通訊初始化。版本(1位元組)、本自治系統號(2位元組)、保持時間(2位元組)、BGP識別符號(4位元組)、可選引數長度(1位元組)、可選引數。
(2)update(更新)報文,用來通告某一路由的資訊,以及列出要撤銷的多條路由。不可行路由長度(2位元組)、撤消的路由、路徑屬性總長度(2位元組)、路徑屬性、網路層可達性資訊NLRI
(3)keeplive(保活)報文,用來週期性地證實鄰站的連通性。只有BGP的19位元組長通用首部。
(4)notification(通知)報文,用來發送檢測到的差錯。差錯程式碼(1位元組)、差錯子程式碼(1位元組)、差錯資料

3.7路由器的構成

1路由器的結構

這裡寫圖片描述
路由器可以劃分兩大部分:路由選擇部分和分組轉發部分
路由選擇部分也叫控制部分,核心構件是路由選擇處理機;分組轉發部分由三部分組成:交換結構一組輸入埠一組輸出埠

2.交換結構

通過儲存器、通過匯流排、通過互連網路

3.8 IP多播

1.IP多播的基本概念

能夠執行多播協議的路由器稱為多播路由器(multicast router)。在因特網上進行多播就叫做IP多播。IP多播所傳送的分組需要使用多播IP地址。多播地址只能用於目的地址,而不能用於源地址。224.0.1.0至238.255.255.255 全球範圍都可使用的多播地址。
IP多播分為兩種。一種是隻在區域網上進行硬體多播,另一種則是在因特網的範圍進行多播。

2.網際組管理協議IGMP和多播路由選擇協議

(1)IP多播需要兩種協議

多播轉發必須動態地適應多播組成員的變化(這時網路拓撲並未發生變化)。多播路由器在轉發多播資料報時,不能僅僅根據多播資料報中的目的地址,而是還要考慮這個多播資料報從什麼地方來和要到什麼地方去。
多播資料報可以由沒有加入多播組的主機發出,也可以通過沒有組成成員接入的網路。

(2)網際組管理協議IGMP

IGMP工作分兩個階段:
第一階段:當某個主機加入新的多播組時,該主機應向多播組的多播地址傳送一個IGMP報文,宣告自己要成為該組的成員。本地的多播路由器收到IGMP報文後,還要利用多播路由選擇協議把這種組成員關係轉發給因特網上的其他多播路由器。
第二階段:組成員關係使動態的。本地多播路由器要週期性地探詢本地區域網上的主機,以便知道這些主機是否還基礎是組成員。只要有一個主機對某個組響應,那麼多播路由器就認為這個組是活躍的。如果沒有響應,認為本網路的主機已經離開這個組,就會轉發給其他多播路由器。

(3)多播路由選擇協議

多播路由選擇實際上就是要找出以源主機為根節點的多播轉發樹。
轉發多播報時使用了以下三種方法:

  • 洪泛與剪除 採用反向路徑廣播RPB(reverse path broadcasting)的策略。RPB的要點是:每一個路由器在收到一個多播資料報時,先檢查資料報是否從源點經最短路徑傳送來的。如果在多播轉發樹上的某個路由器發現它下游樹枝已經沒有該多播組的成員,就贏把它和下游的樹枝一起剪除。
  • 隧道技術 隧道技術適用於多播組的位置在地理上很分散的情況。
  • 基於核心的發現技術

下面是一些建議使用的多播路由選擇協議:
距離向量多播路由選擇協議DVMRP
基於核心的轉發樹CBT
開放最短通路優先的多播擴充套件MOSPF
協議無關多播-密集方式PIM-DM

3.9虛擬專用網VPN和網路地址轉換NAT

1.虛擬專用網VPN

在因特網中的所有路由器,對目的地址是專用地址的資料報一律不進行轉發
利用公用的因特網作為機構專用網之間的通訊載體,這樣的專用網又稱為虛擬專用網VPN(virtual private network)。所有通過因特網傳送的資料都必須加密。

2.網路地址轉換NAT

NAT(network address translation)。使用埠號的NAT也叫網路地址與埠號轉換NAPT(network address and port translation)

第四章 運輸層

4.1運輸層協議概述

4.1.1程序之間的通訊

運輸層向它上面的應用層提供通訊服務,兩個主機進行通訊就是兩個主機中的應用程序相互通訊。通訊的真正端點並不是主機而是主機中的程序。端到端的通訊是應用程序之間的通訊。運輸層有一個重要功能:複用(multiplexing)分用(demultiplexing)
複用指在傳送方不同的應用程序都可以使用同一個運輸層協議傳送資料;分用指接收方的運輸層在剝去報文的首部後能夠把這些資料正確交付目的應用程序。
運輸層為相互通訊的應用程序提供了邏輯通訊

網路層是為主機之間提供邏輯通訊,而運輸層為應用程序之間提供端到端的邏輯通訊。運輸層還要對收到的報文進行檢測。根據應用程式的不同需求,運輸層需要有兩種不同的運輸協議,即面向連線的TCP和無連線的UDP。運輸層向高層使用者遮蔽了下面網路核心的細節(如網路拓撲、所採用的路由選擇協議等),它使應用程序看見的就是好像在兩個運輸層實體之間有一條端到端的邏輯通訊通道,但這條邏輯通道對上層的變現卻因運輸層使用的不同協議而又很大的差別。當運輸層採用面向連線的TCP協議時,儘管下面的網路是不可靠的,但這種邏輯通訊通道就相當於一條全雙工的可靠通道。但當運輸層採用無連線UDP協議時,這種邏輯通訊通道任然是一條不可靠通道。
運輸層協議和網路層協議的主要區別

4.1.2運輸層的兩個主要協議

TCP/IP運輸層的兩個主要協議:

(1)使用者資料報協議UDP(user datagram protocol)

(2)傳輸控制協議TCP(transmission control protocol)

這裡寫圖片描述
按照OSI術語,兩個對等運輸實體在通訊時傳送的資料單位叫做運輸協議資料單元TPDU(transport protocol data unit);在TCP/IP協議中稱為TCP報文段或UDP使用者資料報。UDP在傳送資料之前不需要先建立連線。TCP則提供面向連線的服務。
這裡寫圖片描述

4.1.3運輸層的埠

運輸層的複用和分用功能類似。應用程所有的應用程序都可以通過運輸層再傳到IP層(網路層),這就是複用。運輸層從IP層收到資料後必須交付致命的應用程序,這就是分用。
在協議棧層間的抽象的協議埠是軟體埠,軟體埠是應用層的各種協議程序與運輸實體進行層間互動的一種地址。
TCP/IP使用源埠和目的埠兩個重要欄位,用一個16位埠號來標誌一個埠。
運輸層埠號分為兩大類:
(1)伺服器端使用的埠號

  • 熟知埠號(well-known port number)或系統埠號
    這裡寫圖片描述
  • 登記埠號

(2)客戶端使用的埠號

4.2使用者資料報協議UDP

4.2.1UDP概述

UDP主要特點:
(1)UDP是無連線的,傳送資料之前不需要建立連線,減少了開銷和傳送資料之前的時延。
(2)UDP使用盡最大努力交付
(3)UDP是面向報文的
(4)UDP沒有擁塞控制,因此網路出現的擁塞不會使源主機的傳送速率降低。
(5)UDP支援一對一、一對多、多對一和多對多的互動同信。
(6)UDP的首部開銷小,只有8位元組,TCP20位元組。

4.2.2UDP的首部格式

這裡寫圖片描述
IP資料報的檢驗和檢驗IP資料報的首部,UDP檢驗和是把首部和資料部分一起都檢驗的。

4.3傳輸控制協議TCP

4.3.1TCP主要特點

(1)TCP是面向連線的運輸層協議。
(2)每一條TCP連線只能有兩個端點(endpoint),每一條TCP連線只能點對點的。
(3)TCP提供可靠的交付。通過TCP連線傳送的資料,無差錯、不丟失、不重複、並且按序到達。
(4)TCP提供全雙工通訊。
(5)面向位元組流。TCP中的“流”指的是流入到程序或者從程序流出的位元組序列。

4.3.2TCP連線

套接字 socket = (IP地址:埠號)
每一條TCP連線唯一地被通訊兩端的兩個端點(兩個套接字)所確定。

    TCP連線::={socket1,socket2} = {(IP1:port1),(IP2:port2)}

4.4可靠傳輸的工作原理

4.4.1停止等待協議

全雙工通訊的雙發即使傳送方也是接收方。
(1)無差錯情況
這裡寫圖片描述
(2)出現差錯
上圖(b)在傳輸過程中出現差錯的情況。
(3)確認丟失和確認遲到
這裡寫圖片描述
使用確認和重傳機制,可實現在不可靠的傳輸網路上實現可靠的通訊。
(4)通道利用率
這裡寫圖片描述

4.4.2連續ARQ協議

這裡寫圖片描述

4.5報文段的首部格式

這裡寫圖片描述

4.6TCP可靠傳輸的實現

第一,快取空間和序號空間都是有限的,並且都是迴圈使用的。第二,由於實際快取或視窗中的位元組數是非常之大的,因此無法再圖中把一個個位元組的位置標註清楚。
這裡寫圖片描述

傳送快取用來暫時存放:
(1)傳送應用程式傳送給傳送發TCP準備傳送的資料;
(2)TCP已傳送出但尚未收到的確認的資料。
接受快取用來暫時存放:
(1)按序到達的、但尚未被接受應用程式讀取的資料;
(2)未按序到達的資料。
TCP採用了一種自適應演算法,它記錄一個報文段發出的時間,以及收到相應的確認的時間。這兩個時間之差就是報文段的往返時間RTT。TCP保留了RTT的一個加權平均往返時間RTTs(又稱為平滑的往返時間)。

    新的RTTs = (1-α) * (舊的RTTs)+α * (新的RTT樣本)

上式中,0≦α<1。
超時計時設定的超時重傳時間RTO應略大於上面得出的甲醛平均往返時間RTTs。

      RTO = RTTs +4 * RTTd               (RTO是RTT的偏差的加權平均值)
      新的RTTd=(1-β)*(舊的RTTd)+β*|RTTs-新的RTT樣本|          (β的推薦值是0.25)

在計算加權平均RTTs時,只要報文段重傳了,就不採用其往返時間樣本。這樣的出的加權平均RTTs和RTO就比較準備。
選擇確認SACK(selective ACK)

4.7TCP的流量控制

流量控制(flow control)就是讓傳送方的傳送率不要太快,要讓接受方來得及接收。利用滑動視窗機制可以很方便地在TCP連線上實現對傳送方的流量控制。傳送方的傳送視窗不能超過接收方給出的接收視窗的數值。TCP的視窗單位是位元組,不是報文段。

4.8TCP的擁塞控制

擁塞控制就是防止過多的資料注入到網路中,這樣可以使網路中的路由器或鏈路器不致過載。擁塞控制多要做的都有一個前提,就是網路能夠承受現有的網路負荷。擁塞控制是一個全域性性的過程,涉及到所有的主機、多有的路由器,以及與降低網路傳輸效能有關的所有因素。相反,流量控制旺旺指點對點通訊量的控制,是個端到端的問題。流量控制所要做的就是抑制傳送端傳送資料的速率,以便使接收端來得及接收。
這裡寫圖片描述
圖中橫座標是提供的負載(offered load),代表單位時間內輸入給網路的分組數目。因此提供的負載也稱為輸入負載或網路負載。縱座標是吞吐量(throughput),代表單位時間從網路輸入的負載數目。擁塞控制可分為開環控制和閉環控制兩種方法。開環控制方法就是在涉及網路時實現將有關發生擁塞的因素考慮周到,力求網路在工作時不產生擁塞。
閉環控制是基於反饋環路的概念。以下是閉環控制的具體措施:
(1)檢測網路系統以便檢測到擁塞在何時、何處發生。
(2)把擁塞發生的資訊傳送到可採取行動的地方。
(3)調整網路系統的執行以解決出現的問題。

幾種擁塞控制方法:
慢開始(slow-start)、擁塞避免(congestion avoidance)、快重傳(fast retransmit)和快恢復(fast recovery)
1.慢開始和擁塞避免
傳送方維持一個叫做擁塞視窗(congestion window)的狀態變數。擁塞視窗的大小取決於網路的擁塞程度,並且動態地在變化。傳送方讓自己的傳送視窗等於擁塞視窗。
這裡寫圖片描述
慢開始演算法的思路是:先探測一下,由小到大逐漸增大發送視窗,也就是說由小到大逐漸增大擁塞視窗數值。使用慢開始演算法後,沒經過一個傳輸輪次(transmission round),擁塞視窗cwnd就加倍。
擁塞避免演算法的思路是讓擁塞視窗cwnd緩慢地增加,即每經過一個往返時間RTT就把傳送方的擁塞視窗cwnd加1,而不是加倍。這樣,擁塞視窗cwnd按現行規律緩慢增長,比慢開始演算法的擁塞視窗增長速率緩慢得多。
2.快重傳和快恢復
快重傳演算法首先要求接受方每收到一個失序的報文段後就立即發出重複確認(為的是使傳送方及早知道有報文段沒有到達對方)而不要等待自己傳送資料時才進行確認。
這裡寫圖片描述
快恢復演算法:
(1)當傳送方連續收到三個重複確認時,就執行“乘法減小”演算法,把滿開始門限ssthresh減半。這是為了預防網路發生擁塞。
(2)由於傳送方現在認為網路很可能沒有發生擁塞,因此與慢開始不同之處是現在不執行慢開始演算法,而是把cwnd值設定為慢開始門限ssthresh減半後的數值,然後開始執行擁塞避免演算法(“加法增大”),使擁塞視窗緩慢地線性增大。
這裡寫圖片描述
在採用塊回覆演算法時,慢開始演算法只是在TCP連線建立時和網路出現超時時才能使用。傳送方的傳送視窗一定不能超過對方給出的接收視窗值rwnd.

    傳送方視窗的上限值 = Min[rwnd,cwnd]

當rwnd

4.9 TCP的運輸連線管理

TCP連線的建立
這裡寫圖片描述
A主動開啟連線,B被動開啟連線。
B的TCP伺服器程序先建立傳輸控制塊TCB(transmission control block),準備接受客戶程序的連線請求。然後伺服器程序就處於LISTEN(收聽)狀態,等待客戶的連線請求。如有,即做出響應。
A的TCP客戶程序也是首先穿件傳輸控制模組TCB,然後向B發出連線請求報文段,這時首部中的同部位SYN=1,同時選擇一個初始序號seq=x。TCP規定,SYN報文段(即SYN = 1 的報文段)不能攜帶資料,但要消耗掉一個序號。這時TCP客戶進入SYN-SENT(同步已傳送)狀態。
B收到連線請求報文段後,如同意建議連線,則向A傳送確認。在確認報文段中應把SYN位和ACK位都置1,確認號是ack = x+1 ,同時也為自己選擇一個初始序號seq = y。這個報文段也不能攜帶資料,但要消耗掉一個序號。這時TCP伺服器程序進入SYN-RCVD(同步收到)狀態。
TCP客戶程序收到B的確認後,還要向B給出確認。確認報文段的ACK置1,確認號ack = y + 1,而自己的序號seq = x +1。TCP的標準規定,ACK報文段可以攜帶資料。但如果不攜帶資料則不消耗序號,在這種情況下,下一個資料報文段的序號仍為seq = x+1。這時,TCP連線已經建立,A進入ESTABLISHED(已建立連線)狀態。
當B收到A的確認後,也進入ESTABLISHED狀態。
這種連線過程叫做三次握手(three-way handshake)

TCP的連線釋放
這裡寫圖片描述
TCP的有限狀態機
這裡寫圖片描述

第五章 應用層

5.1 域名系統DNS

5.1.1 域名系統概述

域名系統DNS(domain name system)是因特網使用的命名系統,用來把便於人們使用的機器的名字轉換為IP地址。域名系統其實就是名字系統。

5.1.2 因特網的域名結構

任何一個連線在因特網上的主機或者路由器,都是有一個唯一的層次結構的名字,即域名(domain name)。域可以分為頂級域、二級域、三級域等等。DNS規定,域名中的標號都是有英文字母和數字組成,每一個標號不超過63個字元(為了方便記憶最好不要超過12個字元),也不區分大小寫字母。標號中除連字元(-)外不能使用其他的標點符號。級別最低的域名寫在最左邊,而級別最高的頂級域名則寫在左右邊。由多個標號組成的完整域總共不超過255個字元。
頂級域名分為三大類:
(1)國家頂級域名nTLD。如cn,us,uk….
(2)通用頂級域名gTLD。如com,net,org……
(3)基礎結構域名(infrastructure domain):這種域名只有一個,即arpa,用於反向域名解析,因此又稱為反向域名。
域名伺服器:
(1)根域名伺服器(root name server)
(2)頂級域名伺服器TLD
(3)許可權域名伺服器
(4)本地域名伺服器(local name server)
域名的解析過程:
(1)主機向本地域名伺服器的查詢一般都採用遞迴查詢(recursive query)。
(2)本地域名伺服器向根域名伺服器的查詢通常是採用迭代查詢(iterative query)。
這裡寫圖片描述

5.2 檔案傳送協議

5.2.1 FTP

檔案傳送協議FTP(file transfer protocol)是英特網上使用得最廣泛的檔案傳送協議。
網路檔案系統NFS,允許應用程序開啟一個遠地檔案,並能在該檔案的某一個特定的位置上開始讀寫資料。

5.2.2 TFTP

簡單檔案傳送協議TFTP(trivial file transfer protocol)。有兩個優點:
(1)TFTP可用於UDP環境。
(2)TFTP程式碼所佔記憶體較小。這對較小的計算機或某些特殊用途的裝置是很重要的,這些裝置不需要硬碟,只需要固化TFTP和UDP以及IP的小容量只讀儲存器即可。
TFTP主要特點:
(1)每次傳送的資料報文中有512位元組的資料,但最後一次可不足512位元組。
(2)資料報文按序編號,從1開始。
(3)支援ASCⅡ碼或二進位制傳送。
(4)可對檔案進行讀或寫。
(5)使用簡單地首部。

5.3 遠端終端協議TELNET

TELNET又稱為終端模擬協議。它定義了資料和命令應怎樣通過因特網,這些定義就是所謂的網路虛擬終端NVT(network virtual terminal)。所有的通訊都是用8位一個位元組,在運轉時,NVT使用7位ASCⅡ碼傳送資料,而當高位置1時用作控制命令。

5.4 全球資訊網WWW

 全球資訊網是一個大規模、聯機式的資訊儲藏所。全球資訊網是一個分散式的超媒體(hypermedia)系統,它是超文本系統的擴充。全球資訊網以客戶-伺服器方式工作。客戶程式向伺服器程式傳送請求,伺服器程式向客戶程式發回客戶所要的全球資訊網文件。全球資訊網使用統一資源定位符URL(uniform resource locator)來標誌全球資訊網上的各種文件。使用超文字傳送協議HTTP實現互動。http是一個應用層協議,它使用TCP連線進行可靠的傳送。使用超文字標記語言HTML顯示全球資訊網文件。

1.http的操作過程
http是面向事務的應用層協議,http協議是無狀態的。全球資訊網的工作過程如下圖:
這裡寫圖片描述
全球資訊網的工作過程
2.代理伺服器
代理伺服器(proxy server)是一種網路實體,又稱為全球資訊網快取記憶體(web cache)。
3.http的報文結構

http有兩類報文:
(1)請求報文–從客戶向伺服器傳送請求報文。
(2)響應報文–從伺服器到客戶的回答。
(a)請求報文
(b)響應報文
http請求報文和響應報文都是由三部分組成:
(1)開始行,用於區分是請求報文還是響應報文。在請求報文中的開始行叫做請求行,而在響應報文中的開始行叫做狀態行。在開始行的三個欄位之間都可以空格隔開,最後的“CR”和“LF”分別代表回車和換行。
(2)首部行,用來說明瀏覽器、伺服器或報文主體的一些資訊。首部行可以有好幾行,但也可以不使用。整個首部行結束時,還有一空行將首部行和後面的實體主體分開。
(3)實體主體,在請求報文中一般不用這個欄位,而在響應報文中也可能沒有這個欄位。

請求報文的主要特點:請求報文的第一行“請求行”只有三個內容,即方法,請求資源的URL,以及http的版本。
響應報文的主要特點:響應報文的第一行就是狀態行。包含三個內容,http版本,狀態碼,以及解釋狀態碼的簡單短語。

郵件系統
一個電子郵件系統有三個主要組成構件:使用者代理、郵件伺服器,以及郵件協議(包括郵件傳送協議,如SMTP,郵件讀取協議,如POP3)。使用者代理和郵件伺服器都要執行這兩種協議。

簡單網路管理協議SNMP
(1)SNMP本身,負責讀取和改變代理中的物件名及其狀態數值。
(2)管理資訊結構SMI,定義命名物件和定義物件型別的通用規則,以及把物件和物件的值進行編碼的基本編碼規則BER。
(3)管理資訊庫MIB,在管理的試題中穿件了命名物件,並規定其型別。

第六章 網路安全

6.1 網路安全問題概述

6.1.1計算機網路面臨的安全威脅

計算機網路面臨兩大類威脅:被動攻擊主動攻擊
1.被動攻擊
指攻擊者從網路上竊聽他人的通訊內容。通常把這類攻擊稱為截獲。在被動攻擊中,攻擊者只是觀察和分析某一個協議資料單元PUD而不干擾資訊流。這種攻擊又稱為流量分析。
2.主動攻擊
(1)篡改 攻擊者故意篡改網路上傳送的報文。
(2)惡意程式 計算機病毒、計算機蠕蟲、特洛伊木馬、邏輯炸彈
(3)拒絕服務DoS 指攻擊者向因特網上的某個伺服器不停地傳送大量分組,是因特網或伺服器無法提供正常服務。若因特網上的成百上千的網站集中攻擊一個網站,則稱為分散式拒絕服務DDoS,或網路頻寬攻擊或連通性攻擊。

6.1.2計算機網路安全內容

1.保密性
2.安全協議的設計
3.訪問控制
訪問控制(access control)也叫做存取控制或介入控制。必須對介入網路的許可權加以控制,並規定每個使用者的接入許可權。使用多級安全訪問控制。

6.1.3一般的資料加密模型

這裡寫圖片描述
圖中所示的加密和解密用的金鑰K(key)是一串祕密的字串。在傳送過程中可能出現密文的擷取者。
密碼編碼學是密碼體制的設計學,而密碼分析學則是在未知金鑰的情況下從密文推演出明文或者金鑰的技術。

6.2 兩類密碼體制

6.2.1對成金鑰密碼體制

對成金鑰密碼體制,即加密金鑰與解密金鑰是相同的密碼體制。資料加密標準DES(64位二進位制資料)屬於對稱金鑰密碼體制。DES的保密性取決於對金鑰的保密,而演算法時公開的。在DES之後出現了國際資料加密演算法IDEA(128位金鑰)。

6.2.2公鑰密碼體制

公鑰密碼體制(又稱為公開金鑰密碼體制)。公鑰密碼體制使用不同的加密金鑰與解密金鑰。公鑰密碼體制的產生主要是因為兩個方面的原因,一是由於對稱金鑰密碼體制的金鑰分配問題,二是由於對數字簽名的需求。在公鑰密碼體制中,加密金鑰PK(public key)即公鑰,是想公眾公開的,而解密金鑰SK(即私鑰)是保密的。任何加密方法的俺去眼形取決於金鑰的長度,以及攻破密文所需的計算量,

6.3 數字簽名

數字簽名必須實現的三點功能:
(1)接受者能夠合適傳送者對報文的簽名。叫做報文鑑別。
(2)接受者確信所收到的資料和傳送者傳送的完全一樣而沒有被篡改過。叫做報文的完整性。
(3)傳送者時候不能抵賴對報文的簽名。叫做不可否認。

6.4 鑑別

鑑別是要驗證通訊的對方的卻是自己所要通訊的物件,而不是其他的冒充者。鑑別可分為兩種,一種是報文鑑別,一種是實體鑑別。

6.4.1 報文鑑別

當我們傳送不需要加密的報文時,應當使接受者能用很簡單的方法鑑別報文的真偽。報文摘要MD(message digest)是進行報文鑑別的簡單方法。

6.4.2實體鑑別

實體鑑別是在系統接入的全部持續時間內和自己通訊的對方實體只需驗證一次。

6.5 金鑰分配

金鑰分配採用網內分配方式。

6.6 因特網使用的安全協議

6.6.1網路層安全協議

1.IPsec協議
IPsec協議中有兩個重要的協議:鑑別首部AH(authentication header)協議和封裝安全有效載荷ESP(encapsulation security payload)協議。AH協議提供源點鑑別、資料完整性,但不能保密。ESP協議能提供源點鑑別,資料完整性和保密。
在傳送IPsec資料報之前,在源實體和目的實體之間必須建立一條網路層的邏輯連線,即安全關聯SA(security association)。這樣,IPsec就把傳統的因特網無連線的網路層變為具有邏輯連線的一個層。安全關聯是從源點到終點的單向連線,能夠提供安全服務。
2.IPsec資料報格式
IPsec兩種工作方式:運輸方式(transport mode)、隧道方式(tunnel mode)

6.6.2運輸層安全協議

兩個協議:安全套接字層SSL(secure socket layer)、運輸層安全TLS(transport layer security