計算機網路第四章知識點
關於位元組和位:資料儲存是以“位元組”(Byte)為單位,資料傳輸大多是以“位”(bit,又名“位元”)為單位,一個位就代表一個0或1(即二進位制),每8個位(bit,簡寫為b)組成一個位元組(Byte,簡寫為B),是最小一級的資訊單位。
1. 網路層提供的兩種服務:A
可靠交付*or最大努力交付*
- 面向連線、無差錯交付的虛電路服務–電信網
- 無連線的、盡最大努力交付的資料報服務–因特網
- 因特網的優點:網路的造價大大降低,執行方式靈活,能夠適應多種應用。
虛電路服務與資料報服務的對比 | ||
---|---|---|
對比的方面 | 虛電路服務 | 資料報服務 |
思路 | 可靠通訊應當由網路來保證 | 可靠通訊應當由使用者主機來保證 |
連線的建立 | 必須有 | 不需要 |
終點地址 | 僅在連線建立階段使用,每個分組使用短的虛電路號 | 每個分組都有終點的完整地址 |
分組的轉發 | 屬於同一條虛電路的分組均按照同一路由進行轉發 | 每個分組獨立選擇路由進行轉發 |
當結點出故障時 | 所有通過出故障的結點的虛電路均不能工作 | 出故障的結點可能會丟失分組,一些路由可能會發生變化 |
分組的順序 | 總是按傳送順序到達終點 | 到達終點時不一定按傳送順序 |
端到端的差錯處理和流量控制 | 可以由網路負責,也可以由使用者主機負責 | 由使用者主機負責 |
2.IP ARP ICMP 基本概念 B
網際協議IP:是TCP/IP體系中兩個最主要的協議之一,也是最重要因特網標準協議之一。
與IP協議配套使用的還有四個協議:(1)地址解析協議ARP(Address Resolution Protocol)
(2)逆地址解析協議RARP(Reverse Address Resolution Protocol)
(3)網際控制報文協議ICMP(Internet Control Message Protocol)
(4)網際組管理協議IGMP(Internet Group Management Protocol)
(1)在這一層中,ARP和RARP畫在最下面,因為IP經常要使用這兩個協議。
(2)ICMP和IGMP畫在這一層的上部,因為它們要使用IP協議。
注:由於網際協議IP是用來使互連起來的許多計算機網路能夠進行通訊,因此TCP/IP體系中的網路層常常稱為網際層(internet layer),或IP層。使用“網際層”的好處是強調這是由很多網路構成的互連網路。
3.間接交付,直接交付 A
將網路互連起來的一些中間裝置
物理層——轉發器(repeater)
- 物理層使用的中間裝置叫轉發器(repeater)。
- 資料鏈路層——網橋或橋接器(bridge)
- 資料鏈路層使用的中間裝置叫網橋或橋接器(bridge)。
- 網路層——路由器(router)
- 網路層使用的中間裝置叫路由器(router)。路由器其實就是一臺專用計算機,用來在網際網路中進行路由選擇。
- 在網路層以上——閘道器(gateway)
- 在網路層以上使用的中間裝置叫閘道器(gateway),用閘道器連線兩個不相容的系統需要在高層進行協議的轉換。
- 虛擬互連網路
- TCP/IP體系在網路互連上採用的做法是在網路層(即IP層)採用了標準化協議,但相互連線的網路則可以是異構的。
- 許多計算機網路通過路由器進行互連,由於參與互連的計算機網路都使用相同的網際協議IP,因此可以將互連以後的計算機網路看成一個虛擬網際網路絡。
- 虛擬互連網路:也就是邏輯互連網路,它的意思就是各種互連起來的各種物理網路的異構性本來是客觀存在的,但是利用IP協議就可以使這些效能各異的網路在網路層上看起來好像是一個統一的網路。
- 這種利用IP協議的虛擬互連網路可簡稱為IP網(IP網是虛擬的)。
- 使用IP網的好處:當IP網上的主機進行通訊時,就好像在一個單個網路上通訊一樣,它們看不見互連的各網路的具體異構細節(如具體的編址方案、路由選擇協議等)。
- 分組在網際網路中的傳送
注:當很多異構網路通過路由器互連起來時,如果所有的網路都使用相同的IP協議,那麼在網路層討論問題就顯得很方便。
- 分組在網際網路中的傳送過程:
(1)網際網路中的源主機H1要把一個IP資料報傳送給目的主機H2。
(2)根據分組交換的儲存轉發概念。
(3)主機H1先要查詢自己的路由表,看目的主機是否就在本網路上。
(4)如果是,則不需要經過任何路由器而是直接交付,任務就完成了。
(5)如果不是,則必須把IP資料報傳送給某個路由器(如圖中的R1),R1再查詢自己的路由表後,知道應當把IP資料報轉發給R2進行間接交付。這樣一直轉發下去,最後由路由器R5知道自己是和H2連線在同一個網路上,不需要再使用別的路由器轉發了,於是就把IP資料報直接交付給目的主機H2。
注:網際網路可以由多種異構網路互連組成。
4. IP 地址表示及分類方法 A
整個的因特網就是一個單一的、抽象的網路。IP地址就是給因特網上的每一個主機(或路由器)的每一個介面分配一個在全世界範圍內唯一的32位的識別符號。IP地址的結構可以使我們在網際網路上很方便的定址。
所謂分類的IP地址,就是將IP地址劃分為若干固定類,A類、B類、C類每一類地址都由兩個固定長度的欄位組成,其中一個欄位是網路號 net-id,它標誌主機(或路由器)所連線到的網路,一個網路號在整個因特網範圍內必須是唯一的。而另一個欄位則是主機號 host-id,它標誌該主機(或路由器)。一個主機號在它前面的網路號所指明的網路範圍內必須是唯一的。由此可見,一個IP地址在整個因特網範圍內是唯一的。
從IP地址的結構來看,IP地址不僅僅指明瞭一臺主機,而且指明瞭主機所連線到的網路。
由於一個路由器至少應當連線到兩個網路(這樣它才能將 IP 資料報從一個網路轉發到另一個網路),因此一個路由器至少應當有兩個不同的 IP 地址。
用轉發器或網橋連線起來的若干個區域網仍為一個網路,因此這些區域網都具有同樣的網路號。
路由器只根據目的站的IP 地址的網路號進行路由選擇。
兩級的 IP 地址可以記為:
IP 地址 ::= { <網路號>, <主機號>} ::=表示"定義為"
上圖中的A類、B類、C類地址都是單播地址(一對一通訊),是最常用的。
A類、B類、C類地址的網路號欄位分別為1個、2個、3個位元組長,因而在網路號欄位的最前面有1-3位的類別位,其數值分別為分別為0、10、110。
D類地址用於多播(一對多通訊),E類地址保留為以後用。
為了提高可讀性,我們常常把32位二進位制程式碼的IP地址中的每8位用其等效的十進位制數字表示,每八位都用.分隔。這就是點分十進位制記法。
A類地址的網路號欄位佔一個位元組,只有7位可供使用(第一位已固定為0),但是可指派的網路號是126個(27-2),減2的原因:第一,IP地址中全為0的地址是個保留地址,表示“本網路”;第二,網路號為127(01111111)保留作為本地軟體環回測試本主機的程序間的通訊。
A類地址的主機號佔3位元組,因此每一個A類網路中的最大主機數是224-2。減2的原因:第一,全為0的主機號欄位表示該IP地址是本主機所連線到的單個網路地址,第二,全為1的主機號欄位表示該網路上的所有主機。
B類地址的網路號欄位有2位元組,但是前兩位已經固定為10,只剩下14位可以進行分配,因為前面兩位是10,不會出現全為0或全為1的網路號,但實際上,B類網路地址128.0.0.0是不指派的。所以最大網路數為214-1。最大主機數為216-2。
C類地址有3位元組的網路號欄位,前三位固定位110,還有21位可以進行分配。但實際上192.0.0.0是不指派的,因此C類地址可指派的網路總數為221-1,最大主機數為28-2。
5.IP 地址與硬體地址 C
注:在區域網中,由於硬體地址已固化在網絡卡上的ROM中,因此常常將硬體地址稱為實體地址。因為在區域網的MAC幀中的源地址和目的地址都是硬體地址,因此硬體地址又稱為MAC地址。
實體地址:是資料鏈路層和物理層使用的地址。
IP地址:是網路層和以上各層使用的地址,是一種邏輯地址。
資料鏈路層及以下使用硬體地址,硬體地址放在MAC幀的首部。網路層及以上使用的是IP地址,IP地址放在IP資料報的首部。
注意:在IP層抽象的網際網路上只能看到IP資料報,雖然IP資料報首部有源站的IP地址,但路由器只根據目的站的IP地址的網路號進行路由選擇。在區域網的鏈路層,只能看見MAC幀。IP資料報被封裝在MAC幀中
6.IP 資料報格式 A
IP資料報的格式能夠說明IP協議都具有什麼功能。
在TCP/IP的標準中,各種資料格式常常以32位(即4位元組)為單位來描述。
1)版本 佔4位,指IP協議的版本。通訊雙方使用的IP協議的版本必須一致,當前廣泛使用的IP協議版本號是IPv4。
2)首部長度 佔4位,可表示的最大十進位制數值是15。該單位是32位(4位元組)。首部長度欄位的最小值是5,相當於IP首部長度為5*4=20位元組。
3)總長度 指首部和資料之和的長度,單位為位元組。總長度欄位為16位。資料報最大長度為2^16 - 1 = 65535位元組。
在IP層下面的每一種資料鏈路層協議都規定了一個數據幀中的資料欄位的最大長度,這稱為最大傳送單元MTU(Maximum Transfer Unit).
例如,最常用的乙太網就規定其MTU值是1500位元組。若所傳送的資料報長度超過資料鏈路層的MTU值,就必須把過長的資料報進行分片處理。
IP協議規定,在因特網中所有的主機和路由器,必須能夠接受長度不超過576位元組的資料報。這是假定上層交下來的資料長度有512位元組(合理的長度),加上最長的IP首部60位元組,再加上4位元組的富裕量,就得到576位元組。
4)標識 佔16位。IP軟體在儲存器中維持一個計數器,每產生一個數據報,計數器就加一,並將此值賦給標識欄位。但這個“標識”並不是序號,因為IP是無連線服務,資料報不存在按序接收的問題。當資料報由於長度超過網路的MTU而必須分片時,這個標識欄位的值就被複制到所有的資料報片的標識欄位中。相同的標識欄位的值使分片後的各資料報片最後能正確地重灌成為原來的資料報。(即標示的值只用於判斷是否是同一個資料報的切片,其值並無其他意義)
5)標誌 佔3位 目前只有兩位有意義
標誌欄位中的最低位記為MF(More Fragment)。MF=1即表示後面“還有分片”的資料報。MF=0表示這已是若干資料報片中的最後一個。
標誌欄位中間的一位記為DF(Don't Fragment)。意思是"不能分片"。只有當DF=0時才允許分片。
6)片偏移 佔13位。片偏移指出:較長的分組在分片後,某片在原分組中的相對位置。也就是說,相對於使用者資料欄位的起點,該片從何處開始。片偏移以8個位元組為偏移單位。 這就是說,每個分片的長度一定是8位元組(64位)的整數倍。
7)生存時間 佔8位,生存時間欄位常用的英文縮寫是TTL(Time To Live),表明是資料報在網路中的壽命。由發出資料報的原點設定這個欄位。其目的是防止無法交付的資料報無限制地在因特網中兜圈子。(生存時間並不是指其在網路中能存活的時長)
最初的設計:以秒作為TTL值的單位。每經過一個路由器時,就把TTL減去資料報在路由器所消耗掉的一段時間。若資料報在路由器消耗的時間小於1秒,就把TTL值減1.當TTL值減為零時,就丟棄這個資料報。
後來隨著技術的進步,路由器處理資料報所需的時間不斷在縮短,一般都遠遠小於1秒鐘,後來就把TTL欄位的功能改為“跳數限制”(但名稱不變)。TTL的意義指資料報在因特網中至多可經過多少個路由器。最大值為255。
若把TTL初始值設為1,則表示這個資料報只能在本區域網中傳送。
8)協議 佔8位,協議欄位指出此資料報攜帶的資料是使用何種協議,以便使目的主機的IP層知道應將資料部分上交給哪個協議進行處理。
協議名 | ICMP | IGMP | IP | TCP | EGP | IGP | UDP | IPv6 | ESP | OSPF |
協議欄位值 | 1 | 2 | 4 | 6 | 8 | 9 | 17 | 41 | 50 | 89 |
9)首部檢驗和 佔16位。這個欄位只檢驗資料報的首部,但不包括資料部分。資料報每經過一個路由器,路由器都要重新計算一下首部檢驗和(生存時間欄位會變化)。為了減少計算量,採用反碼算術運算把所有16位字相加後得到的反碼寫入檢驗和欄位。
10)源地址:佔32位。
11)目的地址:佔32位。
7. IP 分組轉發的流程 A
根據目的網路地址來確定下一跳路由器,這樣做的結果如下:
IP資料報最終一定可以找到目的主機所在目的網路上的路由器(可能要通過多次的間接交付)。
只有到達最後一個路由器時,才試圖向目的主機進行直接交付。
注:在網際網路上轉發分組時,是從一個路由器轉發到下一個路由器。總之,在路由表中,對每一條路由最主要的是以下兩個資訊:(目的網路地址,下一跳地址)。
特定主機路由
- 雖然因特網所有的分組轉發都是基於目的主機所在的網路,但在大多數情況下都允許有這樣的特例,即對特定的目的主機指明的一個路由。這種路由叫做特定主機路由。
- 採用特定主機路由的好處:
(1)可使網路管理人員能夠更方便地控制網路和測試網路,同時也可在需要考慮某種安全問題時採用這種特定主機路由。
(2)在對網路的連線或路由表進行排錯時,指明到某一主機的特定路由就十分有用。
注:特定主機路由是要到某一臺機器的路由。特定網路路由是你到某一個子網的路由。特定主機路由也可視為特定網路路由的一個特例,即Mask為255.255.255.255的特定網路路由。
預設路由
- 預設路由是一種特殊的靜態路由,指的是當路由表中與包的目的地址之間沒有匹配的表項時路由器能夠做出的選擇。
- 如果沒有預設路由,那麼目的地址在路由表中沒有匹配表項的包將被丟棄。
- 預設路由在某些時候非常有效,當存在末梢網路時,預設路由會大大簡化路由器的配置,減輕管理員的工作負擔,提高網路效能。
- 主機裡的預設路由通常被稱作預設閘道器,預設閘道器通常會是一個有過濾功能的裝置,如防火牆和代理伺服器。
- 預設路由和靜態路由的命令格式一樣,只是把目的地ip和子網掩碼改成0.0.0.0和0.0.0.0,預設路由只能存在末梢網路中。
分組轉發演算法
注:當傳送一連串的資料報時,上述的這種查詢路由表、計算硬體地址、寫入MAC幀的首部等過程,將不斷地重複進行,造成了一定的開銷。儘管如此,也不能在路由表中直接使用硬體地址,因為使用抽象的IP地址,就是為了遮蔽各種底層網路的複雜性而便於分析和研究問題,這樣就不可避免地多了一些開銷。
(1)從資料報的首部提取目的主機的IP地址D,得出目的網路地址為N。
(2)若N就是與此路由器直接相連的某個網路地址,則進行直接交付,不需要再經過其他的路由器,直接把資料報交付給目的主機(這裡包括把目的主機地址D轉換為具體的硬體地址,把資料報封裝為MAC幀,再發送此幀);否則就要執行(3)進行間接交付。
(3)若路由表中有目的地址為D的特定主機路由,則把資料報傳送給路由表中所指明的下一跳路由器,否則執行(4)。
(4)若路由表中有到達網路N的路由,則把資料報傳送給路由表中所指明的下一跳路由器,否則執行(5)。
(5)若路由表中有一個預設路由,則把資料報傳送給路由表中所指明的下一跳路由器,否則執行(6)。
(6)報告轉發分組出錯。
8.子網掩碼 A
子網掩碼用於辨別ip地址中哪部分為網路號,哪部分為主機號。它由1和0組成,長32位,全為1的位代表網路號,主機號全為0。
A類ip地址的預設子網掩碼為255.0.0.0或0xFF000000
B類ip地址的預設子網掩碼為255.255.0.0或0xFFFF0000
C類ip地址的預設子網掩碼為255.255.255.0或0xFFFFFF00
一個ip地址是4位元組32位,其中前面的一部分位代表是網路號,後面的代表的是主機號
當對應的將網路號的位全是1,主機號的位全是0,所組成的這個32位的東西就叫做掩碼(當然ABC類地址前面有固定的0不能給人家改了)
一個B類地址的掩碼就是
10111111 11111111 0000000 00000000
當進行子網劃分的時候,劃分為網路號的位改為1,比如上例中借3位主機號
10111111 11111111 1110000 00000000
這個時候這個掩碼稱為子網掩碼
IP地址分兩部分:網路地址+主機地址
比如你提到的 192.168.10.40 255.255.255.224
那麼它的網路地址為:192.168.10.32 主機地址為:0.0.0.40 該子網範圍為:192.168.10.32-192.168.10.63
網路地址是IP地址的一部分,代表一個子網。
區分IP地址、子網掩碼、網路號、主機號、網路地址、主機地址
https://blog.csdn.net/chengonghao/article/details/51926274
9.子網劃分 A
從兩級IP地址到三級IP地址原因:
1)IP地址的空間利用率有時很低。
2)給每個物理網路分配一個網路號會使路由表變得太大因而使網路效能變壞。
3)兩級IP地址不夠靈活。
劃分子網的基本思路:
(1)一個有許多物理網路的單位,可將所屬的物理網路劃分為若干個子網。而本單位以外的網路看不見這個網路是由多少個子網組成,因為這個對外仍然表現為一個網路。
(2)劃分子網的方法是:從網路的主機號借用若干位作為子網號,當然主機號也就減少了相應位數。於是兩級IP地址在本單位內就變為了三級IP地址:網路號、子網號、主機號。
劃分子網只是把IP地址的主機號這部分進行再劃分,而不是改變IP地址原來的網路號。
10.使用子網時的分組轉發 A
使用子網劃分後,路由表必須包含以下三項內容:目的網路地址,子網掩碼和下一跳地址。路由器轉發分組的演算法(流程)如下:
1)從收到的資料報首部提取目的IP地址D
2)先判斷是否為直接交付。對路由器直接相連的網路進行逐個檢查:用各網路的子網掩碼和D逐位相與,看結果是否和相對應的網路地址匹配。若匹配,則把分組進行直接交付,轉發任務結束。否則就是間接交付,執行(3)。
3)若路由表中有目的地址為D的特定主機路由,則把資料報傳送給路由表中所指明的下一跳路由:否則執行(4)。
4)對路由表的每一行,用其中的子網掩碼和D逐位相與,其結果為N。若N與該行的目的網路地址匹配,則把資料報傳送給該行指明的下一跳路由器;否則執行(5)。
5)若路由表中有一個預設路由,則把資料報傳送給路由表中所指明的預設路由器;否則執行(6)。
6)報告轉發分組出錯。
11.無分類編址 CIDR(構造超網) B
儘管劃分子網在一定程度上解決了IP地址不足的問題,但是在1992年的時候,B類IP地址已經快要分配完了.
於是有人研究出無分類編址方法,它的正式名是無分類域間路由選擇CIDR.
它最最主要的一點是消除了A,B,C類地址和劃分子網的概念.它重新將IP地址劃分為兩個部分即,”網路字首”和”主機號”.注意這裡的網路字首再也沒有位數的限制,即沒有A,B,C類之分.
CIDR還使用了”斜線記法”,即在IP地址後面加上斜線”/”然後寫上網路字首所佔的位數.
CIDR還有另外一個特點.它把網路字首都相同的連續的IP地址組成一個”CIDR地址塊”(我們只要知道CIDR塊中的任何一個地址,就可以知道這個地址塊的起始地址(即最小地址)和最大地址,遺蹟地址塊中的地址數)
地址掩碼:為了更方便的路由選擇,CIDR使用32位的地址掩碼,地址掩碼由一串1和一串0組成1的個數就是網路字首的長度。
為了方便地進行路由選擇,因為一些網路還是用子網劃分和子網掩碼,所以CIDR的地址掩碼也可以繼續稱為子網掩碼.斜線記法中,斜線後面的數字就是地址掩碼中1的個數.
與此同時,在這個CIDR地址塊中,你也可以繼續劃分子網.
路由聚合:由於一個CIDR地址塊可以包含很多地址,所以在路由表中就利用CIDR地址塊來查詢目的網路.這種地址的聚合常稱為路由聚合。它使得路由表中的一個專案可以表示原來傳統分類地址的很多個路由。路由聚合也成為構成超網。
由一個地址求它所在地址塊的最大最小地址:
P143
找出地址掩碼中1和0交界處發生在第幾個位元組。
把這一位元組的十進位制數字用二進位制表示。取其前三位(這3位加上前幾個位元組的位數等於字首的位數),把後五位都寫成0,得到最小地址,把後五位都寫成1,得到最大地址。
由於採用CIDR塊的記法,這個時候路由器中的路由表可能會得到不止一個匹配結果.這個時候我們應當從匹配結果中選擇具有最長網路字首的路由.這叫作最長字首匹配
這裡引用書中的一個例子
- 假定某ISP已擁有地址塊206.0.64.0/18.現在該ISP給某大學分配一個地址塊206.0.68.0/22
- 然後這個大學再對本校的各系分配地址塊,例如計算機系206.0.71.128/25
- 假定計算機系希望ISP把轉發給計算機系的資料報直接發給計算機系而不要經過大學的路由器,但又不願意改變自己使用的IP地址塊
- 於是ISP路由器有以下兩個專案,即206.0.68.0/22(大學)和206.0.71.128/25(計算機系)
- 現在假定ISP收到一個數據報,其目的IP地址為D=206.0.71.130.把D分別和路由表中這兩個專案的掩碼逐位相”與”(AND操作).
- 不難想,這個這兩個專案肯定都是符合的,於是ISP選擇具有最長網路字首的IP地址進行轉發.(即選擇兩個匹配結果中地址更具體的一個)
為了加快路由器對路由表的查詢.通常是使用二叉線索樹進行查詢.
步驟如下:
- 找出每一個IP地址的唯一字首
- 用IP地址的唯一字首構造出一棵二叉線索樹.
- 然後對二叉線索樹進行搜尋.
由於唯一字首一般都小於32位,於是樹的深度一般都小於32層.
事實上在實際應用中.當你搜索到一個葉節點時,還必須將尋找匹配的目的地址和該葉節點的子網掩碼進行逐位”與”運算,看結果是否與對應的網路字首相同.若匹配,就按下一條的介面轉發該分組.否則,就對齊該分組.
12.ICMP 差錯報告和詢問報文 B
為什麼需要ICMP?
因為IP協議不提供可靠性且不能保證資訊傳遞,因此發生問題時,通知傳送人是很重要的。(IP協議是一種不可靠的協議,無法進行差錯控制。但IP協議可以藉助其他協議來實現這一功能,如ICMP)
ICMP: Internet Control Message Protocol 即Internet訊息控制協議.為了更有效的轉發IP資料報和提高成功交付的機會,在網際層使用了網際控制報文協議ICMP。它是網際網路的標準協議,但不是高層協議(ICMP報文是裝在IP資料報中,作為其資料部分的),而是IP層的協議。
ICMP報文作為IP層資料報的資料,加上資料報的部首,組成IP資料報傳送出去。
ICMP報文有兩類:
ICMP差錯報告報文:
ICMP詢問報文:
13.Ping traceroute 等 B
ICMP的一個重要應用是分組網間探測PING,用來測試兩臺主機之間的連通性。PING使用了ICMP回送請求與回送回答報文。
14.AS,IGP,BGP 概念 B
15.RIP 概念 B
16.距離向量協議基本原理 B
17.開放最短路徑優先 OSPF 基本原理 B
18.外部閘道器協議——路徑向量協議 B
19.路由器的構成 C
20.IPv6 的由來 B
21. IPv6 地址格式 B
22.IPv4 向 IPv6 的兩種遷移方式 B
23.VPN NAT基本概念 B
24. VPN NAT基本原理 B