![]() |
![]() |
#16 (permalink) | |
管理員
![]() |
![]() 引用:
如果你直接從 kernel 如何判別某個封包該往哪個網路界面送出去這點來看 這題其實出乎意料的簡單,不需要太複雜的計算 計算的東西,就交給這個網站吧: http://www.subnet-calculator.com/ |
|
![]() |
送花文章: 8870,
![]() |
向 Admin1 送花的會員:
|
![]() |
#17 (permalink) |
管理員
![]() |
![]() ====================
A <----------> HUB <----------> B A 電腦 網路界面:eth0 220.228.161.117/255.255.255.128 subnet id ==>220.228.161.0 B 電腦 網路界面:eth0 220.228.161.124/255.255.255.192 subnet id ==>220.228.161.64 ==================== 當 A 要傳封包給 B 的時候,例如我們要從 A 電腦 PING B 電腦時,系統會把 B 電腦的 IP用 A 電腦本身的 netmask 進行 AND 運算,也就是 220.228.161.124 AND 255.255.255.128。此時可以發現計算出來的 subnet id 為 220.168.161.0,正好就是 A 電腦的 eth0 界面,kernel 就直接把封包往 eth0 丟出去。 丟出去的 IP Header 裡面並沒有 netmask 這種東西(ip packet 中並不帶有 netmask 訊息),所以 B 電腦看到的就是一個 destination address 為 220.228.161.124 的封包,B 電腦就會把它收起來。 然後當 B 電腦要回傳封包給 A 時,會把 A 電腦的 IP 拿來和 B 電腦本身的 netmask 做運算,也就是 220.228.161.117 AND 255.255.255.192,算出來的 subnet id 為 220.168.161.64,正好就是 B 電腦的 eth0 界面,所以封包就往 B 電腦的 eth0 界面送出去。 當 A 電腦收到封包時,會看到的就是一個 destination address 為 220.228.161.117 的封包,A 電腦就會把它收起來,然後 A 與 B 的通訊就完成了。 附上一張 IP Header 的圖供參考: ![]() |
![]() |
送花文章: 8870,
![]() |
![]() |
#18 (permalink) |
長老會員
![]() |
![]() 所以,這種通訊可否稱之為「美麗的誤解」呢?
A誤會B為同國的人,所以A就敞開大門歡迎B,B也誤會A為同國的人,所以B也敞開大門歡迎A。實際上二個人卻分屬不同國家,只是剛好都講英文,聽的懂對方在講什麼,自己講的對方也聽的懂。 那麼,「在標準TCP/IP協定運作下,區網內A電腦與B電腦IP Address必須位於同一子網段才能通信」這個立論是錯的,因為本例就是此立論的例外...。可惜一般教科書或學校比較不會探討這部分。 或許也可以這麼看待:從classful到classless的改變,沒有順道變更IP封包的規格才造成這種誤謬。classful不需要mask,classless卻需要mask,但mask值不隨封包傳送,而是節點保留自己的mask來判斷封包該走哪個介面。 放到廣域網路上來看,classful與classless是可以並存的,因為所有的router只需要由封包的目標位址去計算判斷該封包的出口介面,該封包就可以一直被傳送到目的地。 這結果造就了今天方便的網際網路,卻也埋下了危險因子。惡意的封包無法透過這一層協定被阻隔拋棄,當然有人會說第三層本來就不是要做過濾的動作,只是小弟認為"以量取勝"(時間週期內遞送處理最多的封包數)和"以質抑量"(透過快速有效的辨識直接剔除不良封包)某個程度上是可以取得做法上的平衡的。 |
__________________ 的歷流光小,飄颻弱翅輕。恐畏無人識,獨自暗中明。 [IMG][/IMG] |
|
![]() |
送花文章: 127322,
![]() |
向 rezard 送花的會員:
|
![]() |
#19 (permalink) | ||
管理員
![]() |
![]() 引用:
![]() 這本書對於 TCP/IP 有著極精湛的論述,可謂前無古人後無來者的 Bible,可惜 Stevens 大師已不在人世(我記得他過世了),不能再受大師薰陶,實為人生一大憾事。 引用:
目前如果真的要做到實體的隔離,可能要靠 cisco 的 switch or router 來建 vlan。 |
||
![]() |
送花文章: 8870,
![]() |
向 Admin1 送花的會員:
|