ipv4的ip位址與ipv6的ip位址是不相同的。ipv4的ip位址只有32位,而ipv6的ip位址有128位,因此兩者的表示方式也不相同。
對於ipv4的ip位址表示方式,接觸網路的使用者應該對其不陌生,因此這裡對其不再贅述。
而很多使用者對ipv6的ip位址相對比較陌生一些。一般通過使用冒號(:)分隔一系列的十六進製制數字的方式來表示ipv6的ip位址。比如:5f05:2000:80ad:5800:0058:0800:2023:1d71
另外,ipv6的ip位址使用冒號分隔,而url中,位址段與埠號段也是使用冒號分隔,若url使用ipv6的ip位址與埠號的方式來表達,容易引起混淆,可以使用符號將ip位址段包含起來,避免歧義,如:
一般將ip位址劃分為不同的組,各個組具有不同的用途。ip位址空間劃分為單播位址、組播位址、廣播位址與任播位址。
internet位址在初始發展階段時,將ip位址劃分為兩個段,分別為network段與host段,network段表示該ip位址所在的網段,而host段用來識別該網段內特定的主機。
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-bwiswho6-1596875977779)(figure2_1.png)]
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-c0sgkhdt-1596875977783)(table2_3.png)]
隨著網路的發展,這樣的網路位址分類方法逐漸遇到問題,當新的網段被新增到internet,如何為其分配合適的a型別、b類或者c類位址將難以抉擇,因為網段數量與主機數量與a、b、c型別難以匹配。a、b型別網路位址浪費太多的主機數量,而c型別網路位址有不能提供足夠多的主機數量。
為了解決上節提到的問題,人們想到的解決方案是:將a、b、c型別的ip位址的host段,在細劃分為subnet段與host段,而具體如何劃分,可以將其留給本地網路管理員決定。在該網路之外的internet網路,依然將其看成是乙個a、b或者c型別的ip位址。
比如,對於乙個b型別的ip位址,network段依然保持16位不變,而原16位的host段,本地網路管理員劃分為8位的subnet段,以及8位的host段,這樣,可以將網路劃分為256個子網,每個子網可以有254個主機(子網的第乙個位址與最後乙個位址不能被主機使用)。通過子網的劃分,主機數量可以不拘泥於特定的網路位址型別,本地網路管理員可以根據實際的網路情況與主機數量,劃分合適的子網與主機數量,大大提高了ip位址的使用率。
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-19fustat-1596875977787)(figure2_2.png)]
對於該網路之外的其他internet,是看不到subnet的概念的,依然將後16位看成是b型別ip位址的host段。但是對於該網路內的路由器而言,其需要知道subnet段與host段如何劃分,不然內部的路由器將無法知道資料報的傳輸路徑。
子網掩碼是用來區分乙個ip位址的network/subnet段與host段的分界處。子網掩碼的長度與ip位址的長度是相同的。子網掩碼一般是由一系列的1,緊跟著一系列的0組成,子網掩碼中1所在的位所對應的ip位址的位,即是network/subnet段,而子網掩碼中0所在的位所對應的ip位址的位,即是host段。
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-k8vjebp9-1596875977791)(figure2_4.png)]
需要注意,子網掩碼只是本地區域網所看到的概念,對於該區域網之外的網路,是不關心subnet的概念的,只需要通過ip位址的頭幾位資料確定為a或者b或者c型別的ip位址,進而確定network段,即可進行資料的**。
在每乙個ipv4的子網中,有乙個特殊的位址將被保留為子網廣播位址(subnet broadcast address
)。子網廣播位址,是將位址的network/subnet段設定為對應網段的值,將host段設定為全1,即組成了該子網的廣播位址。
另外特殊的位址255.255.255.255
被保留為local net broadcast
,該位址上的資料不會被路由器**。
在20世紀90年代初期,隨著internet規模的增長,internet面臨更嚴重的規模問題,書中列出了三個比較重要的問題:
到2023年,一半以上的b類位址將被分配掉,在2023年,b類位址將全部被使用掉;
32位的ipv4位址被認為不足以應付21世紀的網路規模;
全球性路由表的數目一直在增長,越來越多的路由條目的出現,嚴重影響了路由效能。
ietf中的乙個小組road(routing and addressing
)開始關注這三個問題。小組認為,通過ipv6解決第二個問題,取消ip位址的分類方法,使用cidr(classless inter-domain routing
)解決第乙個問題,使用分層路由的思想,採用聚合(aggregation
)的方法解決第三個問題。
為了解決ip位址不夠用的問題,road小組提出了取消對ip位址的a、b、c的分類方式,轉而使用乙個prefix
的方法,來確定ip位址的範圍。
prefix是乙個數字,對於ipv4,其取值範圍為032、對於ipv6,其取值範圍為0128,對於值為n的prefix,表示其對應的ip位址的前n位數值為固定值,餘下的位的數值可靈活變動,因此可將ip位址分配為不同的範圍。
這樣的分類方法也相容a、b與c類的分類方法,比如a類ip位址,其prefix為8,b類ip位址,其prefix為16,而c類ip位址,其prefix為24。
一些例子為:
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-gclfpcro-1596875977794)(table2_6.png)]
在全球性路由表中路由條目的增多,驗證影響了路由效率。
書中做了乙個形象的比喻:要比駕駛一輛車去目的地,在不知道目的地位址的情況下,根據各個路段的路標指示牌,來確定下一段路的方向,這樣根據一段一段的指示,最終到達目的地。但是如果在整個系統中,可以到達的目的地增多的情況下,如果簡單的只是在每個路段增加指示牌,則在路途中,每到乙個路口,都需要從很多的指示牌中選出乙個正確的指示牌,來確認方向。這樣就比較的麻煩,效率也會下降。為了減少指示牌,可以將目的地進行分類,指示牌只是指出某種型別的目的地的方向,這樣,指示牌的數量將會減少很多。這也是分層路由與聚合的思想。
kleinrock 與 kamoun 通過研究發現,如果網路的拓撲結構調整為樹形結構,網路位址按照樹形拓撲結構進行分配,則可以在保持最短路徑有效的情況下,大大減少路由條目。
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-4sh8lgbw-1596875977796)(figure2_8.png)]
根據這種路由分層的思想,採用一種被稱為route aggregation
的方法,減少路由條目數。即可以將多個ip位址的相鄰字首,聚合為乙個短的字首,即將相鄰的ip位址進行合併,進而達到減少路由條目的目的。
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-yctr5gpe-1596875977798)(figure2_9.png)]
讀書筆記 《TCP IP協議詳解 卷1 協議》
tcp ip協議詳解 卷1 協議 第6章 icmp internet控制報文協議 1 icmp採用udp,在ip資料報內部所傳輸 2 有幾種情況下不會導致產生icmp差錯報文 icmp 差錯報文 廣播或多播 ip資料報,非 ip分片的第一片 3 icmp差錯報文必須包括生產該差錯報文的的資料報ip首...
《TCP IP詳解,卷一 協議》讀書筆記
ftp協議流程圖。應用層和傳輸層是端到端協議,只有端系統會使用者兩層協議,傳輸層的tcp可以保證可靠性。網路層是逐跳協議,所有中間系統和端系統都會使用這一層。網路層不保證可靠性。網橋在鏈路層使主機互聯 路由器在網路層使主機互聯。igmp是internet組管理協議,用來把乙個udp資料報多播到多個主...
《TCP IP詳解卷1 協議》讀書筆記之鏈路層
首先看下圖來了解各個協議層對資料的封裝,當應用程式用tcp傳送資料時,資料被送入協議棧中,然後逐個通過每一層直到被當作一串位元流送入網路,其中每一層對收到的資料都要增加一些首部資訊,該過程如下圖所示 從圖中可以看出,應用程式使用tcp或udp來傳送資料,運輸層協議在生成報文首部時要存入乙個應用程式的...