計算機網絡基礎-1-概述
計算機網絡基礎-2-物理層
計算機網絡基礎-3-數據鏈路層
網絡層
一、虛電路和數據報
在計算機網絡領域,網絡層應該向運輸層提供怎樣的服務(“面向連接”還是“無連接”)曾引起了長期的爭論。爭論焦點的實質就是:在計算機通信中,
可靠交付應當由誰來負責?是網絡還是端系統。於是就產生了兩種形式:虛電路和數據報。
1.虛電路
觀點:讓網絡負責可靠交付。認為應借助於電信網的成功經驗,讓網絡負責可靠交付,計算機網絡應模仿電信網絡,使用面向連接的通信方式。通信之前應先
建立虛電路,以保證雙方通信所需的一切網絡資源。如果再使用可靠傳輸的網絡協議,就可使所發送的分組無差錯按序到達終點,不丟失、不重復。

2.數據報
互聯網的先驅者提出了一種嶄新的網絡設計思路。網絡層向上只提供簡單靈活的、無連接的、盡最大努力交付的數據報服務。網絡在發送分組時不需要先建立
連接。每一個分組(即IP數據報)獨立發送,與其前后的分組無關(不進行編號)。網絡層不提供服務質量的承諾。即所傳送的分組可能會出錯、丟失、重復和失序(不按
序到達終點),當然也不保證分組傳送的時限。
由於傳輸網絡不提供端到端的可靠性傳輸服務,這就使網絡中的路由器可以做得比較簡單,而且價格低廉(同電信網的交換機比較)。如果主機(即端系統)中的進程
之間的通信需要是可靠的,那么就由網絡的主機中的運輸層負責可靠交付(包括差錯處理、流量控制等)。采用這種設計思路的好處是:網絡的造價大大降低,運行方式
靈活,能夠適應多種應用。互聯網能夠發展到今天的規模,充分證明了當采用這種設計思路的正確性。

3.虛電路和數據報對比

二、網絡層概述
網絡層又稱IP層或網際層,主要作用是為分組轉發選擇合適路由,分組即IP數據報。網絡互連主要靠路由器來完成。
1.直接交付與間接交付

2.網際協議IP及配套協議
網際協議IP是TCP/IP體系中兩個最主要的協議之一。
與IP協議配套使用的還有三個協議:地址解析協議ARP(Address Resolution Protocol)
網際控制報文協議ICMP(Internet Control Message Protocol)
網際組管理協議IGMP(Internet Group Management Protocol)

3.中間設備
將網絡互相連接起來要使用一些中間設備。中間設備又稱為中間系統或中繼系統。有以下五種不同的中間設備:物理層的中繼系統:轉發器
鏈路層的中繼系統:網橋或橋接器
網絡層的中繼系統:路由器
網橋和路由器的混合物:橋路器
網絡層以上的中繼系統:網關
4.虛擬網絡互連
一般所說的網絡互連都是指用路由器進行網絡互連和路由選擇。所謂虛擬互連網絡也就是邏輯互連網絡,它的意思是互連起來的各種物理網絡的異構性
本來是客觀存在的,但是我們利用IP協議就可以使這些性能各異的網絡從客戶看起來好像是一個統一的網絡。使用IP協議的虛擬互連網絡可簡稱為IP網。當
使用虛擬互連網絡的好處是:當互聯網上的主機進行通信時,就好像在一個網絡上通信一樣,而看不見互連的各個具體的網絡異構細節。如果在這種覆蓋全
球的IP網的上層使用TCP協議,那么就是現在的互聯網。

5.從IP層看數據的流動
如果我們只從網絡層考慮問題,那么IP數據報就可以想象是在網絡層中傳送。(協議是水平的)


三、分類的IP地址
IP地址是給每個連接在因特網的主機或路由器分配一個在全世界范圍是唯一的32bit的標識符。IP地址現在由互聯網的名字與數字分配機構ICANN進行分配。
1.點分十進制記法
=>
=>
=> 
2.IP地址的兩個字段
IP地址::={<網絡號>,<主機號>}

3.IP地址的分類


4.IP地址的重要特點
(1)IP地址是一種分等級的地址結構,分兩個等級的好處是:
第一,IP地址管理機構在分配IP地址時只分配網絡號,而剩下的主機號則由得到該網絡號的單位自行分配。這樣就方便了IP地址的管理。
第二,路由器僅根據目的主機所連接的網絡號來轉發分組,不必考慮目的主機號,這樣就可以使路由表中的項目大幅度減少,從而減小了路由表所占存儲空間。
(2)實際上IP地址是標志一個主機或路由器和一條鏈路的接口。
當一個主機同時連接到兩個網絡上時,該主機就必須同時具有兩個相應的IP地址,其網絡號net-id必須是不同的。這種主機稱為多歸屬主機。由於一個路由器
至少應當連接到兩個網絡(這樣它才能將IP數據報從一個網絡轉發到另一個網絡),因此一個路由器至少應當有兩個不同的IP地址。
(3)用轉發器或網橋連接起來的若干個局域網仍為一個網絡,因此這些局域網都具有同樣的網絡號net-id。
(4)所有分配到網絡號net-id的網絡,無論是范圍很小的局域網,還是可能覆蓋很大地理范圍的廣域網,都是平等的。

