|
1. Einführung und Motivation 導(dǎo)論以及動(dòng)機(jī)分布式系統(tǒng)的定義:
A distributed system is a collection of independent computers that appears to its users as a single coherent system.
分布式系統(tǒng)是一種使許多獨(dú)立電腦的協(xié)作在用戶看來好像是在一臺(tái)電腦上運(yùn)作的一樣的計(jì)算機(jī)系統(tǒng)。
最主要的兩個(gè)角度:單個(gè)電腦成員的獨(dú)立性和整個(gè)系統(tǒng)分布的透明性。
為什么要采用分布式系統(tǒng)?(優(yōu)點(diǎn))
Kommunikationsverbund
Uebertragung von Daten (Nachrichten) an verschiedene, raeumlich getrennte Orte
數(shù)據(jù)(消息)轉(zhuǎn)送到不同的空間上分隔的地點(diǎn) (EMAIL)
Informationsverbund
Verbreiten von Information an interessierte Personen
傳播信息到感興趣的人(WWW, Twitter)
Datenverbund
Speicherung von Daten an verschiedenen Stellen
將數(shù)據(jù)保存在不同地點(diǎn)——>更高的可用性、安全性等 (例如銀行的數(shù)據(jù)庫通常在不同地點(diǎn)有多份備份以避免因?yàn)?zāi)難而不能提供服務(wù))
Lastverbund
Aufteilung stoweise anfallender Lasten auf verschiedene Rechner
將擁堵式積累的負(fù)荷分到不同的計(jì)算機(jī)上 (例如多個(gè)服務(wù)器可以防止爆發(fā)性的用戶訪問)
Leistungsverbund
Aufteilung von Anfragen in Teilaufgaben
將請(qǐng)求分成子任務(wù) (可以更快的獲得回復(fù))
Wartungsverbund
Zentrale Stoerungserkennung und –behebung
中心式的故障得以識(shí)別和消除(尤其是系統(tǒng)的單點(diǎn))
Funktionsverbund
Verteilung spezieller Aufgaben auf spezielle Rechener
將任務(wù)分配給不同的專用計(jì)算機(jī) (例如圖像處理等)
分布式系統(tǒng)所希望的性質(zhì)包括: Offenheit 開發(fā)性,Nebenlaeufigkeit 并行性,Skalierbarkeit 可擴(kuò)展性,Sicherheit 安全性,F(xiàn)ehlertoleranz 容錯(cuò)性,Transparenz 透明性。
其中透明性尤其重要。透明性可以有很多不同的角度來說明。但總的來說透明性就是讓用戶感覺不到自己是在一個(gè)分布式系統(tǒng)中工作。而透明性的種類包括:
1.Zugriff 存取:
Zugriff auf die Ressource erfolgt immer auf die gleiche Art und Weise (lokal oder entfernt)
資源的存取總是采用同樣的方式和方法(本地或遠(yuǎn)程)
2. Ort 地點(diǎn):
Verbirgt, wo sich eine Ressource befindet. Zugriff ueber Namen, die keine Ortsinformationen enthalten.
隱藏資源在何處。通過不包含地址信息的名字來實(shí)現(xiàn)存取。
3. Migration 遷移
Verschieben von Ressourcen ist fuer Benutzer und Anwendungen transparent.
資源的移動(dòng)對(duì)于用戶和應(yīng)用來說是透明的。也就是說如果所要讀取的數(shù)據(jù)實(shí)際上的位置已經(jīng)發(fā)生了變化, 但用戶卻不知道。
4. Relokation 再定位
Verbirgt, dass eine Ressource an einen anderen Ort verschoben werden kann, waehrend sie genutzt wird.
5. Replikation 復(fù)制
Verbirgt, dass eine Ressource repliziert ist
隱藏資源是復(fù)制品。
6. Nebenlaeufigkeit 并發(fā)性
Verbirgt, dass eine Ressource von mehreren konkurrierenden Benutzern gleichzeitig genutzt werden kann.
隱藏資源可以同時(shí)被多個(gè)相互競爭的用戶使用。
7. Fehler 錯(cuò)誤
Verbirgt den Ausfall und die Wiederherstellung einer Ressource
隱藏某個(gè)資源的出錯(cuò)以及恢復(fù)。(例如某臺(tái)服務(wù)器出錯(cuò)時(shí)由其它服務(wù)器接管從而讓用戶感覺不到曾經(jīng)有出過故障。)
2. Protokolle und Schichtenmodelle 協(xié)議以及分層模型
服務(wù)和協(xié)議的區(qū)別:服務(wù)是在同一個(gè)程序的相鄰兩層之間進(jìn)行的,而協(xié)議則是在同一層的不同程序(個(gè)體)間進(jìn)行的。
因?yàn)橥ㄟ^網(wǎng)絡(luò)的通訊時(shí)常出現(xiàn)問題,所以將復(fù)雜任務(wù)分解成很多層簡單的層次,每一層都使用比它更底層的服務(wù)。
Protokoll --- Nachrichten + Verhaltensregeln(Zustandsautomat) 協(xié)議是消息加行為規(guī)則(有狀態(tài)自動(dòng)機(jī))。
Schichtenbildung 分層:
-Aufteilung von Systemen in kleinere, weniger komplexe Teilsysteme 將系統(tǒng)分割成更小更簡單的子系統(tǒng)
-Modularisierung / Austauschbarkeit 模塊化 / 可更換性
-Prinzip zur Strukturierung verteilter Systeme 分布式系統(tǒng)的構(gòu)建的原則
-Austausch von Nachrichten mit Instanzen auf gleicher Schicht 在同一層上的個(gè)體間的消息交換
-Nutzt zur Erbringung Dienste vertikal benachbarter Schichten 在垂直上相鄰的層次間標(biāo)準(zhǔn)服務(wù)的使用
圖1:ISO/OSI和TCP/IP兩個(gè)標(biāo)準(zhǔn)的比較
這個(gè)圖我想學(xué)過計(jì)算機(jī)網(wǎng)絡(luò)的人都會(huì)很熟悉吧。可惜的是以前學(xué)的時(shí)候就沒記住過。這次好了,還是的接著背。
ISO/OSI:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層和應(yīng)用層。
TCP/IP:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)互聯(lián)層、傳輸層和應(yīng)用層。
ISO/OSI vs TCP/IP:
ISO/OSI起源于電信網(wǎng)絡(luò)的需求,其模型的分層更嚴(yán)格,并且要求子網(wǎng)提供無錯(cuò)和穩(wěn)定的面向連接的服務(wù)。
Auf Bedürfnisse von Telekommunikationsfirmen zugeschnitten 按照電信公司的需求分層
Entworfen von formalen Standardisierungsgremien 由正式的標(biāo)準(zhǔn)委員會(huì)起草
Zeitaufwndiger Prozess mit oftmals komplexen Resultaten 費(fèi)時(shí)的過程帶來復(fù)雜效果
而TCP/IP從一開始就起始于計(jì)算機(jī)網(wǎng)絡(luò)的世界從其子網(wǎng)固有的就不穩(wěn)定。錯(cuò)誤-及流控制都是上層即應(yīng)用層的任務(wù)。
Hat entsprechend geeignete Programmierschnittstellen. 有相對(duì)應(yīng)的合適的程序接口。
Implementierungen meist frei zugnglich. 程序的實(shí)現(xiàn)通常是自由接入的。
Groer Verbreitung und Verbesserungen in kurzen Zeitintervallen 在短時(shí)間內(nèi)分布很廣并且提升很大。
ISO/OSI到目前為止還是概念性的模型,而TCP/IP則是實(shí)際上的標(biāo)準(zhǔn)。
3. Nachrichtenrepraesentation 消息代理
問題:
1. Byte-Order (Host-/Network)
圖2:(字節(jié)序)大端序和小端序的對(duì)比圖
2.Groesse der Datentypen 數(shù)據(jù)類型的大小
在不同的系統(tǒng)和程序語言中數(shù)據(jù)類型的大小也是不同的。例如C語言中的unsigned int類型在PC是64位,在jennic是32位,而在MSP430則是16位。
3. Alignment 校準(zhǔn)
在存儲(chǔ)器中數(shù)據(jù)類型是“對(duì)齊”(aligned)記錄的。比如某 CPU存取字的尺寸是4字節(jié)(每字節(jié)是8比特)。而某個(gè)數(shù)據(jù)是14字節(jié)的話就需要在讀取之前進(jìn)行一些處理,CPU才能進(jìn)行工作。這往往是通過在上一個(gè)數(shù)據(jù)的尾部或者下一個(gè)數(shù)據(jù)的頭部增加一些無意義的比特來實(shí)現(xiàn)的。
Serialisierungsverfahren 序列化的方法
-ASCII-basiert
-RFC 1014 (XDR)
-Abstract Syntax Notation One (ASN.1, DER)
-Extensible Markup Language (XML, XML Schema)
-JavaScript Object Notation (JSON)
-Objektserialisierung (Java,...)
XML

