史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 網路疑難應用技術研討區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2007-07-27, 01:35 PM  
Admin1
管理員
 
Admin1 的頭像
榮譽勳章
UID - 112827
在線等級: 級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時
註冊日期: 2007-02-18
VIP期限: 0000-00
文章: 3507
精華: 0
現金: 1702 金幣
資產: 10196 金幣
預設 討論 - 子網路切割與路由

假如我們目前有二台電腦,使用 HUB 連接,設定如下:
====================
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
====================


問題:
這二台電腦彼此是否可以通訊?
若是不可,為何不可?
若是可以,為何可以?


請各位對於網路有研究的朋友一起來聊聊囉....

此帖於 2007-07-27 07:10 PM 被 Admin1 編輯.
Admin1 目前離線  
送花文章: 8870, 收花文章: 2195 篇, 收花: 5820 次
回覆時引用此帖
有 2 位會員向 Admin1 送花:
David722 (2007-07-31),rezard (2007-07-27)
感謝您發表一篇好文章
舊 2007-07-27, 07:17 PM   #16 (permalink)
管理員
 
Admin1 的頭像
榮譽勳章
UID - 112827
在線等級: 級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時
註冊日期: 2007-02-18
VIP期限: 0000-00
文章: 3507
精華: 0
現金: 1702 金幣
資產: 10196 金幣
預設

引用:
作者: rezard 查看文章
小弟簡單畫了二張圖,進來逛的大大們應該可以更清楚一點瞭解二部電腦邏輯上所在的網段...
首先是A電腦220.228.161.117
http://img510.imageshack.us/my.php?i...ubneta1dt7.jpg

再來是B電腦220.228.161.124
http://img510.imageshack.us/my.php?i...ubnetb1vy1.jpg

如有錯誤請提醒一下,謝謝。

如果你直接從 kernel 如何判別某個封包該往哪個網路界面送出去這點來看

這題其實出乎意料的簡單,不需要太複雜的計算

計算的東西,就交給這個網站吧: http://www.subnet-calculator.com/
Admin1 目前離線  
送花文章: 8870, 收花文章: 2195 篇, 收花: 5820 次
回覆時引用此帖
向 Admin1 送花的會員:
rezard (2007-07-28)
感謝您發表一篇好文章
舊 2007-07-27, 07:23 PM   #17 (permalink)
管理員
 
Admin1 的頭像
榮譽勳章
UID - 112827
在線等級: 級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時
註冊日期: 2007-02-18
VIP期限: 0000-00
文章: 3507
精華: 0
現金: 1702 金幣
資產: 10196 金幣
預設

====================
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 的圖供參考:
http://www.ssfnet.org/Exchange/tcp/Graphics/tcpHeader1.gif
Admin1 目前離線  
送花文章: 8870, 收花文章: 2195 篇, 收花: 5820 次
回覆時引用此帖
有 2 位會員向 Admin1 送花:
netbird (2007-07-28),rezard (2007-07-28)
感謝您發表一篇好文章
舊 2007-07-28, 08:23 AM   #18 (permalink)
長老會員
 
rezard 的頭像
榮譽勳章
UID - 5875
在線等級: 級別:41 | 在線時長:1895小時 | 升級還需:37小時級別:41 | 在線時長:1895小時 | 升級還需:37小時級別:41 | 在線時長:1895小時 | 升級還需:37小時級別:41 | 在線時長:1895小時 | 升級還需:37小時級別:41 | 在線時長:1895小時 | 升級還需:37小時級別:41 | 在線時長:1895小時 | 升級還需:37小時
註冊日期: 2002-12-08
住址: 夢幻之島福爾摩沙
文章: 4595
精華: 0
現金: 258 金幣
資產: 25680236 金幣
預設

所以,這種通訊可否稱之為「美麗的誤解」呢?

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]
rezard 目前離線  
送花文章: 127322, 收花文章: 3952 篇, 收花: 21079 次
回覆時引用此帖
向 rezard 送花的會員:
Admin1 (2007-07-28)
感謝您發表一篇好文章
舊 2007-07-28, 02:46 PM   #19 (permalink)
管理員
 
Admin1 的頭像
榮譽勳章
UID - 112827
在線等級: 級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時級別:29 | 在線時長:972小時 | 升級還需:48小時
註冊日期: 2007-02-18
VIP期限: 0000-00
文章: 3507
精華: 0
現金: 1702 金幣
資產: 10196 金幣
預設

引用:
作者: rezard 查看文章
那麼,「在標準TCP/IP協定運作下,區網內A電腦與B電腦IP Address必須位於同一子網段才能通信」這個立論是錯的,因為本例就是此立論的例外...。可惜一般教科書或學校比較不會探討這部分。
有些原則解釋的太細會讓人無所適從,就像是數學的 "公式" 一樣,有時為了方便教學或記憶,就給人一條公式套一套,答案就出來了,遇到不適用的狀況才告訴你那是例外。對於 TCP/IP 若要有深入的瞭解,個人是推薦 Richard Stevens 寫的 The Protocols (TCP/IP Illustrated, Volume 1),他一共寫了三本書,建議看第一本就好,其他二本除非想寫網卡 driver 那一類的系統程式,不然應該用不到。

http://ec1.images-amazon.com/images/I/4124NANAQ5L._SS500_.jpg

這本書對於 TCP/IP 有著極精湛的論述,可謂前無古人後無來者的 Bible,可惜 Stevens 大師已不在人世(我記得他過世了),不能再受大師薰陶,實為人生一大憾事。


引用:
作者: rezard 查看文章
或許也可以這麼看待:從classful到classless的改變,沒有順道變更IP封包的規格才造成這種誤謬。classful不需要mask,classless卻需要mask,但mask值不隨封包傳送,而是節點保留自己的mask來判斷封包該走哪個介面。
rezard 真的不簡單,這個問題 Stevens 大師也有提到,他老人家認為在未來也許會有加強版的 TCP/IP protocol Suit,可以解決安全性與動態 netmask 問題,只可惜十年過去了,好像還是沒看到此類機制的出現(但好像有聽過可以透過其他的機制達到此目的)。

目前如果真的要做到實體的隔離,可能要靠 cisco 的 switch or router 來建 vlan。
Admin1 目前離線  
送花文章: 8870, 收花文章: 2195 篇, 收花: 5820 次
回覆時引用此帖
向 Admin1 送花的會員:
rezard (2007-07-29)
感謝您發表一篇好文章
發文 回覆



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 11:44 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1