2011年7月25日 星期一

CCNA 網路互連 筆記

.網路互連的基本原理
.網路分割
.如何實際使用接器、交接器、路由器、來分割網路
.如果使用路由器來建豆網路

路由器優點:
根據預設,它們不會轉送廣播。
它們可以根據第三層(網路層)的資訊(ip位址)過濾網路。

路由器功能:
.封包交換
.封包過濾
.互連網路的通訊
.路徑選擇
路由器每個LAN 界面不只會分割廣播網域,還會分割碰撞網域。
預設不會轉送任何廣播或多點傳送的封包
會使用網路層標題中的邏輯位址:決定封包的下一個轉送站
使用管理者存取清單,控制可以進出弭面的封包類型,以維護安全
可以視需要提供第二層的橋接功能,並且透過相同面進行遶送
第三層裝置(指路由器)能提供虛據LAN(VLAN)間連結
路由器可以提供服務品質給特定類型的網路交通


橋交器:
被用來分割網路,但是它們並不會隔離廣播或多點傳播的封包

OSI共有七層:
應用層一:提供使用者界面
(定義):檔案、印表、訊息、資料庫應用服務

表現層二:呈現資料 、 處理加密程序
(定義):資料加密、壓縮、轉換服務、解密

會談層三:分開不同應用資料
(定義):對話控制、單工、半雙工、全雙工

傳輸層四:提供可靠或不可靠的遞送、重傳之前的校正錯誤
(定義):終端對終端連結 互連網路的傳送主機與目的主機間建立邏輯連線、建立連線通訊流量控制:接受資料,傳送端會收到確認、重傳沒有收到確認的資料段、資料抵達目的地時,會重新排序,維護可管理資料流避免塞住、過載及資料遺失

網路層五:提供邏輯位置:供路由器來決定路徑
(定義):資料遶送、資料封包、路徑更新、網路位址、界面、衡量指標


資料連結層六:將封包組成訊框中的位元組、使用MAC位址來存取媒介、進行錯誤測,但不校正
(定義):資料訊框、資料的實體傳送,使用硬體位址,遞送訊息給LAN上的適當裝置,並將網路層的訊息轉換位元,供實體層傳輸
路由器間轉送封包時,資料鏈結層會使用硬體定址。當封包在路由器間傳送時,資料鏈結層會加上控制資料形成「訊框」,這些資訊會在接收的路由器中被移除,而保留原始的封包不受影響。
羅輯鏈結控制:辦識網路層協定並且進行封裝,資料鏈結層收到訊框時會依據LLC標頭找出該封包的目地

實體層七:裝置間移動位元、規定電壓、線路速度、與纜線的接腳
(定義):實體拓樸 、位元的值只有「0」或「1」呈現

比喻:

7 應用層:老闆
6 展現層:相當於公司中簡報老闆、替老闆寫信的助理
5 會談層:相當於公司中收寄信、寫信封與拆信封的秘書
4 傳輸層:相當於公司中跑郵局的送信職員
3 網路層:相當於郵局中的排序工人
2 資料鏈結層:相當於郵局中的裝拆箱工人
1 實體層:相當於郵局中的搬運工人

2011年7月24日 星期日

CCNA 考試注意事項(一)

CCNA實作全部範圍,(重點在NAT、FW、Routing、ACL、VLAN、DHCP)


1、如何監測Router的CPU使用率?
2、當CPU使用率高達80%的時候,自動reboot?
3、如何監測router session數量?
4、如何限制每個IP Session的數量?例如 15個。
5、如何讓router每天凌晨三點,定時reboot?
6、當要利用網路連線到另一台Router時,我們會使用Telnet這個指令,
      例如:telnet  140.115.X.X 但為了節省時間,我會直接下Telnet "對方router的名字",就可以連結到對方router,
      請問要怎麼設定,才可以讓已方router在使用telnet的指令時,認得對方router的名字?

建立和使用 C# DLL

HOW TO:建立和使用 C# DLL (C# 程式設計手冊)

Visual Studio 2008

更新:2007 年 11 月
一個動態連結程式庫 (DLL) 會在執行階段連結到您的應用程式。若要示範 DLL 的建立和使用方式,請參考下面案例:
  • MathLibrary.DLL:程式庫檔案,包含可在執行階段呼叫的方法。在此範例中,DLL 包含 Add 和 Multiply 這兩個方法。
  • Add.cs:包含 Add(long i, long j) 方法的原始程式檔。它會傳回其參數的總和。包含 Add 方法的 AddClass 類別是UtilityMethods 命名空間的成員。
  • Mult.cs:原始程式碼,其包含了 Multiply(long x, long y) 方法。它會傳回其參數的乘積。包含 Multiply 方法的MultiplyClass 類別是 UtilityMethods 命名空間的成員。
  • TestCode.cs:包含 Main 方法的檔案。它使用 DLL 中的方法來計算執行階段引數的總和與乘積。
// File: Add.cs 
namespace UtilityMethods
{
    public class AddClass 
    {
        public static long Add(long i, long j) 
        { 
            return (i + j);
        }
    }
}


// File: Mult.cs
namespace UtilityMethods 
{
    public class MultiplyClass
    {
        public static long Multiply(long x, long y) 
        {
            return (x * y); 
        }
    }
}


// File: TestCode.cs

using UtilityMethods;

