作者nfsong (圖書館我來了)
標題[轉錄]Re: [閒聊] 網路硬體設備和封包傳送
時間Tue Aug 18 15:35:41 2009
※ [本文轉錄自 nfsong 信箱]
作者: zyxwing (アルテマ) 看板: MapleStory
標題: Re: [閒聊] 網路硬體設備和封包傳送
時間: Wed Aug 5 16:33:19 2009
看到閒聊這類的閒聊文
讓我也忍不住想參一腳
雖然......伺服器可能馬上就要開了
不過反正我也沒要搶商店, 就花點時間來討論一下
: 首先要說的,是硬體的網路環境裝備。
: 不論使用學術網路(一般學校),或是種花電信、固網,都一樣需要硬體網路配備。
: 這年頭,木馬、病毒這麼多,還敢直接把外部網路插在自己電腦上的是勇士 = =
首先要說的, 我想, 讓人們知道網路可能的危險是相當重要的
但也不必要這樣危言聳聽, 沒有透過一些關卡 (網路設備) 就上網就一定會中標似的
由於下面的談論和第一段沒太多直接的關係, 就一次在這邊講明白:
的確, 透過 NAT (原PO下面有解釋) 是會提供多一層保障, 但我們必須要知道
兩點, 一是什麼保障? 二是 "一般人" 遇到的是什麼樣危險?
就依順序從保障來說, 對一般使用者而言, NAT 的保障是避免讓外人 "主動" 接
觸到使用者的電腦. 什麼意思?
: 正常來說,除了種花電信給你的數據機之外,
: 我們還是會透過其他硬體來分接網路,資源共享。
: 也就是「IP分享器」~簡單的說,一台電腦要能夠連上網路,
: 必須要有一個真實的IP(實體IP),
:
: 當你有多台電腦要同時上網時,就必須透過IP分享器,
: 利用「動態主機配置協定」DHCP(Dynamic Host Configuration Protocol)
: 分配內部虛擬的IP,再彙整資料由真實的IP送出去。
如上, "主動" 的外來者通常只能知道你的 "IP分享器的IP" , 而IP分享器並不是半
調子的網路玩家所能輕易擊破的東西, 所以, 透過 NAT (IP分享器) 可以多一層
保障, 就好像腳踏車鎖可以擋那些只會開彈簧鎖, 無特定對象的竊車賊......
但這也就是說, 要是閣下惹上了專業的駭客, 就請自求多福, 就好像開著大卡車並帶
足工具的竊車賊一樣, 你鎖得再牢, 他要是能連車帶樹一起載走, 你能怎麼辦? 但遇
到這種事的機率高嗎? 不高, 所以不用太擔心.
: 這是因為我們一般不會有這麼多的實體IP可以用,
: 所以要由內部虛擬IP來達到對外上網的功能。
: 而要有穩定的網路連線品質,要看機器的session數是多少,
: 早期的機器多半不足以應付現在的網路資料流量。
: 這在買機器的時候,可以看一下外包裝的紙盒上,會有說明session是多少。
: 上網的功能,就是透過「網址轉換」NAT(Network Address Translation) 去達成的。
接下來要了解的是, 一般使用者通常會遇到的危險是什麼?
在這之前, 也有一件事是必須讓大家了解一下的, 那就是遭遇被人盯上的主動攻擊的
可能性也是非常低的, 只要你跟人家無冤無仇. 當然, 要是你在網路上不小心得罪到
半調子或是專業駭客, 就另當別論.
回到正題, 所謂的危險通常是指電腦病毒, 木馬程式等東西. 在一般使用狀況下, 也
就是不被駭客盯上的狀況下, 像是上網, 抓抓東西之類的行為, 其實絕大部份危害的
根本, 相信這方面的知識大家都很充足, 也就不再贅述, 這邊特別要說的是, 這種危
害, 是跟什麼 NAT (IP分享器) 完全沒有關係的! IP分享器只是忠實地 "轉送" 網路
世界與使用者之間溝通的資料, 它可以讓外敵不得其門而入, 卻不能攔下擁有通行證
的資料進出. 也就是說, 那些木馬程式, 病毒都是使用者自己抓回來的, 他們被抓回
來後向外發送的資料, 對IP分享器而言, 那些都只是合法進出的東西. 也因此, 很多
駭客都是設好陷井 (像是下載秘密的網站) 等你自己送上通行證.
至於要怎麼防止這些東西? 這就要靠良好的網路使用習慣以及那些不知道有沒有用的
防毒軟體.
講到這邊, 我相信一定有人又搞不清楚 IP分享器 到底能防什麼東西
簡單來說, IP分享器對於有通行證的旅客敞開大門; 對於舉旗強勢攻略的侵略者而言
是道堅硬的城牆或結界, 沒有實力是打不穿的.
: 而集線器(Hub)也是用於區域網路環境中的硬體設備之ㄧ,最主要的功能,
: 是匯集所有區域網路中的電腦,使所有的分枝電腦,集中到網路骨幹上來。打個比方,
: Hub就像高速公路,而IP分享器,是每台電腦各自通向高速公路的專用車道。
:
: 當我們使用的是ADSL時,必須使用IP分享器來接上ADSL(IP分享器可以自動連線,
: 並有DHCP功能,可以分配虛擬IP給其他使用者),但是分享器只有4個port(連接埠),
: 如果超過四台電腦,則必須接上Hub(4port、8port、12port等),電腦接上Hub,
: 再由Hub將資訊傳送到IP分享器然後連上網路 。
其實現在不少家庭使用的ADSL數據機是含Hub功能, 而且像是某些 isp (網路提供者) 的
用戶們擁有多個浮動IP, 是不需要另外接IP分享器的. 講這些只是要讓這些用戶們了解,
你的使用方式並沒有問題, 不要驚慌 XD
: 而早期多數使用者所用的,都是一般的 Hub,
: 而不是「交換式集線器」Switch Hub,
: Switch Hub 的出現,是因為Hub 無法解決內部網路環境中,
: 使用者互相干擾的情況,影響傳輸品質。
:
: 這是因為使用Hub的時候,資料是從主網路平均分到內部的每一台電腦上,
: 即使電腦並未開機,也一樣有這個傳輸的動作,頻寬就這樣被分吃掉了。
: 而且Hub只支援半雙工,也就是頻寬得共享,而且Hub的封包流向路徑,
: 是以廣播方式傳送到所有埠,會有干擾碰撞現象。
: 而Switch Hub則支援全雙工,當執行全雙工(Full Duplex)時,
: 每埠甚至可獨享200Mbps的頻寬,而且沒有封包碰撞的憂慮。
: 在擴充方面 ,交換式集線器也比集線器高。
:
:
: 在我們使用網路時,有許多的資料在傳送,而不同的東西,使用的傳輸型態不一樣。
: 以我們在玩的楓谷來說,它使用的傳輸,是UTP網路封包。(其他還有TCP和ICMP)
UDP
: UTP通訊協定,是一種比較不負責任的傳輸方式,
UDP
: 它只管把東西丟出去,而不會去管你有沒有收到,而且也沒有按照先後順序來傳送。
有沒有按先後順序來傳送, 不是這麼簡單以 "沒有" 來說明就可以的
直接用實例來說明, 現在有一台電腦 A 和一台電腦 B
A 對 B 說: 我好帥你好笨
此時, 在不討論太多細節的狀況下, 電腦 A 的發送順序是:
我 > 好 > 帥 > 你 > 好 > 笨 假設六個封包
然而, 在傳送過程中, 可能會發生遺失或是 DELAY
B 收到的訊息可能會是:
A: 我好笨你好帥
再舉的例, A 對 B 說: 你快點給我抄好嗎?
B 收到的訊息可能會是:
A: 快點給我 * 你嗎 ..這是 delay 發生 及 "好" 和 "?" 遺失的狀況
很多狀況下我們不能容許這樣的錯誤發生, 因此, 很多地方是使用 TCP 而不是 UDP
註: TCP 是一種保障資料正確的資料傳輸模式
那為什麼不都用 TCP 就好了?
因為 TCP 用以保障資料正確的方法及運作模式, 在某些用途下會有很大的問題, 尤其是
傳輸效能, 詳情請見各大計算機網路相關書籍.
然而, 在某些情況下, 我們希望盡可能保持資料正確傳輸, 卻又不想要犧牲太多力氣, 那
要怎麼辦?
這個問題在原po文章的推文中被討論到, 就到最下面來看.
: 但是相對來說,伺服器的負擔輕很多,東西丟出去就不用管了。
: 然而,你要玩,就只能接受它所使用的方式,沒得選擇
: 所以,也只能盡量改善自己的設備,使資料傳輸的穩定性增加。
: 這也就是上面所說的,集線器(Hub)和交換式集線器(Switch Hub)的不同。
: 一個Hub上如果有12個埠,一分資料會12個都收到之後,
: 才知道只有2需要這分資料,其他的不用。
: 另外11個,會先收到東西,才發現不是自己要的,再把它丟掉。
: 所以,同時有12個資料在跑。
: 如果是Switch Hub的話,這份資料就只有2才會收到。這就是網路流量的差別。
:
:
: 正因為UTP是比較不可靠的傳輸方式,所以如果是使用Hub的玩家,
D
: 可能會因為大量的廣播佔用頻寬,降低Hub的處理效率和速度,
: 並且流失UTP封包,而導致瞬間斷線。
D
: 之所以會有玩家說,電腦不要用太好的,反而比較不會斷線,也是因為這個原因。
: 越高階的電腦,處理速度越快,而在處理速度夠快的時候,
: 一有封包流失,會馬上反應出來。就會覺得畫面停頓、有爆音等不順的現象。
: 舊一點的電腦,因為處理速度沒這麼快,
: 還沒反應過來說有封包不見,後面的封包已經收到了。
: 反而剛好連接上,所以玩家比較沒有感覺。
:
: 個人小小心得,如果有說錯的地方,請行家鞭小力一點 QQ
:
: --
:
※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 140.126.5.122
:推 SoFantastic:真是強者 220.131.40.222 08/05 13:24
SoFantastic!!
:→ aoeu:楓谷用的是 UTP 嗎 @@ 沒去注意過 140.112.30.50 08/05 13:27
:→ aoeu:咦...應該是 UDP 而不是 UTP 難怪覺得怪 XD 140.112.30.50 08/05 13:28
:→ aoeu:另外, ICMP 應該不是用來傳輸的 140.112.30.50 08/05 13:28
:→ aoeu:不過楓谷用 UDP 很怪吧.............??? 140.112.30.50 08/05 13:29
:→ aoeu:如果楓谷之用的是 UDP, 那無法保證 server/ 140.112.30.50 08/05 13:36
:→ aoeu:client 之間資料的同步吧?! 140.112.30.50 08/05 13:36
:→ aoeu:TCP 也會因為大量佔用頻寬而斷線 140.112.30.50 08/05 13:38
我把 aoeu 同學的第 4 ~ 7 句推文拉上來, 這樣看起來比較完整
接著我剛剛提出的問題, 要怎麼樣保正正確, 卻又不想花太多力氣?
使用 UDP 是常見的方法, 但 aoeu 同學的問題要怎麼解決?
其實方法是有的, 我舉一個笨拙的方法
以 MS 來說, 工程師指定在發送的每段資料上加一段辨識資料即可,
如發送順序及發送時間
並由我們電腦安裝的遊戲程式及伺服器另外控制, 並設定一些 delay 容許時間
如此一來便可以對資料正確性進行確保
:→ billwalker:遊戲用TCP不太可能 因為資料沒收到要重 114.44.138.213 08/05 13:42
:→ billwalker:傳 你想想有可能嗎 所以應該是UDP 114.44.138.213 08/05 13:42
:→ aoeu:如果資料沒收到不重傳 那資料同步怎麼處理? 140.112.30.50 08/05 13:54
:→ aoeu:遊戲我不敢肯定, 但 UDP 大多只用在streaming 140.112.30.50 08/05 13:54
:→ aoeu:等會開機之後我用 netstat 看看好了 140.112.30.50 08/05 13:58
就好像是使用 UDP 並加上一些手段讓遊戲內部來模擬 TCP 的安全性
並且放棄某些 TCP 對遊戲執行上不是那麼必要卻很浪費資源的部份
便可能可達到效率與正確性兼顧的效果, 至於這部份工程師寫得好不好, 就......
而且實際上是否真的能提升效率也是個問號
沒實驗過我也不敢說一定哪個比較有意義
:→ jlovet:你現在還找得到hub我輸給你 140.123.102.254 08/05 13:28
:推 Sephiroth:事實上是沒有ip分享器這東西的 全世界只 59.117.179.61 08/05 13:29
:推 b822187:推你的分享可惜我都看不懂= =~ 114.42.167.58 08/05 13:29
:→ Sephiroth:有台灣有 還有...市面上買的所謂IP分享 59.117.179.61 08/05 13:30
:→ Sephiroth:器 事實上都是HUB...Switch沒那麼便宜 59.117.179.61 08/05 13:30
hub 哪買不到? 到處都是
switch 哪不便宜? 看你想買多好的而已, 幾百塊到多好幾個零的都有
以上兩者在電腦商場都找得到
ip分享器確實存在, 而且也到處都買得到,
無線網路的那種機器 (AP) 也都是ip分享器, 我反而沒看過其他的 (對不起我見識不足)
ip分享器就是一台小型 NAT 機器, 通常附有 DHCP 功能
而且它跟 switch 和 hub 是不一樣的東西, 別搞在一起
反問個問題好了, 如果IP分享器是hub, 也就是broadcast的方式, 要怎麼實作 MAC
address 對應? 所以真要講, 它還跟 switch 比較接近, 但它仍然不是 switch
:推 SoFantastic:五樓十樓矛盾 220.131.40.222 08/05 13:31
SoFantastic!!
:推 boafans:直接接小烏龜=把外部網路直接接到電腦上嗎 140.124.183.44 08/05 13:39
:→ boafans:是的話就XDDD 我電腦喜歡這樣用Q 140.124.183.44 08/05 13:39
:→ boafans:利用PPPOE接數據機上網方式不安全嗎= = 140.124.183.44 08/05 13:40
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.175.111
1F:推 victoryss:快推 不然人家以為我看不懂XD 218.173.130.63 08/05 16:34
2F:→ zyxwing:不過aoeu同學用實驗的方式證明了MS是用TCP140.112.175.111 08/05 16:35
3F:推 levelest:其實你拉的推文那些可以一同複製字體顏色 122.100.88.1 08/05 16:35
4F:→ levelest:不然看起來好亂@@ 122.100.88.1 08/05 16:36
5F:→ levelest:啊我懂了,你應該是沒按到r 122.100.88.1 08/05 16:38
改了一下顏色和錯字, 錯字沒想到還滿多的 XD
※ 編輯: zyxwing 來自: 140.112.175.111 (08/05 16:50)
6F:推 aoeu:的確, 用 UDP 也可以實作 TCP 的功能 140.112.30.50 08/05 16:49
7F:→ aoeu:只是這樣 server 負擔會更大... XD 140.112.30.50 08/05 16:50
8F:→ aoeu:以站在減輕 server 負擔的立場而言, 我才會說 140.112.30.50 08/05 16:51
9F:→ aoeu:UDP 不適合用在這 ^^" 140.112.30.50 08/05 16:51
10F:→ zyxwing:說真的, 寫一寫覺得好像在寫課本一樣140.112.175.111 08/05 16:51
11F:→ zyxwing:講那麼多, 有沒有用? 不知道 XD140.112.175.111 08/05 16:52
12F:推 ianfang:這邊聽得懂的話...被盜的人就會減少很多吧140.116.247.154 08/05 16:54
13F:→ aoeu:因為我覺得以楓谷這類程式所需要確保的連線正 140.112.30.50 08/05 16:56
14F:→ aoeu:確度來說, 用 UDP 去做應該比直接用 TCP 來得 140.112.30.50 08/05 16:56
15F:→ aoeu:費工, 但我也不能肯定裡面是不是真的用 TCP 140.112.30.50 08/05 16:57
16F:→ aoeu:乾脆實驗一下, 就直接有答案了 :P 140.112.30.50 08/05 16:57
17F:推 ianfang:所以結論是 很可能沒有用 XD140.116.247.154 08/05 16:59
18F:→ zyxwing:也有可能是工程師太懶, 再講要戰國家了 XD 61.231.105.225 08/05 17:03
19F:推 blueanny:推專業文 219.85.4.140 08/05 17:12
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.161.55.12