俗話說,不會敲代碼的司機(jī)不是好廚子。作為奮斗在一線的iOS開發(fā)猿,對網(wǎng)絡(luò)理解的不深刻一點,再深刻一點,怎么能說是好猴子呢。所以,我開始了我的第三次規(guī)?;瘜W(xué)習(xí)。第一次是在大學(xué)時,第二次是在實習(xí)的那段時間,這前兩次基本就是囫圇吞棗,看個大概,記點名詞。這次的目的是總結(jié)歸納,重在理解。Ok,下面是我根據(jù)謝希任教授編著的『計算機(jī)網(wǎng)絡(luò)』一書整理的相關(guān)章節(jié)的一些內(nèi)容以及我自己的一些淺顯的理解。
網(wǎng)絡(luò)層的核心內(nèi)容是網(wǎng)際協(xié)議IP,只有深入地掌握IP協(xié)議的原理,才能理解因特網(wǎng)是怎么樣工作的。
區(qū)別于電信網(wǎng)采用的端到端的“面向連接”的可靠傳輸服務(wù),因特網(wǎng)采用是設(shè)計思路是:網(wǎng)絡(luò)層向上只提供簡單靈活的、無連接的、盡最大努力交付的數(shù)據(jù)報服務(wù)。網(wǎng)絡(luò)在發(fā)送分組時不需要建立連接,每一個分組獨立發(fā)送,不進(jìn)行編號。所以,網(wǎng)絡(luò)層不提供服務(wù)質(zhì)量的承諾。采用這個思路的前提是計算機(jī)相對于電話機(jī),具有很強(qiáng)的差錯處理能力。那么這樣做的好處是:網(wǎng)絡(luò)的造價大大降低,運(yùn)行方式靈活,能夠適應(yīng)多種應(yīng)用。因特網(wǎng)能夠發(fā)展到今日的規(guī)模,充分證明了當(dāng)初采用這種設(shè)計思路的正確性。
一、網(wǎng)際協(xié)議IP
網(wǎng)際協(xié)議IP是TCP/IP體系中兩個最主要的協(xié)議之一,也是最重要的因特網(wǎng)協(xié)議之一。與IP協(xié)議配套使用的還有四個協(xié)議:
- 地址解析協(xié)議ARP(Address Resolution Protocol)
- 逆地址解析協(xié)議RARP(Reverse Address Resolution Protocol)
- 網(wǎng)際控制報文協(xié)議ICMP(Internet Control Message Protocol)
- 網(wǎng)際組管理協(xié)議IGMP(Internet Group Management Protocol)

在網(wǎng)絡(luò)層中IP協(xié)議要使用ARP和RARP協(xié)議,ICMP和IGMP協(xié)議要使用IP協(xié)議。
二、虛擬互聯(lián)網(wǎng)絡(luò)
如果要在全世界范圍內(nèi)吧數(shù)以百萬計的網(wǎng)絡(luò)都互聯(lián)起來,并且能夠互相通信,那么這樣的任務(wù)一定非常復(fù)雜。其中遇到許多問題需要解決,如:
- 不同的尋址方案
- 不同的最大分組長度
- 不同的網(wǎng)絡(luò)接入機(jī)制
- 不同的超時控制
- 不同的差錯恢復(fù)方法
- 不同的狀態(tài)報告方法
- 不同的路由選擇技術(shù)
- 不同的用戶接入控制
- 不同的服務(wù)(面向連接的服務(wù)和無連接服務(wù))
- 不同的管理與控制方式
等等
在這種情況下,沒有一種單一的網(wǎng)絡(luò)能夠適應(yīng)所有用戶的需求。
TCP/IP體系在網(wǎng)絡(luò)互連上采用的做法是在網(wǎng)絡(luò)層采用了標(biāo)準(zhǔn)化協(xié)議,但相互連接的網(wǎng)絡(luò)則可以是異構(gòu)的。由于參加互連的計算機(jī)網(wǎng)絡(luò)都使用相同的網(wǎng)際協(xié)議IP,因此可以吧互連以后的計算機(jī)網(wǎng)絡(luò)看成一個虛擬互連網(wǎng)絡(luò)。所謂虛擬互連網(wǎng)絡(luò)也就是邏輯互連網(wǎng)絡(luò),它的意思就是互連起來的各種物理網(wǎng)絡(luò)的異構(gòu)性本來就是客觀存在的,但是我們利用IP協(xié)議就可以使這些性能各異的網(wǎng)絡(luò)在網(wǎng)絡(luò)層上看起來好像是一個統(tǒng)一的網(wǎng)絡(luò)。這樣做的好處是:當(dāng)IP網(wǎng)上的主機(jī)進(jìn)行通信是,就好像在一個單個網(wǎng)絡(luò)上就行通信一樣,它們看不見互連的各網(wǎng)絡(luò)的具體異構(gòu)細(xì)節(jié)。
三、IP地址的劃分
IP地址就是給因特網(wǎng)上的每一個主機(jī)或路由器的每一個接口分配一個在全世界范圍是唯一的32位的標(biāo)識符。IP地址現(xiàn)在由因特網(wǎng)名字與號碼指派公司ICANN(Internet Corporation for Assigned Names and Numbers)進(jìn)行分配。IP地址的編址方法經(jīng)過了三個歷史階段:
1.分類的IP地址。這是最基本的編址方法。
分類的IP地址就是將IP地址分為若干個固定類,每一類地址都是由兩個固定長度的字段組成,其中第一個字段是網(wǎng)絡(luò)號,標(biāo)示主機(jī)或路由器所連接到的網(wǎng)絡(luò)。第二個字段是主機(jī)號,標(biāo)志改主機(jī)或路由器。一個網(wǎng)絡(luò)號在整個因特網(wǎng)范圍內(nèi)必須是唯一的,一個主機(jī)號在它前面的網(wǎng)絡(luò)號所指明的網(wǎng)絡(luò)范圍內(nèi)必須是唯一的。所以,一個IP地址在整個因特網(wǎng)范圍內(nèi)是唯一的。

