11. 상위 계층

2022. 11. 26. 01:05Web/Network

상위 계층

- 상위 세 계층인 세션 계층, 표현 계층, 응용 계층은 사용자 프로그램으로 구현

 

세션 계층

- 세션 연결 설정과 해제

- 세션 메시지 전송

- 세션 계층에서 제공하는 가장 중요한 기능은 동기 문제를 처리하는 것

- 대화 : 데이터 전송 과정을 의미, 시간 경과에 따라 순차적으로 동기점을 부여하여 신뢰성 보장 기능을 단계적으로 구현 가능, 의도적으로 일시 정지하여 나중에 이어서 작업 가능

 

 ※ 동기 기능 

- 통신 양단끼리 서로 동의하는 논리적인 공통 시점, 즉 동기점을 지정

- 설정 이유 : 오류 복구를 위하여 필수적으로 요구됨

- 동기점 설정 이전까지는 서로 처리가 완료되었음을 합의했다는 의미

- 동기점 이전 과정은 복구가 필요 없고, 동기점 이후 처리과정에 대한 복구 절차 진행

 

토큰

- 통신 양단의 대화를 관리하기 위한 특수 메시지

- 토큰의 보유는 해당 토큰에 부여된 특정 권리를 배타적으로 소유한다는 의미

- 토큰 종류

> 데이터 토큰 : 데이터를 전송할 수 있는 권한

> 해제 토큰 : 통신 양단 사이의 연결 해제를 제어하는 목적으로 사용

> 동기 토큰 : 동기 처리가 필요한 시점에 사용

 

동기점

- 큰 파일 전체를 하나의 단위로 하는 것보다 논리적으로 작은 단위로 나누어서 전송하는 것이 오류 발생 시 유리

- 동기점의 부여

> 큰 파일을 작은 파일로 구분하는 과정

> 큰 파일을 전송하는 과정의 중간 중간에 동기점을 부여

> 동기점이 부여되었다는 의미는 해당 내용까지는 전송이 완료되었다는 의미

> 따라서 전송 과정에 오류가 발생해도 동기점 이후의 과정만 복구하면 됨

- 동기 토큰 종류 

> 주동기 토큰 : 특정 대화 단위를 구분

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

 

동기(Synchronization)

- 재동기

> 전송 오류가 발생했을 때 동기점을 이용한 일련의 복구 과정

> 동기점은 임의의 시점에, 특정 지점에서 복구할 수 있도록 통신 양단 간의 합의로 지정

> 필요 기능 : 세션 계층 상위에서 적절한 구간으로 나누어 동기점을 지정하는 기능, 오류 발생 시 해당 지점으로 돌아가 복구하는 기능

- 주동기점 : 주동기점이 설정된 곳은 완벽히 처리되었다는 의미, 주동기점 이전의 복구 과정은 필요하지 않음

- 부동기점 : 복구에 필요한 백업 정보가 상대적으로 적음 -> 부담 최소화, 오류 복구가 완벽히 이루어지지 않을 수 있음. 이전 부동기점에서 복구가 불가능하면 직전 부동기점으로 이동하는 과정을 반복

- 액티비티 : 논리적으로 설정하는 단위, 독립적인 여러 파일을 구분하는 목적으로 사용, 액티비티의 설정은 주동기점의 설정과 동일한 효과

 

세션 연결

다중 세션을 지원하는 서버

- 하나의  서버 프로세스가 다수의 클라이언트를 동시에 지원

- 클라이언트 프로세스와 설정된 개별 세션들은 논리적으로 서로 연관이 없는 독립적인 연결

- 서비스 시간이 짧은 경우에 유리

- 서비스 시간이 길면 클라이언트의 대기 시간이 무한정 증가할 수 있음

 

단일 세션을 지원하는 서버

- 하나의 서버 프로세스가 하나의 클라이언트만 지원

- 대표 서버 : 클라이언트의 연결 요청을 처리, 하위 서버 프로세스를 생성, Well-known 포트

- 단점 : 클라이언트 개별 요구마다 하나의 프로세스 생성

- 각 클라이언트의 경우 다른 클라이언트와 독립적으로 서비스를 받을 수 있음

 

표현 계층

데이터 표현

- 추상 문법 : 각 컴퓨터에서 사용하는 데이터 표현 규칙

- 전송 문법 : 네트워크 전체에서 일관성을 지니는 표현 규칙

- 특정 컴퓨터에 독립적이면서 네트워크 전체에서 일관성을 가지는 새로운 표현 규칙(전송 문법)으로 변환하여 전송

