TCP IP IP位址與路由

2021-08-16 12:45:44 字數 4655 閱讀 5010

ipv4的ip位址長度為4位元組,通常採用點分十進位制表示法(dotted decimal representation)例如0xc0a80002表示為192.168.0.2。internet被各種路由器和閘道器裝置分隔成很多網段,為了標識不同的網段,需要把32位的ip位址劃分成網路號和主機號兩部分,網路號相同的各主機位於同一網段,相互間可以直接通訊,網路號不同的主機之間通訊則需要通過路由器**。

過去曾經提出一種劃分網路號和主機號的方案,把所有ip位址分為五類,如下圖所示

a類 0.0.0.0到127.255.255.255

b類 128.0.0.0到191.255.255.255

c類 192.0.0.0到223.255.255.255

d類 224.0.0.0到239.255.255.255

e類 240.0.0.0到247.255.255.255

乙個a類網路可容納的位址數量最大,乙個b類網路的位址數量是65536,乙個c類網路的位址數量是256。d類位址用作多播位址,e類位址保留未用。

隨著internet的飛速發展,這種劃分方案的侷限性很快顯現出來,大多數組織都申請b類網路位址,導致b類位址很快就分配完了,而a類卻浪費了大量位址。這種方式對網路的劃分是flat的而不是層級結構(hierarchical)的,internet上的每個路由器都必須掌握所有網路的資訊,隨著大量c類網路的出現,路由器需要檢索的路由表越來越龐大,負擔越來越重。

針對這種情況提出了新的劃分方案,稱為cidr(classless interdomain routing)(無類別域間路由

)。網路號和主機號的劃分需要用乙個額外的子網掩碼(subnet mask)來表示,而不能由ip位址本身的數值決定,也就是說,網路號和主機號的劃分與這個ip位址是a類、b類還是c類無關,因此稱為classless的。這樣,多個子網就可以彙總(summarize)成乙個internet上的網路,例如,有8個站點都申請了c類網路,本來網路號是24位的,但是這8個站點通過同乙個isp(internet serviceprovider)連到internet上,它們網路號的高21位是相同的,只有低三位不同,這8個站點就可以彙總,在internet上只需要乙個路由表項,資料報通過internet上的路由器到達isp,然後在isp這邊再通過次級的路由器選路到某個站點。

下面舉兩個例子:

劃分子網的例子1

劃分子網的例子2

可見,ip位址與子網掩碼做與運算可以得到網路號,主機號從全0到全1就是子網的位址範圍。ip位址和子網掩碼還有一種更簡潔的表示方法,例如140.252.20.68/24,表示ip位址為140.252.20.68,子網掩碼的高24位是1,也就是255.255.255.0。

如果乙個組織內部組建區域網,ip位址只用於區域網內的通訊,而不直接連到internet上,理論上使用任意的ip位址都可以,但是rfc 1918規定了用於組建區域網的私有ip位址,這些位址不會出現在internet上,如下表所示。

10.*,前8位是網路號,共16,777,216個位址

172.16.*到172.31.*,前12位是網路號,共1,048,576個位址

192.168.*,前16位是網路號,共65,536個位址

使用私有ip位址的區域網主機雖然沒有internet的ip位址,但也可以通過**伺服器或nat(網路位址轉換)等技術連到internet上。

除了私有ip位址之外,還有幾種特殊的ip位址。127.*的ip位址用於本機環迴(loop back)測試,通常是127.0.0.1。loopback是系統中一種特殊的網路裝置,如果傳送資料報的目的位址是環迴位址,或者與本機其它網路裝置的ip位址相同,則資料報不會傳送到網路介質上,而是通過環迴裝置再發回給上層協議和應用程式,主要用於測試。如下圖所示

loopback裝置

路由(名詞)    資料報從源位址到目的位址所經過的路徑,由一系列路由節點組成。

路由(動詞)    某個路由節點為資料報選擇投遞方向的選路過程。

路由節點           乙個具有路由能力的主機或路由器,它維護一張路由表,通過查詢路由表來決定向哪個介面傳送資料報。

介面                路由節點與某個網路相連的網絡卡介面。

路由表            

由很多路由條目組成,每個條目都指明去往某個網路的資料報應該經由哪個介面傳送,其中最後一條是預設  路      由 條目。

