IP的作用
發(fā)送數(shù)據(jù)時,按照應(yīng)用層 —>數(shù)據(jù)鏈路層自上而下封裝數(shù)據(jù)包。當(dāng)我們接收數(shù)據(jù)時,按照數(shù)據(jù)鏈路層 —>應(yīng)用層 進行拆包。這里我們再來看一下數(shù)據(jù)鏈路層以太網(wǎng)幀的結(jié)構(gòu):
MAC地址其實就能解決第一個 發(fā)給誰 的問題。那為啥還需要IP層呢?IP解決的就是網(wǎng)絡(luò)上數(shù)據(jù)包的路由定位困難問題。IP的定義網(wǎng)絡(luò)號和主機號組成。比如10.100.122.2/24 這個IP:10.100.122.2是“點分十進制”表示形式,/24 表示的是前24位是網(wǎng)絡(luò)號,后8位是主機號。這個網(wǎng)絡(luò)號其實充當(dāng)?shù)木褪?/span>“國家城市區(qū)”的概念。比如我們只需要記住怎么去往10.100.122.x,就知道怎么去找10.100.122.1/24和10.100.122.2/24了。為了方便獲取網(wǎng)絡(luò)號 ,又出現(xiàn)一個子網(wǎng)掩碼的概念。子網(wǎng)掩碼就是網(wǎng)絡(luò)號位上全為1,主機號全為0的IP地址。這樣當(dāng) IP&子網(wǎng)掩碼得到的就是IP的網(wǎng)絡(luò)號。所以10.100.122.2/24的子網(wǎng)掩碼就是255.255.255.0。
/24或/16這樣的CIDR方式去區(qū)分IP的網(wǎng)絡(luò)號和主機號就可以。特殊的IP網(wǎng)段。
通過怎么樣的路線才能發(fā)給他。IP路由網(wǎng)關(guān)就是這個出入口。不同局域網(wǎng)(IP網(wǎng)絡(luò)號不同)的網(wǎng)絡(luò)通信必須經(jīng)過網(wǎng)關(guān),相同局域網(wǎng)的網(wǎng)絡(luò)通信可以靠廣播和MAC地址來送達目標(biāo)機器(也就是二層協(xié)議行的通)。
1處的數(shù)據(jù)包結(jié)構(gòu)為:
2處的數(shù)據(jù)包結(jié)構(gòu)為:
3處的數(shù)據(jù)包結(jié)構(gòu)為:
IP地址不需要改變。這種網(wǎng)關(guān)稱為轉(zhuǎn)發(fā)網(wǎng)關(guān)。而實際上還存在一種改變 IP 地址的網(wǎng)關(guān),稱為NAT 網(wǎng)關(guān)。我們就不展開了,小伙伴可以自行搜索。127.0.0.1 & 0.0.0.0127.0.0.1表示的是回環(huán)IP地址(loopback address)。啥意思呢?所有發(fā)往目標(biāo)IP為127.0.0.1的數(shù)據(jù)包都不會通過網(wǎng)卡發(fā)送到網(wǎng)絡(luò)上,而是在數(shù)據(jù)離開網(wǎng)絡(luò)層時將其回送給本機的有關(guān)進程。
localhost通常也代表127.0.0.1。這是因為通常在本機Hosts文件會把localhost映射為127.0.0.1 。此外以127開頭的IP地址都是回環(huán)地址,只是我們通常使用127.0.0.1。所以這只能在本機來回收發(fā)包的地址有啥用呢?本機測試用!!
沒有路由的元地址,通常被用來表示無效的,未知的 或是 沒有指定目標(biāo)IP的地址。看不懂沒關(guān)系,它其實相當(dāng)于Java中的this,真表示啥要放到實際所處環(huán)境中去考慮。用處主要有:
記錄數(shù)據(jù)包下一跳應(yīng)該去哪的路由規(guī)則。每一條規(guī)則至少包含三項信息:網(wǎng)絡(luò)ID:就是目標(biāo)地址的網(wǎng)絡(luò)ID。 子網(wǎng)掩碼:用來判斷IP所屬網(wǎng)絡(luò)。 下一跳地址/接口:就是數(shù)據(jù)在發(fā)送到目標(biāo)地址的旅途中下一站的地址。默認(rèn)路由的意思。
|
|
|