본문으로 이동

세션 계층

위키백과, 우리 모두의 백과사전.

컴퓨터 망의 7계층 OSI 모형에서 세션 계층(영어: session layer)은 5계층이다.

세션 계층은 최종 사용자 애플리케이션 프로세스 간의 세션, 즉 반영구적인 대화를 열고 닫고 관리하는 메커니즘을 제공한다. 통신 세션은 애플리케이션 간에 발생하는 요청과 응답으로 구성된다. 세션 계층 서비스는 일반적으로 원격 프로시저 호출(RPC)을 사용하는 애플리케이션 환경에서 사용된다.[1]

세션 계층 프로토콜의 한 예로는 X.225 또는 ISO 8327로도 알려진 OSI 프로토콜 스위트 세션 계층 프로토콜이 있다. 연결 손실 시 이 프로토콜은 연결을 복구하려고 시도할 수 있다. 연결이 장기간 사용되지 않으면 세션 계층 프로토콜이 연결을 닫고 다시 열 수 있다. 이 프로토콜은 전이중(full duplex) 또는 반이중(half-duplex) 작업을 제공하며 교환된 메시지 스트림에서 동기화 지점을 제공한다.[2]

세션 계층 구현의 다른 예로는 이름 바인딩 프로세스를 조정하는 애플토크[3] 프로토콜인 Zone Information Protocol (ZIP)과 DECnet Phase IV 세션 계층 프로토콜인 세션 제어 프로토콜(SCP)[4]이 있다.

OSI 네트워크 아키텍처의 서비스 계층 의미론 내에서 세션 계층은 표현 계층의 서비스 요청에 응답하고 전송 계층에 서비스 요청을 발행한다.

서비스

[편집]

연결 설정 및 해제

[편집]

최소한 세션 계층은 양측이 세션이라고 불리는 연결을 설정하고 사용할 수 있게 하며, 연결을 순서대로 해제할 수 있게 한다.

OSI 모델에서 전송 계층은 연결의 순서 있는 해제를 책임지지 않는다. 대신 세션 계층이 이를 담당한다. 그러나 현대 TCP/IP 네트워크에서 TCP는 이미 전송 계층에서 연결의 순서 있는 닫기를 제공한다.

세션 연결이 해제된 후에는 기본 전송 연결이 다른 세션 연결을 위해 재사용될 수 있다. 또한, 하나의 세션 연결은 여러 개의 연속적인 전송 연결을 사용할 수 있다. 예를 들어, 세션 도중에 기본 전송 연결에 오류가 발생하면 세션 계층은 세션을 계속하기 위해 전송 연결을 다시 설정하려고 시도할 수 있다.

대화 제어

[편집]

세션 계층은 세 가지 다른 대화 유형을 제공할 수 있다. 양방향 동시(전이중), 양방향 교대(반이중), 그리고 단방향(단순)이다. 또한 대화 유형을 협상하는 메커니즘을 제공하고, 어느 쪽이 데이터를 보내거나 일부 제어 기능을 수행할 "차례" 또는 "토큰"을 가질지 제어한다.

대화 제어는 TCP/IP에서 구현되지 않으며, 필요하다면 애플리케이션 계층에서 처리하도록 남겨져 있다. 널리 사용되는 HTTP/1.1 프로토콜에서 클라이언트와 서버는 일반적으로 반이중 방식으로 작동한다. HTTP/1.1은 전이중 작업을 위한 HTTP 파이프라이닝도 지원하지만, 많은 서버/프록시가 이를 올바르게 처리할 수 없었고, 전이중 사용 가능 여부를 확인하는 대화 협상 메커니즘이 없었기 때문에 결국 대부분의 브라우저에서 지원이 중단되었다.

동기화 지점 및 재동기화

[편집]

세션 계층은 양측이 대화에 동기화 지점을 삽입하고 재동기화를 수행할 수 있도록 허용할 수 있는데, 이는 현재 전송을 중단하고 동기화 지점을 특정 값으로 설정하며 해당 지점부터 전송을 다시 시작하는 것이다.

이는 실시간 오디오/비디오 전송에 사용될 수 있다. 동기화 지점은 데이터 흐름에 타임스탬프를 삽입하는 데 사용될 수 있으며, 재동기화는 전송을 새로운 타임스탬프부터 시작하도록 재설정하는 데 사용될 수 있다. 예를 들어, 비디오 스트림이 오디오 스트림보다 너무 많이 지연될 경우, 수신 측은 비디오 스트림에 대한 재동기화 요청을 발행하여 나중 타임스탬프부터 전송을 다시 시작할 수 있다.

이는 애플리케이션에서 체크포인팅을 수행하는 데에도 사용될 수 있다. 동기화 지점은 애플리케이션이 체크포인트를 커밋했음을 나타내는 데 사용될 수 있으며, 애플리케이션 충돌 또는 전원 장애 후 재동기화는 애플리케이션이 체크포인트에서 복구되었으며 해당 지점부터 전송을 재개할 수 있음을 나타내는 데 사용될 수 있다.

이는 또한 애플리케이션 실패가 아닌 애플리케이션에 의해 계획된 대로 대화를 언제든지 중단/재개하는 데 사용될 수 있다. 애플리케이션은 대화를 중단하고 동일한 세션에서 다른 대화를 시작한 다음 동일한 세션 또는 다른 세션에서 이전 대화를 재개할 수 있다.

세션 계층은 또한 하나 이상의 세션에서 여러 개의 중단 가능한 대화를 관리하기 위한 명시적 지원을 제공할 수 있다. 이러한 대화는 활동(activity)이라고 불린다. 활동은 명시적으로 중단 및 재개될 수 있다. 재동기화를 통해 암시적으로 대화를 중단하고 재개하는 것과 비교하여, 활동 지원은 애플리케이션에 이러한 대화에 대한 더 간단한 제어 기능을 제공한다.

프로토콜

[편집]

TCP/IP 모델과의 비교

[편집]

TCP/IP 참조 모델은 OSI 모델의 애플리케이션 또는 전송 프로토콜 의미론의 세부 사항에는 관심이 없으므로 세션 계층을 고려하지 않는다. OSI의 세션 관리는 일반적인 전송 프로토콜(TCP, SCTP)과 관련하여 전송 계층 프로토콜에 포함되거나, 그렇지 않으면 응용 계층 프로토콜의 영역으로 간주된다. TCP/IP의 계층은 작동 범위(애플리케이션, 호스트 간, 네트워크, 링크)에 대한 설명이며 작동 절차 또는 데이터 의미론에 대한 자세한 규정은 아니다.

같이 보기

[편집]

각주

[편집]
  1. What Is Remote Procedure Call (RPC)? Definition from SearchAppArchitecture (영어). SearchAppArchitecture. 2022년 8월 4일에 확인함.
  2. ITU-T Recommendation X.225
  3. ZIP (PDF). Apple.developer.com.
  4. Session Control Protocol (SCP). www.w3.org. 2022년 8월 4일에 확인함.