XML Schema示例

合法的XML文件示例
JSON:
{} 對(duì)象
: 名字和值的配對(duì)
, 名字-值對(duì)之間的分隔

JSON示例圖
Kriterien zur Auswahl von Serialisierungstechnologien 選擇序列化技術(shù)的標(biāo)準(zhǔn)
Gre der serialisierten Daten (Payloadgre“, Latenz)
Maschinen- und Menschenlesbarkeit
Validierbarkeit
Rechenaufwand
Komplexitt der Toolchain
Erweiterbarkeit (z.B. einzelne Felder hinzufügen)
Versionierung
Verbreitung (Standards, De-facto Standards)
Programmiersprachenunabhngigkeit
Verfügbarkeit für Programmiersprachen und Zielplattformen
Trennung von Nachrichten (Framing) 消息的分離 (框架)
出發(fā)點(diǎn):
Sender schickt Nachrichten in Form eines Bytestroms 發(fā)送者發(fā)送以字節(jié)流的方式發(fā)送消息
Empfaenger liest Bytes aus Strom 接受者從流中讀取出字節(jié)
由此產(chǎn)生的問題是:如何分出前后的消息?(即什么時(shí)候消息已經(jīng)完整接收了?什么時(shí)候開始下個(gè)新的消息)
Framing: Verfahren zur Trennung 成幀:分段的方法
Rahmen markiert Anfang (und Ende) einer Nachricht 框架標(biāo)識(shí)了一個(gè)消息的開始(和結(jié)束)
Framing ist bei Streams notwendig 成幀在字節(jié)流中的必須的