四、IP層轉發分組的流程
1.路由表
(1)路由表的簡化
假設:有四個A 類網絡通過三個路由器連接在一起。每一個網絡上都可能有成千上萬個主機。可以想像,若按目的主機號來制作路由表,每一個路由表就有
4 萬個項目,即 4 萬行(每一行對應於一台主機),則所得出的路由表就會過於龐大。但若按主機所在的網絡地址來制作路由表,那么每一個路由器中的路由表
就只包含 4 個項目(每一行對應於一個網絡),這樣就可使路由表大大簡化。
(2)路由表的內容

(3)路由表的查找
根據目的網絡地址就能確定下一跳路由器,這樣做的結果是:IP 數據報最終一定可以找到目的主機所在目的網絡上的路由器(可能要通過多次的間接交付)。
只有到達最后一個路由器時,才試圖向目的主機進行直接交付。
(4)特定主機路由
雖然互聯網所有的分組轉發都是基於目的主機所在的網絡,但在大多數情況下都允許有這樣的特例,即為特定的目的主機指明一個路由。采用特定主機路由
可使網絡管理人員能更方便地控制網絡和測試網絡,同時也可在需要考慮某種安全問題時采用這種特定主機路由。實現:將整個主機的IP地址作為網絡號,直接
添加在相關的路由器的路由表中。
(5)默認路由
路由器還可采用默認路由以減少路由表所占用的空間和搜索路由表所用的時間。這種轉發方式在一個網絡只有很少的對外連接時是很有用的。如果一個主機
連接在一個小網絡上,而這個網絡只用一個路由器和互聯網連接,那么在這種情況下使用默認路由是非常合適的。

2.路由器分組轉發算法
(1) 從數據報的首部提取目的主機的 IP 地址 D, 得出目的網絡地址為N。
(2) 若網絡N 與此路由器直接相連,則把數據報直接交付目的主機D;否則是間接交付,執行 (3)。
(3) 若路由表中有目的地址為 D 的特定主機路由,則把數據報傳送給路由表中所指明的下一跳路由器;否則,執行 (4)。
(4) 若路由表中有到達網絡 N 的路由,則把數據報傳送給路由表指明的下一跳路由器;否則,執行 (5)。
(5) 若路由表中有一個默認路由,則把數據報傳送給路由表中所指明的默認路由器;否則,執行 (6)。
(6) 報告轉發分組出錯
3.路由表的注意
(1)路由表沒有給分組指明到某個網絡的完整路徑。
(2)路由表指出,到某個網絡應當先到某個路由器(即下一跳路由器)。
(3)在到達下一跳路由器后,再繼續查找其路由表,知道再下一步應當到哪一個路由器。
(4)這樣一步一步地查找下去,直到最后到達目的網絡。
五、IP數據報格式
(1)一個 IP 數據報由首部和數據兩部分組成。
(2)首部的前一部分是固定長度,共 20 字節,是所有 IP 數據報必須具有的。
(3)首部的后一部分是一些可選字段,其長度是可變的(最大是40字節)。

