|
你的理解確實有點問題吧,一個可行的改法是把PCA的掩碼改為 255.255.0.0,就沒問題了。原理解釋如下: (根據(jù)你的描述,我暫且理解為你的網絡環(huán)境中只有一臺直連交換機,不存在路由器或其他的網絡設備) 《一點該說的基礎知識》 首先,對于一個使用標準的ABCDE分類編址方案的IP地址,其實可以看成: IP地址 = 網絡號 + 主機號。其中網絡號由本機IP地址與本機網絡掩碼做與運算獲得,主機號由本機IP地址與本機網絡掩碼的反碼做與運算獲得。比如說你舉的例子中,對于PCA,網絡號為 Net_IdA=192.168.0.0,主機號為 Host_IdA=0.0.0.6;對于PCB,網絡號為 Net_IdB=192.168.0.0,主機號為 Host_IdB=0.0.1.3??吹竭@,你肯定要大呼,這倆丫的網絡號不是一樣的么,那就是在同一個子網啊,為什么不通呢?別急著下結論,請耐心往下看~ 其次,ping操作的實際內涵是什么?看下面的步驟: (1)由本機構造一個ICMP請求包,發(fā)送給目的主機; (2)目的主機處理后構造一個ICMP響應包,返回給本機; (3)本機根據(jù)是否收到響應包,以及響應包的內容得到本次ping的結果,并交由顯示器呈現(xiàn)給用戶。 也就是說,一次成功的ping操作其實是一次完整的雙向通信過程,并非只要本機能將請求發(fā)送出去就算好了的。數(shù)據(jù)包要能出得去,更要回得來。 最后還要說明的是一臺主機要給另一臺主機發(fā)送數(shù)據(jù)時的工作流程,以A向B發(fā)送數(shù)據(jù)為例,如下圖: ![]() 《下面我們再來分析你的實驗過程》 PCA ping PCB 當PCA構造好ICMP請求包打算發(fā)送給PCB時,參照上面的流程圖,其處理過程應當如下: (1)PCA首先將PCB的IP地址192.168.1.3與自己的掩碼255.255.255.0做與運算,得到它所認為的PCB的網絡號:Net_IdB'=192.168.1.0【注意到Net_IdB'與Net_IdB并不一致】; (2)然后用這個 Net_IdB' 與自己的網絡號 Net_IdA=192.168.0.0 作比較,發(fā)現(xiàn)不一樣; (3)PCA把構造好的ICMP請求包交付給網關,但網關不存在,于是請求發(fā)送失敗。 呈現(xiàn)給你的直觀現(xiàn)象就是 PCA ping PCB 不通【我猜系統(tǒng)給出的響應應該是:目標主機不可達(中文系統(tǒng))/Destination Host Unreachable(英文系統(tǒng))】,原因在于數(shù)據(jù)包出不去。 PCB ping PCA 當PCB構造好ICMP請求包打算發(fā)送給PCB時,參照上面的流程圖,其處理過程應當如下: (1)PCB首先將PCA的IP地址192.168.0.6與自己的掩碼255.255.0.0做與運算,得到它所認為的PCA的網絡號:Net_IdA'=192.168.0.0【注意到Net_IdA'與Net_IdA是一致的】; (2)然后用這個 Net_IdA' 與自己的網絡號 Net_IdB=192.168.0.0 作比較,發(fā)現(xiàn)一樣; (3)PCB把構造好的ICMP請求包直接交付給PCA 。 PCA處理后構造完成ICMP響應包,打算回給PCB,其處理過程和前文PCA向PCB發(fā)送請求包一致,結果是PCA發(fā)送響應包失敗。 呈現(xiàn)給你的直觀現(xiàn)象就是 PCB ping PCA 不通【我猜系統(tǒng)給出的響應應該是:請求超時(中文系統(tǒng))/Request timed out(英文系統(tǒng))】,原因在于數(shù)據(jù)包回不來。 《配置的時候應該注意什么》 如果你不是有什么特殊需求的話,那么你應該為你同一子網內的所有主機配置相同的掩碼。 |
|
|