2.子網(wǎng)的劃分。這是對最基本的編址方法的改進(jìn)。
從二級IP地址到三級IP地址。二級IP地址有很多問題,例如:1.空間利用率低;2.給一個物理網(wǎng)絡(luò)分配一個網(wǎng)絡(luò)號會使路由表變得太大因而使網(wǎng)絡(luò)性能變壞;3.不夠靈活...
為解決這些問題,從1985年起在IP地址中又增加了一個“子網(wǎng)號字段”,使兩層IP地址變?yōu)槿龑覫P地址。這種做法叫做劃分子網(wǎng)或子網(wǎng)尋址、子網(wǎng)路由選擇,已成為因特網(wǎng)的正式標(biāo)準(zhǔn)協(xié)議。
劃分子網(wǎng)的方法是從網(wǎng)絡(luò)的主機(jī)號借用若干位作為子網(wǎng)號,主機(jī)號就相應(yīng)的減少了同樣的位數(shù)。

從IP數(shù)據(jù)報的首部并不知道源主機(jī)或目的主機(jī)所連接的網(wǎng)絡(luò)是否進(jìn)行了子網(wǎng)的劃分。因為32位的IP地址本身以及數(shù)據(jù)報的首部都沒有包含任何有關(guān)子網(wǎng)劃分的信息。因此,就要使用子網(wǎng)掩碼。

把子網(wǎng)掩碼和收到的數(shù)據(jù)報的目的IP地址逐位相“與”,就得出所要找的子網(wǎng)的網(wǎng)絡(luò)地址。如果一個網(wǎng)絡(luò)不劃分子網(wǎng),那么該網(wǎng)絡(luò)的子網(wǎng)掩碼就使用默認(rèn)子網(wǎng)掩碼。默認(rèn)子網(wǎng)掩碼中的1的位置和IP地址中的網(wǎng)絡(luò)號字段net-id正好相對應(yīng)。
相對于二級IP地址,劃分子網(wǎng)增加了靈活性,但卻減少了能夠連接在網(wǎng)絡(luò)上的主機(jī)總數(shù)。
3.構(gòu)成超網(wǎng)。這是比較新的無分類編址方法。
無分類域間路由選擇CIDR(Classless Inter-Domain Routing)
1.CIDR消除了A、B、C類地址以及劃分子網(wǎng)的概念,可以更加有效的分配IPv4的地址空間。CIDR把32位的IP地址劃分為兩個部分,前面部分是“網(wǎng)絡(luò)前綴”or“前綴”,用來指明網(wǎng)絡(luò),后面部分用來指明主機(jī)。CIDR還使用“斜線記法”,即在IP地址后面加上斜線“/”,然后寫上網(wǎng)絡(luò)前綴所占的位數(shù)。
2.CIDR把網(wǎng)絡(luò)前綴都相同的連續(xù)的IP地址組成一個“CIDR地址塊”。
例如:192.168.32.1/22 表示:前22位是網(wǎng)絡(luò)前綴,后10位為主機(jī)號