網路
筆記 Internet note
本網頁以打造無障礙閱讀為目標,可以用任何瀏覽器來觀看本網頁
內容陸續增加中...
什麼是網際網路 (Internet)
網際網路指的是讓各種不同的網路連接起來,呈現出鬆散的階層式架構的網路聚合體(Meta-Network),或可說是網路的網路。
基本要素(nuts and bolts)
- 數以百萬的電腦主機與終端系統(hosts,end-systems)執行網路應用程式(network apps)
- 通訊連結(communication links)
- fiber,copper,radio,satellite
- transmission rate=bandwidth*?
- 路由器(routers)往前傳送的封包(forward packets)
- 通訊協定(protocols)定義了控制與接收的資料格式
- 通訊的基礎建設促成了分散式的應用程式
- web,email,games,e-commerce,database,voting,file sharing
- 通訊服務提供了應用程式
- connectionless
- connection-oriented
網際網路的推動組織與標準
網際網路的推動組織
網際網路架構委員會(Internet Activities Board ; IAB)負責提供整體網際網路的發展方向和 訂定技術標準建議,其下有兩個重要單位為:網際網路工程工作小組(Internet
Engineering Task Force ; IETF) 和網際網路研究專門工作組( Internet
Research Task Force ; IRTF)。IETF主要負責網際網路技術標準之制定,IRTF則主要負責努力於網際網路的未來 方向之研究。
網際網路的標準
RFC(Request For Comments) 是由IETF、IAB或是IRTF組織所制定,在網際網路上通用的協定之規範。最早的RFC是由ARPANet與Internet
Working Group所提出的,每一個WG(Working Group) 代表一個專案計劃,負責制定一群相關的建議書,現有的Internet網路大約包含了4000多個RFC。
雖然RFC稱之為建議書,表示並沒有強制接受的意思,但是事實上,在網際網路當中的RFC,與ITU所制定的通訊協定一樣,具有十分強大的約束能力,一般電腦硬體製造商與網路軟體開發業者,莫不遵從RFC所制定的規範來執行。例如RFC
1157定義了簡易網路管理協定SNMP,RFC 1213則制定了MIB-2的基礎格式。
網路類型
網路類型有不同的分類方式,如網路的規模大小,網路呈現的拓樸,或網路上節點的角色。
依網路規模分類
網路依規模大小(距離遠近)可分為:
- 區域網路(Local Area Network ; LAN):2公里以內
- 有線:乙太網路(Ethernet)最常見,使用IEEE802.3的標準,目前朝超高速乙太網路(Gigabit Ethernet)發展
- 無線:
- IEEE802.11(a/b/g/n):100公尺內,速率以54Mbps或108Mbps為主。
- BlueTooth:10公尺內,速率以1Mbps為主。
- WiMAX(IEEE802.16):長距離的無線寬頻存取,距離可達50公里,最大傳輸速率為75Mbps。
- 都會網路(Metropolitan Area Network ; MAN):使用IEEE802.6的標準,傳輸距離為2-100公里,常見的架構為非同步傳輸模式(Asynchronous
Transfer Mode ; ATM)與分散佇列雙匯流排(Distributed Queue Dual Bus ; DQDB)
- 非 對稱數位用戶線路(Asymmetric Digital
Subscriber Line ; ADSL):在現有的電話上加裝 ATU-R(ADSL數據機),利用ADSL技術,用戶可在使用電話的同時以上下傳速率不對稱的方式使用網路(上傳速率:64k-1Mbps,下傳速率:
256k-12Mbps)。
- 廣域網路(Wide Area Network ; WAN)
- 運作在實體層
- T-Carrier(Trunk Carrier, 主幹傳輸媒體):主要透過分時多工(Time Division Multiplexing,
TDM)技術,每64Kbps為一個傳輸通道,常見的有T1(1.544Mbps)、E1(2.048Mbps)、T3(44.736Mbps)
- SONET(Synchronous Optical NETwork, 同步光纖網路):將光纖速率劃分出數個等級,如OC-n(Optical
Carrier ; 光學媒體)
- 運作在實體層與資料鏈結層
- Frame Relay:改良自X.25協定,因軟硬體品質提升,故省略了偵測與修正錯誤,提升效能不少,連線兩端需建立虛擬連線(Virtual
Connection),底層可使用T-Carrier或SONET。
- ATM(Asynchronous Transfer Mode;非同步傳輸模式):因下列幾點特色,故相當引人注目
- ATM交換器可減少路徑選擇動作。
- ATM交換器可省略錯誤檢查和流量控制工作。
- 封包長度固定,只有53Bytes,5Bytes為 Header, 48 Byte為 Payload。
- 每個連線擁有專屬頻寬。
- 傳輸速率多樣化,可為不同類型的資料選擇不同的速率。
都會網路在台灣比較少人談,而區域網路和廣域網路的定義是相對的觀念,因為科技日新月異,定義的太清楚意義不大,就涵蓋的範圍而言, WAN>MAN>LAN。。
依網路拓樸分類
拓樸指的是網路上各節點連接後的實體外貌,常見的模式如下:
- 匯流排型(Bus Topology):以線段方式連接各點,訊號向二端傳遞,直到端末的終端電阻(Terminator)吸收為止,具廣播(Broadcast)特性,節
點故障不影響網路,但中間線路斷線則會造成整個網路癱瘓,網路使用量大時,會造成傳輸品質急遽惡化。
- 環型(Ring Topology):各節點以環的形式相連接,不會發生資料碰撞情形,只有點對點傳輸功能,不具廣播特性,常見架構有權杖環網路(Tokey
Ring Network)與光纖分散資料介面(Fiber Distributed Data Interface)等。
- 星型(Star Topology):所有網路節點都與中心節點(可以是Hub或Server)相連接,屬於中樞控制(Centralized Control)架構,節點與線路故障不會影響網路,但中心節點故障則會造成整個網路癱瘓。
- 樹型(Tree Topology):數個星型網路連接在一起,形成階層式的樹狀架構。
- 網型(Mesh Topology) :建置成本高,目的在提供更高的可靠度。
- 完全連結網路拓樸(Full Connected Mesh Topology)
- 部份連結網路拓樸(Partially Connected Mesh Topology)
依節點扮演的角色分類
所謂的角色,指的是網路上的節點是否提供資源分享,常見的模式如下:
- 集中式(Centralized):主機負責資源的提供,好處是管理容易,安全性高,壞處是主機負擔容易過重,造成瓶頸或停擺。
- 對等式(Peer-to-Peer):此架構可以動態彈性的定位角色,每台機器既是伺服端也是用戶端,對等端可彼此分享資源,沒 有主要伺服器,適合規模小的組織建構,好處是獨立性高,可避免集中式所造成的瓶頸,壞處是維運管理工作分散,效率與安全不易維護。
- 主從式(Client - Server):節點依提供資源與否,分為伺服端(Server)和用戶端(Client),一個網路中可同時擁有許多伺服端,通常藉由目錄伺服器
(Directory Server)登錄哪些服務是由哪些伺服器所提供,如此可方便管理。
- 伺服端(Server):伺服端是相對於客戶端較好的電腦設備,通常有較快的處理能力和較大的儲存容量。主要在提供服務 給用戶端使用。伺服器存放著網路作業系統(Network
Operating System, NOS)的軟體。
- 用戶端(Client):用戶端是相對於伺服端次等級的設備,通常藉由連線存取伺服器端的資料、資源。在客戶端則存放著 客戶端軟體。
- 混合式(hybrid):結合主從式與對等式的架構。
傳輸媒體(Transmission media)
網路節點間傳送訊息的媒體(Transmission Media),一般分為有線傳輸與無線傳輸(Wireless)兩大類
- 導向式媒體(guided media): 指的是實體的線材,例如,雙絞線,光纖,同軸電纜等,其線材其主要考慮的是以較低成本,提供較快的傳輸速率(光纖
> 同軸電纜 > 雙絞線),並減少其傳輸衰竭(Attenuation)。
- 非導向式媒體(unguided media):指的是非實體的線材,以電磁波透過天線(Antenna)發射,例如無線電波(Radio Frequency,
RF), 雷射(Laser), 紅外線(Infrared, IR), 微波 (Microwave), 衛星(Satellite)等,在佈線困難或有移動性(Mobility)需求時使用之。
雙絞線(Twisted Pair wires ; TP)
為降低訊號衰竭的緣故,採對絞方式抵銷兩條電線上所產生的磁場效應,降低電生磁、磁生電之類的電磁干擾 (Electromagnetic Interference)。
把UTP線切開,我們可以看到四對不同顏色的線,而且是成對的絞在一起,四對線的顏色分別為藍/白藍、橙/白橙、綠/白綠、,棕/白
棕,所謂白藍,
是指白底參雜少許藍色,其他顏色以此類推,一般而言橙/白橙,綠/白綠絞線次數每英吋約4次,藍/白藍,棕/白棕絞線次數每英吋約3次,因此橙/白橙,綠
/白綠有比較好的抗雜訊能力,因此網路壓線時,建議使用這兩對線。
雙絞線類型:
- 無遮蔽雙絞線(Unshielded Twisted Pair ; UTP):由於外層無金屬遮蔽物,所以防干擾能力較差,但是價格與安裝上具優勢,因此受到廣泛採用,現在一般人提到雙絞線大多泛指無遮蔽式
雙絞線,使用RJ-45作為接頭,具有8個腳位(Position)與8個金屬接頭(Contact),俗稱8P8C。
- 遮蔽雙絞線(Shielded Twisted Pair ; STP):以金屬遮蔽物包裹住雙絞線與一條接地用的細導線,多用於記號環網路架構。(理
論上導體內部不會有電磁場)
目前的纜線標準有好幾種,其中以EIA/TIA Category最為廣泛, EIA/TIA訂義UTP纜線標準EIA/TIA-568,分為5種Category:
- Category 1:速率1~2 Mbps,未絞線
- Category 2:速率4 Mbps,用於語音
- Category 3:速率16 Mbps,用於傳統電話線 , 10Mbps Ethernet及4Mbps Token Ring,每英吋絞3次
- Category 4:速率20 Mbps,用於10BaseT及16Mbps Token Ring
- Category 5:速率100 Mbps,用於100Mbps Ethernet,每英吋絞4次
- Category 5 增強型:速率200~300 Mbps,用於ATM網路(OC-3)
- Category 6:速率350~600 Mbps,用於Gigabit Ethernet
- Category 7:速率600 Mbps以上,用於10Gigabit Ethernet
EIA/TIA-568定義兩種接頭規格,EIA/TIA-568A及EIA/TIA-568B,EIA/TIA-568A已經淘汰, 目前大多使用 EIA/TIA-568B,它的腳位排列順序為橙白、橙、綠白、藍、藍白、綠、棕白、棕
10Base-T與100Base-T僅使用1、2與3、6兩對腳,集線器上的RJ-45插槽的腳位,則與網路卡定義相反即Pin1為RX+、Pin2為 RX-、Pin3為TX+
、Pin6為TX-,於是在連接集線器與網路卡等裝置時,必須使用一對一纜線,如此傳輸端連接到接收端,才能符合通訊原則。
EIA/TIA-568B腳位
| 1.橙白 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2.橙 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3.綠白 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4.藍 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5.藍白 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6.綠 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7.棕白 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8.棕 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
同軸電纜(Coaxial Cable)
以中心銅蕊外加絕緣體,再覆蓋銅網阻絕外部電子訊號干擾,外層以塑膠外皮包裹銅網以防止摩擦並防潮,傳送距離較雙絞線遠,用於遠距離類 比訊號傳輸時,需適時使用放大器(Amplifier),若使用長距離數位訊號傳輸時,需適時使用中繼器(Repeater)。
同軸電纜依特性阻抗分類
- 50歐姆:基頻(baseband) 傳輸,常用於傳送數位訊號
- 75歐姆:寬頻(broadband) 傳輸,常用於傳送類比訊號,也是有線電視(Community Antenna TV ; CATV)的標準規格
同軸電纜依中心直徑分類
- 粗同軸電纜:中心直徑為10mm
- RG-11:阻抗為50歐姆,單一線段長500公尺,每段最大節點數為100,訊號最遠可延長達2500公尺,常用於10Base5的乙太網路或長途電話。
- RG-59:阻抗為75歐姆,常用於電視機。
- 細同軸電纜:中心直徑為0.18英吋
- RG-58:阻抗為50歐姆,單一線段長185公尺,每段最大節點數為30,訊號最遠可延長達925公尺,單蕊,常用於10Base2的乙太網路,使用BNC接頭,T型接頭與終端電阻等接頭。
- RG-58A/U:阻抗為50歐姆,多蕊,常用於10Base2的乙太網路。
光纖(Optic Fiber)
光纖可避免傳統電線/纜的電磁干擾,傳輸速度快,安全性高,但架設不易,成本較高。主要利用光線行進時遇到不同介質,就會產生折射或反射的原理傳送訊號。
光纖使用高純度的玻璃纖維的核心(Core),外層包裹折射率較小的塑膠物質(Cladding),最外層則使用不透光的保護層 (Coating)覆蓋,避免外部光線干擾。光纖依其光線在玻璃纖維核心所行進的方式可分為
- 多模光纖(Multi Mode Fiber, MMF):光線以類似波浪狀的方式傳送(光線會折射),又可分為
- 多模梯階指數光纖(Step-index Multimode Fiber):核心密度固定,成本較低,但傳送距離短(2公里)且傳送速率低(140Mbps)。
- 多模平滑指數光纖(Graded-index Multimode Fiber):核心密度中央最高且逐漸往外遞減,傳送距離長。
- 單模光纖(Single Mode Fiber, SMF):光線不會折射,幾乎以直線傳送,傳送距離可達20~30公里以上, 成本較高。
紅外線(Infrared, IR)
1993年由IrDA協會(Infrared Data Association)制定,有3種傳輸模式
- 直接式紅外線連接(Direct-Beam IR, DB/IR)
- 散射式紅外線連接(Diffuse IR, DF/IR)
- 全向性紅外線連接(Omnidirectional IR, Omni/IR):利用一個散射式的紅外線基地台,連接直接式的Client端
缺點如下:
- 傳輸距離太短:1.5公尺以內
- 穿透率差
無線電(radio)
- 不局限特定方向,可利用大氣層作反射作用。
- 頻率愈高穿透力愈強,但傳送距離愈短。
- 頻率範圍窄,功率高,所以易遭其他電波干擾且容易洩密。
網路傳輸設備
數據機(Modem)
透過數據機的調變(Mdulation)與解調變(Demodulation),可透過電話線傳送數據資料。
網路卡(Network Interface Card, NIC)
- 每張網卡都有網路位址(MAC),共有6Bytes,前3個Bytes為廠商代號,後3個Bytes為廠商流水號。
- 電腦的網卡位址可透過 ipconfig /all 指令得知
中繼器(Repeater)
- 中繼器又稱為訊號放大器,可將訊號恢復原有的波型與強度,再轉送出去。
- 中繼器會擴大碰撞領域,因為沒有阻擋特定訊號的功能,甚至於碰撞擁塞訊號(Collision Jam Signal)也原封不動的轉送出去。
- 屬於OSI模型中實體層的設備。
集線器(Hub)
- 集線器通常有中繼器加強訊號的功能,故又稱為多Port中繼器,多用來集中連接線材做控管之用。
- 集線器並沒有紀錄每個Port的連接設備位址,且所收到的資料都會廣播到所有的Port,同一時間只能有一對Port傳輸資料,否則會產生碰撞,造成效率差,影響多工的進行。
- 屬於OSI模型中實體層的設備。
橋接器(Bridge)
- 橋接器具有分割碰撞領域的功能,可將傳輸負載重的網路做切割,避免訊號廣播到所有節點,影響整體效率。
- 橋接器有記憶體存放對應表,可判斷訊號是否該傳送到另一端的網路,此項對應的工作是由軟體進行,容易造成瓶頸。
- 廣播封包可通過橋接器。(留意訊號採廣播方式傳送與訊號為廣播封包的不同)
- 屬於OSI模型中資料鏈結層的設備。
交換器(Switch)
- 交換器同時具有集線器與橋接器的功能,故又稱之為多埠橋接器(Multi-port Bridge),且橋接功能是以硬體進行,速度較橋接器快。
- 交換器會記憶每一個Port連接的網路設備位址,因此可發揮全雙工傳輸的威力。
- 較高階的交換器可設定虛擬區域網路(Virtual Local Area Network, VLAN),以完全隔離流量或隔離廣播封包。
- 一般稱的交換器,若沒有特別說明,通常指的是第2層交換器,屬於OSI模型中資料鏈結層的設備。
路由器(Router)
- 路由器最主要的功能在於提供可路由(Routable)協定之封包的尋徑之用,並且隔離區域網路上的不可路由(Nonroutable)協定之封包,通常做為區域網路與廣域網路之間的橋樑。
- 路由工作由軟體執行,還可支援多種協定,串聯不同的網路系統,優先權(Quality of Service, QoS)控制,安全管理,與WAN連接等
- 屬於OSI模型中網路層的設備。
第3層交換器(Layer 3 Switch)
- 第3層交換器除了原有第2層交換器的功能之外,還能執行路由工作。
- 第3層交換器將路由工作改由硬體來執行,所以路由速度較路由器快,成本也較低廉,常與真正的路由器搭配使用在不需要連接網際網路的環境中。
- 屬於OSI模型中網路層的設備。
閘道器(Gateway)
- 具有比路由器更強的系統轉換能力,例如Proxy Server可用做應用層閘道器(Application Level Gateway)。
- 屬於OSI模型中網路層以上的設備。
OSI參考模型
國際標準組織(ISO, International Organization for Standardization)於1984年發表了OSI7層模型,學習OSI
7層架構的目的在於將它當作一把尺,可用來丈量所有網路上使用的協定。
- 實體層(Physical Layer)
- 資料鏈結層(Data Link Layer)
- 網路層(Network Layer)
- 傳輸層(Transport Layer)
- 會議層(Session Layer)
- 表達層(Presentation Layer)
- 應用層(Application Layer)
實體層(Physical Layer)
- 傳輸媒體(Media):考慮衰減少,變形少,傳輸資料量大,成本低
- 導向式媒體(guided media): 指的是實體的線材
- 非導向式媒體(unguided media):指的是非實體的線材
- 訊號編碼(Signal Coding):定義訊號的表現方式與訊號承載資料的方式
- 基頻編碼:直接控制訊號狀態
- 寬頻調變;藉由改變載波(Carrier)的振幅, 頻率, 相位等三種物理特性來傳遞資料
資料鏈結層(Data Link Layer)
媒體存取控制子層(Media Access Control, MAC)
- 定址:藉由網路位址(MAC)
- 框架化:即上下層的資料封裝(Encapsulation)動作
- 媒體存取方式:載波偵測多重存取與碰撞檢查(CSMA/CD)
邏輯連結控制子層(Logical Link Control, LLC)
- 流量控制:避免處理速度趕不上傳送速度,必須進行同步化(Synchronization)
- 錯誤修正:常用CRC,若無法驗證則捨棄
網路層(Network Layer)
當資料從一個網路媒體傳送到另一種網路媒體時,網路層會依據不同的媒體差異,進行資料的分割(Fragmentation)與重組(Reassembly)動作
- 定址:IP, Subnet Mask
- 尋徑:根據路由演算法(Rorting Algorithm)進行路徑的尋找
傳輸層(Transport Layer)
會議層(Session Layer)
- 建立連結
- 維護連結 (同步, Keep alive)
- 資料交換管理 (單雙工)
表達層(Presentation Layer)
應用層(Application Layer)
網路整體架構
從網路的整體架構來觀察,有下列幾種組成
- 網路邊緣(network edge)
- 網路核心(network core)
- 存取網路實體媒界(access networks,physical media)
網路邊緣(network edge)
類型
- end systems(hosts) : 應用程式與主機,例如:Web,Email
- client/server model : 例如:web browser/server; email client/server
- peer-peer model : 例如:Guntella, KaZaA
服務
TCP (Transmission Control Protocol) 和 UDP (User Datagram Protocol) 都是屬於 OSI
模式七層結構中的傳輸層 (Transport layer) ,傳輸層是負責提供兩個通訊軟體之間以約定的通訊品質 (level of reliability)
來傳送資料,也就是提供 end-to-end 的服務。
- 連結導向(connection-oriented) 的通訊協定 : TCP(Transmission Control Protocol)
- RFC 793
- reliable,in-order byte-stream data transfer
- stream-oriented
提供連續的資料 (stream) 給通訊軟體
- full-duplex
stream 是雙向的 (bi-direction)
- connection-oriented
在兩個通訊實體(client 及 server)間開始傳送資料前,專一的(邏輯)通訊管道(聯結) 必須先建立.
- application-layer addressing
雙方通訊軟體要能定址到對方
- in-sequence delivery
自動重送沒有到達的資料分段,自動刪除重複的資料分段,保證接收到的資料按照正確的順序排列
- user-data integrity
驗證收到的資料,保證資料在傳輸過程物沒有損壞
- graceful release
保證存在 buffer 中的資料在被刪除前,都已經成功的傳送完畢
- 流量控制(flow control)
使發送者傳輸資料的速度低於接收者接收資料的速度
- 擁塞控制(congestion control)
senders "slow down sending rate" when network congested
- 應用
HTTP(web),FTP(file transfer),Telnet(remote login),SMTP(email)
- 無連結傳送(connectionless) 的通訊協定 : UDP(User Datagram Protocol)
- RFC 768
- unreliable data transfer
- datagram-oriented
資料被封包成一個個的 packet (datagram),在網路上傳輸時,每個 datagram 被視為彼此獨立
- connectionless
在兩個通訊實體間, 並沒有一專一的邏輯管道,所有要傳送的資料可透過不同的邏輯管道傳輸,可能會有datagram 遺失、延遲、重複、或順序錯誤等問題。
- application-layer addressing
雙方通訊軟體要能定址到對方
- user-data integrity
驗證收到的資料,保證資料在傳輸過程物沒有損壞
- 無流量控制,無擁塞控制,無專用通道
- 應用
streaming media, teleconferencing, DNS, internet telephone
網路核心(network core)
- 類型
- 資料的傳送方式
- 線路交換(Circuit Switching)
- 連線時資源專屬(dedicated),故效率與頻寬保證
- 技術上是以電路方式進行傳輸,系統保留一條點對點傳輸的頻寬,以64Kbps速率傳送語音,當電話接通,這段頻 寬便完全佔線,直到兩端通完電話為止,這樣的技術是以全雙工(full
duplex) 的傳輸方式,也稱為 connection oriented。
- 連結頻寬有二種方式分配
- 分頻多工 ( FDM;Frequency Division Multiplexing )
- 分時多工 ( TDM;Time Division Multiplexing )
- 多個使用者在不同時間使用相同的頻寬來傳送訊號
- 在相鄰時槽間加上一小段的保護時間 ( Guard Time ),可防止相鄰時槽間訊號傳輸的干擾
- 封包交換(Packet switching)
- 連線時資源共享(Shared),簡單,無須做連線前建立的動作
- 資料在傳遞之前,先將要傳送的資料切割為數個大小相等的區塊(Message Segmenting),加上某些檔頭資訊之後,透過不特定的路徑(path
selection)在網路中傳遞。
- 存儲轉發(Store-and- Forward)的特性:存儲轉發是一個動態分配線路的方式。它不事先建立線路,當發送端有資料要傳送時,先交給交換設備儲存
起來,等待適當的時機,交換設備再選擇一條合適的空閒輸出線將訊息轉發出去。
- 統計式多工(Statistical Multiplexing)的特性
- 分封交換技術依其轉發(forwarding)的方式不同,又可以分為以下兩類:
- 虛擬線路(Virtual Circuit)
訊息在傳送前先建立一條邏輯的虛擬線路,由路由器負責維護每一連線的狀態,在關閉連接時撤消。兩主機之間一旦建立起虛擬線路,封包即可遵循既定的交換設備
路徑進行傳輸,不必給出明顯的接收端位址,不必為各封包單獨尋找路徑,封包便會有次序地到達目的地,並不需進行重組。但虛擬線路在內部需具備輸出入緩衝等
機制來支持其運作及可靠性。目前絕大多數的電腦網路是採用此模式來進行資料的傳輸,如X.25、訊框傳送(Frame Relay)、非同步傳輸模式(ATM)等皆是。
Virtual Circuit提供應用程式的服務一定是Connect-Oriented的
- 資料報(Datagram)
此類模式沒有建立連接的過程,而所傳輸的封包稱為資料報。每個資料報均攜帶接收端位址,傳輸時各自單獨尋找路徑,並不需要內部機制來支援。
Datagram可提供應用程式 Connectionless(UDP) 與 Connect-Oriented(TCP) 二種服務
- 線路交換與封包交換的比較
- 封包交換可承受更多人使用網路,大約是35:10
- 封包交換的頻寬資源共享
- 封包交換在網路擁擠時會造成封包遺失,故在通訊協定上需要可信賴的資料傳輸與流量壅塞控制的機制
- 封包交換為何提供類似線路交換的動作
- 對聲音或影像等應用程式需做頻寬保證
- 仍有未能解決的問題
存取網路與實體媒介(access networks,physical media)
存取網路的類型(end system to edge router?)
家用網路:點對點傳輸(point to point access)
- 撥接式數據機(Dial-up via modem)
使用傳統電話線路,最高不能超過56K,電話與上網不能同時。
- 非對稱數位回路(ADSL;asymmetric digital subscriber loop)
使用傳統電話線路,上傳最高可達1 Mbps,下傳最高可達8 Mbps
- Cable Modem
- 光纖同軸混合有線電視網路(HFC ; Hybrid Fiber Coaxial)
非對稱:上傳最高可達10Mbps,下傳最高可達1 Mbps
機構用網路:區域網路(local area networks)
- 乙太網路(Ethernet):10 Mbs, 100Mbps, Gigabit Ethernet
- 線材可能使用雙絞線或同軸電纜
無線網路(Wireless access networks)
- 無線區域網路(wireless LANs)
- 通訊協定是IEEE 802.11b也稱為wireless Ethernet或Wi-Fi
- IEEE 802.11b提供了11Mbps的頻寬分享
- 存取需要基地台(base station)又稱無線網路存取點(wireless access point)
- 廣域無線存取(wider-area wireless access)
- 廣域無線存取的基地台一般由通訊業者提供服務
- 相關的標準
- WAP(wireless access protocol)
- GPRS(General Packet Radio Service)
- i-Mode
網際網路架構與服務提供者(Internet structure and ISPs)
網際網路架構:網路的網路 (Internet structure:network of networks)
IPv4
- ip共32個bit, 分成NetID 與 HostID。
- Network Mask即所謂的網路遮罩。網路遮罩的最主要用途在於子網路(Subnetwork)的切割,並使電腦在彼此建立通訊管道之前,可先行判斷通訊對象是否可
直接連通(Directly Reachable),再決定是否須轉送服務。
- ip+ NetMask配合決定網段。
- 每個網段的最前面ip作為網段辨識用, 最後面的ip作為網段廣播用。
- 傳統網段的切割方式以8bit為切割, 因此只有A-C網段。
- 因傳統網段的切割方式會造成ip浪費, 故發展以HostID給NetID以增加NetMask的方法稱為CIDR或SubNet。
- 區域網路中,超過一個子網路存在時,即需使用通訊閘道(Gateway)加以區隔。
- Gateway即所謂的通訊閘道(or router , according to OSI Definition)。通訊閘道一般用於區隔不同的子網路,其主要功能有:
- 阻擋同一子網路間之封包向外傳送(Filtering)。
- 轉送須跨越不同子網路間之網路封包(Redirecting)。
- 網路路徑之偵測及選擇(Routing)。
- 路徑選擇(Routing)可分為靜態路由(Static Routing)及動態路由(Dynamic Routing)兩種,一般單一網路卡之電腦設備,採靜態路由者居多。
ip checksum的計算
首先,讓我們看看IP封包的格式是怎樣的,和其組成部份,以及各部份的長度如何:
| Version
(4) |
Internet
Header Length (4) |
Type
of Service (8) |
Total
Length (16) |
| Identification
(16) |
Flags
(3) |
Fragment
Offset (13) |
| Time
To Live (8) |
Protocol
(8) |
Header
checksum (16) |
| Source Address
(32) |
| Destination
Address (32) |
| Options (Variable) |
Padding (0-24) |
Data
.... |
有一 ip 封包檔頭資料為
45 // IP version (IPv4)
00 // Differentiated Services Code Point (i have no idea
what this octet is for)
00 28 // Total Length (of the packet?)
c5 38 // ID (not really sure what this octet's for)
40 00 // Fragmentation offset
67 // Time To Live (in network hops)
06 // Protocol (TCP)
a1 a1 // IP Header Checksum (two's compliment)
d5 36 14 83 // Source IP
3d da 85 62 // Destination IP
將上述資料以2byte為一組(16 bits)予以加總
4500 + 0028 + c538 + 4000 + 6706 + 0000 + d536 + 1483 + 3dda +
8562
= 35e5b
進位的LSB必須再加回來
3 + 5e5b = 5e5e
對結果求補數,即為checksum值
~5e5e = a1a1
IPv6
隨著全球網際網路的快速成長與使用人口不斷的增加,網際網路正遭逢了兩個嚴重的問題。
第一個問題是可用的網際網路 位址 (IP address)
終將不敷使用。因為原來的網路位址設計方法並不能提供給所有的全球網際網路使用者足夠的定址空間,特別是 B
類的網路位址並無法涵蓋所有網際網路上的中型網路。第二個問題是全球網際網路中路由器裡的繞路表將變得十分龐大,這會使得路由器間交換資訊時的運算資源增
加及維護繞路資訊的成本大幅提昇。
為了解決這些問題, Y. Rekhter 提出了 Classless Inter-Domain Routing (CIDR)
和 Classful Routing 的短期解決方案,另外 R. Hinden 與 S. Deering 提出了 IP Version 6 Addressing
Architecture 的長期解決方案。
IP Version 6 Addressing Architecture (定址架構)
簡介
IPv6協定的定址架構包括了不同的基本定址格式 (unicast 、 anycast 、 multicast)。
IPv6定址
IPv6是一個長度為 128 位元的識別名稱,其對應到一個或一組介面,其位址型態有以下三種:
- unicasst :是一個單一介面的識別,傳送到一個 unicast 位址的封包是被送到這個位址所識別的介面。
- anycast :是一組介面的識別 ( 通常屬於不同的 node) ,傳送到一個 anycast 位址的封包是被送到這個位址所識別的最近介面。
( 由路由協定來決定其距離 ) 。
- multicast :是一組介面的識別 ( 通常屬於不同的 node) ,傳送到一個 multicast 的位址的封包是被送到這個位址所示別的所有介面。
IPv6 中以 multicast 取代了 broadcast 。
UDP
udp checksum的計算
提示:
1.UDP的Pseudo Header會用到 IP 封包中的 Sorurce Address, Destination Address, 與 Protocol。
2.UDP Length會在Pseudo Header與UDP Header中各出現1次,也就是說會被計算2次。
3.若Data的長度若非Word(2 Bytes)的倍數,則必須在最後面補一個 byte的padding「0」。
假設有一封包資料如下
// ------- BEGIN Ethernet HEADER ----------------------------
00 09 5b 4f 64 72 // Destination HW address
00 07 95 e7 79 2d // Src HW address
08 00 // Type (not really sure what this octet's for)
// ------- BEGIN IP HEADER ----------------------------
45 // IP version (IPv4)
00 // Differentiated Services Code Point (i have no idea
what this octet is for)
00 38 // Total Length (of the packet?)
5d 02 // ID (not really sure what this octet's for)
00 00 // Fragmentation offset
80 // Time To Live (in network hops)
11 // Protocol (UDP)
33 d6 // IP Header Checksum
c0 a8 00 02 // Source IP
c0 f6 28 3c // Destination IP
// ------- BEGIN UDP HEADER ---------------------------
6d 38 // Source Port
6d 2e // Destination Port
00 24 // Length (of the UDP Packet?)
29 b5 // UDP Checksum
ff ff ff ff // Marker (part of the packet data, no idea
what it's for)
67 65 74 73 65 72 76 65 72 73 20 38 32 20 66 75 6c 6c 20 65 6d 70 74 79 //
Packet Data
將上述資料以2byte為一組(16 bits)予以加總(Pseudo Header, UDP Header, UDP Data)
c0a8 + 0002 + c0f6 + 283c + // Source IP,
Dest IP
0011 + // Protocol
0024 + // UDP length
6d38 + 6d2e + // Source Port, Dest Port
0024 + // UDP length
0000 + // empty checksum
ffff + ffff + 6765 + 7473 + 6572 + 7665 + 7273 + 2038 + 3220 + 6675 + 6c6c +
2065 + 6d70 + 7479 // Data
= 8d642
進位的LSB必須再加回來
8 + d642 = d64a
對結果求補數,即為checksum值
~d64a = 29b5
Routing(路由)
IP路由的依據主要是看目的位址,如果目的地位址屬於處理封包之設備目前所在的網路範圍之內(與遮罩作and),那麼就直接從 ARP 表格中尋找目的地位址的
IP 所對應的實體位址,如果沒有的話就用 ARP協定來查詢。但如果目的位址在其他網路的話,那麼就在 ARP 表格中尋找 路由器的實體位址,如果沒有則用
ARP 協定來查詢。
傳送的封包其 IP Address永遠不變,但 MAC Address 卻隨著所經的實體網路而有所不同。不管封包經過多少個網路,在傳輸中歸根究底要靠實體網路達成,而實體網路的傳送依據
是實體位址,只要 ARP 能夠找出路由器的實體位址,就能順利將封包傳給它。
在每一台機器上面,都必需存在一份各自獨立的路由表格 (Routing Table),記錄著本機的路由資訊。在 Linux 主機上面可用 route 或
netstat -r 這2個命令來查看當前的路由狀況。
- Router(路由器):轉送網路封包的網路設備,僅對封包進行將來源MAC位址更換為自己(Router)的MAC位址的變 更。
- Routing Table(路由表) :Router決定由哪一網路介面轉送封包時的查詢表格 ,而建立路由表 有二種方式
- 靜態(Static):由網管人員手動加入路由規則。
- 動態(Dynamic):由路由器之間透過路由協定自動更新。
- Routing Protocol(路由協定):定義了Router與Router之間如何交換Route資訊。
- AS(Autonomous System,自主系統 ):以區域為單位切割而成的較小系統,同一個AS 跑的是相同的Routing Protocol。
- ASBR(Autonomous System Boundary Router) :連接不同AS的中介Router。
- IGP(Interior Gateway Protocol) :AS內部跑的Routing Protocol,常見的有RIP, OSPF, IGRP。
- RIP(Routing Information Protocol):
- 採用距離向量(Distance Vector)的演算法,而所謂的距離指的是Router經過的個數(Hop)為單位,由於不以實際的連線速率選擇路徑,因此可能造成效率低落。
- RIP是一UDP-based的Protocol,使用port編號590。
- 允許傳輸的距離不得超過15個。
- 每30秒做一次Routing資訊廣播。
- 遇有網路不通的情況,會有收斂過慢的問題,故最好搭配Split Horizon解決此問題 (發出Triggered Update的RIP
Packet)。
- OSPF(Open Shortest Path First)
- Router儲存所屬AS的Routing Topology database(Link State Database),且依據Routing
traffic,週期性的異動Shortest Path Tree 。
- 採用Dijkstra's Algorithm,以Cost來定義最佳路徑,以Metric(Metric=108/
每秒傳輸頻寬)來衡量,頻寬愈大的線路其Metric愈小,可視為距離愈近。
- Router藉由散播Hello Packet(LSA Packet) ,可得到鄰近Router的Link State資訊。
- OSPF採用階層式架構以避免不必要的LSA Packet散播。
- EGP(Exterior Gateway Protocol) :連接不同AS的Routing Protocol,常見的有Border Gateway
Protocol(BGP)。
- BGP(Border Gateway Protocol,邊界閘道通訊協定)
- BGP用於在AS間傳播Routing資訊,以建構AS的拓樸圖。
- BGP是一TCP-based的Protocol,使用port編號179。
- GNU Zebra:一套以TCP/IP為基礎來管理Routing Protocol的免費軟體。
NAT(Network Address Translation)
- NAT會針對IP封包的來源端IP、目的地IP、來源Port、目的Port、checksum做改寫的動作,但並沒有針對IP 封包的 Payload內容做改變,因此若於NAT內部架設Server或UDP
Based的應用程式則需設定Port轉送( Port Forward )或Application Level Gateway的機制。
- NAT分為三類 ,先定義 m : 原來的IP(Private IP) , n : 轉換後的IP (Public IP)
- Static NAT:m = n 時
- Dynamic NAT:m >= n 時, 因為透過NAT從動態表格中取得尚未分配出去的IP位址,因此每次與外部連通的IP可能都不一樣,形成一種天然的防火牆。
- IP Masquerading(NAPT,IP偽裝): n=1 時 ,但並不是只有一部電腦可以連通外界網路 ,而是配合TCP ports的數量來決定
- NAT的應用
- Virtual Servers(Load Balancing):指外部連接本地端伺服器時,利用NAT Server做平衡負載,後端連結多部真正處理的Server,若結合DNS更可達成所謂的Multi-homing的運作機制。
- 多線廣域網路負載平衡:內部網路連外時,透過NAT Server選擇適當的ISP線路傳送封包。
- NAT的問題
- 在 NAT後端的 FTP Client 連線(若是FTP Server在NAT後端就更複雜了)
參考網址
DHCP(Dynamic Host Configuration Protocol)
- Client 可藉由網路的廣播位址向 DHCP Server 取得可用的 IP Address、Network Mask、Default Gateway、DNS等訊息
,因此 DHCP Server 必須與Client處於相同的Broadcast Domain。
- DHCP的流程
- Discover
Client 端電腦在開機的時候、第一次設定為DHCP Client的時候、重新啟動網路卡的時候、或者是重新更新租約(IP Renewal)的時候(Linux為12小時、WinServer
2003為8天),會自動的發出 DHCP 的尋找訊息(UDP port 67)給網域內的每部電腦, 該訊息除了網路卡的硬體位址(Source
MAC Address)與電腦名稱無須改變直接送出外,還需要將該訊息的Source IP設定為 0.0.0.0 ,而Destination
IP則設定為 255.255.255.255,Destination MAC Address設定為FF:FF:FF:FF:FF:FF 。這個時候,網域內的其他沒有提供
DHCP 服務的電腦,收到這個封包之後會自動的將該封包丟棄而不回應。
- Offer
DHCP 主機(本身要有靜態 IP)收到這個 Client 的 DHCP 需求時,首先會針對該次需求的訊息所攜帶的 MAC address與本身資料庫的領域(scope)設定值去比對,如果有針對該
MAC 做靜態(static) IP (每次都給予一個固定的 IP )的提供時,則提供 Client 端相關的固定 IP 與相關的網路參數訊息(IP
Address、Network Mask、Default Gateway、DNS)(UDP port 68);而如果該訊息的 MAC 並不在設定之內時,則會選取目前網域內沒有使用的
IP (這個 IP 與設定值有關) 來發放給 client 端使用!(發放給 Client 端的訊息當中,會附帶一個IP Address Lease
Time『租約期限』的選項),而此回應訊息的Destination IP為 255.255.255.255( 因為Client端尚未取得IP
),Destination MAC Address為FF:FF:FF:FF:FF:FF( 因為Client端尚未取得IP,故ARP封包中缺乏IP與MAC的對應
) 。
若 Client端未在30∼60秒收到DHCP Offer訊息,則作業系統可採取APIPA(Automatic Private IP Address;
自動私有位址)的機制( APIPA 藉由發送arp,詢問在 169.254.0.0-169.254.255.255 中隨機的一個位址來找到一
個可以用的 IP。如果沒有收到就是可以用,接著就會把網路介面指定這個 IP)( Internet Assigned Numbers Authority
(IANA) 已經保留 169.254.0.0 到 169.254.255.255 的位址,做為「自動私有 IP 位址」。 因此,APIPA
所提供的位址,保證不會與可路由傳送的位址發生衝突。),隨機選定IP賦予 Client端,來確保在沒有DHCP Server存在時也能與區域網路上的其他電腦互相溝通,但
Client端仍會每3分鐘發一次DHCP Discover 廣播訊息。
- Request
若有多台DHCP Server發送提供的訊息,預設會接受最先收到的DHCP Offer封包,當 Client 端接受了提供的訊息之後,首先會以
ARP 封包在網域內發出訊息,以確定來自 DHCP 主機發放的 IP 並沒有被佔用!如果該 IP 已經被佔用了,那麼 Client 對於這次的
DHCP 資訊將不接受(DHCP Decline),而將再次向網域內發出 DHCP 的尋找廣播(DHCP Discover);若該 IP 沒有被佔用,則
Client 端會以廣播的方式送出DHCP Request封包(UDP port 67),除了向 選定的DHCP 主機申請租用之外,也讓其它DHCP
主機知道,不需保留所提供的IP了。(此訊息的檔頭與Discover一樣)。
- ACK
若DHCP Server 允許了DHCP Client的請求,會將該資訊記錄下來並發出確定(DHCP Ack)的封包(UDP port 68)(此訊息的檔頭與Offer一樣),client
端將 DHCP 主機所給的網路的參數寫入 client 端的網路設定當中 。若DHCP Server不能同意請求,則會發出DHCP Nack封包,
Client 端收到後,便重新執行整個流程。
- 更新租約
- 依據RFC 2131規定,當租用時間超過租約期限的50%(1/2)及87.5%(7/8),Client 端必須發出DHCP Request封包(Unicast發送),向DHCP
Server 要求重新更新租約(ipconfig /renew)。
- 撤銷租約
- Client端重新啟動,關機時均會送出DHCP Release封包撤銷租約(ipconfig /release)。
參考網址:http://linux.vbird.org/linux_server/0340dhcp.php
DNS(Domain Name System)
- DNS的主要功能:將電腦主機的名稱轉譯成 IP。
- DNS 利用類似樹狀目錄的型態,將主機名稱的管理分配在不同層級的 DNS 主機當中,經由分層管理,所以每一部主機的記憶的資訊就不會很多,而且異動上面也相當的容易修改,
也就是說每一部 DNS 主機都『 僅管理下一層 DNS 主機的名稱轉譯 』而已,這也是為何名稱是System而非Server的原因。
- Domain(網域)
- Domain可分2大類:
- 正解網域(forward domain)
- 國家網域(ccTLD , Country-code Top-Level Domain)
- 分類網域(gTLD , generic Top-Level Domain)
- 反解網域(reverse domain)又稱為In-Addr Arpa網域
- Public Zone:提供DNS反查之用
- Special Zone
- Private Zone
- 最上層的domain server稱為 Root
- FQDN(Fully Qualified Domain Name,完整領域名稱):在名稱的最後要加上一個點「. 」
- DNS的查詢
- 以UDP Packet 格式(port 53)傳送DNS Query給Name Server
- DNS查詢有2種
- 正查:由Domain Name查詢IP Address
- 反查:由IP Address 查詢Domain Name (利用In-Addr Arpa網域)
- DNS查詢的步驟
- Resolver查詢本身的Cache,若有結果則回應給呼叫的AP。
- Resolver的Cache無資料則轉而向Primary DNS與Secondary DNS查資料。
- DNS 查詢本身的Cache,若有結果則回應給呼叫的Resolver。
- DNS的Cache無資料則視DNS Query的形式來繼續接下來的查詢
- Recursive Query:繼續向上層授權伺服器(Authorize)查詢,在查到結果後將結果回應給呼叫的Resolver。
- Iterative Query:回傳一串DNS Server的名單給呼叫的Resolver(或DNS),由Resolver(或DNS)自己再向名單中的DNS
Server查詢。
- 只有在直接被Resolver查詢的DNS Server才會支援Recursive查詢,也才會儲存查詢位址的Cache,諸如Root Server與較頂層的Server
僅提供Iterative的查詢。
- 一般ISP給予用戶的DNS Server大都提供Recursive查詢,以減少Client查詢的負擔。
- DNS的應用
- 可應用DNS來做負載平衡(Load Balanced)。
- 提供動態網域名稱(DDNS,Dynamic DNS)。
參考網址:http://linux.vbird.org/linux_server/0350dns.php
網路管理
1989年發表的ISO 7498.4將網路管理規劃為5個項目
- 組態管理(Configuration Management):網路裝置的組態參數等。
- 故障管理(Fault Management):1.排定優先順序 2.收集資訊 3.設想可能原因 4.排除問題 5. 測試結果
- 效能管理(Performance Management):1.回應時間(Response Time) 2.正確率(Accuracy) 3.流量(
Throughput) 4.使用率(Utilization)
- 安全管理(Security Management):1.帳號與權限控管 2.稽核(Auditing)
- 帳務管理(Accounting Management):1.資產管理(Asset Management) 2.成本控制(Cost Control)
3.使用計費(Charge-back)
網路管理相關的通訊協定
- SNMP(Simple Netowrk Management Protocol)簡易網路管理協定,目前有v1,v2,v3版本
- RMON(Remote Network Monitoring)遠端監視
網路管理的元件
- 管理程式(SNMP Manager):網管人員的SNMP網管程式
- 代理程式(SNMP Agent):受管理的網路設備的SNMP代理程式
- 網路管理通訊協定(Network Management Protocol):目前有SNMP, RMON
- 管理訊息資料庫(Management Information Base, MIB):受管理的網路設備上的監控狀態資料庫
SNMP之所以稱之為簡單(Simple),是因為SNMPv1只用了5道指令,所有的 SNMP 作業全部都是在 User Datagram Protocol
(UDP) 上面進行。SNMP管理程式送出Reguest至代理程式的 UDP 161 埠,SNMP 代理程式則利用 UDP 161 埠Response給SNMP管理程式,另外利用UDP
162 埠送出SNMP Trap。(SNMP無法穿越NAT)
- GetRequest
- GetNextRequest
- GetResponse
- SetRequest
- Trap(警示)
SNMP的運作
- 在網管人員的電腦中安裝SNMP管理程式,如CA-UniCenter, HP-OpenView, SolarWinds,...。
- 由SNMP管理程式以輪循(Polling)的方式詢問SNMP代理程式其MIB中的狀態資料。
- SNMP代理程式負責接收SNMP管理程式的指令,並回報網路設備現有的狀況,當發生網路設備異常時,會主動發出Trap訊息告 知SNMP管理程式。
SNMP的缺點
- SNMP沒有規範MIB該有哪些受監控的項目,導致MIB規格不相容(後來在RFC1213中定義了MIB II才規定了某些受監控的項目)。
- SNMP所蒐集的MIB資訊偏重在受管理的網路設備本身的運作狀態或輪詢當時的網路狀態(點),而無法回報出實際的網路狀態 (面)。
管理訊息資料庫 (MIB)
SNMP被設計成適用於各類型的網絡設備,故它所管理的資訊亦隨著設備的不同而千差萬別,每種網絡或設備對其資料的表達方式亦存在差異,為將這些資訊納入 同一套管
理系統,就須採用一套抽象的語法來描述所有類型的資訊,為此,SNMP 定義了網管資訊庫 (MIB) ,階層性描述所有受管理資訊的屬性,並稱這些受管理的資訊為
SNMP 物件(object)。MIB 可分為標準(Standard) MIB 及 私人 (Private) MIB 兩大類,標準 MIB適用於所有網絡設備,而
Private MIB 則由廠家自行定義,以反映設備的獨特變量值,合法的Private MIB 需要向有關機構申請,務求令每一個Private MIB都是世上獨一無二的。
通常包含了網路設備的網路設定,運作狀態,網路介面,路由表,IP封包之傳送/接收/遺失, ....。
網路安全
資訊安全的CAIN原則
所謂的CAIN原則(CAIN principle),是與資訊安全關係密切的四項基本概念:機密、存取、完整、不可否認。CAIN四項原則本身並非技術,反而需要相關的技術來維護這四
項原則。如果能瞭解這四項重要的概念,對資訊安全將能有事半功倍的效果。
- 隱密性(Confidentiality):資料在網路上傳遞時的加密,如對稱與非對稱金鑰加密。
- 存取性(Access)
- 可用性(Availability):獲得授權的使用者在需要的時候,就能使用資訊。
- 身份驗證(Authentication):確認要使用網路資源的使用者身份,如設定密碼,晶片卡,生物特徵識別。
- 完整性(Integrity):透過檢查碼確認收到的資料未被竄改,如MD5。
- 不可否認性(Nonrepudiation):使用者無法否認執行一個操作或初始一個交易。
密碼學(Cryptography)
密碼傳統上都與軍事,外交或情報上的應用有關,當日常生活電子化(電子商務,電子公文,電子投票...)之後,密碼技術便愈來愈重要 了。
- 資料在加密(Encryption)處理前稱之為明文(Plaintext)
- 經過加密處理後稱之為密文(Ciphertext)
- 加解密資料的方法稱之為演算法(Algorithm),相當於一把鎖
- 使用加解密演算法時所需的一組變數稱之為密鑰(secret key)
演算法本身沒有秘密,關鍵在於密鑰。
基本的加解密方式
- 替代(substitution):以對照表為演算法,如凱薩移動密碼(caesar shift cipher)。
- 調換(transpostion):以位置調動順序為演算法,如明文"pleasetransferon", 以"74512836"的順序重新調換位置,得到"astlerpefeonsnar"。
- 數學函數(mathematical function):利用1對1映設(one-to-one mapping)特性的數學函數作為演算法,如 f(x)=ASCII(x)+2。
- 混和(combined):混用上述的方法。
複雜的加解密方式
現代的密碼技術最重要的特點為,無法由演算法將密文還原為明文,這類演算法是一種無法還原的編碼函數,是現代密碼學的基石
- 單向雜湊函數(one-way hash function)
- 對稱金鑰加解密函數(Symmetric Encryption)或稱私有金鑰加解密函數(Private Key Encryption)
- 非對稱金鑰加解密函數(Asymmetric encryption)或稱公開金鑰加解密函數(Public Key Encryption)
單向雜湊函數(one-way hash function)
- 單向雜湊函數,可產生雜湊值(hash value)或稱為訊息摘要(message digest)。
- 輸入雜湊函數的資料沒有長度的限制,但產生的雜湊值長度固定。
- 雜湊函數的運算不會太複雜, 亦即電腦在執行時不會耗費太多 CPU 資源。
- 雜湊函數具有單向特性, 因此實務上無法利用雜湊值來求出輸入的原始資料。
- 即使輸入的資料僅有一個位元不同, 產生的雜湊值卻會有很大的差異。
- 單向雜湊函數本身無須密鑰參與,但常用來產生對稱金鑰加解密函數所需之密鑰。
- 常見的雜湊函數有 MD5(Message Digest algorithm)和SHA-1(Secure
Hash Algorithm) 。
對稱金鑰加解密函數(Symmetric Encryption)
資料傳送端以一把隨機產生的密鑰,搭配加密的演算法,針對明文資料運算後,產生加密的密文資料。資料接收端收到密文資料後,必須使用資 料傳送端加密時所使用的密鑰,針對密文資料解密,還原成明文資料。
- 利用相同的密鑰與加解密函數, 以執行加密與解密的動作,不同的演算法其密鑰的長度也不一樣。
- 在對稱式加解密系統中, 若沒有密鑰, 即使知曉加解密函數, 依舊無法依據『密文』推算出『明文』。這種缺乏密鑰便不可還原的特性,也就成了對稱式加解密系統的安全屏障。
- 對稱式加解密系統最主要的功能當然是資料加密, 除此之外也可應用在驗證身份上。
- 主要的問題在於密鑰的傳遞與密鑰的數量(n*n-1)/2。(n 為使用者的數量)
- 常見的對稱式加密函數有 DES, triple-DES, IDEA, AES等。
非對稱金鑰加解密函數(Asymmetric encryption)
- 以公鑰(public key)加密而成的密文, 只有用私鑰(private key)才能解譯出明文;以私鑰加密而成的密文, 只有用公鑰才能解譯出明文。
- 使用者先自行產生一對金鑰:一隻公鑰, 一隻私鑰。將公鑰公佈給眾人知道, 並將自己的私鑰藏好。
- 儘管公鑰公開給眾人知情, 但有了公鑰並沒有辦法推算出私鑰來。
- 若使用者想傳送文件, 只需將自己的文章透過私鑰加密, 再傳送出去, 對方收到這份密文後, 發現可以用其所公佈的公鑰解譯出明文, 便可確認這份明文是該使用者發出的。
- 若有人想發送秘密文件給該使用者, 只需以該使用者的公鑰將文件加密成密文, 再傳送出去, 如此一來這份密文就只有持有相對應私鑰的這位使用者才有辦法解譯出來。
- 若兩人之間想進行秘密資料傳輸, 只需將資料先以已方的私鑰加密, 然後以對方的公鑰再加密一次, 經過兩道加密程序後才傳送出去。(用私鑰加密是為了確認身分;用公鑰加密則是為了保密)。
- 非對稱加解密函數的複雜程度通常都高於對稱式加解密函數, 若完全採用非對稱加解密系統, 對電腦運算是一大負擔。所以在實際的應用上大都搭配對稱式加解密函數與雜湊函數一併使用。
- 最常見的應用為數位簽章(Digital Signature)。
- 密鑰的數量為2n個(n為使用者的數量)。
- 常見的非對稱式加密函數有 RSA, ElGamal, ECC等。
密碼攻擊的形式
- 被動式攻擊(Passive Attacks)
- 只知密文攻擊(ciphertext-only attack)法:利用密文希望可以還原出明文來,此類攻擊在現代密碼學上幾乎不可能了。
- 已知明文攻擊(known-plaintext attack)法:擁有加密前的明文與加密後的密文,然後分析推算出密鑰來。
- 自選密文攻擊(chosen-ciphertext attack)法:希望由自選的密文及相對應的明文來求得其它密文的明文。
- 自選明文攻擊(chosen-plaintext attack)法:希望由自選的明文及相對應的密文來求得其它密文的明文。
- 主動式攻擊(Active Attacks)
- 竄改訊息
- 偽造訊息
- 阻斷訊息
密碼攻擊的技巧
- 非理性武力攻擊(brute-force attack)法:依密鑰長度作各種排列組合的嘗試,可能有2n種 可能。密鑰長度每增加1個byte,難度便增加2倍,增加10個byte,難度便增加1024倍。
- 字典攻擊(dictionary attack)法:密鑰通常不夠亂,而是以使用者能夠記憶的字串為主,因此利用英文字母在加減數字與大小寫的變化來降低亂度(entropy)的方法。
惡意者入侵的步驟
- 收集資訊:搜尋引擎, 主機掃瞄(Host scanning)(TCP/UDP port scanning) , whois, nslookup,
ping
- 滲透:
- 正面入侵:利用系統設定上的瑕疵,循正常登入機制入侵,如暴力入侵法(Brute Force Attack)。
- 背面入侵:利用系統設計上的缺失或弱點(Vulnerability)入侵,例如緩衝區溢位(Buffer Overflow)攻擊法
- 攻擊:
- 掠取資訊:網路監聽(sniffering),木馬(Trojan),蠕蟲(Worm)
- 破壞活動:分散式阻斷服務(Distributed Denial of Service; DDoS)攻擊的代理程式, 邏輯炸彈(Logical
Bomb), 病毒(Virus)等
- 掩飾:
- 刪除登入與連線等記錄
- 留下後門程式
蠕蟲與病毒
蠕蟲指的是「利用系統漏洞」來達到傳播目的的惡意程式,病毒指的是藉由檔案感染,像是附加部分病毒碼在其它檔案中, 來達到傳播的目的。
誰在攻擊
通常一個單位都會花費80%的時間與金錢在阻止外部的威脅上,事實上有70%~80%的安全事件都是內部的員工所為,也許是因為外部的 安全入侵行為常被大 幅的報導,因此一般單位都把精力花費在對抗外部的攻擊上。
外部的威脅主要來自所謂的 Script Kiddie , Script Kiddie 並不具備專業知識,他們僅為了炫耀或有趣的理由,利用現成的駭客工具進行攻擊,他們大多是透過國外的駭客討論群組取得漏洞的攻擊程式(exploit
code),開始找尋目標,攻克後並植入後門程式,這些受害的機器系統管理者,若沒有安全意識,可能永遠不知道自己的系統已經洩漏機密資訊或已成為跳板, 因此只要系統的漏洞公佈後到修補前都是可攻擊的空窗期。
- 外部攻擊者:怪客(Cracker), 指令小子(Script kiddies), 瘸子(Lamer), 離職員工等。動機有商業考量, 政治考量,能力展現,漫無目的等。
- 內部攻擊者:內部員工的動機有心懷不滿,粗心大意等。
在帳戶管理上
- 不要因為方便,給使用者管理者的密碼,要詳細考慮給予的帳戶權限。
- 強迫使用者在設定密碼時,必須混用大小寫字母、數字和特殊字元。
- 設定定期更新密碼,且密碼長度不得少於八個字元。 //可從網路下 載一些駭客工具來測試密碼的安全性。
- 依使用者上班時間來限定使用者登入網路的權限,例如,上白天班的臨時雇員不該有權限在三更半夜登入網路。
在檔案管理上
- 設定檔案與目錄的權限。
- 設定磁碟配額。
在 系統管理 上
- 使用網際網路防火牆
- 眾所周知,提供對外連線服務的網站伺服器,對於 port 的控管是一大重點,可以啟動其TCP/IP篩選功能。
//區域連線/內容/Internet Protocol/內容/進階/選項/內容
- XP 與 2003 Server可以啟動內建的網際網路連線防火牆。 //區域連線/內容/進階/設定
- 取得系統與應用程式更新,並設定自動排程
扣除主動下載或安裝一些不安全的軟體外,OS本身的漏洞也是一個很大的問題,目前微軟提供的重大更新網站提供了最新的修補程式。
//開始/Windows Update
- 作業系統更新 : Windows Update
- 應用程式更新 : Office Update
- 使用最新的防毒軟體 ,並設定自動排程 更新病毒碼
- 同時在伺服器和桌上電腦安裝防毒軟體。 這些軟體還應該設定成每天自動下載最新的病毒定義檔。
- Mail Server也應該安裝防毒軟體,這類軟體可掃描所有寄進來的電子郵件,尋找被病毒感染的附件,若發現病毒,郵件馬上會被隔離,減低使用者被感染的機會。
- 使用較安全的應用程式
服務管理
- 在對外伺服器上所提供的服務,建議提供混和式的環境,例如使用Apache的Web Server與GuildFTPd的FTP Server
- 愈多的服務所造成的未知漏洞愈多,愈舊版本之伺服器所含之漏洞愈多
IIS
- 網站不要設定在預設的目錄中 // c:\inetpub\wwwroot
- 定期進行Windows Update
FTP
- 建議使用其它廠商的產品,若一定要使用內建的FTP服務,則必須設定只允許匿名連接 //例如: GuildFTPd
資安資訊
名詞整理
- URL (Universal Resource Locator)
- 這是一種用來標示 Web 上資訊位址的方式 ─ 明確地指出資訊所在的位置。您可給分處各地的朋友一個 URL,他們就能取得同一份資訊,就像是郵寄地址或是電話號碼一樣。URL
是用 HTTP (http://)、FTP、Gopher (ftp:// 及 gopher://),與 NEWS (news://) 等來做開頭。
- packets(chunks of data)
參考書目
- 呂崇富, "網路規劃與管理實務" ,學貫行銷, ISBN:986-7198-07-7
網路資源
主 網 站:http://peterju.notlong.com
(目前轉址至 http://irw.ncut.edu.tw/peterju/)