linux网络寻址顺序,51CTO博客-专业IT技术博客创作平台-技术成就梦想
數(shù)據(jù)包在兩臺(tái)電腦之間傳輸大體分為以下兩種情況
1、 通過(guò)二層設(shè)備交換機(jī)直連的兩臺(tái)主機(jī)之間數(shù)據(jù)傳輸
( HUB 就免談了,它屬于一層設(shè)備,既看不懂二層 MAC 地址,也看不懂三層 IP 地址,不存在尋址的問(wèn)題,直接廣播就是)
網(wǎng)絡(luò)尋址過(guò)程詳解
首先我們必須了解一個(gè)概念,封裝與解封裝
封裝
所謂封裝是指在發(fā)送方發(fā)生的自上而下的過(guò)程 —— 在每一層為應(yīng)用數(shù)據(jù)添加上特定的頭部 / 尾部信息( PDU , Protocol Data Unit ,協(xié)議數(shù)據(jù)單元)
Application (應(yīng)用程序) →segment (數(shù)據(jù)段) →packet (數(shù)據(jù)包) →frame (數(shù)據(jù)幀) →bit (比特,二進(jìn)制位)
解封裝
所謂解封裝是指在接收方發(fā)生的自下而上的過(guò)程 —— 逐層的去掉頭部以及尾部信息
由于今天我們只討論數(shù)據(jù)傳輸過(guò)程,所以只牽涉到數(shù)據(jù)的四層以下封裝。
假設(shè)現(xiàn)在 A 要向 B 發(fā)送數(shù)據(jù),那么 A 首先要對(duì)發(fā)送的數(shù)據(jù)進(jìn)行封裝,在每一層會(huì)加上相應(yīng)的數(shù)據(jù)頭,傳輸層主要是加上源和目標(biāo)端口號(hào),網(wǎng)絡(luò)層則加源和目標(biāo) IP 地址,數(shù)據(jù)鏈路層則加上源和目標(biāo) MAC 地址
1) 好的,由于 A 現(xiàn)在只知道 B 的 IP 地址,并不知道 B 的 MAC 地址,而二層設(shè)備交換機(jī)并不會(huì)按 IP 地址來(lái)轉(zhuǎn)發(fā)數(shù)據(jù),所以這時(shí) A 會(huì)發(fā)一個(gè) ARP 廣播(ARP請(qǐng)求分組),內(nèi)容是:我的ip地址為:XXXX,MAC 地址為 :XXXX,詢(xún)問(wèn) IP 地址為 192.168.0.2 的 MAC 地址是多少?在本局域網(wǎng)運(yùn)行的所有主機(jī)上運(yùn)行的ARP進(jìn)程都會(huì)收到此ARP請(qǐng)求分組,但只有B會(huì)響應(yīng)并向A發(fā)送一個(gè)ARP響應(yīng)分組。
2) 交換機(jī)收到該幀后,發(fā)現(xiàn)是廣播幀,于是轉(zhuǎn)發(fā)到其它所有端口,并且會(huì)將該幀的源 MAC 地址(即 A 的 MAC 地址)添加到自己的 MAC 地址表中去
3) B 當(dāng)然會(huì)收到該幀,于是和自己的 IP 進(jìn)行對(duì)比,發(fā)現(xiàn)匹配后,再以A為目標(biāo)M AC 地址響應(yīng)A的ARP請(qǐng)求幀
4) 交換機(jī)收到B的回復(fù)幀后,將該幀的目標(biāo)MAC地址與自己的MAC地址表進(jìn)行對(duì)照,發(fā)現(xiàn)該幀對(duì)應(yīng)的的端口是 F0/1 ,于是將幀轉(zhuǎn)發(fā)到 F0/1 端口(如果數(shù)據(jù)幀的目標(biāo) MAC 地址在表中不存在,則會(huì)轉(zhuǎn)發(fā)到除源端口外的其它所有端口),同時(shí)將該幀的源 MAC 地址(即 B 的 MAC 地址)加到自己的 MAC 地址表中
5) A 收到 B 的回復(fù)幀后,得知 192.168.0.2 的 MAC 地址是 2c 26.1ae3.2222 ,于是該信息保存到本地的 ARP 高速緩存中,同時(shí)以 B 的 MAC 地址為目標(biāo)地址將要傳的數(shù)據(jù)封裝成幀,發(fā)送出去
6) 交換機(jī)再次收到 A 的數(shù)據(jù)幀,發(fā)現(xiàn)目的 MAC 地址是 2c 26.1ae3.2222 ,并且該地址對(duì)應(yīng)的端口是 F0/2 ,于是將該數(shù)據(jù)轉(zhuǎn)發(fā)到 F0/2 端口
7) B 成功收到 A 發(fā)來(lái)的數(shù)據(jù)
2、 跨三層設(shè)備路由器的兩臺(tái)主機(jī)之間數(shù)據(jù)傳輸
網(wǎng)絡(luò)尋址過(guò)程詳解
好的,現(xiàn)在我們來(lái)看一下 pcA 是如何發(fā)送數(shù)據(jù)給 pcB 的
交換機(jī)的工作原理前面我們已經(jīng)介紹過(guò)了,它維護(hù)了一張 MAC 地址表,用來(lái)反映各端口和 MAC 地址的對(duì)應(yīng)關(guān)系,以便做好數(shù)據(jù)轉(zhuǎn)發(fā)工作。下面我們來(lái)看一下路由器的工作原理,在路由器中也要維護(hù)一張表格,叫做路由條目表,用來(lái)反映如何到達(dá)某個(gè) IP 地址網(wǎng)段,同時(shí)在路由器中也有 ARP 高速緩存,反映了該路由器各直接網(wǎng)段的 IP 地址和 MAC 地址的對(duì)應(yīng)關(guān)系
1) 由于 B 的 IP 地址并沒(méi)有和 A 在一個(gè)網(wǎng)段,所以當(dāng) A 向 B 發(fā)送數(shù)據(jù)時(shí), A 并不會(huì)直接把數(shù)據(jù)給 B ,而是交給自己的網(wǎng)關(guān),也就是 192.168.0.254 ,所以 A 首先會(huì) ARP 廣播請(qǐng)求 192.168.0.254 的 MAC 地址
2) A 得到網(wǎng)關(guān)的 MAC 地址后,以它為數(shù)據(jù)幀的目標(biāo) MAC 地址進(jìn)行封裝數(shù)據(jù),并發(fā)送出去
3) routerA 收到該幀后,檢查該幀的目標(biāo) IP ,并到自己的路由表查找如何到達(dá)該網(wǎng)段(目的IP與各網(wǎng)絡(luò)的掩碼相與:直接較付->特定主機(jī)路由->間接交付->默認(rèn)路由),找到下一跳地址是 routerB 的 s0 端口,于是將數(shù)據(jù)重新封裝,將源地址改為 s0 端口 MAC 地址,目標(biāo) MAC 地址改為 routerB 的 s0 端口 MAC 址址,并發(fā)送給 routerB
4) 中間路由器傳遞過(guò)程同理
5) 最后一個(gè)路由(此例為 routerC )收到該幀,發(fā)現(xiàn)目標(biāo) IP 就在自己的直連網(wǎng)段,于是查看 ARP 緩存,如果找到該 IP 的 MAC 地址,則以該 MAC 地址封裝數(shù)據(jù)發(fā)送出去,如果在 ARP 緩存沒(méi)找到,則發(fā)出 ARP 廣播,請(qǐng)求該 IP 的 MAC 地址,得到對(duì)應(yīng)的 MAC 地址后,再發(fā)送給主機(jī) B
在以上數(shù)據(jù)傳遞過(guò)程中,我們發(fā)現(xiàn),數(shù)據(jù)幀的源 IP 和目標(biāo) IP 始終是不變的,而經(jīng)過(guò)每個(gè)路由進(jìn)行重新封裝數(shù)據(jù)時(shí) MAC 地址則在不斷的變化,總是以自己的地址作為源 MAC 地址,下一跳的地址作為目標(biāo) MAC 地址
好的,關(guān)于數(shù)據(jù)包尋址過(guò)程今天就介紹到這里,希望對(duì)各位的學(xué)習(xí)能有所幫助!
附:IGMP:因特網(wǎng)組管理協(xié)議(UDP);內(nèi)部網(wǎng)關(guān)協(xié)議:RIP(路由信息協(xié)議:基于距離向量的路由選擇協(xié)議),OSPF(開(kāi)發(fā)最短路徑優(yōu)先協(xié)議);ICMP:因特網(wǎng)控制報(bào)文協(xié)議;CIDR無(wú)分類(lèi)編址;ARP:地址解析協(xié)議;RARP:逆地址解析協(xié)議;CSMA/CD:載波監(jiān)聽(tīng)多點(diǎn)接入/碰撞檢測(cè));DHCP動(dòng)態(tài)主機(jī)配置協(xié)議(UDP端口67,68);FTP文件傳輸(TCP:21);DNS域名系統(tǒng)(UDP:53);TELET(TCP:23);SMTP(TCP:25).
總結(jié)
以上是生活随笔為你收集整理的linux网络寻址顺序,51CTO博客-专业IT技术博客创作平台-技术成就梦想的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux面向连接的协议,linuxTC
- 下一篇: linux拒绝tcp链接,Linux 内