(4)IP數據報首部字段介紹
版本:占4位,表示當前IP協議的版本。
首部長度:占4位,由於首部包含可變部分,這里表示首部包含多少個字節。(注意:一個數表示4個字節,那么最大為15*4個字節,表示首部長度最大為60個字節)。
區分服務:占8位,用來獲得更好的服務。在舊標准中叫做服務類型,但實際上一直未被使用過。只有在使用區分服務(DiffServ)時,這個字段才起作用。
總長度:占 16 位,指首部和數據之和的長度,單位為字節,因此數據報的最大長度為 65535 字節。總長度必須不超過最大傳送單元 MTU(一般為1500字節)。
標識:占 16 位,它是一個計數器,用來產生 IP 數據報的標識。
標志:占 3 位,目前只有前兩位有意義。標志字段的最低位是 MF (More Fragment)。MF = 1 表示后面“還有分片”。MF =0 表示最后一個分片。
標志字段中間的一位是 DF (Don't Fragment) 。只有當 DF = 0 時才允許分片。
片偏移:占13 位,指出較長的分組在分片后某片在原分組中的相對位置。片偏移以 8 個字節為偏移單位。舉例:


生存時間:占8 位,記為 TTL (Time To Live),指示數據報在網絡中可通過的路由器數的最大值。
協議:占8 位,指出此數據報攜帶的數據使用何種協議,以便目的主機的 IP 層將數據部分上交給那個處理過程

首部檢驗和:占16 位,只檢驗數據報的首部,不檢驗數據部分。這里不采用 CRC 檢驗碼而采用簡單的計算方法,16 位二進制反碼求和算法
源地址或目的地址:占 4 字節
首部中的可變部分:IP 首部的可變部分就是一個選項字段,用來支持排錯、測量以及安全等措施,內容很豐富。
選項字段的長度可變,從 1 個字節到 40 個字節不等,取決於所選擇的項目。
要保證IP首部是4字節對齊的。
增加首部的可變部分是為了增加 IP 數據報的功能,但這同時也使得 IP 數據報的首部長度成為可變的。增加了每一個路由器處理數據報的開銷。
實際上這些選項很少被使用。
六、IP地址和MAC地址

此處Internet地址就是IP地址,物理地址就是MAC地址,為什么一個站點兩個地址?
1.IP地址和MAC地址在分層協議棧中的位置不同

2.IP地址和MAC地址的定義和性質不同
IP地址:IP:( Internet Protocol,網際協議),又被稱為邏輯地址或軟件地址。分為兩個字段
IP 地址 ::= { <網絡號>, <主機號>}
MAC地址:MAC:(Medium Access Control,媒體接入控制)又被稱為物理地址或硬件地址。MAC地址編址由網卡生產商完成
3.
IP地址和MAC地址的作用不同
4.IP地址和MAC地址的轉發變化不同
5.IP地址和MAC地址的獲取方式不同
ARP地址解析協議獲取MAC地址流程:
七、划分子網
1.從兩級IP地址到三級IP地址
在 ARPANET 的早期,IP 地址的設計確實不夠合理:
1) IP 地址空間的利用率有時很低。
2) 給每一個物理網絡分配一個網絡號會使路由表變得太大因而使網絡性能變壞。
3) 兩級的 IP 地址不夠靈活
三級IP地址
從 1985 年起在 IP 地址中又增加了一個“子網號字段”,使兩級的 IP 地址變成為三級的IP 地址。這種做法叫做划分子網 (subnetting) 。
划分子網是互聯網的正式標准協議。
2.划分子網基本思路
划分子網純屬一個單位內部的事情。單位對外仍然表現為沒有划分子網的網絡。從主機號借用若干個位作為子網號 subnetid,而主機號
host-id 也就相應減少了若干個位
凡是從其他網絡發送給本單位某個主機的IP 數據報,仍然是根據 IP 數據報的目的網絡號 net-id,先找到連接在本單位網絡上的路由器。
然后此路由器在收到 IP 數據報后,再按目的網絡號 net-id 和子網號 subnet-id 找到目的子網。最后就將 IP 數據報直接交付目的主機

