计算机网络——IP协议基础原理
摘要
IP協(xié)議提供的一種統(tǒng)一的地址格式。它為互聯(lián)網(wǎng)上的每一個(gè)網(wǎng)絡(luò)和主機(jī)分配一個(gè)邏輯地址所以IP地址也叫邏輯地址,用來屏蔽物理地址的差異,MAC地址每一個(gè)機(jī)器都有一個(gè)編碼。IP地址是32位二進(jìn)制數(shù)據(jù)分為4段每一段8位0~255來表示。通常是10進(jìn)制的方式表示。凡是基于TCP/IP協(xié)議的智能設(shè)備都可以被分配IP地址。在同一個(gè)局域網(wǎng)中/本地局域網(wǎng)IP地址是唯一的。IP協(xié)議只是是網(wǎng)絡(luò)之間的互聯(lián)的協(xié)議。互聯(lián)網(wǎng)/物聯(lián)網(wǎng)的所有計(jì)算機(jī)網(wǎng)絡(luò)實(shí)現(xiàn)相互通信的一套規(guī)則。規(guī)定了計(jì)算機(jī)在網(wǎng)絡(luò)中進(jìn)行通信時(shí)應(yīng)當(dāng)遵守的規(guī)則。所有設(shè)備只要是遵守IP協(xié)議就可以在網(wǎng)絡(luò)中互聯(lián)互通。
| 計(jì)算機(jī)網(wǎng)絡(luò)知識(shí)腦圖 | 計(jì)算機(jī)網(wǎng)絡(luò)——計(jì)算機(jī)網(wǎng)絡(luò)知識(shí)腦圖_莊小焱的博客-CSDN博客_計(jì)算機(jī)網(wǎng)絡(luò)面試題總結(jié) |
| 計(jì)算機(jī)網(wǎng)絡(luò)大廠面試問題集合 | 計(jì)算機(jī)網(wǎng)絡(luò)——大廠面試問題集合_莊小焱的博客-CSDN博客 |
| 計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)知識(shí) | 計(jì)算機(jī)網(wǎng)絡(luò)——網(wǎng)絡(luò)基礎(chǔ)知識(shí)_莊小焱的博客-CSDN博客_數(shù)據(jù)轉(zhuǎn)發(fā)服務(wù)器 |
| IP相關(guān)基礎(chǔ)原理 | 計(jì)算機(jī)網(wǎng)絡(luò)——IP協(xié)議基礎(chǔ)原理_莊小焱的博客-CSDN博客_ip網(wǎng)絡(luò)技術(shù) |
| HTTP協(xié)議原理 | 計(jì)算機(jī)網(wǎng)絡(luò)——HTTP協(xié)議原理_莊小焱的博客-CSDN博客_http協(xié)議原理 |
| HTTP的優(yōu)化方式 | 計(jì)算機(jī)網(wǎng)絡(luò)——HTTP的優(yōu)化方式_莊小焱的博客-CSDN博客 |
| HTTPS協(xié)議原理 | 計(jì)算機(jī)網(wǎng)絡(luò)——HTTPS協(xié)議原理_莊小焱的博客-CSDN博客_https協(xié)議原理 |
| HTTPS的優(yōu)化方式 | 計(jì)算機(jī)網(wǎng)絡(luò)——HTTPS的優(yōu)化方式_莊小焱的博客-CSDN博客 |
| TCP可靠性傳輸原理 | 計(jì)算機(jī)網(wǎng)絡(luò)——TCP可靠性傳輸原理_莊小焱的博客-CSDN博客_tcp的可靠性是如何實(shí)現(xiàn)的 |
| TCP/IP三次握手四次揮手原理 | 計(jì)算機(jī)網(wǎng)絡(luò)——HTTP的三次握手與四次揮手原理_莊小焱的博客-CSDN博客_三次握手和四次揮手原理 |
| TCP的優(yōu)化方式 | 計(jì)算機(jī)網(wǎng)絡(luò)——TCP的優(yōu)化方式_莊小焱的博客-CSDN博客_tcp協(xié)議優(yōu)化技術(shù) |
| DNS協(xié)議(域名解析)原理 | 計(jì)算機(jī)網(wǎng)絡(luò)——DNS協(xié)議(域名解析)原理_莊小焱的博客-CSDN博客_計(jì)算機(jī)網(wǎng)絡(luò)dns |
| ARP協(xié)議(地址解析)原理 | 計(jì)算機(jī)網(wǎng)絡(luò)——ARP協(xié)議(地址解析)原理_莊小焱的博客-CSDN博客_地址解析協(xié)議的工作原理 |
| ARQ協(xié)議(自動(dòng)重傳請(qǐng)求)原理 | 計(jì)算機(jī)網(wǎng)絡(luò)——ARQ協(xié)議(自動(dòng)重傳請(qǐng)求)原理_莊小焱的博客-CSDN博客_連續(xù)arq協(xié)議的原理 |
| DHCP協(xié)議原理 | 計(jì)算機(jī)網(wǎng)絡(luò)——DHCP(動(dòng)態(tài)獲取IP)原理_莊小焱的博客-CSDN博客_計(jì)算機(jī)網(wǎng)絡(luò)dhcp |
| NAT協(xié)議原理 | 計(jì)算機(jī)網(wǎng)絡(luò)——NAT協(xié)議(網(wǎng)絡(luò)地址轉(zhuǎn)換)原理_莊小焱的博客-CSDN博客 |
| ICMP/IGMP協(xié)議原理 | 計(jì)算機(jī)網(wǎng)絡(luò)——ICMP/IGMP協(xié)議原理_莊小焱的博客-CSDN博客_計(jì)算機(jī)網(wǎng)絡(luò)igmp |
| HTTP網(wǎng)絡(luò)訪問全流程 | 計(jì)算機(jī)網(wǎng)絡(luò)——HTTP網(wǎng)絡(luò)訪問全流程_莊小焱的博客-CSDN博客_網(wǎng)絡(luò)訪問流程 |
| 虛擬網(wǎng)路模型原理 | 計(jì)算機(jī)網(wǎng)絡(luò)——虛擬網(wǎng)路模型原理_莊小焱的博客-CSDN博客 |
| 其他網(wǎng)絡(luò)知識(shí) | 計(jì)算機(jī)網(wǎng)絡(luò)——select/poll/epoll底層原理_莊小焱的博客-CSDN博客 計(jì)算機(jī)網(wǎng)絡(luò)——cookie/session/token原理_莊小焱的博客-CSDN博客 計(jì)算機(jī)網(wǎng)絡(luò)——網(wǎng)絡(luò)通信加密原理_莊小焱的博客-CSDN博客_網(wǎng)絡(luò)通信加密 計(jì)算機(jī)網(wǎng)絡(luò)——GRPC通信原理_莊小焱的博客-CSDN博客_grpc原理 計(jì)算機(jī)網(wǎng)絡(luò)——tcpdump/Wireshark抓包實(shí)戰(zhàn)_莊小焱的博客-CSDN博客_網(wǎng)絡(luò)抓包 計(jì)算機(jī)網(wǎng)絡(luò)——TCP抓包連接實(shí)戰(zhàn)_莊小焱的博客-CSDN博客_tcp全連接和半連接 |
一、IP相關(guān)基礎(chǔ)概念
IP在TCP/IP 參考模型中處于第三層,也就是網(wǎng)絡(luò)層。網(wǎng)絡(luò)層的主要作用是:實(shí)現(xiàn)主機(jī)與主機(jī)之間的通信,也叫點(diǎn)對(duì)點(diǎn)(end to end)通信。
1.1 網(wǎng)絡(luò)層與數(shù)據(jù)鏈路層有什么關(guān)系呢?
其實(shí)很容易區(qū)分,在上?我們知道 IP 的作?是主機(jī)之間通信?的,而MAC 的作?則是實(shí)現(xiàn)直連的兩個(gè)設(shè)備 之間通信,? IP 則負(fù)責(zé)在沒有直連的兩個(gè)?絡(luò)之間進(jìn)?通信傳輸。源IP地址和?標(biāo)IP地址在傳輸過程中是不會(huì)變化的,只有源 MAC 地址和?標(biāo) MAC ?直在變化。
1.2 IP的基礎(chǔ)概念
在TCP/IP ?絡(luò)通信時(shí),為了保證能正常通信,每個(gè)設(shè)備都需要配置正確的 IP 地址,否則?法實(shí)現(xiàn)正常的通信。IP 地址(IPv4 地址)由 32 位正整數(shù)來表示,IP 地址在計(jì)算機(jī)是以?進(jìn)制的?式處理的。而?類為了方便記憶采用了點(diǎn)分十進(jìn)制的標(biāo)記方法,也就是將 32 位 IP 地址以每 8 位為組,共分為4組,每組以.隔開,再將每組轉(zhuǎn)換成?進(jìn)制。
實(shí)際上,IP 地址并不是根據(jù)主機(jī)臺(tái)數(shù)來配置的,而是網(wǎng)卡。像服務(wù)器、路由器等設(shè)備都是有 2 個(gè)以上的網(wǎng)卡,也 就是它們會(huì)有 2 個(gè)以上的 IP 地址。因此,讓43億臺(tái)計(jì)算機(jī)全部連網(wǎng)其實(shí)是不可能的,更何況 IP 地址是由?絡(luò)標(biāo)識(shí)和主機(jī)標(biāo)識(shí)這兩個(gè)部分組 成的,所以實(shí)際能夠連接到?絡(luò)的計(jì)算機(jī)個(gè)數(shù)更是少了很多。
1.3 IP的分類
互聯(lián)網(wǎng)誕生之初,IP 地址顯得很充裕,于是計(jì)算機(jī)科學(xué)家們設(shè)計(jì)了分類地址。IP 地址分類成了 5 種類型,分別是 A 類、B 類、C 類、D 類、E 類。
?其中對(duì)于 A、B、C 類主要分為兩個(gè)部分,分別是?絡(luò)號(hào)和主機(jī)號(hào)。
廣播地址的作用?
?播地址?于在同?個(gè)鏈路中相互連接的主機(jī)之間發(fā)送數(shù)據(jù)包。?播地址可以分為本地地?播和直接?播兩種:
- 在本?絡(luò)內(nèi)?播的叫做本地?播。例如?絡(luò)地址為 192.168.0.0/24 的情況下,?播地址是 192.168.0.255 。 因?yàn)檫@個(gè)?播地址的 IP 包會(huì)被路由器屏蔽,所以不會(huì)到達(dá) 192.168.0.0/24 以外的其他鏈路上。
- 在不同?絡(luò)之間的?播叫做直接?播。例如?絡(luò)地址為 192.168.0.0/24 的主機(jī)向 192.168.1.255/24 的?標(biāo)地 址發(fā)送 IP 包。收到這個(gè)包的路由器,將數(shù)據(jù)轉(zhuǎn)發(fā)給 192.168.1.0/24,從?使得所有 192.168.1.1~192.168.1.254 的主機(jī)都能收到這個(gè)包(由于直接?播有?定的安全問題,多數(shù)情況下會(huì)在路由 器上設(shè)置為不轉(zhuǎn)發(fā))
多播地址用于什么?
而D類和E類地址是沒有主機(jī)號(hào)的,所以不可?于主機(jī)IP,D 類常被?于多播,E 類是預(yù)留的分類,暫時(shí)未使用。多播?于將包發(fā)送給特定組內(nèi)的所有主機(jī)。由于?播?法穿透路由,若想給其他?段發(fā)送同樣的包,就可以使?可以穿透路由的多播。
1.4 IP 地址與路由控制
IP地址的?絡(luò)地址這?部分是?于進(jìn)?路由控制。路由控制表中記錄著?絡(luò)地址與下?步應(yīng)該發(fā)送?路由器的地址。在主機(jī)和路由器上都會(huì)有各?的路由器控制表。在發(fā)送 IP 包時(shí),?先要確定 IP 包首部中的?標(biāo)地址,再從路由控制表中找到與該地址具有相同?絡(luò)地址的記錄, 根據(jù)該記錄將IP包轉(zhuǎn)發(fā)給相應(yīng)的下?個(gè)路由器。如果路由控制表中存在多條相同?絡(luò)地址的記錄,就選擇相同位 數(shù)最多的?絡(luò)地址,也就是最長匹配。
環(huán)回地址是不會(huì)流向?絡(luò)
環(huán)回地址是在同?臺(tái)計(jì)算機(jī)上的程序之間進(jìn)??絡(luò)通信時(shí)所使?的?個(gè)默認(rèn)地址。 計(jì)算機(jī)使??個(gè)特殊的 IP 地址 127.0.0.1 作為環(huán)回地址。與該地址具有相同意義的是?個(gè)叫做 localhost 的主機(jī) 名。使?這個(gè) IP 或主機(jī)名時(shí),數(shù)據(jù)包不會(huì)流向?絡(luò)。
1.5 IP 分片與重組
每種數(shù)據(jù)鏈路的最?傳輸單元MTU都是不相同的,如 FDDI 數(shù)據(jù)鏈路 MTU4352、以太?的MTU是1500字節(jié)等。每種數(shù)據(jù)鏈路的 MTU 之所以不同,是因?yàn)槊總€(gè)不同類型的數(shù)據(jù)鏈路的使??的不同。使??的不同,可承載的 MTU 也就不同。其中,我們最常?數(shù)據(jù)鏈路是以太?,它的 MTU 是 1500 字節(jié)。那么當(dāng) IP 數(shù)據(jù)包???于 MTU 時(shí), IP 數(shù)據(jù)包就會(huì)被分?。經(jīng)過分?之后的 IP 數(shù)據(jù)報(bào)在被重組的時(shí)候,只能由?標(biāo)主機(jī)進(jìn)?,路由器是不會(huì)進(jìn)?重組的。
假設(shè)發(fā)送?發(fā)送?個(gè)4000字節(jié)的?數(shù)據(jù)報(bào),若要傳輸在以太網(wǎng)鏈路,則需要把數(shù)據(jù)報(bào)分?成 3 個(gè)小數(shù)據(jù)報(bào)進(jìn)?傳 輸,再交由接收?重組成?數(shù)據(jù)報(bào)。
在分片傳輸中,?旦某個(gè)分片中丟失,則會(huì)造成整個(gè)IP數(shù)據(jù)報(bào)作廢,所以 TCP 引?了 MSS 也就是在 TCP 層進(jìn)?分?不由IP層分?,那么對(duì)于 UDP 我們盡量不要發(fā)送?個(gè)?于 MTU 的數(shù)據(jù)報(bào)文。
二、IP相關(guān)網(wǎng)絡(luò)協(xié)議原理
2.1 DNS域名解析
那么實(shí)現(xiàn)這?技術(shù)的就是 DNS 域名解析,DNS 可以將域名?址?動(dòng)轉(zhuǎn)換為具體的 IP 地址。DNS 中的域名都是?句點(diǎn)來分隔的,比如www.server.com ,這?的句點(diǎn)代表了不同層次之間的界限。在域名中,越靠右的位置表示其層級(jí)越?。 畢竟域名是外國?發(fā)明,所以思維和中國?相反,?如說?個(gè)城市地點(diǎn)的時(shí)候,外國喜歡從小到大的順序說起 (如 XX 街道 XX 區(qū) XX 市 XX 省),?中國則喜歡從?到?的順序(如 XX 省 XX 市 XX 區(qū) XX 街道)。 根域是在最頂層,它的下?層就是 com 頂級(jí)域,再下面是 server.com。
所以域名的層級(jí)關(guān)系類似?個(gè)樹狀結(jié)構(gòu): 根 DNS 服務(wù)器 頂級(jí)域 DNS 服務(wù)器(com) 權(quán)威 DNS 服務(wù)器(server.com)
根域的 DNS 服務(wù)器信息保存在互聯(lián)?中所有的 DNS 服務(wù)器中。這樣?來,任何 DNS 服務(wù)器就都可以找到并訪問 根域 DNS 服務(wù)器了。因此,客戶端只要能夠找到任意?臺(tái) DNS 服務(wù)器,就可以通過它找到根域 DNS 服務(wù)器,然后再?路順藤摸?找到 位于下層的某臺(tái)?標(biāo) DNS 服務(wù)器。
2.1.1 域名解析的工作流程
瀏覽器?先看?下??的緩存?有沒有,如果沒有就向操作系統(tǒng)的緩存要,還沒有就檢查本機(jī)域名解析?件 hosts ,如果還是沒有,就會(huì) DNS 服務(wù)器進(jìn)?查詢,查詢的過程如下:
- 客戶端?先會(huì)發(fā)出?個(gè) DNS 請(qǐng)求,問 www.server.com 的 IP 是啥,并發(fā)給本地 DNS 服務(wù)器(也就是客戶端 的 TCP/IP 設(shè)置中填寫的 DNS 服務(wù)器地址)。
- 本地域名服務(wù)器收到客戶端的請(qǐng)求后,如果緩存?的表格能找到 www.server.com,則它直接返回 IP 地址。 如果沒有,本地 DNS 會(huì)去問它的根域名服務(wù)器:“??, 能告訴我 www.server.com 的 IP 地址嗎?” 根域名 服務(wù)器是最?層次的,它不直接?于域名解析,但能指明?條道路。
- 根 DNS 收到來?本地 DNS 的請(qǐng)求后,發(fā)現(xiàn)后置是 .com,說:“www.server.com 這個(gè)域名歸 .com 區(qū)域管 理”,我給你 .com 頂級(jí)域名服務(wù)器地址給你,你去問問它吧。”
- 本地 DNS 收到頂級(jí)域名服務(wù)器的地址后,發(fā)起請(qǐng)求問“??, 你能告訴我 www.server.com 的 IP 地址嗎?”
- 頂級(jí)域名服務(wù)器說:“我給你負(fù)責(zé) www.server.com 區(qū)域的權(quán)威 DNS 服務(wù)器的地址,你去問它應(yīng)該能問到”。
- 本地 DNS 于是轉(zhuǎn)向問權(quán)威 DNS 服務(wù)器:“?三,www.server.com對(duì)應(yīng)的IP是啥呀?” server.com 的權(quán)威 DNS 服務(wù)器,它是域名解析結(jié)果的原出處。為啥叫權(quán)威呢?就是我的域名我做主。
- 權(quán)威 DNS 服務(wù)器查詢后將對(duì)應(yīng)的 IP 地址 X.X.X.X 告訴本地 DNS。
- 本地 DNS 再將 IP 地址返回客戶端,客戶端和?標(biāo)建?連接。
2.2 ARP協(xié)議與RARP協(xié)議
2.2.1 ARP協(xié)議
在傳輸?個(gè)IP數(shù)據(jù)報(bào)的時(shí)候,確定了源 IP 地址和?標(biāo) IP 地址后,就會(huì)通過主機(jī)「路由表」確定 IP 數(shù)據(jù)包下? 跳。然?,?絡(luò)層的下?層是數(shù)據(jù)鏈路層,所以我們還要知道「下?跳」的 MAC地址。由于主機(jī)的路由表中可以找到下?跳的 IP 地址,所以可以通過 ARP 協(xié)議,求得下?跳的 MAC 地址。
那么ARP又是如何知道對(duì)方的MAC地址的呢?
簡單地說,ARP 是借助 ARP 請(qǐng)求與 ARP 響應(yīng)兩種類型的包確定 MAC 地址的。
- 主機(jī)會(huì)通過?播發(fā)送 ARP 請(qǐng)求,這個(gè)包中包含了想要知道的 MAC 地址的主機(jī) IP 地址。
- 當(dāng)同個(gè)鏈路中的所有設(shè)備收到 ARP 請(qǐng)求時(shí),會(huì)去拆開 ARP 請(qǐng)求包?的內(nèi)容,如果 ARP 請(qǐng)求包中的?標(biāo) IP 地址與??的 IP 地址?致,那么這個(gè)設(shè)備就將??的 MAC 地址塞? ARP 響應(yīng)包返回給主機(jī)。
操作系統(tǒng)通常會(huì)把第?次通過 ARP 獲取的 MAC 地址緩存起來,以便下次直接從緩存中找到對(duì)應(yīng) IP 地址的 MAC 地址。 不過,MAC 地址的緩存是有?定期限的,超過這個(gè)期限,緩存的內(nèi)容將被清除。
2.2.2 RARP協(xié)議
ARP 協(xié)議是已知 IP 地址求 MAC 地址,那 RARP 協(xié)議正好相反,它是已知 MAC 地址求 IP 地址。例如將打印機(jī)服 務(wù)器等?型嵌?式設(shè)備接?到?絡(luò)時(shí)就經(jīng)常會(huì)?得到。通常這需要架設(shè)?臺(tái) RARP 服務(wù)器,在這個(gè)服務(wù)器上注冊設(shè)備的 MAC 地址及其 IP 地址。然后再將這個(gè)設(shè)備接 ?到?絡(luò),接著:
- 該設(shè)備會(huì)發(fā)送?條「我的 MAC 地址是XXXX,請(qǐng)告訴我,我的IP地址應(yīng)該是什么」的請(qǐng)求信息。
- RARP 服務(wù)器接到這個(gè)消息后返回「MAC地址為 XXXX 的設(shè)備,IP地址為 XXXX」的信息給這個(gè)設(shè)備。
2.3 DHCP動(dòng)態(tài)獲取IP地址
DHCP 在?活中我們是很常見的了,我們的電腦通常都是通過 DHCP 動(dòng)態(tài)獲取 IP 地址,大大的省去了配IP信息繁瑣的過程。
這 4 個(gè)步驟:
客戶端收到DHCP ACK 后,交互便完成了,并且客戶端能夠在租?期內(nèi)使? DHCP 服務(wù)器分配的 IP 地址。如果租約的 DHCP IP 地址快期后,客戶端會(huì)向服務(wù)器發(fā)送 DHCP 請(qǐng)求報(bào)?:
- 服務(wù)器如果同意繼續(xù)租?,則? DHCP ACK 報(bào)?進(jìn)?應(yīng)答,客戶端就會(huì)延?租期。
- 服務(wù)器如果不同意繼續(xù)租?,則? DHCP NACK 報(bào)?,客戶端就要停?使?租約的 IP 地址。
可以發(fā)現(xiàn),DHCP 交互中,全程都是使? UDP ?播通信。那如果 DHCP 服務(wù)器和客戶端不是在同?個(gè)局域?內(nèi),路由器?不會(huì)轉(zhuǎn)發(fā)?播包,那不是每個(gè)?絡(luò) 都要配?個(gè) DHCP 服務(wù)器?所以,為了解決這?問題,就出現(xiàn)了 DHCP 中繼代理。有了 DHCP 中繼代理以后,對(duì)不同?段的 IP 地址分配也 可以由?個(gè) DHCP 服務(wù)器統(tǒng)?進(jìn)?管理。
- DHCP 客戶端會(huì)向 DHCP 中繼代理發(fā)送 DHCP 請(qǐng)求包,? DHCP 中繼代理在收到這個(gè)?播包以后,再以單 播的形式發(fā)給 DHCP 服務(wù)器。
- 服務(wù)器端收到該包以后再向 DHCP 中繼代理返回應(yīng)答,并由 DHCP 中繼代理將此包?播給 DHCP 客戶端 。
因此,DHCP 服務(wù)器即使不在同?個(gè)鏈路上也可以實(shí)現(xiàn)統(tǒng)?分配和管理IP地址。
2.4 NAT網(wǎng)絡(luò)地址轉(zhuǎn)換
IPv4 的地址是?常緊缺的,在前?我們也提到可以通過?分類地址來減緩 IPv4 地址耗盡的速度,但是互聯(lián)?的? 戶增速是?常驚?的,所以 IPv4 地址依然有被耗盡的危險(xiǎn)。于是,提出了?種?絡(luò)地址轉(zhuǎn)換 NAT 的?法,再次緩解了 IPv4 地址耗盡的問題。 簡單的來說 NAT 就是同個(gè)公司、家庭、教室內(nèi)的主機(jī)對(duì)外部通信時(shí),把私有 IP 地址轉(zhuǎn)換成公有 IP 地址。
NAT當(dāng)然有缺陷,肯定沒有?全?美的?案。 由于 NAT/NAPT 都依賴于??的轉(zhuǎn)換表,因此會(huì)有以下的問題: 外部?法主動(dòng)與 NAT 內(nèi)部服務(wù)器建?連接,因?yàn)?NAPT轉(zhuǎn)換表沒有轉(zhuǎn)換記錄。 轉(zhuǎn)換表的?成與轉(zhuǎn)換操作都會(huì)產(chǎn)?性能開銷。 通信過程中,如果NAT路由器重啟了,所有的TCP連接都將被重置。
解決的?法主要有兩種?法。
2.5 ICMP互聯(lián)網(wǎng)控制報(bào)文協(xié)議與IGMP協(xié)議
ICMP 全稱是 Internet Control Message Protocol,也就是互聯(lián)網(wǎng)控制報(bào)?協(xié)議。?絡(luò)包在復(fù)雜的?絡(luò)傳輸環(huán)境?,常常會(huì)遇到各種問題。當(dāng)遇到問題的時(shí)候,總不能死個(gè)不明不?,沒頭沒腦的作風(fēng)不是計(jì)算機(jī)網(wǎng)絡(luò)的風(fēng)格。所以需要傳出消息,報(bào)告遇到 了什么問題,這樣才可以調(diào)整傳輸策略,以此來控制整個(gè)局?
ICMP 主要的功能包括:確認(rèn) IP 包是否成功送達(dá)?標(biāo)地址、報(bào)告發(fā)送過程中 IP 包被廢棄的原因和改善?絡(luò)設(shè)置 等。 在 IP 通信中如果某個(gè) IP 包因?yàn)槟撤N原因未能達(dá)到?標(biāo)地址,那么這個(gè)具體的原因?qū)⒂?ICMP 負(fù)責(zé)通知。
如上圖例?,主機(jī) A 向主機(jī) B 發(fā)送了數(shù)據(jù)包,由于某種原因,途中的路由器 2 未能發(fā)現(xiàn)主機(jī) B 的存在, 這時(shí),路由器 2 就會(huì)向主機(jī) A 發(fā)送?個(gè) ICMP ?標(biāo)不可達(dá)數(shù)據(jù)包,說明發(fā)往主機(jī) B 的包未能成功。 ICMP 的這種通知消息會(huì)使? IP 進(jìn)?發(fā)送 。 因此,從路由器 2 返回的 ICMP 包會(huì)按照往常的路由控制先經(jīng)過路由器 1 再轉(zhuǎn)發(fā)給主機(jī) A 。收到該 ICMP 包的主機(jī) A 則分解 ICMP 的?部和數(shù)據(jù)域以后得知具體發(fā)?問題的原因。
2.5.1 ICMP的類型
2.5.2 IGMP因特網(wǎng)組管理協(xié)
ICMP 跟 IGMP 是?點(diǎn)關(guān)系都沒有的,就好像周杰與周杰倫的區(qū)別,?家不要混淆了。 在前?我們知道了組播地址,也就是 D 類地址,既然是組播,那就說明是只有?組的主機(jī)能收到數(shù)據(jù)包,不在?組 的主機(jī)不能收到數(shù)組包,怎么管理是否是在?組呢?那么,就需要 IGMP 協(xié)議了。
IGMP 是因特?組管理協(xié)議,?作在主機(jī)(組播成員)和最后?跳路由之間,如上圖中的藍(lán)?部分。
- IGMP 報(bào)?向路由器申請(qǐng)加?和退出組播組,默認(rèn)情況下路由器是不會(huì)轉(zhuǎn)發(fā)組播包到連接中的主機(jī),除?主機(jī) 通過 IGMP 加?到組播組,主機(jī)申請(qǐng)加?到組播組時(shí),路由器就會(huì)記錄
- IGMP 路由器表,路由器后續(xù)就會(huì)轉(zhuǎn) 發(fā)組播包到對(duì)應(yīng)的主機(jī)了。 IGMP 報(bào)?采? IP 封裝,IP 頭部的協(xié)議號(hào)為 2,?且 TTL 字段值通常為 1,因?yàn)?IGMP 是?作在主機(jī)與連接 的路由器之間。
IGMP 工作作機(jī)制
常規(guī)查詢與響應(yīng)?作機(jī)制
離開組播組?作機(jī)制
離開組播組的情況?,?段中沒有該組播組:
博文參考
《小林圖解網(wǎng)絡(luò)》
| 地址類型 | IP地址號(hào)碼 | 說明 |
| 網(wǎng)關(guān)地址 | 192.168.0.1/192.168.0.254 | 網(wǎng)關(guān)地址 |
| 廣播地址 | 192.168.1.255 | |
| 子網(wǎng)掩碼 | 255.255.0.0 | |
| 子網(wǎng)掩碼 | 255.255.0.0 | |
| 子網(wǎng)掩碼 | 255.255.255.0 | |
| 限制廣播地址 | 255.255.255.255 | |
| 回環(huán)地址 | 127.0.0.1 | |
| 全部網(wǎng)段 | 0.0.0.0 | 表示任意一個(gè)地址 |
| DNS地址 | 114.114.114.114 | |
| DNS地址 | 233.5.5.5 | |
| DNS地址 | 233.6.6.6 | |
| DNS地址 | 1.2.4.8 | |
| DNS地址 | 8.8.8.8 | |
| DNS地址 | 202.106.0.20 | |
| DHCP分配的地址 | 169.254.0.0 | 路由器假死(重啟) |
| 組播地址 | 224.0.0.1 |
| 端口號(hào) | 應(yīng)用 | 說明 |
| 21 | FTP服務(wù) | |
| 22 | SSH服務(wù) | |
| 23 | Telent服務(wù) | |
| 25 | SMTP服務(wù) | 郵件協(xié)議 |
| 53 | DNS服務(wù) | |
| 109 | POP2服務(wù) | |
| 110 | POP3服務(wù) | |
| 143 | IMAP服務(wù) | |
| 465 | SMTPS服務(wù) | SSL協(xié)議 |
| 995 | POP3S服務(wù) | SSL協(xié)議 |
| 993 | IMAPS服務(wù) | SSL協(xié)議 |
| 80 | HTTP服務(wù) | |
| 443 | HTTPS服務(wù) | |
| 3306 | MYSQL服務(wù) | |
| 3389 | 遠(yuǎn)程桌面 | |
| 8080 | 代理服務(wù)(tomcat) | |
| 6379 | Redis服務(wù)端口 |
總結(jié)
以上是生活随笔為你收集整理的计算机网络——IP协议基础原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Zotero使用指南04:群组功能
- 下一篇: 关于APP2SD