路由條目

路由表中的一行,每個條目主要由目的網路位址、子網掩碼、下一跳位址、傳送介面四部分組成,如果要傳送的資料報的目的網路位址匹配路由表中的某一行,就按規定的介面傳送到下一跳位址。

預設路由條目

假設某主機上的網路介面配置和路由表如下:

$ ifconfig

eth0 link encap:ethernet hwaddr 00:0c:29:c2:8d:7e

inet addr:192.168.10.223 bcast:192.168.10.255

mask:255.255.255.0

up broadcast running multicast mtu:1500 metric:1

rx packets:0 errors:0 dropped:0 overruns:0 frame:0

tx packets:10 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

rx bytes:0 (0.0 b) tx bytes:420 (420.0 b)

interrupt:10 base address:0x10a0

eth1 link encap:ethernet hwaddr 00:0c:29:c2:8d:88

inet addr:192.168.56.136 bcast:192.168.56.255

mask:255.255.255.0

up broadcast running multicast mtu:1500 metric:1

rx packets:603 errors:0 dropped:0 overruns:0 frame:0

tx packets:110 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

rx bytes:55551 (54.2 kb) tx bytes:7601 (7.4 kb)

interrupt:9 base address:0x10c0

lo link encap:local loopback

inet addr:127.0.0.1 mask:255.0.0.0

up loopback running mtu:16436 metric:1

rx packets:37 errors:0 dropped:0 overruns:0 frame:0

tx packets:37 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

686 rx bytes:3020 (2.9 kb) tx bytes:3020 (2.9 kb)

$ route

kernel ip routing table

destination gateway genmask flags metric ref

use iface

192.168.10.0 * 255.255.255.0 u 0 0

0 eth0

192.168.56.0 * 255.255.255.0 u 0 0

0 eth1

127.0.0.0 * 255.0.0.0 u 0 0

0 lo

default 192.168.10.1 0.0.0.0 ug 0 0

0 eth0

這台主機有兩個網路介面,乙個網路介面連到192.168.10.0/24網路,另乙個網路介面連到192.168.56.0/24網路。路由表的destination是目的網路位址,genmask是子網掩碼,gateway是下一跳位址,iface是傳送介面,flags中的u標誌表示此條目有效(可以禁用某些條目),g標誌表示此條目的下一跳位址是某個路由器的位址,沒有g標誌的條目表示目的網路位址是與本機介面直接相連的網路,不必經路由器**,因此下一跳位址處記為*號。如果要傳送的資料報的目的位址是192.168.56.3,跟第一行的子網掩碼做與運算得到192.168.56.0,與第一行的目的網路位址不符,再跟第二行的子網掩碼做與運算得到192.168.56.0,正是第二行的目的網路位址,因此從eth1介面傳送出去,由於192.168.56.0/24正是與eth1介面直接相連的網路,因此可以直接發到目的主機,不需要經路由器**。如果要傳送的資料報的目的位址是202.10.1.2,跟前三行路由表條目都不匹配,那麼就要按預設路由條目,從eth0介面發出去,首先發往192.168.10.1路由器,再讓路由器根據它的路由表決定下一跳位址。

TCP IP IP路由選擇

ip層在記憶體中有乙個路由表,當有資料要傳送時,它要對該錶進行一次搜尋以確認 位址。收到的資料到達ip層時。ip層會檢查資料報的目的位址是否為本機ip或廣播ip 路由表內容例如以下所看到的 字段說明 目的ip位址 能夠是網路位址。也能夠是主機位址。由以下的標誌字段區分 與當前網路介面直接相連的路由器...

TCPIP IP路由表及選路 Note

tcp ip ip路由表及選路 1.路由表資訊檢視路由表資訊 mac abeen abeen netstat rn routing tables internet destination gateway flags refs use netif expire default 172.16.0.1 u...

TCP IP,路由,位址

tcp的傳送量控制 接收端處理資料的速度是有限的.如果傳送端發的太快,導致接收端的緩衝區被打滿,這個時候如果傳送端繼續傳送,就會造成丟包,繼而引起丟包重傳等等一系列連鎖反應.因此tcp支援根據接收端的處理能力,來決定傳送端的傳送速度.這個機制就叫做流量控制 flow control tcp引入慢啟動...