午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

網(wǎng)絡(luò)基礎(chǔ)——網(wǎng)絡(luò)層(ip協(xié)議詳解)

 SNSJXQ 2020-10-16

我們知道網(wǎng)絡(luò)分層存在TCP/IP五層模型:

應(yīng)用層:負(fù)責(zé)應(yīng)用程序之間的數(shù)據(jù)溝通;自定制協(xié)議;知名協(xié)議(HTTP/FTP/SSH協(xié)議)

傳輸層:負(fù)責(zé)端與端之間的數(shù)據(jù)溝通(端口與端口之間);封裝端口信息(TCP/UDP協(xié)議)

網(wǎng)絡(luò)層:負(fù)責(zé)地址管理與路由選擇;(選擇最優(yōu)路徑);(IP協(xié)議,路由器)

鏈路層:相鄰設(shè)備之間的數(shù)據(jù)傳輸(兩個(gè)網(wǎng)卡之間,通過(guò)mac地址地址標(biāo)識(shí))(以太網(wǎng)協(xié)議(Etherne)交換機(jī))

物理層:負(fù)責(zé)光電信號(hào)的傳輸(以太網(wǎng)協(xié)議,集線(xiàn)器(比如雙絞線(xiàn)的長(zhǎng)度直徑,等等))

應(yīng)用層和傳輸層,阿鯉在之前已經(jīng)分享過(guò)了,連接在此:

http https tcp udp

我們?cè)谶@篇文章中會(huì)介紹網(wǎng)絡(luò)層


提到ip,我想大家首先會(huì)想到的是ip地址,是的網(wǎng)絡(luò)中的一個(gè)ip就是一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)。但是ip地址只是ip協(xié)議中的一個(gè)標(biāo)識(shí)而已,現(xiàn)在就讓我們看看IP協(xié)議的格式是怎樣的。

網(wǎng)絡(luò)基礎(chǔ)——網(wǎng)絡(luò)層(ip協(xié)議詳解)

1:4為版本號(hào):指定ip版本協(xié)議,對(duì)于ipv4而言就是4;

2:4位首部長(zhǎng)度:ip頭部長(zhǎng)度是以4字節(jié)為單位的;而其首部長(zhǎng)度是4bit,4bit表示最大的數(shù)是15;所以ip頭部的最大長(zhǎng)度為15*4=60字節(jié)

3:8位服務(wù)類(lèi)型:3位優(yōu)先權(quán)字段(棄用);4位tos字段,和1位保留字段(必須值為0);4位tos字段分別表示,最小延遲,最大吞吐量,最高可靠性,最小成本,這四者沖突所以只能選一個(gè)。eg:對(duì)于ssh/telnet這樣的應(yīng)用程序,最小延遲就比較重要,對(duì)于ftp這樣的程序,最大吞吐量比較重要。

4:16位總長(zhǎng)度:ip數(shù)據(jù)報(bào)整體占多少個(gè)字節(jié)

5:16位標(biāo)識(shí):唯一的標(biāo)識(shí)主機(jī)發(fā)送的報(bào)文,如果ip報(bào)文在數(shù)據(jù)鏈路層被分片了,那么每一個(gè)片里面的這個(gè)id都是相同的。

6:3位標(biāo)志字段:第一位保留(不知道干啥,先空下來(lái));第2位置為1表示禁止分片,如果這時(shí)候報(bào)文長(zhǎng)度超過(guò)mtu,ip模塊就會(huì)丟棄報(bào)文。第3位表示”更多分片“,如果分片的話(huà),最后一個(gè)分片值為1,其他為0,類(lèi)似于結(jié)束標(biāo)志。

7:13位片偏移:是分片相對(duì)于原始ip報(bào)文開(kāi)始處的偏移,其實(shí)就是在表示當(dāng)前分片在原始報(bào)文中的位置。實(shí)際偏移的字節(jié)數(shù)是這個(gè)值*8得到的。因此,除了最后一個(gè)報(bào)文之外,其他報(bào)文的長(zhǎng)度必須是8的整數(shù)倍。

