Chapter 2 - System Models [시스템 모델(2/2)]
(3) Fundamental Models
프로세스의 커뮤니케이션과 한개 이상의 메세지 전송으로 이뤄진 전체의 네크워크 모델
모델의 목적
- 우리들은 연과된 모든 인수들을 명확하게 하기 위해 모델링 한다.
- 무엇이 가능하고 불가능한것인지를 확실하게 정한다.
* Interaction - 파싱 메세지를 통해 상호작용이 가능하며, 결과적으로 커뮤니케이션과 동기화가 가능하다.
시간적 딜레이를 대해 반영/수용하는가?
* Failure - 문제 발생시 대처 방안이 필요하다.
정의된 실패(Failure) 도출 할 수 있는가?
* Security - 자연적인 모듈링과 공개성(OPENNES), 노출성에 대해 내/외부 공격에 대비 하는가?
공격의 정의가 가능한가?
(3.1) Interaction Model
- 한개 이상의 서버와 한개 이상의 서비스는 다수의 서비스를 제공한다.
- 피어 프로세스는 여러 목적을 달성하기 위해 다수와 협동한다.
* 알고리즘: 계산에 처리에 요구하는 각 스텝의 순서 정의
* 분산 알고리즘: 명료하게 정립된 각각의 프로세스 순서 정의 (현실적으로 불가능한 알고리즘- 시간, 동기화 등의 이슈)
A,B 의 프로세스에서 진행되는 처리 시간은 그들(A,B)은 각자를 예상할 수 없다.
Interaction Processes에 영향을 미치는 두가지 요인
* 커뮤니케이션 성능
* 하나의 통일된 시간 개념(Global Clock)
커뮤니케이션 채널 성능
* Latency(잠복) : 시작된 메세지의 변환 과정에서 오는 정체
- 첫번째 문장 시작에서 변환을 위한 시간
- Network에 접근할 경우 소요 시간
- OS 와의 처리 시간
* Dandwidth : 송신을 위한 전체의 정보의 양
* Jitter : 메세지를 Variation 하는 소요시간
컴퓨터 시간 그리고 시간 이벤트
* 각 컴퓨터가 소유한 Clock (Timestap)
* Local clocks (Drift rate)
* 한 곳을 바라보는 복수의 컴퓨터 Clock (Using a Global Positioning System)
두가지 다른 형태의 Interaction Model
1) Synchronous distributed systems
- It exists a Time bounds
2) Asynchronous distributed systems
- No bound (Arbitrarily long time)
Event Ordering [1978-Lamport] 논문 참고 - A model of logical time
(3.2) Failure Model
네트워크 프로세스상에서 커뮤니케이션 오류가 생겼을 때
프로세스에서 일어나는 Failure를 구분지으면,
Omisson Failure / Arbirary Failure / Timing Failure 으로 나눠진다.
1) Omisson Failure
*프로세스와 충돌
스텝상에서 문제를 일으킨 부분을 제거하지(Execute) 못했을 경우 일어난다.
충돌을 Detection 방법(Timeouts)
비동기 시스템에서는 Timeouts 방법을 사용하기 힘들다.(Nobound)
Fail-stop을 일으키게 된다.
*초기의 커뮤니케이션(send, receive)
sender M 와 receiver Q 에 Buffer를 설치 채널 및 M,Q 의 오류를 검출
2) Arbitrary Failure
Arbitrary Failure의 경우 순차적으로 진행되는 프로세스를 생략한다.
Detection 하는 것이 매우 힘들다.(요청/반응이 없는 경우)
* Timing failures
* Masking faulures
이 부분을 가장 해결하기 손쉬운 방법은 중복처리 하는 것
Back Up Server / DB 상태를 HOT으로 적용하면 해결 가능
* Reliability of one to one communication(서버와 클라이언트의 신뢰 문제)
Validity (유용성)
Intergrity (무결성)
3) Security Model
Protecting Objects
- User : 클라이언트 오브젝트를 통해 서버에게 요구하는(Invoc) 형태
- Server : 산출된 값에 대해 각각의 클라이언트에게 전달하는 형태
- Acces Right : 각각의 허용된 권한 관리 / 접근 관리
Securing Processes and Their interactions
네트워크에 그들의 커뮤니케이션을 공개하며 서비스 제공하기 때문에 공격으로 노출된다.
커뮤니케이션 실패와 보안 위협에 대해 무결성은 위협을 받는다.
1) The enemy (적)
* Server와 Client 사이에서의 신뢰성을 제고한 상태가 필요
* 커뮤니케이션 채널을 이용하여 해결하는 방법
2) Defeating Security Treats (암호 / 해독을 이용)
* 암호 : 메세지를 암호화
* 부호화 : 프로세스의 스크램블링을 통해 메세지 컨텐츠를 Hiding 하는 방법
- 권한을 이용한 방안
- 보안 채널을 이용한 방안
3) 다른 방법의 공격자
- Denial of service (Dos)
- Mobile code (Trojan horse role)