標籤

Linux (2) 中原宿舍 (2) 網路 (2) CISCO (1) android (1) ubuntu (1) vim (1) windows (1) x10 (1) 冷知識 (1) 網路協議 (1) 網路工程 (1)

2010年11月13日 星期六

CISCO 網路協議總結

1、思科網路路由協定網路/路由(Network/Routing
CGMP
:思科組管理協議(CGMPCisco Group Management Protocol
EIGRP
:增強的內部閘道路由選擇協議(EIGRPEnhanced Interior Gateway Routing Protocol
IGRP
:內部閘道路由協議(IGRPInterior Gateway Routing Protocol
HSRP
:熱備份路由器協議(HSRPHot Standby Routing Protocol
RGMP
Cisco Router Port Group Management Protocol
CGMP
:思科組管理協議 CGMPCisco Group Management Protocol 思科組管理協議 CGMP: 要用來限定只向與 IP 組播客戶機相連的埠轉發 IP 組播資料包。這些客戶機自動加入和離開接收 IP 組播流量的組,交換機根據請求動態改變其轉發行為。CGMP 主要提供以下服務: 允許 IP 組播資料包被交換到具有 IP 組播客戶機的那些埠。 將網路帶寬保存在用戶欄位,不致於轉播不必要的IP組播流量。 不需要改變終端主機系統。 在為交換網路中的每個組播組創建獨立 VLAN 時不會產生額外開銷。 一旦 CGMP 被啟動使用,它能自動識別與 CGMP-Capable 路由器連接的埠。CGMP 通過缺省方式被啟動,它支援最大為64IP 組播組註冊。支持 CGMP 的組播路由器週期性地相發送 CGMP 加入資訊(Join Messages),用來通告自己執行網路交換行為。接收交換機保存資訊,並設置一個類似于路由器保持時間(Holdtime)的計時器(Timer)。 交換機每接收一個 CGMP 加入資訊,計時器也隨其不斷更新。當路由器保持時間終止時,交換機負責將所有知道的組播組移出 CGMP
CGMP
結合 IGMP 資訊共同實現動態分配 Cisco Catalyst 交換機埠過程,從而 IP 組播流量只被轉發給與 IP 組播客戶機相連的那些埠。由於 CGMP-Capable IP 組播路由器看到所有 IGMP 資料包,因此它可以通知交換機特定主機什麼時候加入或離開 IP 組播組。當 CGMP-Capable 路由器接收一個 IGMP 控制資料包時,它會創建一個包含請求類型(加入或離開)、組播組位址和主機有效 MAC 位址等的 CGMP 資料包。然後路由器將 CGMP 資料包發送到所有 Catalyst 交換機都知道的位址上。當交換機接收 CGMP 資料包時,交換機負責轉換資料包同時更改組播組的轉發行為。至此,該組播流量只被發送到與適當 IP 組播客戶機相連的那些埠。該過程是自動實現的,無需用戶參與。
EIGRP
Enhanced Interior Gateway Routing Protocol, 增強的內部閘道路由
選擇協議增強的內部閘道路由選擇協議 EIGRP 是增強版的 IGRP 協議。IGRP 是思科提供的一種用於 TCP/IP OSI 英特網服務的內部閘道路由選擇協定。它被視為是一種內部閘道協議,而作為域內路由選擇的一種外部閘道協議,它還沒有得到普遍應用。
Enhanced IGRP
與其他路由選擇協議之間主要區別包括:收斂寬速(Fast Convergence)、支援變長子網掩模(Subnet Mask)、局部更新和多網路層協定。執行 Enhanced IGRP 的路由器存儲了所有其相鄰路由表,以便於它能快速利用各種選擇路徑(Alternate Routes)。如果沒有合適路徑,Enhanced IGRP 查詢其鄰居以獲取所需路徑。直到找到合適路徑,Enhanced IGRP 查詢才會終止,否則一直持續下去。
EIGRP
協議對所有的 EIGRP 路由進行任意遮罩長度的路由聚合,從而減少路由資訊傳輸,節省帶寬。另外 EIGRP 協定可以通過配置,在任意介面的位元邊界路由器上支援路由聚合。
Enhanced IGRP
不作週期性更新。取而代之,當路徑度量標準改變時,Enhanced IGRP 只發送局部更新(Partial Updates)資訊。局部更新資訊的傳輸自動受到限制,從而使得只有那些需要資訊的路由器才會更新。基於以上這兩種性能,因此 Enhanced IGRP 損耗的帶寬比 IGRP 少得多。
IGRP
Interior Gateway Routing Protocol , 內部閘道路由協議
內部閘道路由協議(IGRP)是一種在自治系統(ASautonomous system)中提供路由選擇功能的路由協定。在上世紀80年代中期,最常用的內部路由協是路由資訊協定(RIP)。儘管 RIP 對於實現小型或中型同機種互聯網路的路由選擇是非常有用的,但是隨著網路的不斷發展,其受到的限制也越加明顯。思科路由器的實用性和 IGRP 的強大功能性,使得眾多小型互聯網路組織採用 IGRP 取代了 RIP。早在上世紀90年代,思科就推出了增強的 IGRP,進一步提高了 IGRP 的操作效率。
IGRP
是一種距離向量(Distance Vector)內部閘道協議(IGP)。距離向量路由選擇協定採用數學上的距離標準計算路徑大小,該標準就是距離向量。距離向量路由選擇協定通常與鏈路狀 態路由選擇協定(Link-State Routing Protocols)相對,這主要在於:距離向量路由選擇協議是對互聯網中的所有節點發送本地連接資訊。 為具有更大的靈活性,IGRP 支援多路徑路由選擇服務。在迴圈(Round Robin)方式下,兩條同等帶寬線路能運行單通信流,如果其中一根線路傳輸失敗,系統會自動切換到另一根線路上。多路徑可以是具有不同標準但仍然奏效的 多路徑線路。例如,一條線路比另一條線路優先3倍(即標準低3級),那麼意味著這條路徑可以使用3次。只有符合某特定最佳路徑範圍或在差量範圍之內的路徑 才可以用作多路徑。差量(Variance)是網路管理員可以設定的另一個值。
HSRP
Hot Standby Router Protocol, 熱備份路由器協議
熱備份路由器協定(HSRP)的設計目標是支援特定情況下 IP 流量失敗轉移不會引起混亂、並允許主機使用單路由器,以及即使在實際第一跳路由器使用失敗的情形下仍能維護路由器間的連通性。換句話說,當源主機不能動態 知道第一跳路由器的 IP 位址時,HSRP 協議能夠保護第一跳路由器不出故障。該協議中含有多種路由器,對應一個虛擬路由器。HSRP 協議只支援一個路由器代表虛擬路由器實現資料包轉發過程。終端主機將它們各自的資料包轉發到該虛擬路由器上。 負責轉發資料包的路由器稱之為主動路由器(Active Router)。一旦主動路由器出現故障,HSRP 將啟動備份路由器(Standby Routers)取代主動路由器。HSRP 協議提供了一種決定使用主動路由器還是備份路由器的機制,並指定一個虛擬的 IP 位址作為網路系統的缺省閘道位址。如果主動路由器出現故障,備份路由器(Standby Routers)承接主動路由器的所有任務,並且不會導致主機連通中斷現象。
HSRP
運行在 UDP 上,採用埠號1985。路由器轉發協定資料包的源位址使用的是實際 IP 位址,而並非虛擬位址,正是基於這一點,HSRP 路由器間能相互識別。  
RGMP
Cisco Router Port Group Management Protocol , 思科路由器埠組管理協議
思科路由器埠組管理協議(RGMP)彌補了 Internet 組管理協議(IGMPInternet Group Management Protocol)在 Snooping 技術機制上所存在的不足。RGMP 協議作用于組播路由器和交換機之間。通過 RGMP,可以將交換機中轉發的組播資料包固定在所需要的路由器中。RGMP 的設計目標是應用于具有多種路由器相連的骨幹交換網(Backbone Switched Networks)。
IGMP Snooping
技術的局限性主要體現在:該技術只能將組播流量固定在接收機間經過其他交換機直接或間接相連的交換埠,在 IGMP Snooping 技術下,組播流量不能固定在至少與一台組播路由器相連的埠處,從而引起這些埠的組播流量擴散。IGMP Snooping 是機制固有的局限性。基於此,路由器無法報告流量狀態,所以交換機只能知道主機請求的組播流量類型,而不知道路由器埠接收的流量類型。
RGMP
協定支援將組播流量固定在路由器埠。為高效實現流量固定,要求網路交換機和路由器都必須支持 RGMP 。通過 RGMP,骨幹交換機可以知道每個埠需要的組類型,然後組播路由器將該資訊傳送給交換機。但是路由器只發送 RGMP 資訊,而忽視了所接收的 RGMP 資訊。當組不再需要接收通信流量時,路由器會發送一個 RGMP 離開資訊(Leave Message)。RGMP 協定中網路交換機需要消耗網路埠達到 RGMP 資訊並對其進行處理操作。此外,RGMP 中的交換機不允許將接收到的 RGMP 資訊轉發/擴散到其他網路埠。
RGMP
的設計目標是與支援分配樹 Join/Prune 的組播路由選擇協定相結合使用。其典型協議為 PIM-SMRGMP 協議只規定了 IP v4 組播路由選擇操作,而不包括 IP v6

2
、思科資料連結協議資料連結(Data Link
CDP
:思科發現協議(CDPCisco Discovery Protocol
DTP
:思科動態中繼協定(DTPDynamic Trunk Protocol
ISL & DISL
:思科交換鏈路內協定和動態 ISL 協定(ISLInter-Switch Link Protocol
VTP
:思科VLAN中繼協議(VTPVLAN Trunking Protocol
CDP
Cisco Discovery Protocol , 思科發現協議 CDP
CDP
基本上是用來獲取相鄰設備的協定位址以及發現這些設備的平臺。CDP 也可為路由器的使用提供相關介面資訊。CDP 是一種獨立媒體協議,運行在所有思科本身製造的設備上,包括路由器、網橋、接入伺服器和交換機。
SNMP
中結合使用 CDP 管理資訊基礎 MIB,能使網路管理應用獲知設備類型和相鄰設備的 SNMP 代理位址,並向這些設備發送 SNMP 查詢請求。Cisco 發現協定支援 CISCO-CDP-MIB
CDP
運行在所有的媒體上,從而支援子網訪問協定 SNAP,包括局域網、幀中繼和非同步傳輸模式 ATM 物理媒體。CDP 只運行於資料連結層,因此,支援不同網路層協定的兩個系統彼此相互瞭解。
CDP
配置的每台設備發送週期性資訊,如我們所知的廣告到組播地址。每台設備至少廣告一個位址,在該位址下,它可以接收 SNMP 資訊。廣告包括生存期,或保持時間等資訊,這些資訊指出了在取消之前接收設備應該保持 CDP 資訊的時間長短。此外每台設備還要注意其他設備發出的週期性 CDP 資訊,從中瞭解相鄰設備資訊並決定那些設備的媒體介面什麼時候增長或降低。
CDP
版本2,是目前該協議使用最普遍的版本,它具有更高的智慧設備跟蹤等性能。支援該性能的報告機制,提供快速差錯跟蹤功能,有利於縮短停機時間 (Downtime)。報告差錯資訊可以發送到控制臺或日誌伺服器(Logging Server),這些差錯資訊包括連接埠上不匹配(Unmatching)的本地??VLAN IDsIEEE 802.1Q)以及連接設備間不匹配的埠雙向狀態。
DTP
Cisco Dynamic Trunking Protocol, 思科動態中繼協定
思科動態中繼協定 DTP,是 VLAN 組中思科所有協議,主要用於協商兩台設備間鏈路上的中繼過程以及中繼封裝 802.1Q 類型。 中繼協定有很多不同類型。如果埠被設置為 Trunk 埠,那麼該埠便具有自動中繼功能,在某些情況下,甚至具有協商埠中繼類型的功能。這種與其他設備之間進行的協商中繼方法的過程被稱之為動態中繼技術。 首先關注的是,中繼電纜(Trunk Cable)終端最好對它們正在中繼或它們將中繼幀視為正常幀問題達成一致。在資訊幀頭另外添加標籤資訊容易導致終端站的混亂,這是因為終端站的驅動棧無 法識別該標籤資訊,從而導致終端系統上鎖或失敗。為解決這個問題,思科創建了交換協定以實現通信目的。推出的第一版本是 VTP,即 VLAN 中繼協議,它與 ISL 共同作用。最新推出的版本,即動態中繼協定 DTP 802.1Q 共同作用。 其次是創建 LANs。交換機要想實現獨立配置 VLANs 交換,需要做很多工作並且容易引起較多矛盾,這是因為 VLAN 100 運行在一台交換機上,計費卻在另一臺上。這很容易破壞機器的 VLAN 安全模式,而故障恢復機制正是為此而設立的。此外也可通過 VTP/DTP 解決該問題。同一管理控制臺可以在某台交換機上創建或刪除一個 VTP,並使資訊自動傳播到交換機組上,這種交換機組可能是一個 VTP 域。
ISL & DISL
Cisco Inter-Switch Link Protocol and Dynamic ISL Protocol , 思科交換鏈路內協定和動態 ISL 協定
交換鏈路內協議(ISL),是思科私有協議,主要用於維護交換機和路由器間的通信流量等 VLAN 資訊。
ISL
標籤(Tagging)能與 802.1Q 幹線執行相同任務,只是所採用的幀格式不同。ISL 幹線(Trunks)是 Cisco 私有,即指兩設備間(如交換機)的一條點對點連接線路。在“交換鏈路內協議”名稱中即包含了這層含義。ISL 幀標籤採用一種低延遲(Low-Latency)機制為單個物理路徑上的多 VLANs 流量提供複用技術。ISL 主要用於實現交換機、路由器以及各節點(如伺服器所使用的網路介面卡)之間的連接操作。為支援 ISL 功能特徵,每台連接設備都必須採用 ISL 配置。ISL 所配置的路由器支援 VLAN 內通信服務。非 ISL 配置的設備,則用於接收由 ISL 封裝的乙太幀(Ethernet Frames),通常情況下,非 ISL 配置的設備將這些接收的幀及其大小歸因於協議差錯。 和 802.1Q 一樣,ISL 作用於 OSI 模型第2層。所不同的是,ISL 協定頭和協定尾封裝了整個第2層的乙太幀。正因為此,ISL 被認為是一種能在交換機間傳送第2層任何類型的幀或上層協定的獨立協定。ISL 所封裝的幀可以是權杖環(Token Ring)或快速乙太網(Fast Ethernet),它們在發送端和接收端之間維持不變地實現傳送。ISL 具有以下特徵: 由專用積體電路執行(ASICapplication-specific integrated circuits) 不干涉客戶機站;客戶機不會看到 ISL 協議頭
ISL NICs
為交換機與交換機、路由器與交換機、交換機與伺服器等之間的運行提供高效性能。 動態交換鏈路內協定(DISL),也屬於思科協議。它簡化了兩台相互連接的快速乙太網設備上 ISL 幹線的創建過程。快速乙太通道技術為高性能中樞連接提供了兩個全雙工快速乙太網鏈路是集中性。由於 DISL 中只允許將一個鏈路終端配置為幹線,所以 DISL 實現了最小化 VLAN 幹線。  
VTP
Cisco VLAN Trunking Protocol, 思科VLAN中繼協議
VLAN
中繼協議(VTP)是思科第2層資訊傳送協定,主要控制網路範圍內 VLANs 的添加、刪除和重命名。VTP 減少了交換網路中的管理事務。當用戶要為 VTP 伺服器配置新 VLAN 時,可以通過域內所有交換機分配 VLAN,這樣可以避免到處配置相同的 VLANVTP 是思科私有協定,它支援大多數的 Cisco Catalyst 系列產品。 通過 VTP,其域內的所有交換機都清楚所有的 VLANs 情況,但當 VTP 可以建立多餘流量時情況例外。這時,所有未知的單播(Unicasts)和廣播在整個 VLAN 內進行擴散,使得網路中的所有交換機接收到所有廣播,即使 VLAN 中沒有連接用戶,情況也不例外。而 VTP Pruning 技術正可以消除該多餘流量。 缺省方式下,所有Cisco Catalyst交換機都被配置為 VTP 伺服器。這種情形適用於 VLAN 信息量小且易存儲於任意交換機(NVRAM)上的小型網路。對於大型網路,由於每台交換機都會進行 NVRAM 存儲操作,但該操作對於某些點是多餘的,所以在這些點必須設置一個“判決呼叫”(Judgment Call)。基於此,網路管理員所使用的 VTP 伺服器應該採用配置較好的交換機,其他交換機則作為客戶機使用。此外需要有某些 VTP 伺服器能提供網路所需的一定量的冗餘。 到目前為止,VTP 具有三種版本。其中 VTP v2 VTP v1 區別不大,主要不同在於:VTP v2 支援權杖環 VLANs,而 VTP v1 不支援。通常只有在使用 Token Ring VLANs 時,才會使用到 VTP v2,否則一般情況下並不使用 VTP v2
VTPv3
不能直接處理 VLANs 事務,它只負責管理域(Administrative Domain)內不透明資料庫的分配任務。與前兩版相比,VTP v3 具有以下改進: 支持擴展 VLANs。 支援專用 VLANs 的創建和廣告。 提供伺服器認證性能。 避免“錯誤”資料庫進入 VTP 域。 與 VTP v1 VTP v2 交互作用。 支援每埠(On a Per-Port Basis)配置。 支援傳播VLAN資料庫和其他資料庫類型。

3
、思科網路安全技術協定網路安全技術(Security/VPN
L2F
:第二層轉發協議(Layer 2 Forwarding Protocol
TACACS
:終端訪問控制器訪問控制系統(TACACSTerminal Access Controller Access Control System  
L2F: Level 2 Forwarding protocol , 第二層轉發協議
第二層轉發協定(L2F)是一種用來建立跨越公用結構組織(如網際網路)的安全隧道,為企業家庭通路連接一個 ISP POP 的協議。這個隧道建立了一個用戶與企業客戶網路間的虛擬點對點連接。 第二層轉發協議(L2F)允許鏈路層協議隧道技術。使用這樣的隧道,使得分離原始撥號伺服器位置即撥號協定連接終止的位置與提供的網路訪問的位置成為可 能。
L2F
允許在 L2F 中封裝 PPP/SLIP 包。ISP NAS 與家庭通路都需要請求一種常規封裝協議,所以可以成功地傳輸或接收 SLIP/PPP 包。 相關鏈結 GREPPPL2TPPPTPSLIP 組織來源 L2F Cisco 定義。 相關鏈結http://www.javvin.com/protocol/rfc2341.pdf
Cisco Layer Two Forwarding
Protocol) — “L2F”  TACACS & TACACS+Terminal Access Controller Access Control System , 終端訪問控制器訪問控制系統
終端訪問控制器訪問控制系統(TACACS)通過一個或多個中心伺服器為路由器、網路訪問控制器以及其他網路處理設備提供了訪問控制服務。TACACS 支持獨立的認證(Authentication)、授權(Authorization)和計費(Accounting)功能。
TACACS
允許客戶機擁有自己的用戶名和口令,並發送查詢指令到 TACACS 認證伺服器(又稱之為TACACS Daemon TACACSD)。通常情況下,該伺服器運行在主機程式上。主機返回一個關於接收/拒絕請求的回應,然後根據回應類型,判斷 TIP 是否允許訪問。在上述過程中,判斷處理採取“公開化(Opened Up)”並且對應的演算法和資料取決於 TACACS Daemon 運行的物件。此外 TACACS 擴展協定支援更多類型的認證請求和回應代碼。 當前 TACACS 具有三種版本,其中第三版 TACACS+ 與前兩版不相容。

4
思科其他協議  
SCCP
Skinny Client Control Protocol, 信令連接控制協定信令連接控制協議
SCCP
是用於思科呼叫管理及其 VOIP 電話之間的思科專有協議。其他供應商也支援該協定。 為解決 VOIP 問題,要求 LAN 或者基於 IP PBX 的終點站操作簡單,常見且相對便宜。相對於 H.323 推薦的相當昂貴的系統而言,SCCP 定義了一個簡單且易於使用的結構。通過 SCCPH.323 代理可以與 Skinny 客戶機進行通信。在這樣的情況下,電話充當了 IP 上的 Skinny 客戶機。而代理服務主要用於 H.225 H.245 信令。 關於 SCCP 結構,作為 Cisco 呼叫管理的 H.323 代理伺服器中存在大量的 H.323 處理源。終點站(電話)運行的客戶機,該客戶機只需消耗少量處理開銷,客戶機通過面向連接(基於 TCP/IP)的通信方式實現呼叫管理間的通信過程,從而與另一個適應的 H.323 終點站建立一個呼叫連接。一旦這樣的呼叫連接建立起來,那麼兩個 H.323 終點站就可以通過無連接(基於 UDP/IP)通信方式實現音頻傳輸。這樣,通過限制建立呼叫管理的 H.323 呼叫裝備的複雜性、以及為實際音頻通信出入終點站提供 Skinny 協議來降低整個過程的費用和開銷。
XOT
:基於 TCP 協議的 Cisco X.25XOTX.25 over TCP Protocol by Cisco) 基於 TCP 協議的 Cisco X.25XOT)是由思科開發的一種用於在 IP 英特網上實現 X.25 傳輸的協議。X.25 資料包層通常採用 LAPB,並且要求在其本身下面包含一個可靠的鏈路層。XOT 提供了一種在 IP 英特網上發送 X.25 資料包的方法,即將 X.25 資料包層封裝在 TCP 數據包中。TCP 具有一個可靠位元組流。X.25 中要求其下面的層,特別是資料包間的邊界包含資訊語義。為了達到這個目標,要求 TCP X.25 間的 XOT 協議頭較小(大約4位元組)。XOT 協議頭包含一個長欄位,用以分隔 TCP 流中的 X.25 數據包。標準 X.25 協定資料包格式和狀態轉換規則通常應用於 XOT 中的 X.25 層。應注意例外情形

2010年10月11日 星期一

組合語言 AT&T Syntax 與 Intel/Microsoft Syntax 差別

order(來源與目標暫存器順序不同)
source在前面destination在後面


Intex Syntax                            AT&T Syntax

instr   dest,source                     instr   source,dest
mov     eax,[ecx]                       movl    (%ecx),%eax
 
 
register naming(暫存器命名)
AT&T前面要加個%
Intel Syntax                            AT&T Syntax

mov     eax,1                           movl    $1,%eax
mov     ebx,0ffh                        movl    $0xff,%ebx
int     80h                             int     $0x80
 
 
imme operand(立即定址命名)
AT&T前面要加個$
 
Intel Syntax                            AT&T Syntax

mov     eax,1                           movl    $1,%eax
mov     ebx,0ffh                        movl    $0xff,%ebx
int     80h                             int     $0x80 
 
 
memory reference(間接定址)
AT&T用小括號"()" 
 
Intel Syntax                           AT&T Syntax

mov     eax,[ebx+20h]                  movl    0x20(%ebx),%eax
add     eax,[ebx+ecx*2h]               addl    (%ebx,%ecx,0x2),%eax
lea     eax,[ebx+ecx]                  leal    (%ebx,%ecx),%eax
 
 
opcode naming(指令命名)
必需指定長度,根據系統而不一樣,word有的是32 bits有的是16 bits
b : byte
w : word
l : long

Intel Syntax                            AT&T Syntax

mov     al,bl                           movb    %bl,%al
mov     ax,bx                           movw    %bx,%ax
mov     eax,ebx                         movl    %ebx,%eax
mov     eax, dword ptr [ebx]            movl    (%ebx),%eax
 
type casting(型別轉換)
s  (signed)
z  (zero)
 
bl (from byte to long) 
bw (from byte to word) 
wl (from word to long)
 
movsbl %al, %edx
 
long jump,call與ret
 
Intel Syntax                            AT&T Syntax

jmp far seg:offsetljmp seg, offset

jmp far  INITSEG:GO                     ljmp $INITSEG, $GO
call far INITSEG:GO                     lcall $INITSEG, $GO
ret far  STACK_ADJUS                    lret $STACK_ADJUST 

註:GAS 亦可接受 Intel/Microsoft syntax 組合語言,只要指令後面寫「.intel_syntax noprefix」即可。

轉自 Study-Area

2010年8月10日 星期二

如何讓 Android ( X10 ) 直接掃描鈴聲

Sony Ericsson X10 有一項缺點就是設定鈴聲比較不方便,一般人不知道的話大概會傻傻的放進 Mediascape 然後設定為鈴聲,而且 Mediascape 不能設定鬧鈴和訊息通知鈴聲,設定最方便的方法就是打開SD卡,把要的鈴聲放在 Audio 底下的資料夾:

一般 Media、Audio 和 notifications 都有預設好,其他沒有的要自己設資料夾,Media 和 Audio 有可能是小寫,Audio 底下的資料的功能分別為:

alarms:放鬧鈴音樂。
notifications:放訊息通知音樂(簡訊、E-mail……等等)。
ringtones:放手機鈴聲。

把音樂放進去,卸載 USB 後,鈴聲選單內就有自己的音樂可以選擇了。

2010年7月18日 星期日

C語言control statement的for和while誰比較快?

C語言程式新手最常問的問題就是control statement的for和while誰比較快?

寫以下兩個無限迴圈程式:

main() {
  for(;;);
} // main()



main() {
  while(1);
} // main()

存檔後,兩個程式透過GCC(註1)翻譯成Assembly Language(註2)後的結果都是下面的結果:

    .file    "infinite.c"
    .text
.globl main
    .type    main, @function
main:
    leal    4(%esp), %ecx
    andl    $-16, %esp
    pushl    -4(%ecx)
    pushl    %ebp
    movl    %esp, %ebp
    pushl    %ecx
.L2:
    jmp    .L2
    .size    main, .-main
    .ident    "GCC: (GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4)"
    .section    .note.GNU-stack,"",@progbits

故兩種control statement都一樣快。

註1:不同的compiler轉譯出來的結果可能會不同。

註2:翻譯出來的組合語言是遵守AT&T syntax,跟Intex和Microsoft不太一樣!

2010年7月13日 星期二

宿舍網路問題排除基本步驟

1.先檢查硬體設備是否沒問題
  • 網路線插了但是網路卡燈號沒亮
     → 網路卡或網路線有問題,換別的試試
     → 或者不是拿網路線(8 pin),而是拿錯拿成電話線(6 pin)去接
  • 區域連線是否啟用
     → 如果使用 Windows 7 你可以在控制台 → 網路和網際網路 → 網路和共用中心 → 變更介面卡設定
     → 如果使用 Windows 2000/XP 你可以在「網路上的芳鄰」按右鍵 → 內容
     ,看看區域連線是否有啟用,若沒有請啟用它,如果已經啟用網路卡,而沒顯示連線

     → 壁孔損壞,請至傳達室填維修單

2.telnet下列校內BBS
   電機心站  140.135.12.1
   中原資工神祕之旅  140.135.11.30
   如果不能上
   → 請檢查IP是否設成手動取得,請換成DHCP自動取得;
如果你是用 Windows 2000/XP 你可以在「網路上的芳鄰」按右鍵 → 內容,開啟區域連線 → 內容 → 按兩下Internet Protocol(TCP/IP),請選擇「自動取得IP位址」以及「自動取得 DNS 伺服器位址」

3.連學校首頁 http://www.cycu.edu.tw,如果連不上
   → 請設定DNS
      如果使用 Windows 7 你可以在控制台 → 網路和網際網路 → 網路和共用中心 → 變更介面卡設定 → 區域連線 → 內容 → 按兩下Internet Protocol(TCP/IP)
      如果你是用 Windows 2000/XP 你可以在「網路上的芳鄰」按右鍵 → 內容,開啟區域連線 → 內容 → 按兩下Internet Protocol(TCP/IP)
      ,請選擇「手動取得 DNS 伺服器位址」
      慣用DNS伺服器:140.135.7.1
      其他DNS伺服器:140.135.7.2

4.連其他的BBS或網頁,如果不能上
  • IE 8設定proxy
     開啟IE → 工具 → 網際網路選項 → 連線(標籤) → 區域網路設定 → Proxy伺服器請打勾「在您的區域網路使用 Proxy 伺服器」以及「進端網址不使用 Proxy」
       網址:proxy.cycu.edu.tw      連接埠:3128
       進入「進階」,請打勾「所有通訊協定使用相同的 Proxy」,會留下 HTTP 一欄
       Proxy位址:proxy.cycu.edu.tw       連接埠:3128
      「例外」欄,下面有「含有下列起始文字的位址不使用 Proxy 伺服器」
    請填入 *.cycu.edu.tw;140.135.*

各種瀏覽器設定Proxy方法以後會詳細介紹!
  • 檢查使用IP跟分配IP是否相同
    → 請到 http://ccdna.cycu.edu.tw,檢查你的使用IP是否和系統
    分配的IP相同
      網頁查詢出來的IP Address是系統分配IP
      如果你是使用 Windows 7 請按 開始 → 搜尋列輸入cmd → 點選cmd
      如果你是使用 Windows 2000/XP  請按 開始 → 執行 → cmd
      如果你是使用 Windows 95/98/ME 請按 開始 → 執行 → command
      進入 MS-DOS 模式
      請輸入「ipconfig」,其中的「IP Address」便是你使用中的IP看看是否一樣
  • 檢查MAC是否正確
     →請到 http://ccdna.cycu.edu.tw,檢查你的網路卡 MAC 是否正確,網頁查詢出來會有「已登錄網路卡 MAC」跟「目前連線網路卡 MAC」 請看看是否一樣,如果不一樣請修改, 必須等待10分鐘左右的處理時間,等待table更新,10分鐘後才能連線。
  • 改成手動取得IP
     → 設定成手動取得IP

        Winodws 7:
        控制台 → 網路和網際網路 → 網路和共用中心 → 變更介面卡設定 → 區域連線
        → 內容 → 雙擊Internet Protocol(TCP/IP)

        Windows 2000/XP:
        控制台 → 網路連線 → 區域連線 → 內容 → 雙擊Internet Protocol(TCP/IP)

        請打勾「使用下列IP位址」
        IP位址:系統分配IP (140.135.xxx.xxx)
        子網路遮罩:255.255.255.0(力行)
                    255.255.254.0(恩慈、良善)
        預設閘道:140.135.24.254 (力行一東)
                  140.135.25.254 (力行二東)
                  140.135.26.254 (力行三東)
                  140.135.27.254 (力行四東)
                  140.135.28.254 (力行一西)
                  140.135.29.254 (力行二西)
                  140.135.30.254 (力行三西)
                  140.135.31.254 (力行四西)
                  140.135.151.254(恩慈前棟)
                  140.135.153.254(恩慈後棟)
                  140.135.155.254(良善123樓)
                  140.135.157.254(良善456樓)
                  140.135.159.254(良善789樓)
        慣用DNS伺服器:140.135.7.1
        其他DNS伺服器:140.135.7.2

        系統分配IP請至 http://ccdna.cycu.edu.tw 查詢
  • 是否被阻斷
     → 請至 http://ccdna.cycu.edu.tw/virus_st/index.html
        按 Ctrl+F 輸入自己的系統分配IP查詢是否在清單內   
     → 如果阻斷原因是超過流量上限,則管理系統會自動在08:00刪除

        如果阻斷原因是流量異常,請先看流量異常原因進行調整或解毒

        要清除阻斷,請至 http://ccdna.cycu.edu.tw 自行解除,一天限一次!

以下情況是我們經常遇到的狀況:

開啟不明軟體後,發現到MSN和瀏覽器不能開啟網頁的狀況,防毒軟體也不能更新,請開啟cmd輸入ping + 室友的正常電腦的IP,也嘗試看看從室友的電腦那裡ping回來自己的IP,然後自己的電腦cmd輸入「ping tw.yahoo.com(或者其他網頁地址或IP)」,如果ping出來的結果如圖下顯示的一樣,表示其他網路服務雖然不能使用,但是電腦實際上還是能ping出去(ping只是測試學校網路有沒有問題),代表你的電腦已經徹底中毒,請網管來也沒用,電腦抱回去重灌比較快!

2010年7月12日 星期一

良好的網路使用習慣

在任何環境下,電腦最常發生的事是中毒。電腦中毒後,病毒會不停複製自己,造成CPU(中央處理器)和記憶體超出負荷,讓電腦運作異常,使之變得不穩定、變慢、當機、自動重開機,甚至直接死機(不能開機),病毒嘗試感染其他電腦,也使自己的網路流量增加、速度變慢、甚至不能上網,因此建立良好的網路使用習慣是非常重要的事情。

良好的網路使用習慣大致如下:
  • 不開啟和安裝來路不明的軟體
這個習慣最多人會犯,尤其是遊戲的外掛!最常遇到的就是一開來路不明的外掛後,電腦可以ping出去,也可以ping進來,就是所有網路服務都不能開,這種情況「重灌」是最快的辦法。另外一種狀況就是安裝軟體時有時候會自動附上惡意Toolbar,綁架瀏覽器首頁,就算是良好的Toolbar,也會使瀏覽器效能降低,所以安裝任何軟體,記得照子要放亮,只要一出現安裝Toolbar選項,不管是好是壞,馬上取消就對了,「寧可錯殺一百,不願漏掉萬一。」

注意一下某些軟體會附上「PANDORA.TV」的「Ask」搜尋ToolBar,這種ToolBar裝下去後,除了瀏覽器上會多一個ToolBar以外,也會私自把搜尋預設改成Ask,安裝的時候注意一下!

  • 不開啟來路不明網頁連結和郵件
MSN或即時通上的好友突然間沒事傳一個連結給你,千萬別點下去!點下去後自己也會中木馬程式,除了個人資料被盜取之外,怪客(cracker)(註1)還會利用你的帳號繼續發佈給其他人!電子郵件也是使用同樣的手法感染其他電腦。一般網頁和電子郵件也很常遇到,例如在論壇和信件上常常看到的援交、X片販賣、網路遊戲私服廣告等等,也不要亂點。也有用相似的文字來引人上當,例如yahoo改成yah00、大寫「I」、小寫的「L」和數字「1」,很容易混淆。某些重要資料登入,例如網購和網路銀行,記得認明是「https」(例如:https://login.yahoo.com/*)才能登入。

  • Proxy注意!
有心人士會架設假的Proxy伺服器,擷取網路封包過慮個人資料。通常學校的Proxy伺服器沒有這個風險存在。
  • 小心別人的USB隨身碟或硬碟!
目前最夯的病毒就是USB病毒,專門透過Win XP的自動開啟功能感染其他電腦,所以自動開啟功能一定要關閉!使用前一定要先掃毒!自己的隨身碟插在別人的電腦上後回來也要徹底掃毒一遍!
  • 設定難以猜測的密碼與更改密碼
加密網路相簿最常遇到的就是密碼設的太簡單,很容易猜出來,例如生日、手機號碼......等等,這類密碼非常容易被怪客猜出來,設定難以猜測的密碼極為重要,最怕的就是遇到字典破解,就是用字典的辭彙硬把密碼猜出來,防堵暴力破解的方法,最快的辦法是設定非英文密碼,改設其他歐洲語言的密碼也不錯。有的病毒或木馬會測錄鍵盤紀錄密碼,當發現到中毒時,檔案刪掉並馬上修改密碼,算是亡羊補牢的方法。時常更改密碼更能大幅降低個資盜取的風險。

How Secure Is My Password?」,這個網站能測試你的密碼需要多少時間才能破解,可以參考參考。
  • 不亂留個人資料與隱私管理
這是第二個徹底解決的方法,尤其是在社交網站(Facebook和Twitter),個人資料留的愈多愈危險。如果要留,就要好好保護自己的隱私。
  • 系統更新 
怪客攻擊通常從系統漏洞下手,因此系統修補也是防堵攻擊的不二法門,更新設定成自動就好(雖然Windows修補漏洞的速度非常慢)。
  • 關閉不必要的服務
利用系統服務入侵電腦的狀況也十分常見,停止不需要的服務可以大大降低被入侵的機率,服務越多所造成被入侵的機率越高,像是 Microsoft IIS (網頁伺服器)、FTP、SQL 等都是十分常見的管道,若不需要則將服務停止或移除,以免安裝的服務沒有實際用途卻形成系統的一個弱點而遭到入侵。
  • 瀏覽器
選對的瀏覽器也是一門非常重要的課題,目前漏洞最多的瀏覽器還是IE......這是世界公認的!請改用Firefox、Chrome或Opera,安全性也比IE高很多。有的怪客會利用Flash漏洞透過瀏覽器攻擊系統,Firefox有一個插件叫「Stop Autoplay」,會強制讓Flash停止自動播放,要播放自己點開即可,歡迎到右邊的抓火狐貼紙下載Firefox並安裝Stop Autoplay。
  • Cookie別留下來!
某些需要帳號,甚至是有自動登入的網站和論壇,通常會把帳號紀錄在Cookie裡,甚至是自動登入的網站連密碼也紀錄在裡面,電腦放木馬很容易被盜取,所以瀏覽器設成不存取Cookie也是防止個資盜取的一個好方法,除非有把握不會中木馬(例如使用Linux作業系統)。
  • 防毒軟體
防毒軟體提供即時監測目前系統活動,判斷是否有類似病毒的活動及檔案,如有發現病毒會依軟體的使用者設定設定來執行相關動作,會嘗試清除病毒、刪除檔案等,會在當我們有所疏忽時,協助防止病毒入新,因此安裝是當的防毒軟體也是一種的良好習慣。市面上也有免費、功能又強大的防毒軟體(例:AVG.Ariva.Avast!)可以裝來用一用(註2)

王某史瑞克的風涼話:就算防毒軟體猛到百毒不侵,使用習慣不好,中毒也能搞到連防毒軟體都不能更新,無用武之地。
  • 最徹底解決的辦法:不使用「暈到死」!!!
就是使用非M$的作業系統,例如Linux和Mac OS X,因為世界上99%病毒和木馬都是針對「暈到死」的漏洞而設計的,因此「暈到死」跑的程式不能在其他作業系統上啟動,好比說淡水魚不能在海裡存活的意思一樣,安全性也比「暈到死」好上太多,尤其是Linux,它是開放原始碼的自由軟體,程式碼攤在陽光底下,漏洞比較快找到也很快修補。

註1:利用系統漏洞的人坊間通常都稱為「駭客」,但是在資安界和自由軟體界裡會細分駭客,專門寫開源自由軟體供大眾使用和幫助搜尋並修補系統漏洞的人稱為「駭客」;反之除了搜尋漏洞之外,還利用漏洞攻擊系統的人,就稱為「怪客」。因為自己身處於自由軟體界,只好用「怪客」一詞。 

註2:某些防毒軟體標榜雲端計算或服務,如果網路有限制流量,請不要使用,因為背景掃毒時,軟體會把資料丟到遠端伺服器,會造成流量增加。

    2010年7月11日 星期日

    論Linux Desktop系統硬碟規劃

    本文章只適用於一般Linux desktop使用。

    一般使用者剛學Linux的時候通常都是把整個硬碟規劃成「/」(root),初學時不小心把系統搞掛倒是司空見慣,但是重灌時「/home」裡面的檔案全部見......心會淌血是一定的。

    對於一般desktop用途的使用者,「/」只要割 10GB就夠了,對!就是這麼小!不放心割20GB也絕對夠,不過久了會發現到其實會浪費很多空間,除非有需求,否則平常不用割這麼大。給Swap留一部份空間(或完全不用割,詳細會在後面說明),剩下給「/home」就好了。

    「/」和「/home」分割的好處就是使用者的軟體設定檔和桌面的檔案重灌後都不會消失!因為軟體設定檔和桌面的檔案都放在「/home」目錄裡,重灌時「/」格式化也不會影響到「/home」,把原本使用的軟體裝回來也不用重新設定軟體,連compiz也不用重新裝就能跑特效。

    坊間的書有的會說「/boot」要割出來,其實是以前開機管理程式用LILO(Linux Loader)的年代,LILO無法辨別1024磁柱以後的空間,才要把「/boot」割出來,新增GRUB(GRand Unified Bootloader)以後就不用特別割出來了。

    另外Swap(虛擬記憶體,在Linux上稱為「靜置轉換空間」)的規劃又是一大學問,Swap空間就是從硬碟上分出一部份空間,模擬出記憶體讓電腦使用,以前的記憶體比較昂貴,才會出現硬碟當作記憶體使用這個方法;但是現在電腦實體記憶體動輒1GB以上,給desktop用絕對夠,所以沒必要給Linux這麼多Swap。另外系統使用Swap次數愈多,硬碟的壽命相對減少,因為Swap就是把記憶體的資料暫存在硬碟裡,讀寫次數過多對硬碟也是一種消耗,所以Swap能不用就不用。

    保守規劃,如果實體記憶體有512MB(我想應該會跑超慢......) ,Swap就割1024MB到2048MB就夠用;1G的實體記憶體就割512MB到1024MB;2G以上實體記憶體就完全不用割(連我自己都沒塞暴過......)就絕對足夠。小筆電的實體記憶體比較小(最少遇過256MB),直接用Ubuntu NetBook Remix版本割512MB以上會比較好用。

    2010年6月25日 星期五

    Windows 7 佈景主題:Win 7娘

    蠻多人開始問我這個動畫人物是誰,嚴格講不算是動畫人物,這個虛擬人物除了廣告以外沒有任何動畫出現過,這是日本微軟為了宣傳Windows 7刻意創造出來的虛擬人物-窓辺ななみ


     
    Windows 7在日本上市時,為了配合日本當地文化,創造虛擬人物出來,還請到知名聲優-水樹奈奈來配音。「窓辺ななみ(まどべ ななみ,Madobe Nanami)」的中文剛好就是「Windows 7妹」,另外「水樹奈奈(みずき なな,Mizuki Nana)」的「奈奈」和「7」同音。除此之外,日本微軟還特別製作DSP版Windows 7 Ultimate,內容上只是多了Win 7娘的佈景主題,僅限在日本販賣,台灣買不到滴。

    台灣雖然沒有賣DSP版的Windows 7,但是有佈景主題在網路上流傳,點此下載佈景主題壓縮檔,解壓縮後應該會看到如上圖所示這四個檔案,其中「MadobeNanami」就是佈景主題安裝檔,不過現在打開,大概系統不太想鳥你,必須要把「非 Unicode 程式的語言」改成日文才會甩你。「非 Unicode 程式的語言」修改方式:
    1.打開控制台 → 時鐘、語言和區域
    2.地區及語言 → 變更日期、時間或數字格式
    3.變更系統地區設定 → 改成日文
    4.點選確定後系統會要求重開機,重開後點選「MadobeNanami」就會自動安裝。
     之後Windows 7就出現「窓辺ななみ」這個佈景主題囉。安裝完後請記得「非 Unicode 程式的語言」要改回繁體中文,以免造成更多麻煩,別說我沒提醒。喔,對了,想要影片右下角的窓辺ななみ請在此下載檔案,解壓縮後打開「SoraTan」就會出現,滑鼠點兩下會講話。
    部份資料轉自T客幫

    2010年6月20日 星期日

    為了Vim,我不要終端機有奇怪的底色!

    Ubuntu 10.04 LTS Lucid Lynx發佈後,有些改變很有心意,其中一個就是終端機(Terminal)的背景顏色預設成跟Ubuntu的風格一樣,而且半透明化,但是這個設定對於重度Vim使用者來說非常的不方便,Vim有syntax功能,syntax會在程式語言的資料型別(data type)、引數(argument)、數字(number)、字串(string)、字元(character)、脫序(escape sequence)、指述(statements)、註解(comment)標上顏色,對於寫程式和除錯(debug)非常方便(請想像一下當程式碼成千上萬行,要除錯的時候面對文字顏色都是白色或黑色是什麼感覺?),syntax會把控制流程指述(control statement)標上咖啡色,跟終端機預設的底色幾乎雷同,造成閱讀上的困難。

    為了造福有心維持古老終端機編寫程式碼的眾生們,以下簡單的方法就能改回之前純白的底色:
    取消半透明:
    1.編輯 → 設定組合偏好設定
    2.背景頁 → 點選「透明背景」 → 「漸變的背景或背景圖片」拉到最大值
    改底色:
    1.同上第一步
    2.顏色頁 → 取消「使用系統佈景主題指定的色彩」
    這樣顏色就會變回跟以前一樣啦。