Namenskonventionen 命名規(guī)則
從下往上:
Frame : 幀
Datagram: 數(shù)據(jù)包
Segement : 段
Stream : 流
Message : 消息
-Nagle's Algorithm
在網(wǎng)絡(luò)通訊中常常一次通訊的包里所要傳送的信息(Body)遠(yuǎn)比實(shí)現(xiàn)通訊的附加(Header)要小的多。所以在實(shí)時(shí)性要求不高的時(shí)候累積到一定數(shù)量的信息(Body)之后再發(fā)送一個(gè)包的方式來提高效率。這就是Nagle's算法的思路。
4. Realisierung von Netzwerkdiensten 網(wǎng)絡(luò)服務(wù)的實(shí)現(xiàn)
Sockets
5. Kommunikationsmechanismen 通信機(jī)制
基于消息的通訊
中間件的概念
RPC Remote Procedure Call 遠(yuǎn)程過程調(diào)用
分布式對(duì)象系統(tǒng)
Web Service
– A Web service is a software system designed to support interoperable machine-to-machine interaction over a network
Message Exchange Patterns (MEPs)
Verfügbare MEPs
– Input-Output Operation:
Request Response (Return-Wert oder Fault)
– Input-Only Operation:
Nur Request, keine Response (auch keine Faults)
– Output-Input Operations (Solicit Response):
Sendet Nachricht und erwartet eine bestimmte Antwort
– Output-Only Operations:
Nur “Response” Genutzt für Notifications
SOAP
Envelope enthlt SOAP-Header und SOAP-Body
– Header: Metadaten zur Behandlung der SOAP-Nachricht und Interpretation des Body
– Body: Serialisierter Nachrichteninhalt (z.B. RPC Request oder Response)
Web Service Definition Language (WSDL)
Beschreibungssprache zur Definition von Web Services
Abstrakter Teil
– Datentypen (XML Schema)
– Nachrichten (Referenziert Datentypen)
– PortType (Schnittstelle des Dienstes)
Referenziert Nachrichten
Menge von Operationen (Input, Output, Fault-Nachrichten)
Konkreter Teil
– Binding (Transportprotokoll und SOAP-Binding)
z.B. SOAP über HTTP mit document/literal
– Service (Konkrete Erreichbarkeit)
Definiert verschiedene Ports“
Port: Referenziert Binding, spezifiziert konkrete Adresse (z.B. Port 80)
REST Representational State Transfer
keine Technologie sonder eine Architekturkonzept
Statuslosigkeit
-Keine Client-spezifischen Daten auf dem Server
-Gleichzeitiger lesender Zugriff verschiedener Clients auf die gleiche Ressource führen zu Reprsentationen mit gleichem Status
-Alle notwendige Information ist in der Anfrage enthalten
Idempotenz
Mehrere gleiche Anfragen führen zum gleichen Folgestatus der Ressource wie eine einzige Anfrage
Beispiel: einzahlen(100)--nicht idenpotenz vs. setzeKontostand(100) -- idenpotenz
REST mit HTTP: HTTP-Methoden
Create, Read, Update, Delete
6. Adressen, Namen und Verzeichnisdienste 地址, 名字以及目錄服務(wù)
Adressen 地址
包含地理信息,通常是用于尋址和選擇路徑的一串?dāng)?shù)字(例如IP地址 192.168.1.1)。適合機(jī)器閱讀。
Namen 名字
用于區(qū)分的符號(hào),通常是不包含地理信息的字符串(例如網(wǎng)站名www.google.com)。方便人的閱讀和記憶。
Identifier 標(biāo)識(shí)符
地址和名字的合稱。 尤其是URI包括了URL和URN。

