세션 계층의 기능
세션 계층 프로토콜이 상위 계층에 제공하는 기능에는 세션 연결의 설정과 해제, 세션 메세지 전송 등이 있다. 세션 연결은 응용 환경에서 두 응용 프로세스 간의 세션을 설정하기 위해 만든다. 세션 계층에서 제공하는 중요한 기능은 동기 문제를 처리하는 것이다. 동기 기능은 통신 양단에서 서로 동의하는 논리적인 공통 처리 지점, 즉 동기점을 지정하기 위해 사용한다. 동기점을 설정하는 이유는 메세지 전송 과정에서 발생하는 오류를 복구하기 위해서이다. 즉, 동기점이 설정된 시점 이전까지는 통신 양단이 서로 완벽하게 처리했음을 합의했다는 의미이다.
동기점
동기는 세션 연결을 사용해 데이터를 주고받다가 오류가 발생하였을 때, 이를 효과적으로 복구할 수 있게 해준다. 동기점은 데이터를 전송할 때 특정 지점에서 복구할 수 있도록 통신 양단 간의 합의로 지정된다. 세션 계층의 상위 계층에는 적절한 구간으로 나뉜 지점에 동기점을 부여하고, 오류가 발생하면 해당 지점으로 돌아가 복구하는 기능이 구현되어야 한다. 이때 동기점을 이용한 일련의 복구 과정을 재동기라 한다. 동기점은 주동기점과 부동기점으로 나뉘고, 주동기점 간의 전송 단위는 대화로 정의된다. 주동기점은 두 세션 프로세스 사이에 교환되는 대화의 한 단위가 완료되는 지점에서 설정된다. 부동기점은 대화 단위 내의 작은 부분에서 설정된다.
표현 계층의 기능
표현 계층은 응용 프로세스 사이에 전송되는 메세지의 표현 방법을 다룬다. 즉, 표현 계층 프로토콜의 전송 메세지에 표현된 문법 내용을 통신 양단의 프로세스가 해석하는 기능을 제공함으로써, 송신 프로세스가 전달하는 의미를 수신 프로세스에서 정확히 이해할 수 있다. 컴퓨터에서 사용하는 데이터 표현 규칙으로 표현된 의미를 올바르게 송수신하려면 메세지를 전송하기 전에 변환해야 한다. 즉, 특정 컴퓨터에 독립적이면서 네트워크 전체에서 일관성 있는 새로운 표현 규칙으로 변환하여 전송한다.
데이터 압축
대용량 데이터는 압축하여 크기를 줄인 후 전송하는 것이 전송속도 면에서 유리하다. 데이터의 압축 정도는 원래 데이터의 패턴에 영향을 받는데, 중복 정보가 많으면 압축률이 높지만 그렇지 않은 경우는 압축률이 낮다. 데이터를 압축하는 유형에는 비손실 압축과 손실 압축이 있다.
비손실 압축
비손실 압축은 압축 과정에서 원래 데이터의 내용을 분실하지 않는다. 즉, 압축 해제를 통해 얻은 데이터가 압축 이전의 데이터와 완전히 동일하다.
손실 압축
손실 압축은 압축 해제한 데이터가 원래 데이터와 동일 하지 않다. 손실 압축을 사용하는 이유는 비손실 압축에 비하여 압축 데이터의 크기가 작기 때문이다. 따라서, 네트워크로 전송되는 데이터의 양도 줄게 되어 전송 효율을 높일 수 있다.
연속 압축 예시
연속 압축이란, 특정 문자가 몇 번 반복된다는 표현 기법을 사용하여 압축하면, 원래 의미를 유지하면서 데이터 크기를 줄일 수 있는 방법이다. 예를 들어, 원본 데이터가 가로 18바이트, 세로 10바이트 크기의 도화지에 X와 O문자를 사용해 T문자를 그림 형식으로 표현한다고 가정, 압축 데이터는 X와 O문자가 얼마나 반복되는지에 대해 카운트를 센다고 가정해보자. 이때 동일 패턴이 반복된다면 이를 적절한 알고리즘을 사용해 추가로 압축하는 것이다. 예시로, X패턴이 10번반복, O패턴이 5번반복하는 경우가 5쌍 나타난다면 이는 패턴이라고 볼 수 있고 이를 압축하여 원래 의미를 유지하면서 데이터 크기를 유지하는 것이다.
클라이언트 서버 모델
하나의 서버 프로그램이 다수의 클라이언트에 응용 서비스를 제공하는 클라이언트 - 서버 모델은 인터넷 응용 환경에서 보편화된 연결 설정 방식이다. 둘 사이의 연결 설정 과정에서 서버가 먼저 통신 대기 상태에 있는데, 이러한 비대칭 구조는 클라이언트와 서버의 연동을 단순화하는 장점이 있다. 서버 프로세스는 일단 시작하면 영원히 종료되지 않고 실행되며, 다수의 클라이언트 요청을 반복적으로 수행한다. 클라이언트와 서버 사이의 네트워크 연결은 전송 계층의 포트 연결로 구현된다.
상태 정보
연결형 서비스는 클라이언트와 서버 사이의 연결로 인해 둘 사이의 현재 상태라는 개념이 존재한다. 일반적으로 가장 단순한 상태 정보는 연결 설정과 관련된 정보이다. 기타 정보는 내부적으로 클라이언트와 서버가 논리적으로 하나의 단위로 처리해야 하는 동작을 한순간에 처리하지 못하고 여러 단계로 나누어 처리하는 경우에 발생한다. 상태 정보는 정상적으로 처리될 때는 문제없지만, 한쪽 시스템이 다운되는 등의 현상에 의해 상태 정보를 잃어버렸을 때는 다운되기 직전 상태로 복구해야 하는 문제가 남는다.
동시성 제어
동시성은 임의의 동작이 외형상 동시에 진행되는 것처럼 보이는 것이다. 동시성 제어는 여러 동작의 선후 진행 속도에 상관없이, 동시에 실행되어도 각 실행 결과가 항상 같은 결과를 제공하도록 해준다. 즉, 독립적으로 실행되는 프로세스의 실행 순서가 결과에 영향을 주지 않는다. 클라이언트 - 서버 환경에서 동시성은 서버 하나가 여러 클라이언트에 동시에 서비스하는 경우를 의미하기도 한다. 즉, 임의의 클라이언트가 서버와 연결하여 서비스를 받는 동안 다른 클라이언트의 요청을 서버가 지원하면 동시성을 지원한다고 볼 수 있다.
'Dev > Network' 카테고리의 다른 글
[Network] 네트워크 접근제어(NAC)의 모든 것 (0) | 2022.06.05 |
---|---|
[Network] IPS, IDS, 방화벽의 모든 것 (0) | 2022.06.05 |
[Network] OSI 7 계층의 Top Layer(전송 계층)에 대한 개념 정리 (0) | 2022.01.10 |
[Network] OSI 7 계층의 Network Layer(네트워크 계층)에 대한 개념 정리 (0) | 2022.01.10 |
[Network] SOAP, REST의 개념과 차이점 정리 (0) | 2022.01.10 |