==》
3.子網掩碼
從一個 IP 數據報的首部並無法判斷源主機或目的主機所連接的網絡是否進行了子網划分。使用子網掩碼 (subnet mask) 可以找出 IP 地址中的子網部分。
規則:
子網掩碼長度 = 32 位
某位 = 1:IP地址中的對應位為網絡號或子網號
某位 = 0:IP地址中的對應位為主機號
默認子網掩碼:
4.使用子網進行分組轉發
在不划分子網的兩級 IP 地址下,從 IP 地址得出網絡地址是個很簡單的事。但在划分子網的情況下,從 IP 地址卻不能唯一地得出網絡地址來,這是因為
網絡地址取決於那個網絡所采用的子網掩碼,但數據報的首部並沒有提供子網掩碼的信息。因此分組轉發的算法也必須做相應的改動。
步驟:
例題:
八、無分類編址
1985年制定的標准——划分子網,由於它的靈活性,在一定程度上緩解了互聯網在發展中遇到的困難。然而在 1992 年因特網仍然面臨三個必須盡早解決的問題,
這就是:B 類地址在 1992 年已分配了近一半,眼看就要在 1994 年 3 月全部分配完畢!互聯網主干網上的路由表中的項目數急劇增長(從幾千個增長到幾萬個)。整
個 IPv4 的地址空間最終將全部耗盡。
1.無分類編址
1987 年,RFC 1009 就指明了在一個划分子網的網絡中可同時使用幾個不同的子網掩碼。使用變長子網掩碼 VLSM (Variable Length SubnetMask)可進一步提高
IP 地址資源的利用率。在 VLSM 的基礎上又進一步研究出無分類編址方法,它的正式名字是
無分類域間路由選擇CIDR (Classless Inter-Domain Routing)。
2.網絡前綴
CIDR 消除了傳統的 A 類、B 類和 C 類地址以及划分子網的概念,因而可以更加有效地分配IPv4 的地址空間。CIDR使用各種長度的“網絡前綴”(networkprefix)來
代替分類地址中的網絡號和子網號。IP 地址從三級編址(使用子網掩碼)又回到了兩級編址。
3.無分類的兩級編址
4.CIDR地址塊
CIDR 把網絡前綴都相同的連續的 IP 地址組成“CIDR 地址塊”。128.14.32.0/20 表示的地址塊共有 2 的12次方個地址(因為斜線后面的 20 是網絡前綴的位數,所
以這個地址的主機號是 12 位)。在不需要指出地址塊的起始地址時,也可將這樣的地址塊簡稱為“/20 地址塊”。全 0 和全 1 的主機號地址一般不使用。
5.路由聚合
一個 CIDR 地址塊可以表示很多地址,這種地址的聚合常稱為路由聚合 , 也 稱 為 構成超網(supernetting),它使得路由表中的一個項目可以表示很多個(例如上
千個)原來傳統分類地址的路由。路由聚合有利於減少路由器之間的路由選擇信息的交換,從而提高了整個互聯網的性能。CIDR 雖然不使用子網了,但仍然使用“掩碼”
這一名詞(但不叫子網掩碼)。例如對於/20地址塊,它的掩碼是20個連續的 1。
6.CIDR記法的其他形式
1)10.0.0.0/10 可簡寫為 10/10,也就是把點分十進制中低位連續的 0 省略。10.0.0.0/10 隱含地指出 IP 地址 10.0.0.0 的掩碼是255.192.0.0。此掩碼可表示為:
2)網絡前綴的后面加一個星號 * 的表示方法,如00001010 00*,在星號 * 之前是網絡前綴,而星號 *表示 IP 地址中的主機號,可以是任意值。
7.最長前綴匹配
使用 CIDR 時,路由表中的每個項目由“網絡前綴”和“下一跳地址”組成。
在查找路由表時可能會得到不止一個匹配結果。應當從匹配結果中選擇具有最長網絡前綴
的路由:最長前綴匹配 (longest-prefix matching),又稱為最長匹配或最佳匹配。網絡前綴越長,其地址塊就越小,因而路由就越具體 (more specific)。
九、報文控制協議ICMP
為了更有效地轉發 IP 數據報和提高交付成功的機會,在網際層使用了網際控制報文協議 ICMP (InternetControl Message Protocol)。ICMP 是互聯網的標准協議。
ICMP 允許主機或路由器報告差錯情況和提供有關異常情況的報告。但 ICMP 不是高層協議(看起來好像是高層協議,因為 ICMP 報文是裝在 IP 數據報中,作為其中
的數據部分),而是 IP 層的協議。
1.ICMP報文格式
2.ICMP報文類型
ICMP 報文的種類有兩種,即 ICMP 差錯報告報文和 ICMP 詢問報文。
差錯報告報文共有 4 種:終點不可達
時間超過
參數問題
改變路由(重定向)(Redirect)
詢問報文有2種:回送請求和回答報文
時間戳請求和回答報文
3.ICMP差錯報文的內容
4.不再發送差錯報告報文的情況
對 ICMP 差錯報告報文不再發送 ICMP 差錯報告報文。
對第一個分片的數據報片的所有后續數據報片都不發送 ICMP 差錯報告報文。
對具有多播地址的數據報都不發送 ICMP 差錯報告報文。
對具有特殊地址(如127.0.0.0 或 0.0.0.0)的數據報不發送 ICMP 差錯報告報文。
5.ICMP應用實例
1)PING (Packet InterNet Groper)
PING 用來測試兩個主機之間的連通性。
PING 使用了 ICMP 回送請求與回送回答報文。
PING 是應用層直接使用網絡層 ICMP 的例子,它沒有通過運輸層的 TCP 或UDP。
2)Traceroute。在 Windows 操作系統中這個命令是 tracert。
用來跟蹤一個分組從源點到終點的路徑。
它利用 IP 數據報中的 TTL 字段和 ICMP 時間超過差錯報告報文實現對從源點到終點的路徑的跟蹤。
十、路由選擇協議RIP
1.理想的路由算法
算法必須是正確的和完整的。
算法在計算上應簡單。
算法應能適應通信量和網絡拓撲的變化,這就是說,要有自適應性。
算法應具有穩定性。
算法應是公平的。
算法應是最佳的。
2.代價
在研究路由選擇時,需要給每一條鏈路指明一定的代價,又叫度量。這里“代價”並不是指“錢”,而是由一個或幾個因素綜合決定的一種度量(metric),如鏈路長度、
數據率、鏈路容量、是否要保密、傳播時延等,甚至還可以是一天中某一個小時內的通信量、結點的緩存被占用的程度、鏈路差錯率等。
3.關於"最佳路由"
不存在一種絕對的最佳路由算法。所謂“最佳”只能是相對於某一種特定要求下得出的較為合理的選擇而已。實際的路由選擇算法,應盡可能接近於理想的算法。路
由選擇是個非常復雜的問題。它是網絡中的所有結點共同協調工作的結果。路由選擇的環境往往是不斷變化的,而這種變化有時無法事先知道。
4.分層次的路由協議
互聯網采用分層次的路由選擇協議。這是因為:
(1) 互聯網的規模非常大。如果讓所有的路由器知道所有的網絡應怎樣到達,則這種路由表將非常大,處理起來也太花時間。而所有這些路由器之間交換路由信息
所需的帶寬就會使互聯網的通信鏈路飽和。
(2) 許多單位不願意外界了解自己單位網絡的布局細節和本部門所采用的路由選擇協議(這屬於本部門內部的事情),但同時還希望連接到互聯網上。
5.自治系統AS(Autonomous System)
自治系統 AS 的定義:在單一的技術管理下的一組路由器,而這些路由器使用一種 AS 內部的路由選擇協議和共同的度量以確定分組在該 AS 內的路由,同時還使
用一種 AS 之間的路由選擇協議用以確定分組在 AS之間的路由。
6.兩大類路由選擇協議
內部網關協議 IGP (Interior Gateway Protocol)
在一個自治系統內部使用的路由選擇協議。目前這類路由選擇協議使用得最多,如 RIP 和OSPF 協議。
外部網關協議 EGP (External Gateway Protocol)
若源站和目的站處在不同的自治系統中,當數據報傳到一個自治系統的邊界時,就需要使用一種協議將路由選擇信息傳遞到另一個自治系統中。這樣的協議就
是外部網關協議 EGP。在外部網關協議中目前使用最多的是 BGP-4。
7.內部網關協議RIP(Routing Information Protocol)
路由信息協議 RIP 是內部網關協議 IGP中最先得到廣泛使用的協議。
RIP 是一種分布式的基於距離向量的路由選擇協議。
RIP 協議要求網絡中的每一個路由器都要維護從它自己到其他每一個目的網絡的距離記錄。
8."距離"的定義
從一路由器到直接連接的網絡的距離定義為 1。
從一個路由器到非直接連接的網絡的距離定義為所經過的路由器數加 1。
RIP 協議中的“距離”也稱為“跳數”(hop count),因為每經過一個路由器,跳數就加 1。
RIP 認為一個好的路由就是它通過的路由器的數目少,即“距離短”。
RIP 允許一條路徑
最多只能包含 15 個路由器。“距離”的最大值為16 時即相當於不可達。可見 RIP 只適用於小型互聯網。
RIP 選擇一個具有最少路由器的路由(即最短路由),哪怕還存在另一條高速(低時延)但路由器較多的路由。
9.RIP協議的三個要點
實現RIP實際就是實現路由信息的交換
僅和相鄰路由器交換信息。
(向誰發)
交換的信息是當前本路由器所知道的全部信息,即自己的路由表。
(發什么)
交換信息的內容(目的網絡,距離,下一跳)
按固定的時間間隔交換路由信息,例如,每隔 30 秒。
(何時發)
10.路由表的建立
1)路由器在剛剛開始工作時,只知道到直接連接的網絡的距離(此距離定義為1)。
2)以后,每一個路由器也只和數目非常有限的相鄰路由器交換並更新路由信息。
3)經過若干次更新后,所有的路由器最終都會知道到達本自治系統中任何一個網絡的最短距離和下一跳路由器的地址。
4)RIP 協議的收斂(convergence)過程較快,收斂即在自治系統中所有的結點都得到正確的路由選擇信息的過程。
11.距離向量算法
收到相鄰路由器(其地址為 X)的一個 RIP 報文:
(1) 先修改此 RIP 報文中的所有項目:將“下一跳”字段中的地址都改為 X,並將所有的“距離”字段的值加 1。
(2) 對修改后的 RIP 報文中的每一個項目,重復以下步驟:
若項目中的目的網絡不在路由表中,則將該項目加到路由表中。否則,
若下一跳字段給出的路由器地址是同樣的,則將收到的項目替換原路由表中的項目。否則,
若收到項目中的距離小於路由表中的距離,則進行更新,否則,
什么也不做
(3) 若 3 分鍾還沒有收到相鄰路由器的更新路由表,則將此相鄰路由器記為不可達的路由器,即將距離置為16(距離為16表示不可達)。
(4) 返回。
12.RIP協議的位置
RIP 協議使用運輸層的用戶數據報 UDP進行傳送(使用 UDP 的端口 520)。
因此
RIP 協議的位置應當在應用層。但
轉發 IP 數據報的過程是在網絡層完成的。
路由器也是一個主機,也是有應用層的,但是在分組轉發過程中只達到網絡層。
13.RIP協議的優缺點
1)RIP 協議最大的優點就是實現簡單,開銷較小。
2)RIP 限制了網絡的規模,它能使用的最大距離為 15(16 表示不可達)。
3)RIP 存在的一個問題是當網絡出現故障時,要經過比較長的時間才能將此信息傳送到所有的路由器(壞消息傳播慢)。
4)路由器之間交換的路由信息是路由器中的完整路由表,因而隨着網絡規模的擴大,開銷也就增加。
14.壞消息傳得慢的原因解釋
十一、IPv6協議
1.為什么需要IPv6協議
互聯網經過幾十年的飛速發展,到 2011 年 2 月,IPv4 的 32 位地址已經耗盡。ISP 已經不能再申請到新的 IP 地址塊了。我國在 2014 – 2015 年也逐步停止了向
新用戶和應用分配 IPv4 地址。
解決 IP 地址耗盡的問題的措施:采用划分子網和無類別編址 CIDR,使 IP 地址的分配更加合理
采用網絡地址轉換 NAT方法以節省全球 IP 地址
采用具有更大地址空間的新版本的 IP 協議 IPv6
解決 IP 地址耗盡的根本措施就是采用具有更大地址空間的新版本的 IP,即 IPv6
2.引進IPv6所產生的變化
IPv6 仍支持無連接的傳送,主要變化如下:1)更大的地址空間:IPv6 將地址從 IPv4 的 32 位 增大到了 128 位
2)擴展的地址層次結構
3)靈活的首部格式: IPv6 定義了許多可選的擴展首部
4)改進的選項:IPv6 允許數據報包含有選項的控制信息,其選項放在有效載荷中
5)允許協議繼續擴充。
6)支持即插即用(即自動配置),因此 IPv6 不需要使用DHCP
7)支持資源的預分配:IPv6 支持實時視像等要求,保證一定的帶寬和時延的應用
8)IPv6 首部改為 8 字節
3.IPv6數據報的一般形式
IPv6 數據報由兩大部分組成:基本首部 (base header)
有效載荷 (payload)。有效載荷也稱為凈負荷。有效載荷允許有零個或多個擴展首部 (extensionheader),再后面是數據部分。
4.IPv6的基本首部
IPv6 將首部長度變為
固定的 40 字節,稱為基本首部(base header)。
1)將不必要的功能取消了,首部的字段數減少到只有 8 個。
2)取消了首部的檢驗和字段,加快了路由器處理數據報的速度。
3)在基本首部的后面允許有零個或多個擴展首部。
4)所有的擴展首部和數據合起來叫做數據報的有效載荷(payload)或凈負荷。
5.IPv4數據報首部的對比
6.IPv6的報文
版本(version):占4位。它指明了協議的版本,對IPv6 該字段總是 6。
通信量類(traffic class):占8位。這是為了區分不同的 IPv6 數據報的類別或優先級。目前正在進行不同的通信量類性能的實驗。
流標號(flow label):占20位。 “流”是互聯網絡上從特定源點到特定終點的一系列數據報。所有屬於同一個流的數據報都具有同樣的流標號。
有效載荷長度(payload length):占16位。它指明 IPv6 數據報除基本首部以外的字節數(所有擴展首部都算在有效載荷之內),
其最大值是 64 KB。
下一個首部(next header):占8位。它相當於 IPv4 的協議字段或可選字段,表示對應的高層協議(無擴展首部時)或者第一個擴展首部的類型(有擴展首部時)。
跳數限制(hop limit):占8位。源站在數據報發出時即設定跳數限制。路由器轉發數據報時將跳數限制字段中的值減1。跳數限制的值為零時,就要將此數據報丟棄。
源地址:占128位。是數據報的發送站的 IP 地址。
目的地址:占128位。是數據報的發送站的 IP 地址。
7.IPv6擴展首部
IPv6 把原來 IPv4 首部中選項的功能都放在擴展首部中,並將擴展首部留給路徑兩端的源站和目的站的主機來處理。數據報途中經過的路由器都不處理這些擴展
首部(只有一個首部例外,即逐跳選項擴展首部)。這樣就大大提高了路由器的處理效率。
在 RFC 2460 中定義了六種擴展首部:(1) 逐跳選項
(2) 路由選擇
(3) 分片
(4) 鑒別
(5) 封裝安全有效載荷
(6) 目的站選項
每一個擴展首部都由若干個字段組成,它們的長度也各不相同。但所有擴展首部的第一個字段都是8位的“下一個首部”字段。此字段的值指出了在該擴展首部后面
的字段是什么。
IPv6擴展首部示例:
首部擴展舉例:
8.IPv6冒號十六進制記法
9.IPv6點分十進制記法后綴
10.IPv6地址分類
未指明地址:這是 16 字節的全 0 地址,可縮寫為兩個冒號“::”。這個地址只能為還沒有配置到一個標准的 IP地址的主機當作源地址使用。這類地址僅此一個。
環回地址:即 0:0:0:0:0:0:0:1(記為 ::1)。作用和 IPv4 的環回地址一樣。這類地址也是僅此一個。
多播地址:功能和 IPv4 的一樣。這類地址占 IPv6 地址總數的 1/256。
本地鏈路單播地址 :有些單位的網絡使用 TCP/IP 協議,但並沒有連接到互聯網上。連接在這樣的網絡上的主機都可以使用這種本地地址進行通信,但不能和
互聯網上的其他主機通信。這類地址占 IPv6 地址總數的 1/1024
全球單播地址:IPv6 的這一類單播地址是使用得最多的一類。曾提出過多種方案來進一步划分這 128 位的單播地址。根據 2006 年發布的草案標准 RFC 4291
的建議, IPv6 單播地址的划分方法非常靈活。
11.IPv4向IPv6過渡
向 IPv6 過渡只能采用逐步演進的辦法,同時,還必須使新安裝的 IPv6 系統能夠向后兼容:IPv6 系統必須能夠接收和轉發 IPv4分組,並且能夠為 IPv4 分組
選擇路由。
兩種向 IPv6 過渡的策略:使用雙協議棧
使用隧道技術
12.雙協議棧
雙協議棧 (dual stack) 是指在完全過渡到 IPv6之前,使一部分主機(或路由器)裝有兩個協議棧,一個 IPv4 和一個 IPv6。雙協議棧的主機(或路由器)記為
IPv6/IPv4,表明它同時具有兩種 IP 地址:一個 IPv6 地址和一個 IPv4 地址。雙協議棧主機在和 IPv6 主機通信時是采用IPv6 地址,而和 IPv4 主機通信時就采用
IPv4地址。根據 DNS返回的地址類型可以確定使用 IPv4地址還是 IPv6 地址。
13.隧道技術
在 IPv6 數據報要進入 IPv4 網絡時,把 IPv6數據報封裝成為 IPv4 數據報,整個的 IPv6數據報變成了 IPv4 數據報的數據部分。當 IPv4 數據報離開 IPv4 網
絡中的隧道時,再把數據部分(即原來的 IPv6 數據報)交給主機的 IPv6 協議棧。
十二、IP多播
IP 多播 (multicast,以前曾譯為組播) 已成為互聯網的一個熱門課題。
目的:更好第支持一對多通信。
一對多通信:一個源點發送到許多個終點。
例如,實時信息的交付(如新聞、股市行情等),軟件更新,交互式會議及其他多媒體通信
1.IP多播節省網絡資源