class TestCode
{
    static void Main(string[] args) 
    {
        System.Console.WriteLine("Calling methods from MathLibrary.DLL:");

        if (args.Length != 2)
        {
            System.Console.WriteLine("Usage: TestCode  ");
            return;
        }

        long num1 = long.Parse(args[0]);
        long num2 = long.Parse(args[1]);

        long sum = AddClass.Add(num1, num2);
        long product = MultiplyClass.Multiply(num1, num2);

        System.Console.WriteLine("{0} + {1} = {2}", num1, num2, sum);
        System.Console.WriteLine("{0} * {1} = {2}", num1, num2, product);
    }
}
/* Output (assuming 1234 and 5678 are entered as command line args):
    Calling methods from MathLibrary.DLL:
    1234 + 5678 = 6912
    1234 * 5678 = 7006652        
*/


這個檔案包含了使用 Add 和 Multiply 等 DLL 方法的演算法。首先,它會剖析從命令列輸入的引數 num1 和 num2,然後再使用 AddClass 類別中的 Add 方法計算總和,並使用 MultiplyClass 類別上的 Multiply 方法計算乘積。
請注意,檔案開頭的 using 指示詞可以讓您使用名稱不符的類別名稱,在編譯時期參考 DLL 方法,如下所示:
MultiplyClass.Multiply(num1, num2);


否則,您必須使用完整名稱,如下所示:
UtilityMethods.MultiplyClass.Multiply(num1, num2);


執行

若要執行此程式,請輸入 EXE 檔的名稱,接著輸入兩個數目,如下所示:
TestCode 1234 5678
若要建立 MathLibrary.DLL 檔案,請使用下列命令列編譯 Add.cs 和 Mult.cs 兩個檔案:
csc /target:library /out:MathLibrary.DLL Add.cs Mult.cs
此處的 /target:library 編譯器選項會通知編譯器輸出一個 DLL,而不要輸出一個 EXE 檔案。後面接續著一個檔案名稱的/out 編譯器選項則是用來指定該 DLL 的檔案名稱。否則編譯器會使用第一個檔案 (Add.cs) 當成 DLL 的名稱。
若要建立可執行檔 TestCode.exe,請使用下列命令列:
csc /out:TestCode.exe /reference:MathLibrary.DLL TestCode.cs
此處的 /out 編譯器選項會通知編譯器輸出一個 EXE 檔案,並指定輸出檔案的名稱 (TestCode.exe)。這個編譯器選項是選擇性的。此處的 /reference 編譯器選項會指定此程式所使用的 DLL 檔案。

Object 類別 (方法)

Object 類別

 Object 方法

 Equals 方法

 Finalize 方法

 GetHashCode 方法

 GetType 方法

 MemberwiseClone 方法

 ReferenceEquals 方法

 ToString 方法

Object 方法

.NET Framework 3.5

更新:2007 年 11 月
Object 型別會公開下列成員。
 名稱說明
ek57cbk7.pubmethod(zh-tw,VS.90).gif ek57cbk7.static(zh-tw,VS.90).gif ek57cbk7.CFW(zh-tw,VS.90).gif ek57cbk7.xna(zh-tw,VS.90).gifEquals多載。 判斷兩個 Object 執行個體是否相等。
ek57cbk7.protmethod(zh-tw,VS.90).gif ek57cbk7.CFW(zh-tw,VS.90).gif ek57cbk7.xna(zh-tw,VS.90).gifFinalize在記憶體回收 (GC) 回收 Object 前,允許 Object 嘗試釋放資源並執行其他清除作業。
ek57cbk7.pubmethod(zh-tw,VS.90).gif ek57cbk7.CFW(zh-tw,VS.90).gif ek57cbk7.xna(zh-tw,VS.90).gifGetHashCode做為特定型別的雜湊函式。
ek57cbk7.pubmethod(zh-tw,VS.90).gif ek57cbk7.CFW(zh-tw,VS.90).gif ek57cbk7.xna(zh-tw,VS.90).gifGetType取得目前執行個體的 Type
ek57cbk7.protmethod(zh-tw,VS.90).gif ek57cbk7.CFW(zh-tw,VS.90).gif ek57cbk7.xna(zh-tw,VS.90).gifMemberwiseClone建立目前 Object 的淺層複本 (Shallow Copy)。
ek57cbk7.pubmethod(zh-tw,VS.90).gif ek57cbk7.static(zh-tw,VS.90).gif ek57cbk7.CFW(zh-tw,VS.90).gif ek57cbk7.xna(zh-tw,VS.90).gifReferenceEquals判斷指定的 Object 執行個體是否為相同的執行個體。
ek57cbk7.pubmethod(zh-tw,VS.90).gif ek57cbk7.CFW(zh-tw,VS.90).gif ek57cbk7.xna(zh-tw,VS.90).gifToString傳回 String,表示目前的 Object


Button 類別 介紹

System.Web.UI.WebControls
 Text="Sort Ascending" (按鈕文字)
 CommandName="Sort" (自訂觸發名稱)
 CommandArgument="Ascending" (值)
 OnCommand="CommandBtn_Click"  (自訂按鈕Click事件 或 直接內建Click)
 (自訂Click方法)(void CommandBtn_Click(Object sender, CommandEventArgs e) {})
runat="server"/>



  說明:按一下 Button 控制項時,是否執行驗證
  說明:取得或設定選擇性 (Optional) 參數
  說明:取得或設定與 Button 控制項關聯的命令名稱,這個命令名稱將傳遞至 Command 事件
  說明:取得或設定當 Button 控制項的 Click 事件引發時執行的用戶端指令碼
  說明:取得或設定當按下 Button 控制項時,從目前的網頁要張貼到之目的地網頁的 URL(網址導向)
  說明:取得或設定顯示於 Button 控制項中的文字標題
  說明:預設 [ true ], 如果您指定 false,ASP.NET 網頁架構會將用戶端指令
     碼加入至網頁,以將表單張貼到伺服器上。
  說明:Button 所控制的控制項群組,會在回傳至伺服器時,針對這個群組引發驗證,預設為空字串 ("")。