상위 계층의 이해

이정민·2022년 6월 11일
0

네트워크

목록 보기
10/12

세션 계층

세션 계층의 기능

  • 세션 계층이 상위 계층에게 제공하는 프리미티브
    • 세션 연결 설정: 1:1 또는 1:N 연결, 연결 후 세션 메시지 송수신
    • 세션 메시지 전송: 동기 기능, 대화(dialog, 메시지 전송)
    • 세션 연결 해제: 세션 연결 중단
  • 동기 기능
    • 통신 양단에서 서로 동의하는 논리적인 동기점 지정
    • 오류 복구를 위하여 필수적으로 요구됨
    • 동기점 이전까지는 서로 처리가 완료되었음을 합의했다는 의미
  • 대화 단계
    • 메시지 전송 과정을 의미
    • 시간 경과에 따라 순차적으로 동기점을 부여해 신뢰성 보장 기능을 단계적으로 구현할 수 있음

토큰

  • 토큰으로 응용 프로세스 간 대화 관리
  • 토큰 보유는 토큰에 부여된 특정한 권리를 배타적으로 소유한다는 의미

토큰 종류

  • 데이터 토큰: 데이터를 전송할 수 있는 권리 제공(반이중 통신, half-duplex)

  • 해제 토큰: 통신 양단 간의 연결 해제 과정을 제어하기 위해 사용

  • 동기 토큰: 세션 연결을 사용하는 과정에서 동기 처리가 필요한 지점에 사용
    토큰과 동기점

  • 동기점 부여: 큰 파일을 작은 파일로 구분하는 과정

    • 큰 파일을 전송하는 과정의 중간 중간에 동기점을 부여
    • 동기점이 부여되었다는 의미는 해당 내용까지는 전송이 완료되었다는 의미
    • 따라서 전송 과정에서 오류가 발생해도 동기점 이후의 과정만 복구하면 됨
  • 주동기 토큰: 특정 대화 단위를 구분

  • 부동기 토큰: 대화 단위를 세분화시켜서 구분

동기

  • 세션 연결을 사용해 데이터를 주고 받다가 오류가 발생시, 이를 효과적으로 복구할 수 있게 해줌

재동기 기능

  • 재동기: 동기점을 이용한 일련의 복구 과정
  • 주동기점
    • 주동기점이 설정된 곳은 완벽하게 처리되었다는 의미
    • 주동기점 이전의 복구과정은 필요하지 않음
  • 부동기점
    • 복구에 필요한 백업 정보가 상대적으로 적음
    • 오류 복구가 완벽히 이루어지지 않을 수 있음
    • 이전 부동기점에서 복구가 불가능하면 직전 부동기점으로 이동하는 과정을 반복

세션 연결

  • 응용 계층의 세션 설정
    • 상위 계층의 CONNECT 요구를 전송 계층의 CONNECT로 변환해서 전달
  • 연결 종류
    • 다중 세션 연결을 지원하는 서버
      • 하나의 서버 프로세스가 다수의 클라이언트를 동시에 지원
      • 서비스 시간이 짧은 경우에 유리
      • 서비스 시간이 길면 클라이언트 대기 시간이 무한정 증가할 수 있음
    • 단일 세션 연결을 지원하는 서버
      • 하나의 서버 프로세스가 하나의 클라이언트만 지원
        • 연결 설정에 대하여 새로운 서버 프로세스 생성
      • 대표 서버
        • 클라이언트의 연결 요청을 처리(Well-known 포트)
        • 하위 서버 프로세스 생성
      • 단점
        • 개별 요구마다 하위 프로세스를 생성하기 때문에 초기 서비스 환경 구축에 따른 오버헤드가 증가함
      • 용도
        • 연결 설정 후 서비스 시간이 비교적 긴 응용
        • ex) Telnet, FTP

표현 계층

데이터 표현

  • 서로 다른 데이터 형식을 사용하는 호스트 간에 데이터를 교환하려면 공통된 표현 방법이 필요하다.

추상 문법

  • 응용분야 데이터 표현: 응용분야 별로 데이터를 표현하는 방법이 다르다.
  • 추상 문법: 네트워크 데이터를 표현하는 공통 데이터 표현 규칙
  • 전송 문법: 추상 문법 표현을 비트 패턴으로 변환하는 규칙

ASN.1

  • 분산 환경에서 표현되는 데이터를 정의하기 위한 일반적인 추상 문법

  • 추상 문법을 표현하는 표준 방법

  • PDU(Protocol Data Unit)의 구조 정의

  • ASN.1 규약에서 지원하는 클래스 유형

    • UNIVERSAL: 일반 데이터형
    • CONTEXT-SPECIFIC: 특정 컨텍스트와 관련된 유형
    • APPLICATION: 응용 개체의 공통 유형
    • PRIVATE: 사용자 정의 유형