8:8位生存時(shí)間:數(shù)據(jù)報(bào)到達(dá)目的地的最大報(bào)文跳數(shù),一般為64,每次經(jīng)過(guò)一個(gè)路由,TTL就會(huì)減一,如果減到0還沒(méi)有到達(dá),就直接丟棄了;這個(gè)字段就是用來(lái)防止出現(xiàn)路由循環(huán)的。

9:8位協(xié)議:表示上層協(xié)議(網(wǎng)絡(luò)層)

10:16位首部校驗(yàn)和:使用CRC進(jìn)行校驗(yàn),來(lái)鑒別頭部是否受損

11:32位源/目的端口:表示發(fā)送端和接收端

12:選項(xiàng)字段:。。。

ok,現(xiàn)在大家對(duì)ip協(xié)議的結(jié)構(gòu)應(yīng)該有了一定的認(rèn)識(shí),那么接下來(lái)讓我們看看ip協(xié)議在網(wǎng)絡(luò)層是怎樣傳輸?shù)?/span>

在網(wǎng)絡(luò)中,數(shù)據(jù)的傳遞被稱(chēng)為一個(gè)路由的過(guò)程,而路由中的每一個(gè)點(diǎn)就是一個(gè)ip地址;而在我們?nèi)粘I钪?,?fù)責(zé)路由的儀器就是路由器(主機(jī)雖然有ip節(jié)點(diǎn),但是不能進(jìn)行路由控制)

那路由的過(guò)程是怎樣的呢?

唉,不著急,在講解路由過(guò)程之前,讓再看看ip地址的結(jié)構(gòu)

一個(gè)ip地址被分為兩個(gè)部分:網(wǎng)絡(luò)號(hào)+主機(jī)號(hào)

網(wǎng)絡(luò)號(hào):保證相互鏈接的兩個(gè)網(wǎng)段具有不同的標(biāo)識(shí)

主機(jī)號(hào):同一網(wǎng)段內(nèi),主機(jī)之間具有相同的網(wǎng)絡(luò)號(hào),但是必須有不同的主機(jī)號(hào)

其實(shí)不同的主網(wǎng),就是把網(wǎng)路號(hào)相同的主機(jī)放在一起;如果在子網(wǎng)中新增一臺(tái)主機(jī),則這臺(tái)主機(jī)的網(wǎng)絡(luò)號(hào)和這個(gè)子網(wǎng)的網(wǎng)絡(luò)號(hào)一致,但是主機(jī)號(hào)必須不能和子網(wǎng)中的其主機(jī)重復(fù)。

那么合理設(shè)置主機(jī)號(hào)和網(wǎng)絡(luò)號(hào),就可以保證在相互鏈接的網(wǎng)絡(luò)中,每臺(tái)主機(jī)的ip不相同。

那么問(wèn)題來(lái)了,手動(dòng)的管理子網(wǎng)ip,是一個(gè)相當(dāng)麻煩的事情。但是!有一種技術(shù)叫DHCP;

DHCP能夠自動(dòng)的給主網(wǎng)內(nèi)新增主機(jī)節(jié)點(diǎn)分配ip地址,避免了手動(dòng)管理ip的不便,一般的路由器都帶有這個(gè)功能。

說(shuō)了這么多,我們還不知道網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)是怎樣劃分的?

對(duì)于網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)的劃分,可以分為兩種,以前和現(xiàn)在

首先讓我們看看以前的劃分

A以前提出的網(wǎng)絡(luò)號(hào)碼的劃分,將ip地址歸為以下5類(lèi):

網(wǎng)絡(luò)基礎(chǔ)——網(wǎng)絡(luò)層(ip協(xié)議詳解)

A類(lèi)地址:0.0.0.0到127.255.255.255;高1位固定,7位網(wǎng)絡(luò)號(hào),24位主機(jī)號(hào);一般用于組建超大型網(wǎng)絡(luò)--可以包含一千多萬(wàn)的主機(jī)

B類(lèi)地址:128.0.0.0到191.255.255.255;高2位固定,14位網(wǎng)絡(luò)號(hào),16位主機(jī)號(hào);一般用于組建中型網(wǎng)絡(luò)--可以包括65536個(gè)主機(jī)

