HW:如何使用spanning tree protocol解決廣播風暴問題
STP︰生成樹協議 -IEEE 802.1D (STP︰Spanning Tree Protocol - IEEE 802.1D)
生 成樹協議 Spanning Tree 定義在 IEEE 802.1D 中,是一種橋到橋的鏈路管理協議,它在防止產生自循環的基礎上提供路徑冗餘。為使以太網更好地工作,兩個工作站之間只能有一條活動路徑。網路環路的發生有 多種原因,最常見的一種是故意生成的冗餘,萬一一個鏈路或交換機失敗,會有另一個鏈路或交換機替代。
STP 是一種橋到橋的通信技術,提供發現網路物理環路的服務。該協議規定了網橋創建無環回loop - free 邏輯拓朴架構的算法。換句話說,STP 提供了一個生成整個第二層網路的無環回樹架構。
生成樹協議操作對終端站透明,也就是說,終端站並不知道它們自己是否連接在某單個局域網或多交換局域網中。當兩個網橋相互連接在相同的由兩台計算機組成的網路中時,生成樹協議支援兩網橋之間相互交換訊息,這樣只需要其中一個網橋處理兩台計算機之間發送的訊息。
橋 接設備之間透過使用網橋協議數據單元(Bridge Protocol Data Unit,BPDU)交換各自狀態訊息。生成樹協議透過發送 BPDU 訊息為交換網路配置根交換和根端口,並為每個交換網路區段(switched segment)配置根端口和指定端口。
網橋中的生成樹算法可以用來決定如何使用生成樹協議,該算法的優點在於能夠避免網橋環路,並確保在多路徑情形下網橋能夠選擇一條最有效的路徑。如果最佳路徑選擇失敗,可以使用該算法重新計算網路路徑並找出下一條最佳路徑。
利用生成樹算法可以決定網路路徑(哪台計算機主機在哪個區段),並透過 BPDU 訊息交換以上數據。該過程主要分為以下兩個步驟︰
透過評估網橋接收的配置訊息以及選擇最佳選項,再利用生成樹算法來決定網橋發送的最佳訊息。
一旦選定某發送訊息,網橋將該訊息與來自無根(non-root)連接的可能配置訊息相比較。如果步驟1中選擇的最佳選項並不優於可能配置訊息,便刪除該端口。
筆記:
東海大學資工系軟工三 993932
2013年1月11日 星期五
2012年12月28日 星期五
2012年12月21日 星期五
2012年12月14日 星期五
第十四週計算機網路
作業1:說明Link state rooling algorigrithm出現的oscilation problem解決方法
作業2:說明Distance vector rooting alorigrithm出現的bad news travel slow解決方法
初始化:
對所有屬於N的目的端y:
如果y不是相鄰節點,則c(x,y)等於無限大
對於每個相鄰節點w
對所有屬於N的目的端y,Dw(y)等於無限大
對於每個相鄰節點w
送出距離向量Dx = [Dx(y): y屬於N] 給w
迴圈
等待:直到我看見某個相鄰節點w的連結成本改變,或是直到我收到來自某個相鄰節點w的距離向量
對於所有屬於N的y:
Dx(y) = min{c(x, v) + Dv(y)}
如果有任何目的端y的Dx(y)改變了
送出距離向量Dx = [Dx(y): y屬於N]給所有相鄰節點
永遠執行下去
DV演算法是分散式的
網路直徑: 從一個node到另一個node的最長距離
DV需要至少(網路直徑)的時間才會收斂
因為每一網路節點不需掌握網路整體拓撲,因此在選徑時就有可能會有形成迴圈的現象
,甚至有可能會使得路徑的選擇產生無限計數(Count to infinity)的問題
解決無限計數的方法:
Maximum hop count:限制其跳躍數
Split horizon:這個方法的原則是不回送資料,所以當A-B之間斷了,C不會再把A的訊息告訴B,因為到A的訊息是由B告訴C的
Hold Down: 利用Hold down timer,若hold down timer過期前的任何時間裡,從不同的路由器接到更新資訊,但指標較差,則不理會更新資訊。在hold down timer時效範圍內,不理會指標較差的更新資訊,則能有更多時間將中斷的改變資訊傳播到整個網路上。
筆記:
利用Dijkstra algorithm來計算:
初始化:
N' ={u}
對於所有的節點v
如果v是u的相鄰節點
則 D(v) = c(u,v)
否則 D(v) = 無限大
loop:
尋找不屬於N'的w,使D(w)最小
將w加入N'
更新所有不屬於N’的相鄰節點v的D(v)
前往v的新成本,會是前往v的舊成本,或是已知前往w的最小路徑加上從w前往v地成本
直到N' = N
給定n個節點,最糟狀況的複雜度為O(n^2)
如果連結成本等於連結負載,可能會碰上震盪!
解決方法: 確保所有router不要同時執行LS演算法
=> 執行最後會同步!!
避免同步 => 每個router隨機選擇時間送出通告
初始化:
N' ={u}
對於所有的節點v
如果v是u的相鄰節點
則 D(v) = c(u,v)
否則 D(v) = 無限大
loop:
尋找不屬於N'的w,使D(w)最小
將w加入N'
更新所有不屬於N’的相鄰節點v的D(v)
前往v的新成本,會是前往v的舊成本,或是已知前往w的最小路徑加上從w前往v地成本
直到N' = N
給定n個節點,最糟狀況的複雜度為O(n^2)
如果連結成本等於連結負載,可能會碰上震盪!
解決方法: 確保所有router不要同時執行LS演算法
=> 執行最後會同步!!
避免同步 => 每個router隨機選擇時間送出通告
作業2:說明Distance vector rooting alorigrithm出現的bad news travel slow解決方法
初始化:
對所有屬於N的目的端y:
如果y不是相鄰節點,則c(x,y)等於無限大
對於每個相鄰節點w
對所有屬於N的目的端y,Dw(y)等於無限大
對於每個相鄰節點w
送出距離向量Dx = [Dx(y): y屬於N] 給w
迴圈
等待:直到我看見某個相鄰節點w的連結成本改變,或是直到我收到來自某個相鄰節點w的距離向量
對於所有屬於N的y:
Dx(y) = min{c(x, v) + Dv(y)}
如果有任何目的端y的Dx(y)改變了
送出距離向量Dx = [Dx(y): y屬於N]給所有相鄰節點
永遠執行下去
DV演算法是分散式的
網路直徑: 從一個node到另一個node的最長距離
DV需要至少(網路直徑)的時間才會收斂
因為每一網路節點不需掌握網路整體拓撲,因此在選徑時就有可能會有形成迴圈的現象
,甚至有可能會使得路徑的選擇產生無限計數(Count to infinity)的問題
解決無限計數的方法:
Maximum hop count:限制其跳躍數
Split horizon:這個方法的原則是不回送資料,所以當A-B之間斷了,C不會再把A的訊息告訴B,因為到A的訊息是由B告訴C的
Hold Down: 利用Hold down timer,若hold down timer過期前的任何時間裡,從不同的路由器接到更新資訊,但指標較差,則不理會更新資訊。在hold down timer時效範圍內,不理會指標較差的更新資訊,則能有更多時間將中斷的改變資訊傳播到整個網路上。
筆記:
2012年11月30日 星期五
第十一週計算機網路
作業:
1.解釋3-way handshaking
三向交握 (Three-way handshake)
TCP 通訊協定是一種 connection-oriented 協定,它在實際資料傳送前,會在來源端與目的端主機以三向交握 (three-way handshake) 的方式先建立連線,所有屬於相同訊息的 TCP 封包,就利用此連線傳送,此種作法有助於資料傳輸的正確性。以下是三向交握的流程說明:

(1) 當傳送端想要與接收端連線時,同時會啟用一個大於 1023 的通訊埠作為溝通的介面,並且送出一個要求連線的 SYN 封包,此封包內帶有起始序號 (例如 100)。
(2) 接收端確認收到連線的 SYN 封包後,會回送一個 SYN+ACK 封包給傳送端,封包內則帶有回應號碼 (連線 SYN 封包的序號 + 1),以及接收端的起始序號 (例如 2200),等待傳送端的回應確認。
(3) 當傳送端收到來自接收端的回應號碼,確認之前的連線要求封包已被收到,便會再傳送一個 ACK 封包給接收端,封包內會帶有回應號碼 (SYN+ACK 封包的序號 + 1)。
待接收端收到帶有正確回應號碼的 ACK 封包,此連線便正式建立。在 TCP 封包內,有 8 個控制位元 (Control bits 或 Flags) 用來代表封包的主要動作:
Flags | 說 明 |
---|---|
CWR
|
CWR (Congestion Window Reduced) flag 為 1 代表接到 ECE 旗標 為 1 的 TCP 封包。
|
ECE | ECE (ECN-Echo) flag 為 1 代表 TCP peer (對等體) 具備 ECN (Explicit Congestion Notification, 明確擁塞通知) 功能,同時 IP 封包中的 ECN 欄位被設定為 11。 |
URG | URG (Urgent) flag 為 1 代表緊急封包,接收端應優先處理。 |
ACK | ACK (Acknowledgment) flag 為 1 代表此封包的 Acknowledgment Number 是有效的﹐是用來回應上一個封包。 |
PSH | PSH (Push function) flag 為 1 代表此封包連同緩衝區的其它相關封包應立即進行傳送,而無需等待緩衝區滿了才送。 |
RST | RST (Reset) flag 為 1 代表馬上結束連線,無需等待終止確認手續。 |
SYN | SYN (Synchronize) flag 為 1 代表要求雙方進行同步處理,也就是要求建立連線。 |
FIN | FIN (Finish) flag 為 1 代表資料傳送結束,等待結束回應,以便正式結束 TCP 傳送流程。 |
2.解釋ping
ping:一個電腦網路工具,用來測試特定主機能否通過IP到達。ping的運作原理是:向目標主機傳出一個ICMPecho要求封包,等待接收echo回應封包。程式會按時間和反應成功的次數,估計失去封包率(丟包率)和封包來回時間(網路時延)(Round-trip delay time)。
何謂ICMP:
網際網路控制消息協議(Internet Control Message Protocol 或簡寫 ICMP)是網路協議族的核心協議之一。它用於 TCP/IP 網路中發送控制消息,提供可能發生在通信環境中的各種問題反饋,通過這些信息,令管理者可以對所發生的問題作出診斷,然後採取適當的措施解決。
ICMP [1] 依靠IP來完成它的任務,它是IP的主要部分。它與傳輸協議,如TCP和UDP顯著不同:它一般不用於在兩點間傳輸數據。它通常不由網路程序直接使用,除了ping和traceroute這兩個特別的例子。
筆記:
2012年11月8日 星期四
第八週計算機網路
作業:
1:說明RS-232
RS-232 (Recommended Standard-232) 是由電子工業協會(Electronic Industries Association,EIA) 所制定的非同步傳輸(asynchronous transmission) 標準介面。
這也是許多個人電腦上的通訊介面之一,在IBM-PC 上,一般電腦
可連接二至四個 RS-232 介面。一般又稱此介面為『序列埠』或『串列埠』(serial port),由於 RS-232 是由 EIA 所定義的,所以也常稱為 EIA-232,目前演進到第四代 RS-232D。
通常 RS-232 介面以九個接腳 (DB-9) 或是二十五個接腳 (DB-25)的型態出現,一般個人電腦上會有兩組 RS-232 介面,分別稱為 COM1 和 COM2;此外,還可以連接 COM3 及 COM4,不過因為 COM1/COM3 共用 IRQ 4,而COM2/COM4 共用 IRQ 3,所以同時最多只能使用四個 COM ports 的其中兩個。
此介面通常用來連接數據機、序列滑鼠 (PS/2 滑鼠不佔用 COM port)、條碼機 、簡單的工業控制組件、串列埠列表機(一般印表機只支援傳輸速度較快的平行埠傳輸),但是因為序列傳輸是每次傳送一個位元,比平行埠傳輸 (一次傳送八個位元) 要慢許多,因此連接其它電腦和印表機的工作大多由平行埠來代替。
2.用筆記上的end-to-end與point-to-point的圖,利用該圖的概念找出實際例子
end-to-end :間接相連(跨網路相連)