==》
2.IP多播
在互聯網上進行多播就叫做 IP 多播。互聯網范圍的多播要靠路由器來實現。能夠運行多播協議的路由器稱為多播路由器(multicast router)。當然它也可以轉發
普通的單播IP數據報。
從 1992 年起,在互聯網上開始試驗虛擬的多播主干網 MBONE (Multicast Backbone On theInterNEt)。 現在多播主干網已經有了相當大的規模。
3.多播IP地址
IP 多播所傳送的分組需要使用多播 IP 地址。在多播數據報的目的地址寫入的是多播組的標識符。多播組的標識符就是 IP 地址中的 D 類地址(多播地址)。
每一個 D 類地址標志一個多播組。 多播地址只能用於目的地址,不能用於源地址。
4.多播數據報
多播數據報和一般的 IP 數據報的區別就是它使用 D 類 IP 地址作為目的地址,並且首部中的協議字段值是 2,表明使用網際組管理協議 IGMP。多播數據報也是
“盡最大努力交付”,不保證一定能夠交付多播組內的所有成員。對多播數據報不產生 ICMP 差錯報文。因此,若在 PING 命令后面鍵入多播地址,將永遠不會收到響應。
5.在局域網上進行硬件多播
互聯網號碼指派管理局 IANA 擁有的以太網地址塊的高 24 位為 00-00-5E。
以太網多播地址塊的范圍是:從 01-00-5E-00-00-00 到 01-00-5E-FF-FF-FF。
6.地址映射關系
由於多播 IP 地址與以太網硬件地址的映射關系不是唯一的,因此收到多播數據報的主機,還要在 IP 層利用軟件進行過濾,把不是本主機要接收的數據報丟棄。
7.多播需要兩種協議
為了使路由器知道多播組成員的信息,需要利用網際組管理協議 IGMP (InternetGroup Management Protocol)。連接在局域網上的多播路由器還必須和互聯網上的
其他多播路由器協同工作,以便把多播數據報用最小代價傳送給所有的組成員。這就需要使用多播路由選擇協議。
8.IGMP協議
IGMP協議使用范圍:IGMP 並非在互聯網范圍內對所有多播組成員進行管理的協議。IGMP 不知道 IP 多播組包含的成員數,也不知道這些成員都分布在哪些網絡上。
IGMP 協議是讓連接在本地局域網上的多播路由器知道本局域網上是否有主機(嚴格講,是主機上的某個進程)參加或退出了某個多播組。
IGMP和IP:和 ICMP 相似,IGMP 使用 IP 數據報傳遞其報文(即 IGMP 報文加上 IP 首部構成 IP 數據報),但它也向 IP 提供服務。因此,我們不把 IGMP 看成是一
個單獨的協議,而是屬於整個網際協議 IP 的一個組成部分。
IGMP工作的兩個時段:
第一階段:加入多播組。當某個主機加入新的多播組時,該主機應向多播組的多播地址發送 IGMP 報文,聲明自己要成為該組的成員。本地的
多播路由器收到 IGMP 報文后,將組成員關系轉發給互聯網上的其他多播路由器。
第二階段:探詢組成員變化情況。因為組成員關系是動態的,因此本地多播路由器要周期性地探詢本地局域網上的主機,以便知道這些主機是
否還繼續是組的成員。只要對某個組有一個主機響應,那么多播路由器就認為這個組是活躍的。但一個組在經過幾次的探詢后仍然沒有
一個主機響應,則不再將該組的成員關系轉發給其他的多播路由器。
十三、VPN和NAT技術
1.虛擬專用網VPN
利用公用的互聯網作為本機構各專用網之間的通信載體,這樣的專用網又稱為虛擬專用網VPN (Virtual Private Network)。“專用網”是因為這種網絡是為本機構的主機用
於機構內部的通信,而不是用於和網絡外非本機構的主機通信。“虛擬”表示“好像是”,但實際上並不是,因為現在並沒有真正使用通信專線,而VPN只是在效果上和真正的專
用網一樣。
2.虛擬專用網VPN構建
如果專用網不同網點之間的通信必須經過公用的互聯網,但又有保密的要求,那么所有通過互聯網傳送的數據都必須加密。一個機構要構建自己的 VPN 就必須為它的每
一個場所購買專門的硬件和軟件,並進行配置,使每一個場所的 VPN 系統都知道其他場所的地址。
3.隧道技術實現虛擬專用網