- 수신 측에서는 자신의 컴퓨터에서 이해하는 추상 문법 형태로 변환하는 과정 필요

 

ASN.1 

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

- 응용 환경에서 폭넓게 사용

- 다양한 언어용 코드를 생성하는 컴파일러 존재

- 응용 계층에서의 문법 규칙 뿐만 아니라 PDU 구조도 정의

 

데이터 압축과 보안

- 압축 : 전송 데이터의 양을 줄이는 목적으로 사용

- 암호화 : 전송 데이터의 내용을 해석하지 못하도록 하기 위하여 사용

- 대용량 데이터를 압축하여 크기를 줄인 후  전송하는 것이 전송 속도 면에서 유리

- 원래 데이터의 패턴에 영향을 받음(중복이 많으면 압축률 높음)

- 알고리즘에 따라 압축률이 달라짐

- 인터넷 보안과 관련하여 중요하게 다루어지는 암호화 기능도 표현 계층에 속함

- 비손실 압축 : 압축 과정에서 원래 데이터의 내용을 분실하지 않음, 압축 해제 과정을 통해 원래의 데이터를 100% 복원

- 손실 압축 : 압축 과정에서 원래 데이터의 내용을 부분적으로 분실, 압축 해제 과정을 통해 원래의 데이터를 100%복원 불가, 압축 효율을 높이기 위해 사용

 

응용 계층

- 응용 계층 하부는 신뢰성 있는 데이터 전송 보장

- 하부 계층의 서비스를 이용하여 사용자에게 편리한 응용 환경 제공

- 사용자 프로그램 환경에서 구현

- 일반적으로 OS에서 제공하는 계층 4 인터페이스를 사용하여 통신 기능 구현

- 필요에 따라 세션, 표현 계층의 기능 포함

 

클라이언트 서버- 모델

- 비교적 간단한 절차로 동작

- 일반적으로 서버 프로세스는 클라이언트보다 먼저 실행되어 대기 상태에 있기 때문에 클라이언트의 연결 요청에 항상 응답할 수 있음

- 서버 프로세스는 일단 시작되면 종료되지 않고 계속 실행되며, 다수의 클라이언트 요청을 반복적으로 수행

- TCP : 신뢰성이 높지만, 상대적으로 속도가 느림

- UDP : 속도는 빠르지만, 신뢰성에 문제가 있음, 신뢰성 확보는 응용 서비스 개발자의 몫

- 상태 : 특정 상황에 대하여 통신 양단이 바라보는 관점

- 상태는 내부적으로 클라이언트와 서버가 논리적으로 하나의 단위로 처리해야 하는 동작을 한순간에 처리하지 못하고 여러 단계로 나누어 처리하는 경우에 발생

- 상태 정보는 정상적으로 처리될 때는 문제없지만, 한쪽 시스템이 다운되는 등의 현상에 의해 상태 정보를 잃어버렸을 때는 다운되기 직전 상태로 복구해야 하는 문제가 발생

- 클라이언트에 원격 파일 서비스를 제공하는 파일 서버는 비상태 서비스의 대표적인 예

- 원격 파일 서비스를 상태 서비스로 구현하는 경우는 이전 절차에서 수신한 정보를 서버가 내부적으로 보관하는 경우

- 오류 발생시 서로 합의할 수 있는 상태로 되돌아 가는 과정이 복구 과정

- 비상태 서비스 : 상태가 없으므로 복구 과정이 간단 Ex) 파일 공유 서비스

 

동시성 제어 

- 임의의 여러 동작이 외형상 동시에 진행되는 것처럼 보이는 현상

- 여러 동작의 선후 진행 속도가 실행 결과에 영향을 미치지 않음

- 클라이언트/서버 환경에서 동시성은 서버 하나가 여러 클라이언트에 동시에 서비스하는 경우를 의미하기도 함

- 반복 서비스 방식 : 다중 세션을 지원하는 서버

- 동시성 서비스 방식 : 여러 클라이언트를 동시에 지원

 

 

* 쉽게 배우는 데이터 통신과 네트워크(3판) 책을 바탕으로 작성하였습니다.

https://product.kyobobook.co.kr/detail/S000061352064

 

'Web > Network' 카테고리의 다른 글

13. 웹(WWW)  (0) 2022.12.20
12. 네트워크 프로그래밍  (0) 2022.12.20
10. 전송 계층  (0) 2022.11.17
9. TCP 프로토콜(2)  (0) 2022.11.17
9. TCP 프로토콜(1)  (0) 2022.11.17