Adressen in VS
分布式系統(tǒng)中的地址
因?yàn)橛妹直容^易讀好記,而且資源可以很方便的移動(dòng)位置或者復(fù)制備份,所以對(duì)于用戶來說基本上都以采用名字為主。
而名字是可以有結(jié)構(gòu)和文法的。這就是所謂的命名空間(namespace)。
名字的結(jié)構(gòu)分成兩種:扁平式和分層式。
扁平式的實(shí)現(xiàn)很簡單,適合小規(guī)模(例如Sun RPC/ONC RPC Portmapper)。
Sun RPC/ONC RPC Portmapper: Sun RPC在端口111;服務(wù)在此用自己的端口號(hào)進(jìn)行注冊(cè);客戶利用IP找到服務(wù)器并詢問所需服務(wù)的端口號(hào)。
分層式的相對(duì)復(fù)雜一些(例如DNS和LDAP)。
DNS(Domain Name System)域名系統(tǒng)。曾經(jīng)熱極一時(shí)的搶注域名其實(shí)就是搶這東西里面的一個(gè)名字。

DNS結(jié)構(gòu)示例圖
如圖所示DNS的結(jié)構(gòu)類似于一棵倒置的樹:根是空的/;然后是最上層域名(如com / de / cn)等;再就是下一層的域名(通常是公司或者機(jī)構(gòu)名,例如uni-luebeck);接下來會(huì)有一些子域名(通常對(duì)應(yīng)子機(jī)構(gòu),例如ITM學(xué)院)。
解析一個(gè)域名的過程通常是這樣的:
由客戶發(fā)起查詢(通常是用戶在瀏覽器地址欄輸入網(wǎng)址,如mail.google.com);
瀏覽器自動(dòng)調(diào)整所輸入的網(wǎng)址(通常是在結(jié)尾處增加一個(gè)“.”);
瀏覽器發(fā)給DNS服務(wù)器(Nameserver)一個(gè)查詢報(bào)文 “ query mail.google.com ”;
DNS服務(wù)器首先檢查自身緩存,如果存在記錄則直接返回結(jié)果,如果記錄老化或不存在,則向根域名(root zone)服務(wù)器發(fā)送查詢報(bào)文"query mail.google.com",根域名服務(wù)器返回 .com 域的權(quán)威域名服務(wù)器地址;
DNS服務(wù)器向 .com 域的權(quán)威域名服務(wù)器發(fā)送查詢報(bào)文"query mail.google.org",得到 .google.com 域的權(quán)威域名服務(wù)器地址
DNS服務(wù)器向 .google.com 域的權(quán)威域名服務(wù)器發(fā)送查詢報(bào)文"query mail.google.org",得到主機(jī) zh 的A記錄,存入自身緩存并返回給客戶端。
不過域名的解析方式有兩種:Iterative(重復(fù))和 Rekursiv (遞歸)。上面所介紹的是重復(fù),而遞歸則不需要重復(fù)使用命令來查詢而是不斷遞歸到最底層的mail的主機(jī)地址再返回。
目錄服務(wù)
有的時(shí)候用戶并不知道自己要的資源的名字,而只知道其特性。例如某個(gè)人想找披薩店,可是并不知道確切的某家店的名字。這個(gè)時(shí)候他就會(huì)去看黃頁。在網(wǎng)絡(luò)世界里也有類似的目錄服務(wù)。例如在做搜索引擎優(yōu)化的時(shí)候就會(huì)需要將自己的網(wǎng)頁登記到雅虎的目錄中以提高自己的分?jǐn)?shù)。
接下來要介紹的是LDAP(Lightweight Directory Access Protocal)
LDAP-Server LDAP服務(wù)器
Verzeichnisdienst, der über LDAP angesprochen wird;Speichert Menge von Entries
提供LDAP目錄服務(wù);保存有大量的條目
LDAP Entry LDAP條目
Enthlt Menge von Attributen; Kann wieder Entries enthalten; Eindeutig identifizierbar über Distinguishd Name
包括大量的屬性;條目下可以再包括條目;通過DN(區(qū)別名)來唯一識(shí)別
LDAP-Namensraum LDAP命名空間
Baumfrmig organisiert;Voll qualifizierte Namen werden von unten nach oben gelesen
樹狀的組織;完整的名字是從下往上讀的(如下圖中uid=pfisterer, ou=people, dc=itm, dc=uniluebeck.de, dc=de)
Relative Distinguished Name ( Relative DN)
Linker Teil: uid=pfisterer
Base Distinguished Name (Base DN)
DN ohne RDN: ou=people, dc=itm, dc=uniluebeck.de, dc=de

