Distributed Systems (COMP90015_2020_SM1)
该博客只限于该课程的复习,我只是在这里记录框架,并非全部内容。
如果需要全部的复习资料,请私聊。
1. introduction
1.1 define
1.2 computer network && ds
1.3 reason--6
- economy
- resource sharing
- functional separation
- reliability
- availability
- scalability
1.4 characteritics 5
- no global state
- no global clock
- resource sharing
- communicaiton via message passing
- parallel activities
1.5 goals 5
- connecing users and resources
- transparncy
- openness
- scalability
- enhanced availability
1.6 consequences 4
- concurrency
- heterogeneity
- no global clock
- independent failures
1.7 challenges
- secruity
- openness
- concurrency
- transparency
- scalability
- heteogeneity
- fault tolerance
2. inter-process communication
2.1 layer - image
- physical layer --> internet layer --> transport layer -->application layer
2.2 TCP -- image
- define: reliable / connection-oriented communicaiton
- applicaiton: http/ftp/skype
- data flows
2.3 UDP --image
-
define: connectionless communicaiton / no guarantees order
-
applicaiotn :broadcasting / ping
-
failure : order / omission failure / data corruption
2.4 port
- positive 16-bit int
- post number >=1024
- Tcp / udp map data
2.5 socket
- programme:client / server :udp+tcp
- define / introduction :language indepent && interface for programming
3. thread
3.1 middleware
- define:layer between applicaiton / operting system
3.2 middleware / network operating system
3.3 threaded appliaiton
- multitasking / multithreading / bottom line
3.4 thread
- implement : thread class / runnable interface (program)
- define: a piece of code
- 生命周期 -- image
- priority : set / get :3 types
3.5 architecture
- worker pool -- image
- thread -per - request
- thread - per - connection
- thread - per - objects
3.6 thread && process
- process-based:controlled by os
- thread-based:controlled by programmer and applicaiton program
- adv for thread:
- share address space
- communicaiton inexpensive
- context swithcing inexpensive
4. ds models
4.1 . models
- fundamental models / architectural models / physical model
4.2 fundamental models
-
intercation / failure / security model
4.3 architectural modesl
- clients and a single server
- multiple servers
- proxy servers with cache
- p2p
4.4 alternative client-server models
- mobile code
- mobile agents
- network computers
- thin clients
- mobile devices
- spontaneous networking
5.Operating System Architecture
5.1 NOS && DOS
- nos(3)
- dos(4)
5.2 core OS components
- processing manager
- thread manager
- memory model
- communication manager
- supervisor
5.3 supervisor && user model
5.4 popular kernel implementation methods
- Monolithic && Microkernel区别 -- image / advan / disadvan
- monolithic os : high performance + difficult to enhance
- layered os :easy to enhance / low performance
- Micro-kernel
5.5 json && xml
- easy program
- parser
- shorter string -- improve performance
6. Remote Invocation
6.1 3 types of protocols
- request
- request-reply (3 issue:timeout(client+server) & duplicate requests
- request - repley - acknowledgement
6.2 3 invocation semantics
- maybe 0/1
- at - least -once RPC : at least 1 time & idempotent operation
- at - most - once RMI : only once & non-idempotent operations.
6.3 RMI
- how to build--- image (processing)
- architecture and compoents -- image
- remote reference module
- proxy
- communication model
- dispatcher
- skeleron
- describe:4 part:interface / implement / server / client
- programming :code
- server : interface / implement / main -- register & rebind
- client : lookup
- security : eg:hellopoicy
- security manger -- implement
6.4 RPC
- define
- 4 compoents -- image
- communication model
- client stub procedure
- server stub procedure
- dispatcher
7. security
7.1 threats 3
- leakage
- tampering
- vandalism
7.2 attack 5
- Eavesdropping (leakage)
- Masquerading
- Message tampering
- Replaying
- Denial of service ( Vandalism)
7.3 worst-case assumptions (main4)
- interface are exposed
- networks are insecure
- node and algorithms are available to hackers
- attackers have large resources
- minimise the trusted base
- limit the lifetime and scope of each secret
7.4 encryption
- define
- shared secret keys :
- define :use the same keys (kab)
- process--image : 2 steps : send(kab)+get(kab)
- drawbackes : key distributions / freshness of communicaiton
- public/private key pair
- define: 2 keys(kpub + kpriv)
- drawbacks: more computations
- process : step3 -- image (get kpub --> creat kab --> get message(use kprivate))
7.5 applicaiton (major roles) encryotion
- secrecy and integrity
- authenticaiton
- digitial signatures
7.6 PKI
- define
- goals
- certificaite(X.509)
7.7 certificates
7.8 kerberos && ssl
- 7.8.1 kerberos
- system architecture: step 3 -- image
- drawbacks: expensive to apply ( cannot multiple users && mounted all files)
- 7.8.2 ssl(tls)
- two layers: handshake layer / tcl record protocol layer ( detail -- image)
8. Distributed file systems
8.1 issue
- recovery (after failure)
- high throughput ( reading and writing)
- scalability
- consistency
- cilent caching --> performance
8.2 transparencies
- access
- location
- mobility
- performance
- scaling
8.3 file service architecture
- define :副本缓存在本地
- compoents:
- a flat file service :operations
- a directory service:mapping -- ufids
- a client module :intefrated services
- architecture -- image
8.4 DFS (NFS)
- architecture -- image
- operariton -- functions(client/server) -programme
- NFS valid / invalid
- valid : time ( fresh enough) or (last modified recorded by the client and the server match)
8.4 cache / memory
- disk : adv: safer dis:slower need a disk
- memory : adv: quick dis: limited cache size / not tolerate node failure well
8.5 write-through client cache update ( good / bad)
- define: write are propagated to the server, server's copy updated immediately
- adv: high reliability
- dis
- reduced performance ( transmitted over the network)
- no benefit for write requests ,but good for reads
8.6 absolute name(good / bad)
- define: a complete address : both server and path
- adv:
- easy to find
- no additional state
- greater scalability
- eaty to add and delete
- dis:
- no location transparency
- file cannot be moved
- less resilient to failure
8.7 a global name (good / bad)
- define:
- adv:
- location transparency
- name consistent across all clients
- can move
- dis :
- cilent(cached) -- difficult to consistent
- performance problems
8.8 mount point (good / bad )
9. name services
9.1 URL
- define:
- different : URI/URL/URN
9.2 name services
- define: consistent and uniform naming of resources
- important (why) 3
- recource localizations
- uniform naming
- device independent address
- role
9.3 process of name resolution
- interative process (get attributes or name)
- never terminate(solution:abandon / no cycles occur)
9.4 navigation
- define: (art of chaining multiple naming services && resolve name to resource)
- approaches : iterative / recursive / non-recursive -image
9.5 DNS
- define : a name service design
- functions: resolve the name(main)
- issus(2)
- hierarchical organizaiton
- example -- image
- diffierent with file-based : scale / privacy / speed)
9.6 directory services