網際協議IP與其配套協議
@(電腦網路)
IP協議是TCP/IP協議簇中最重要的兩大協議之一。與其配套的協議有: 位址解析通訊協定–ARP 逆位址解析–RARP 網際控制報文協議–ICMP 網際組管理協議–IGMP
其中ARP和RARP支撐IP協議運行,ICMP和IGMP的運行需要IP的支撐。 四種不同的中間裝置 物理層:轉寄站(repeater) 資料連結層:橋接器/橋接器(bridger) 網路層:路由器(router) 網路層以上:網關(gateway)
註:用網關串連兩個不相容的系統時需要再高層進行協議的轉換 。
在資料連結層和物理層使用中間裝置,僅僅是把一個網路擴大了,網路層看來,還是一個網路。稱不上網路互連。
此外,網關由於比較複雜,現在是用的較少。
這麼一看,網路互連的任務只能交給路由器了。
而路由器是一台專用電腦,用於實現網際互聯。這是個重任,我們能暢遊網路,路由器功不可沒。(這裡的網際互聯的路由器,不是我們手邊的那個小路由器)。
這是真實的情況,但是,曆史往往有些奇怪,比如幾何分布不是幾何等等。名字和真實的事情並不是完全對應,但我們往往習慣於從名字推導含義。
由於曆史的原因,許多有關TCP/IP的文獻曾經把網路層使用的路由器稱為網關。–《電腦網路 5th》
也就是在TCP/IP體系裡,也就是目前最大的互連網網際網路中,網際互聯是在網路層實現的。在邏輯上形成了一個虛擬互連網絡,真實串連仍然是異構的物理互聯。
在網路層統一使用IP協議進行通訊。
互連網可由多種異構網路互聯而成。 分類IP地址
IP地址就是給網際網路上的每一個主機或路由器的每一個介面分配一個全世界唯一的32位標識符。
使得我們可以在網際網路上方便定址。
IP編址的的三個階段: 分類IP地址:最基本的編址法 子網劃分:對分類IP地址的改進 構成超網:較新的無分類編址法
分類IP地址就是把IP地址分為若干固定類,每一類由: 網路號:標識主機或路由器所串連的網路,網路號在網際網路範圍內是唯一的 主機號:網路號指明的前提下,標識主機或路由器,唯一
兩次唯一,保證了IP地址:網路號+地址號在整個網際網路範圍內是唯一的。
A、B、C類地址都是單播地址。D類是多播地址。但是在A、B、C類地址內部,主機全1表示的是對此網路內的主機進行廣播。 A類:(0…)8b + 24b –約佔全部IP地址的50% B類:(10…)16b+16b –約佔全部IP地址的25% C類:(110…)24b+8b –約佔全部IP地址的12.5% D類:1110+28b多播地址 E類:(1111)+保留未用
現在廣泛採用的是CIDR,無分類編址,用的是超網,分類編址已經是過去式了。當然我國正在積極倡導推行IPv6,要在新的網路秩序重建下掌握更多話語權又是另外的事情了。 三類地址取值細節###:
A類網路號只有1個位元組,也即8b,且第一個bit固定為0,則實際只有7bits可用。但是可以指派的網路號是 27−2=126 2^7-2 = 126個.
減掉的2: 全0:表示本網路(this) 全1:01111111:保留作為環回測試地址。比如用Flask這樣的網路架構,在本地測試回合時,是127.0.0.1:5000這樣的通訊端。用於本地進程之間的通訊。過程是:主機發送目的地址是迴路位址的IP資料報,本主機上的協議棧就處理資料報中的資料,不把資料發送到網路。
即:可用的網路號是1~126
註:10.x.x.x是保留的私人地址
看完網路號,自然再來關注主機號。
A類地址主機號佔3個位元組,最大主機數為 224−2 2^24-2.
減2的原因: 全0的主機號表示該IP地址是該主機所在的單個網路地址,強調單個是因為主機可以串連到多個網路。流出一個全0的主機號狀態標識網路號,可以在後面的網關地址概念處用到。 全1的主機號:該網路上的所有主機
到這裡需要強調一下,粗略計算一下,A類地址有 (27−2)(224−2)≈231 (2^7-2)(2^{24}-2) \approx 2^{31}個。整個IP地址共有: 232 2^{32}個。實際上因為前面的固定加成,以及保留的E類地址,總數還不到 232 2^{32}個。而A類地址直接妥妥地佔到了一半。總共就126個可用的A類IP地址,一個地址就可以自由分配 224−2 2^{24}-2個主機地址,是非常方便的。像B類,C類,一個機構稍微大一點,就不得不申請多個才能完成全部的主機互聯。這其實是非常不公平的事情。毫無疑問,A類地址幾乎都在北美,這也是為什麼我們需要加快推進IPv6的一個側面原因吧。IPv4不夠用當然是主要的。網路空間的公平也是追求的目標。
B類地址:網路號2B固定是從10開始,那麼就不存在全0全1的網路號了。但是要減1,減1的原因是: 128.0.0.0不分配。
即:網路號從128.1~191.255
註:去掉私人地址:172.16.x.x~172.31.x.x
主機號一樣是減2,全0全1不分配。
C類地址:3B的網路號前面的三位從110開始。那麼有21位可以用。但是仍然有一個雖然不是全0全1,不分配的是:192.0.0.0.
其實B、C類網路號去1,A類去2可以這麼記憶。B、C類可分配的位元中,全0也不用。因為迴路位址有A類的就夠了,所以只減1.
這沒有任何邏輯,純粹助記而已。
IP地址是邏輯地址,是用軟體實現的。
物理地址是資料連結層和物理層使用的地址,是硬體地址。
硬體地址固化在網卡上的ROM中,硬體地址又稱之為MAC地址。
發送資料從高往下,封裝到資料連結層的幀時,資料連結層看不到IP地址,在每段鏈路之間的跨越都是通過MAC地址進行的。
既然資料連結層看不到IP地址也就意味著源IP地址和目的IP地址在轉寄過程中不會改變,而可被資料連結層看到的MAC地址,在每一段跳躍時都要改變。值得注意的是用私人地址的NAT路由器,要有一次穿上公網(網際網路)可識別的IP地址。又一次變化。如果對方主機也串連在NAT路由器上,則在目的端又有一次變化。
在電腦網路中,甚至在整個電腦相關的系統中,屏蔽下層的實現細節是一種非常重要的設計思想。在更高層次的抽象上談論問題,是對問題的簡化,可是本身這種抽象的把握需要一定的理解。