LDAP示例圖
7. Synchronisation 同步
Cristian算法
NTP(Network Time Protocol) 網(wǎng)絡(luò)時(shí)間協(xié)議

網(wǎng)絡(luò)上的計(jì)算機(jī)被分成很多層
最上層為原子鐘
當(dāng)前層的計(jì)算機(jī)的時(shí)間和其上一層的計(jì)算機(jī)同步
時(shí)間同步的極限:
問題:不同的電腦上的時(shí)鐘不可能完美同步,而有的時(shí)候我們又需要判斷兩件事情發(fā)生的先后順序
解決思路:邏輯時(shí)間
Happened-Before
In computer science, the happened-before relation (denoted: ) is a relation between the result of two events, such that if one event should happen before another event, the result must reflect that even if those events are in reality executed out of order (usually to optimize program flow).
Lamports happened-before關(guān)系的說明:
如果在某個(gè)處理器P中 a b 成立則對(duì)于整個(gè)系統(tǒng)來說 a b 也成立;
對(duì)于一個(gè)消息m來說 send(m) receive(m)總是成立的;
對(duì)于整個(gè)系統(tǒng)來說 如果a b 并且 b c成立則 a c也一定成立。
弱一致性: 如果 a b 則 C(a) < C(b)
強(qiáng)一致性: 如果C(a) < C(b) 則 a b
實(shí)現(xiàn):

用偽碼實(shí)現(xiàn)Happened before

在三個(gè)處理器上采用happened before的效果圖
Vektoruhren (Lamport的擴(kuò)展)