==》
4.遠程接入VPN
遠程接入 VPN (remote access VPN)可以滿足外部流動員工訪問公司網絡的需求。在外地工作的員工撥號接入互聯網,而駐留在員工 PC 機中的 VPN 軟件可在
員工的PC機和公司的主機之間建立 VPN 隧道,因而外地員工與公司通信的內容是保密的,員工們感到好像就是使用公司內部的本地網絡。
5.網絡地址轉換NAT
問題:在專用網上使用專用地址的主機如何與互聯網上的主機通信(並不需要加密)?
解決:(1) 再申請一些全球 IP 地址。但這在很多情況下是不容易做到的。
(2)采用網絡地址轉換 NAT。這是目前使用得最多的方法
網絡地址轉換 NAT (Network AddressTranslation) 方法於1994年提出。需要在專用網連接到互聯網的路由器上安裝 NAT 軟件。裝有 NAT 軟件的路由器叫做
NAT路由器,它至少有一個有效的外部全球IP地址。所有使用本地地址的主機在和外界通信時,都要在 NAT 路由器上將其本地地址轉換成全球 IP 地址,才能和互聯
網連接。
6.網絡地址轉換過程
1)內部主機 A 用本地地址 IPA 和互聯網上主機 B通信所發送的數據報必須經過 NAT 路由器。
2)NAT 路由器將數據報的源地址 IPA 轉換成全球地址 IPG,並把轉換結果記錄到NAT地址轉換表中,目的地址 IPB 保持不變,然后發送到互聯網。
3)NAT 路由器收到主機 B 發回的數據報時,知道數據報中的源地址是 IPB 而目的地址是 IPG。
4)根據 NAT 轉換表,NAT 路由器將目的地址 IPG轉換為 IPA,轉發給最終的內部主機 A。
可以看出,在內部主機與外部主機通信時,在NAT路由器上發生了兩次地址轉換:離開專用網時:替換源地址,將內部地址替換為全球地址;
進入專用網時:替換目的地址,將全球地址替換為內部地址;
7.網絡地址轉換NAT
當 NAT 路由器具有 n 個全球 IP 地址時,專用網內最多可以同時有 n 台主機接入到互聯網。這樣就可以使專用網內較多數量的主機,輪流使用 NAT 路由器
有限數量的全球 IP 地址。通過 NAT 路由器的通信必須由專用網內的主機發起。專用網內部的主機不能充當服務器用,因為互聯網上的客戶無法請求專用網內的
服務器提供服務。
8.網絡地址與端口地址轉換NAPT
為了更加有效地利用 NAT 路由器上的全球IP地址,現在常用的 NAT 轉換表把運輸層的端口號也利用上。這樣,就可以使多個擁有本地地址的主機,共用一
個 NAT 路由器上的全球 IP 地址,因而可以同時和互聯網上的不同主機進行通信。使用端口號的 NAT 叫做網絡地址與端口號轉換NAPT (Network Address and Port
Translation),而不使用端口號的 NAT 就叫做傳統的 NAT (traditional NAT)
9.NAPT地址轉換表