11 상위 계층
세션 계층의 필요성과 세션 연결의 개념을 이해한다. 네트워크에서 데이터 표현의 일관성이 무엇인지 이해한다. 데이터를 압축하는 원리를 이해한다. 응용 환경에서의 클라이언트-서버 모델을 이해한다.
1절. 세션 계층 세션 계층의 기능 세션 관리 기능 동기 기능 대화 세션 연결의 설정과 해제 세션 메시지의 전송 통신 양단끼리 서로 동의하는 논리적인 공통 시점(동기점) 지정 오류 복구를 위하여 필수적으로 요구됨 동기점 설정 이전까지는 서로 처리가 완료되었음을 합의했다는 의미 대화 상위 개념의 연결을 의미 이전 설정한 동기점까지 복구
1절. 세션 계층 토큰 토큰 종류 동기점 토큰의 필요성 데이터 토큰: 데이터를 전송할 수 있는 권한 통신 양단의 대화를 관리하기 위한 특수 메시지 토큰의 보유는 해당 토큰에 부여된 특정 권리를 배타적으로 소유한다는 의미 토큰 종류 데이터 토큰: 데이터를 전송할 수 있는 권한 해제 토큰: 통신 양단 사이의 연결 해제를 제어하는 목적으로 사용 동기 토큰: 동기 처리가 필요한 시점에 사용 동기점 동기점의 부여: 큰 파일을 작은 파일로 구분하는 과정 큰 파일을 전송하는 과정의 중간 중간에 동기점을 부여 동기점이 부여되었다는 의미는 해당 내용까지는 전송이 완료되었다는 의미 따라서 전송 과정에 오류가 발생해도 동기점 이후의 과정만 복구하면 됨 주동기 토큰: 특정 대화 단위를 구분 부동기 토큰: 대화 단위를 세분화시켜서 구분
1절. 세션 계층 동기 액티비티 재동기 독립적인 여러 파일을 구분하는 목적으로 사용 액티비티의 설정은 주동기점의 설정과 동일한 효과 재동기 전송 오류가 발생했을 때 동기점을 이용한 일련의 복구 과정 주동기점 주동기점이 설정된 곳은 완벽히 처리되었다는 의미 따라서 주동기점 이전의 복구 과정은 필요하지 않음 부동기점 복구에 필요한 백업 정보가 상대적으로 적음 오류 복구가 완벽히 이루어지지 않을 수 있음 이전 부동기점에서 복구가 불가능하면 직전 부동기점으로 이동하는 과정을 반복
1절. 세션 계층 동기 재동기 동기점의 역할 [그림 11-2]
1절. 세션 계층 세션 연결 다중 세션을 지원하는 서버 [그림 11-3] 하나의 서버 프로세스가 다수의 클라이언트를 동시에 지원 서비스 시간이 짧은 경우에 유리 서비스 시간이 길면 클라이언트의 대기 시간이 무한정 증가할 수 있음
1절. 세션 계층 세션 연결 단일 세션을 지원하는 서버 [그림 11-4] 하나의 서버 프로세스가 하나의 클라이언트만 지원 대표 서버 클라이언트의 연결 요청을 처리 하위 서버 프로세스를 생성 Well-known 포트
2절. 표현 계층 데이터 표현 추상 문법 [그림 11-5] 추상 문법: 각 컴퓨터에서 사용하는 데이터 표현 규칙 전송 문법: 네트워크 전체에서 일관성을 지니는 표현 규칙
2절. 표현 계층 데이터 표현 ASN.1 [그림 11-6] 분산 환경에서 표현되는 데이터를 정의하기 위한 일반적인 추상 문법
2절. 표현 계층 데이터 표현 ASN.1 UNIVERSAL 클래스 지원하는 클래스 유형 일반 데이터 유형을 정의 CONTEXT-SPECIFIC: 특정 컨텍스트와 관련된 유형 APPLICATION: 응용 개체의 공통 유형 PRIVATE: 사용자 정의 유형 UNIVERSAL 클래스 일반 데이터 유형을 정의 기본 유형과 구조 유형으로 구분 기본 유형: BOOLEAN, INTEGER, BITSTRING, OCTSTRING, …… 예 StudentNumber ::= INTEGER Name ::= IA5String MaleFemail ::= BOOLEAN EntranceRight ::= BITSTRING {accept(0), reject(1)}
2절. 표현 계층 데이터 표현 UNIVERSAL 클래스 태그 데이터 압축과 보안 구조 유형 UNIVERSAL SEQUENCE: 순서대로 나열한 임의 유형의 모임 (고정 크기) SEQUENCE: 순서대로 나열한 동일 유형의 모임 (고정/가변 크기) SET: 순서 없이 나열한 임의 유형의 모임 (고정 크기) SETOF: 순서 없이 나열한 동일 유형의 모임 (고정/가변 크기) CHOICE: 미리 정의된 유형 모임에서 선택한 순서가 없는 유형 모임 (고정 크기) 태그 구조 유형에 선언된 변수를 개별적으로 사용하기 위함 CONTEXT-SPECIFIC: 태그의 범위가 현재 구조 유형에 한정됨 APPLICATION: 태그의 범위가 전체 응용 컨텍스트에 적용됨 PRIVATE: 태그의 범위가 해당 사용자에게 적용됨 데이터 압축과 보안 압축: 전송 데이터의 양을 줄이는 목적으로 사용 암호화: 전송 데이터의 내용을 해석하지 못하도록 하기 위하여 사용
2절. 표현 계층 데이터 압축 연속 문자 압축의 예 원본 데이터: 18 * 10 = 180 바이트 [그림 11-7]
2절. 표현 계층 데이터 압축 연속 문자 압축의 예 압축 알고리즘 압축 데이터 [그림 11-8] 압축 해제 특정 문자가 연속해서 몇 번 나타나는지를 표현 pattern: 특정 문자 count: 몇 번 압축 데이터 [그림 11-8] 3 * 19 = 57 바이트 압축 해제 반대의 과정
2절. 표현 계층 데이터 압축 손실/비손실 압축 비손실 압축 손실 압축 압축 과정에서 원래 데이터의 내용을 분실하지 않음 압축 해제 과정을 통해 원래의 데이터를 100% 복원 손실 압축 압축 과정에서 원래 데이터의 내용을 부분적으로 분실 압축 해데 과정을 통해 원래의 데이터를 100% 복원할 수 없음 압축 효율을 높이기 위하여 사용
2절. 표현 계층 데이터 압축 손실/비손실 압축 [그림 11-9]
3절. 응용 계층 클라이언트-서버 모델 [그림 11-10] 서버가 반드시 먼저 대기 상태에 있어야 함 클라이언트가 서버에게 연결 요청을 시도
3절. 응용 계층 클라이언트-서버 모델 연결형/비연결형 서비스 상태 정보 UDP: 속도는 빠르지만, 신뢰성에 문제가 있음 TCP: 신뢰성이 높지만, 상대적으로 속도가 느림 상태 정보 상태: 특정 상황에 대하여 통신 양단이 바라보는 관점 오류 발생시 서로 합의할 수 있는 상태로 되돌아 가는 과정이 복구 과정임 비상태 서비스 상태가 없으므로 복구 과정이 간단함 파일 공유 서비스는 대표적인 비상태 서비스의 예
3절. 응용 계층 동시성 제어 동시성 반복 서비스 방식 [그림 11-3]: 동시성이 없음 임의의 여러 동작이 외형상 동시에 진행되는 것처럼 보이는 현상 여러 동작의 선후 진행 속도가 실행 결과에 영향을 미치지 않음 예: 단일 CPU가 장착된 컴퓨터에서 여러 프로세스가 실행되는 경우 반복 서비스 방식 [그림 11-3]: 동시성이 없음
3절. 응용 계층 동시성 제어 동시성 서비스 방식 [그림 11-4]: 여러 클라이언트를 동시에 지원