C類(lèi)地址:192.0.0.0到233.255.255.255;高3位固定;21位網(wǎng)絡(luò)號(hào),8位主機(jī)號(hào);一般用于組建小型網(wǎng)絡(luò),可以包含256個(gè)主機(jī)

D類(lèi)地址:224.0.0.0到239.255.255.255;高4位固定,28位多播組號(hào)

E類(lèi)地址:240.0.0.0到247.255.255.255;高5位固定,27位保留

隨著internet的飛速發(fā)展,這種劃分方案的局限性很快就顯現(xiàn)出來(lái),大多數(shù)組織都申請(qǐng)B類(lèi)網(wǎng)絡(luò)地址,導(dǎo)致B類(lèi)地址很快就分配完了,而A類(lèi)卻浪費(fèi)了大量地址;

eg:申請(qǐng)一個(gè)B類(lèi)地址,理論上一個(gè)子網(wǎng)能夠允許6萬(wàn)5千多個(gè)主機(jī)。A類(lèi)地址的子網(wǎng)數(shù)更多,然而實(shí)際網(wǎng)絡(luò)假設(shè)中,不會(huì)存在一個(gè)子網(wǎng)內(nèi)有那么多情況。因此大量ip地址都被浪費(fèi)掉了。

為了針對(duì)這種情況提出了新的劃分方案,成為CIDR(classless interdomain routing)

引入一個(gè)額外的子網(wǎng)掩碼來(lái)區(qū)分網(wǎng)路號(hào)和主機(jī)號(hào);

1:子網(wǎng)掩碼也是一個(gè)32位的正整數(shù)。通常用一串“0”來(lái)結(jié)尾;

2:將ip地址和子網(wǎng)掩碼進(jìn)行 “按位與” 操作,得到的結(jié)果就是網(wǎng)絡(luò)號(hào);

3:網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)的劃分與這個(gè)ip地址是A類(lèi),B類(lèi)還是C類(lèi)無(wú)關(guān);

eg:

ip地址140.252.20.68子網(wǎng)掩碼255.255.255.0網(wǎng)絡(luò)號(hào)142.252.20.0子網(wǎng)地址范圍142.252.20.0~140.252.20.255

細(xì)心的同學(xué)根據(jù)例子可以看出:ip地址與子網(wǎng)掩碼做與運(yùn)算可以得到網(wǎng)絡(luò)號(hào),主機(jī)號(hào)從全0到全1就是子網(wǎng)的地址范圍;

ip地址和子網(wǎng)掩碼還有一種更簡(jiǎn)潔的表示方法,

eg:140.252.20.68/24,表示ip地址位140.252.20.68,子網(wǎng)掩碼的高位是1,也就是255.255.255.0

在介紹完ip地址的劃分后,讓我們?cè)倏纯磶讉€(gè)特殊的ip地址散散心

1:將ip地址中的主機(jī)號(hào)全部設(shè)置為0,就成了網(wǎng)絡(luò)號(hào),代表這個(gè)局域網(wǎng);

2:將ip地址中的主機(jī)地址全部設(shè)置為1,就成了廣播地址,用于給同一個(gè)鏈路中相互鏈接的所有主機(jī)發(fā)送數(shù)據(jù)包

3:127.*的ip地址是用于本機(jī)回環(huán)測(cè)試的,通常是127.0.0.1

可是,以上的這些技術(shù)可以讓我們擁有足夠的ip地址嗎?

答案是:不能的;因?yàn)楝F(xiàn)在通用的ip地址是ipv4,一共是4個(gè)字節(jié),那么一共只有2的32次方個(gè)ip地址,大概是43億左右,而tcp/ip協(xié)議規(guī)定,每個(gè)主機(jī)都需要有一個(gè)IP地址。

但是世界上的主機(jī)遠(yuǎn)不止43億個(gè),并且ip地址都是按照網(wǎng)卡分的;

雖然CIDR在一定程度上緩解了ip地址的不夠,但是仍然不足。所以出現(xiàn)了下面的三種方法去解決ip地址不夠用

1:動(dòng)態(tài)分配ip地址:只給接入網(wǎng)絡(luò)的設(shè)備分配ip地址,因此同一個(gè)mac地址的設(shè)備,每次接入互聯(lián)網(wǎng)中得到的IP地址是不同的