應用:SSL/TLS
point-to-point:直接相連(實體相連)

應用:P2P
群對群技術(peer-to-peer, 簡稱P2P)又稱對等網際網路技術,是一種網路新技術,依賴網路中參與者的計算能力和頻寬,而不是把依賴都聚集在較少的幾台伺服器上。請注意與point-to-point之間的區別,peer-to-peer一般譯為端對端或者群對群,指對等網中的節點;point-to-point一般譯為點對點,對應於普通網路節點。P2P網路通常用於透過Ad Hoc連線來連線節點。這類網路可以用於多種用途,各種檔案分享軟體已經得到了廣泛的使用。P2P技術也被使用在類似VoIP等即時媒體業務的資料通訊中。
純點對點網路沒有客戶端或伺服器的概念,只有平等的同級節點,同時對網路上的其它節點充當客戶端和伺服器。這種網路設計模型不同於客戶端-伺服器模型,在客戶端-伺服器模型中通訊通常來往於一個中央伺服器。
end-to-end :間接相連(跨網路相連)

安全套接層(Secure Sockets Layer,SSL)是網景公司(Netscape)在推出Web瀏覽器首版的同時提出的協議。SSL採用公開密鑰技術,保證兩個應用間通信的保密性和可靠性,使客戶與伺服器應用之間的通信不被攻擊者竊聽。可在伺服器和客戶機兩端同時實現支持,目前已成為網際網路上保密通訊的工業標準,現行Web瀏覽器亦普遍將HTTP和SSL相結合,從而實現安全通信。此協議和其繼任者傳輸層安全(Transport Layer Security,TLS)是為網路通信提供安全及數據完整性的一種安全協議。TLS與SSL在傳輸層對網路連接進行加密。
point-to-point:直接相連(實體相連)