Vektoruhren的示意圖
那如何比較呢? 
次序的定義(比較方法)
Gegenseitiger Ausschluss (共有消除/ mutual exclusion)
如何解決多個(gè)處理器操作同一個(gè)數(shù)據(jù)導(dǎo)致數(shù)據(jù)可能不一致的情況?
1. Zentralisierter Algorithmus --> einfach implementieren aber single-point
2. Verteilter Algorithmus (ohne Koordinator) --> komplex, langsam und wenige Robust
3. Token-Ring-Algorithmus --> korrekt und fair aber Verlust eines Tokens ist schwer zu erkennnen
Global State
Consistent und Inconsistent Cut
Frontier
Ein Cut ist dann konsistent, wenn
– er für jedes Ereignis, das er enthlt, auch alle Ereignisse enthlt,
– die zu diesem Ereignis in der Happened-Before-Relation (s. Zeit in verteilten Systemen) stehen:
e ∈ C , f → e f ∈ C
Lamport/Chandy-Algorithmus
Auswahlalgorithmen
Zweck von Auswahlalgorithmen : Einen Prozess unter vielen gleichartigen bestimmen, der eine besondere Rolle übernimmt
Bully-Algorithmus
Ring-Algorithmus
Prozesse sind logisch als Ring organisiert
– Jeder Prozess besitzt einen Vorgnger und einen Nachfolger
– Entsprechend aufsteigender Prozessnummern
Prozess stellt fest, dass der Koordinator ausgefallen ist
– Sendet ELECTION-Nachricht auf den Ring
– In diese trgt er sich als ersten ein
– Jeder weitere aktive Prozess fügt sich selbst in die Liste ein
Nachricht trifft wieder beim Initiator ein
– Er wandelt diese in eine KOORDINATOR-Nachricht um
– Diese enthlt den neuen Koordinator und die aktiven Mitglieder
8. Replikation und Konsistenz 拷貝以及堅(jiān)固性
優(yōu)點(diǎn):性能、容錯(cuò)以及可用性 (拷貝的堅(jiān)固性非常重要)
問題:1.很多拷貝 2. 強(qiáng)地理分布 3. 經(jīng)常性的寫入操作 于是陷入進(jìn)退兩難的困境(Dilemma)中,一邊要提高性能和可擴(kuò)展性,一邊必要的措施又降低性能。
解決方案:唯一的解決方案就是降低堅(jiān)固性的要求(非嚴(yán)格堅(jiān)固性)。
在數(shù)據(jù)存儲(chǔ)器和讀寫數(shù)據(jù)的處理器間的協(xié)議:
以數(shù)據(jù)為中心的堅(jiān)固性模型 – Sicht des Datenspeichers, geeignet für parallele Schreibzugriffe
Strikte Konsistenz (Daten-zentriert) : Jedes Read liefert Wert der letzten Write-Operation
Sequentielle Konsistenz : Etwas schwcheres Modell, aber implementierbar
– Es greifen mehrere nebenlufige Prozesse auf Daten zu
– Jede gültige Kombination von Read- und Write-Operationen ist akzeptabel, solange alle Prozesse dieselbe Folge sehen
– Zeit spielt keine Rolle
Kausale Konsistenz : Schwcheres Modell als die sequentielle Konsistenz
- mit Kausalitt (mit read operation)
- ohne Kausalitt
以客戶為中心的堅(jiān)固性模型
– Sicht des Client mit weniger starken Annahmen
– Insbesondere keine gleichzeitigen Updates
Monotones Lesen (Client-zentriert)
Wenn ein Prozess den Wert einer Variable x liest, dann wird jede weitere Read-Operation denselben oder einen neueren Wert von
x liefern
Monotones Schreiben
Oft wichtig, dass Schreiboperationen in der richtigen Reihenfolge an alle Dateispeicher weitergeleitet werden
Eine Schreiboperation eines Prozesses auf ein Datenelement x wird abgeschlossen, bevor eine folgende Schreiboperation
auf x durch denselben Prozess erfolgen kann
Platzierung der Replikate
Unterscheidung drei verschiedener Arten von Kopien
– Permanente Replikate --> Meist nur sehr wenige Replikate
– Server-initiierte Replikate --> Meist in der (Netz-)Gegend, in der der Bedarf auftritt (Kurzfristig initiiert bei hohem Bedarf )
– Client-initiierte Replikate --> Meist als (Client-)Cache bezeichnet
Propagierung von Updates
Spontane Idee : Server, dessen Replikat gendert wurde, propagiert neuen Wert an alle anderen
Pull oder Push?
Push --> Typisch, wenn ein hoher Grad an Konsistenz erforderlich ist
Protokolle zur Konsistenzerhaltung
– Primary-based Protocols (Write-Operationen gehen immer an dieselbe Kopie)
Local-Write-Protokolle
Remote-Write-Protokolle
– Replicated-Write Protocols (Write-Operationen gehen an beliebige Kopien)
9. Fehlertoleranz 容錯(cuò)性
“Verlaesslich”可靠
10. verteilte Transaktionen 分布式交易
11. Sicherheit 安全性
Security Services (Sicherheitsdienste) :
Confidentiality (Vertraulichkeit) 機(jī)密性
Authenticity (Authentizitaet) 驗(yàn)證
Integrity (Integritaet) 完整性
Non-Repudiation (Nicht-Anfechtbarkeit) 無爭議/可驗(yàn)證
Access Control (Zugriffskontrolle) 存取控制
Availability (Verfuegbarkeit) 可用性
Communication Model 通訊模型
Data Flow Deviations (數(shù)據(jù)流偏差)
Interruption 被中斷
Message is destroyed or corrupted
Attacks availability
Interception 被竊聽
Resource is accessed by a unauthorized third
Attacks confidentiality
Modification 被修改
A resource is (a) accessed and (b) modified by a unauthorized third
Attacks integrity and confidentiality
Fabrication 被偽造
A forged resource is smuggled into the system
Attacks authenticity
Attacker Model (攻擊模式):
Passive Attacks(被動(dòng)攻擊):
Publication of message content (公開消息內(nèi)容) 例如wikiLeaks (維基解密)
Traffic analysis (交通分析)通過分析誰和誰之間有密切聯(lián)系來偵測被分析主體的關(guān)系
Active Attacks(主動(dòng)攻擊):
Denial-of-Service / DoS (拒絕服務(wù))故意抑制資源的使用、攻擊資源的可用性。例如攻擊競爭對(duì)手的網(wǎng)站讓其不能為正常用戶提供服務(wù)。
Spoofing (欺騙) 偽造用戶ID等。通常和其它手段聯(lián)用。
Replay (回放)竊聽消息并隨后重發(fā)以達(dá)到惡意效果。
Message modification (消息修改) 修改消息內(nèi)容。例如修改攔截到的銀行轉(zhuǎn)賬的銀行賬號(hào)。
密碼學(xué)基礎(chǔ):
Einordnung der Kryptograhie (密碼學(xué)分類):
秘密通信分為兩類:一類是加密,包括替換法(Substitution)和換位法(Transposition);另一類是掩藏。
替換法:
Caesar-Verschluesselung 凱撒加密法 例如將每個(gè)字母都向后移動(dòng)3位。有25種密鑰。
Einfache Substitution 簡單替換法 每個(gè)字母隨機(jī)的被另外一個(gè)字母替代。有26!種密鑰。
Homophone Substitution 同音字替換法 部分明文分配多個(gè)密文符號(hào)
換位法:
Einfaches Verfahren 簡易方法 按照橫列方式以五個(gè)為一組寫下并以縱列方式重組
Bigramm-Substitution 雙置換發(fā) 不再是每個(gè)字而是每兩個(gè)字進(jìn)行置換
Polyalphabetische Subsitution 多字母置換 置換規(guī)律依照其的位置。
Konfusion und Diffusion 混亂和擴(kuò)散
Konfusion 原則上就是替換法
Diffusion原則上就是換位法
文獻(xiàn)說明:
主要來源于呂貝克大學(xué)分布式系統(tǒng)課程的講義(講師為:
|
|