ASN.1의 UNIVERSAL 클래스

  • Universal class
    • 일반 데이터형 정의
  • 종류
    • 기본형(Primitive): 기본 자료형(정수, 문자열 등)
      • BOOLEAN
      • INTEGER
      • BITSTRING
      • OCTSTRING
      • IA5String/GraphString
      • NULL
      • ANY: 변수형을 다른 곳에서 정의
    • 구조형(Constructured): 기본 자료형의 조합(구조체 비슷)
      • SEQUENCE: 순서대로 나열한 임의 유형의 집합(고정 크기)
      • SEQUENCEOF: 순서대로 나열한 동일 유형의 집합(고정/가변 크기): List
      • SET: 순서 없이 나열한 임의 유형의 집합(고정 크기)
      • SETOF: 순서 없이 나열한 동일 유형의 집합(고정/가변 크기): List
      • CHOICE: 미리 정의된 유형 집합에서 선택한 순서가 없는 유형 집합(고정 크기)

ASN.1의 태그

  • 태깅
    • 구조형에 선언된 변수를 개별적으로 사용하려고 태그 기능을 지원한다.
    • 일반 프로그래밍 언어의 배열에서 사용하는 인덱스 기능과 비슷
  • 태그 선언
    • CONTEXT-SPECIFIC: 태그의 범위가 현재 구조형에 한정되어 적용됨
    • APPLICATION: 태그의 범위가 전체 응용 컨텍스트에 적용됨
    • PRIVATE: 태그의 범위가 해당 사용자에게 적용됨

데이터 압축과 보안

  • 압축: 전송 데이터의 양을 줄이는 목적으로 사용
  • 암호화: 전송 데이터의 내용을 해석하지 못하도록 하기 위하여 사용

데이터 압축

  • 대용량 데이터는 압축하여 전송하는 것이 속도에서 유리함
  • 데이터 압축 알고리즘의 원리
    • 효율적인 코딩 기법 사용 (Huffman code, run-length code)
    • 중복 제거
  • 데이터에 특성에 맞는 알고리즘을 사용하는 것이 중요함

연속 문자 압축의 예

  • 알고리즘 (run-length code)
  • 데이터 압축의 예
    • 문자 T에 대한 정지 영상 데이터
    • 18*10=180 바이트
    • 압축 데이터 크기: 3*19=57바이트(일렬로 읽기)
    • 복원: 18*10의 밑그림 위에 pattern의 내용을 count만큼씩 표시

손실, 비손실 데이터 합축

  • 비손실 압축
    • 압축 과정에서 원래 데이터의 내용을 분실하지 않음
    • 압축 해제 과정을 통해 원래 데이터를 100% 복원
    • ex) run-length code, Huffman code
  • 손실 압축
    • 압축 과정에서 원래 데이터의 내용을 부분적으로 분실
    • 압축 해제 과정을 통해 원래 데이터를 100% 복원할 수 없음
    • 압축 효율을 높이기 위하여 사용
    • ex) JPEG, MPEG

응용 계층

네트워크 계층

  • 하위 계층: 신뢰성 있는 데이터 전송 보장
  • 응용 계층: 사용자에게 네트워크 관련 프로그램 제공
    • 일반적으로 계층 4 인터페이스를 사용해 통신 기능을 구현한다.
    • 필요한 경우 계층 6(표현) 계층 5(세션) 기능을 포함한다.

클라이언트-서버 모델

  • 하나의 서버가 여러 클라이언트에게 서비스
  • 비대칭 구조: 서버가 먼저 통신 대기 상태
  • 클라이언트와 서버의 연동을 단순화시키는 장점이 있음

연결형, 비연결형 서비스

  • UDP(비연결형): 속도는 빠르지만, 신뢰성에 문제가 있음
  • TCP(연결형): 신뢰성이 높지만, 상대적으로 속도가 느림

상태 정보

  • 연결형 서비스에 적용되는 개념
  • 상태
    • 논리적으로 한 개의 통신 과정을 여러 단계로 나누어 처리할 때 각 단계가 상태
    • 오류가 발생하면 서로 합의할 수 있는 상태로 되돌아 갈 수 있어야 한다.
  • 비상태 서비스
    • 클라이언트의 요구를 한번의 동작으로 처리하는 시스템
    • 상태가 없으므로 복구 과정이 간단함
    • 파일 서버: 파일 공유 서비스는 대표적인 비상태 서비스의 예

동시성 제어

  • 동시성
    • 여러 동작이 외형상 동시에 진행되는 것처럼 보이는 현상
    • 여러 동작의 선후 진행 속도가 실행 결과에 영향을 미치지 않음
    • ex) OS 프로세스 관리: 단일 CPU가 장착된 컴퓨터에서 여러 프로세스가 실행되는 경우
  • 동시성 제어
    • 독립적으로 실행되는 프로세스의 실행 순서가 결과에 영향을 주지 않도록 관리하는 것
  • 클라이언트-서버 환경의 동시성 제어
    • 서버 하나가 여러 클라이언트에 동시에 서비스
    • 임의의 클라이언트가 서버와 연결하여 서비스를 받는 동안 다른 클라이언트의 요청을 서버가 지원한다.
    • 다중 세션 연결을 지원하는 서버: 동시성을 지원하지 않음
    • 단일 세션 연결을 지원하는 서버: 동시성을 지원함
profile
으악

0개의 댓글