應用:P2P
群對群技術(peer-to-peer, 簡稱P2P)又稱對等網際網路技術,是一種網路新技術,依賴網路中參與者的計算能力和頻寬,而不是把依賴都聚集在較少的幾台伺服器上。請注意與point-to-point之間的區別,peer-to-peer一般譯為端對端或者群對群,指對等網中的節點;point-to-point一般譯為點對點,對應於普通網路節點。P2P網路通常用於透過Ad Hoc連線來連線節點。這類網路可以用於多種用途,各種檔案分享軟體已經得到了廣泛的使用。P2P技術也被使用在類似VoIP等即時媒體業務的資料通訊中。
純點對點網路沒有客戶端或伺服器的概念,只有平等的同級節點,同時對網路上的其它節點充當客戶端和伺服器。這種網路設計模型不同於客戶端-伺服器模型,在客戶端-伺服器模型中通訊通常來往於一個中央伺服器。
3.解釋Encapsulation
封裝(Encapsulation)是物件導向中四大特色之一,簡單來說封裝就是適度的將資訊隱藏(Information Hiding),避免外界不當使用。在抽象化的過程,善加將定義類別中的屬性跟方法封裝,有利於日後系統維護時造成的許多不必要的問題喔。
為什麼需要將資料隱藏或加以封裝?
舉一個例子:一個Person的類別中,若有一屬性為心跳,如果今天心跳沒有宣告成private(即類別獨自私有,外界不得使用),代表外界可以直接取得某人的心跳屬性,如此當我在某天跟你吵架我就直接取用你的心跳屬性特定:setHeart(0),那恭喜你,你得躺平囉!由此應該可以感受到適度進行封裝的效用了吧~
封裝手法:提供受控制的間接操作取代不受控制的直接存取。在系統中最怕的就是不受控制的狀態發生,這對日後的維護非常頭疼,邏輯錯誤在龐大的程式當中要找出來,有時還真的像是大海撈針。如何避免這種不必要的問題發生,我想適度封裝是一個不錯的解決方案喔,舉例而言:若有一個Person的類別,當中有身高、體重兩個屬性,若不將他們宣告成private,那外部類別可以直接取得並設定如下,試想身高設定成-100是什麼樣的狀況又是否合理?但只要你允許外面存取,就無法保證外界是否會對你的屬性做此類愚蠢的設定。
身高 = -100;
針對上述該如何處理呢?建議作法如下:
private 身高;
public boolean set身高(int h) {
if(h<0) return false;
else 身高 = h;
}
我們可以藉由將身高封裝,並提供一個外部的設定管道,然而此管道是可受控制的,如此必可確保身高的設定不會有不合邏輯的情況發生。
封裝最主要的兩個優勢:
避免不必要的資料存取現象發生。利用封裝可以適度的將資料進行適度資訊隱藏。如此避免不必要的存取,進而發生問題。
適度將製作細節封裝可以降低ripple effect(漣波效益),避免日後修改一問題所帶來的連帶效應過大。如此在日後可增加系統的可擴充性、易維護性。對維修工程師將是一大福音喔~
2012年10月29日 星期一
第七週計算機網路
作業:
1. cookie隱私權問題
Cookie(複數形態Cookies),中文名稱為小型文字檔案或小甜餅,指某些網站為了辨別使用者身份而儲存在用戶端(Client Side)上的資料(通常經過加密)。
2. 找CS,P2P數據,畫圖解釋
筆記:
1. cookie隱私權問題
Cookie(複數形態Cookies),中文名稱為小型文字檔案或小甜餅,指某些網站為了辨別使用者身份而儲存在用戶端(Client Side)上的資料(通常經過加密)。
隱私,安全和廣告
Cookies在某種程度上說已經嚴重危及使用者的隱私和安全。其中的一種方法是:一些公司的高層人員為了某種目的(譬如市場調查)而存取了從未去過的網站(透過搜尋引擎查到的),而這些網站包含了一種叫做網頁臭蟲的圖片,該圖片透明,且只有一個象素大小(以便隱藏),它們的作用是將所有存取過此頁面的電腦寫入cookie。而後,電子商務網站將讀取這些cookie訊息,並尋找寫入這些cookie的網站,隨即發送包含了針對這個網站的相關產品廣告的垃圾郵件給這些高階人員。
[编辑]竊取Cookies和指令碼攻擊
雖然cookies沒有中電腦病毒那麼危險,但它仍包含了一些敏感訊息:使用者名,電腦名,使用的瀏覽器和曾經存取的網站。使用者不希望這些內容泄漏出去,尤其是當其中還包含有私人訊息的時候。
這並非危言聳聽,一種名為Cross site scripting的工具可以達到此目的。在受到Cross site scripting攻擊時,cookie盜賊和cookie毒藥將竊取內容。一旦cookie落入攻擊者手中,它將會重現其價值。
- Cookie盜賊:搜集使用者cookie並行給攻擊者的駭客。攻擊者將利用cookie訊息透過合法手段進入使用者帳戶。
- Cookie投毒:一般認為,Cookie在儲存和傳回伺服器期間沒有被修改過,而攻擊者會在cookie送回伺服器之前對其進行修改,達到自己的目的。例如,在一個購物網站的cookie中包含了顧客應付的款項,攻擊者將該值改小,達到少付款的目的。這就是cookie 投毒。
2. 找CS,P2P數據,畫圖解釋
筆記:
訂閱:
文章 (Atom)