2:IPV6:使用128字節(jié)來(lái)表達(dá)一個(gè)地址,現(xiàn)在還未推廣開(kāi);因?yàn)楹蚷pv4不兼容。

3:NAT技術(shù):在介紹NAT技術(shù)之前,我們先看一下什么是私有ip地址和公網(wǎng)ip地址

私有IP地址:如果一個(gè)組織內(nèi)部組建局域網(wǎng),ip地址只用于局域網(wǎng)內(nèi)的通信,而不是直接連到interent上,理論上,使用任意ip地址都可以,但是RFC1918規(guī)定了用于組建局域網(wǎng)的私有ip地址。

1:10.*,前八位為網(wǎng)絡(luò)號(hào),共16777216個(gè)地址

2:172.16.到172.31.,前12位是網(wǎng)絡(luò)號(hào),共1048,576個(gè)地址

3:192,168.*,前16位是網(wǎng)絡(luò)號(hào),共65536個(gè)地址

在這個(gè)范圍中的,都稱(chēng)為私有ip,其余則稱(chēng)為公網(wǎng)ip;

每一個(gè)路由器可以配置兩個(gè)ip地址,一個(gè)是wan口ip,一個(gè)是lan口ip(子網(wǎng));

路由器的所有l(wèi)an口連接所有主機(jī),其網(wǎng)絡(luò)號(hào)都是這個(gè)ip;

不同的路由器,子網(wǎng)ip都是一樣的(因?yàn)閷?duì)內(nèi)),一般都是192.168.1.1;主網(wǎng)的主機(jī)ip不可以重復(fù)。但是子網(wǎng)之間的主機(jī)ip就可以重復(fù)了。

wan口ip就是公網(wǎng)ip了,lan對(duì)內(nèi),wan對(duì)外;wan口ip就不能重復(fù)了,所以子網(wǎng)之間的ip是可以重復(fù)的。

每次在子網(wǎng)內(nèi)的主機(jī)需要和外網(wǎng)進(jìn)行通信的時(shí)候,路由器將ip首部中的ip地址進(jìn)行替換,這樣逐級(jí)替換,最終將數(shù)據(jù)包中的ip地址轉(zhuǎn)換成一個(gè)公網(wǎng)ip;這個(gè)轉(zhuǎn)換技術(shù)被稱(chēng)為NAT(network address translation)

如果我們希望我們自己實(shí)現(xiàn)的服務(wù)器程序,能夠在公網(wǎng)上被訪問(wèn)到,就需要把程序部署在一臺(tái)具有外網(wǎng)ip的服務(wù)器上。比如阿里云,騰訊云等。

說(shuō)了這么多,就是為我們介紹路由的過(guò)程打鋪墊的,現(xiàn)在就讓我們一起看看路由的過(guò)程;

路由選擇就好比一個(gè)人問(wèn)路的過(guò)程;

問(wèn)路:當(dāng)ip數(shù)據(jù)包,到達(dá)路由器時(shí),路由器會(huì)先查看目的ip;

指路:路由器決定這個(gè)數(shù)據(jù)包是否可以直接發(fā)送給目標(biāo)主機(jī),還是需要發(fā)送給下一個(gè)路由器

重復(fù):依次反復(fù),一直達(dá)到目標(biāo)IP

那你知道,路由器是如何判定這個(gè)數(shù)據(jù)該發(fā)送到哪里呢?

這是因?yàn)槊總€(gè)節(jié)點(diǎn)都會(huì)維護(hù)一個(gè)路由表;這個(gè)表格可以在linux中使用route命令查看。如果ip命中了路由表,就直接轉(zhuǎn)發(fā)。

路由表中的最后一行,主要由一下次路由的地址和發(fā)送接口兩部分組成。

eg:

網(wǎng)絡(luò)基礎(chǔ)——網(wǎng)絡(luò)層(ip協(xié)議詳解)

destination:目的網(wǎng)絡(luò)地址

gateway:下一條地址;(廣播)

genmast:子網(wǎng)掩碼

flags:U表示有效,G表示此條目的的下一條地址是某個(gè)路由器的地址。

Iface:發(fā)送鏈接接口

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多