티스토리 뷰
서비스 프리미티브(계층 구조 프로토콜에서의 연결형과 비연결형 서비스)
계층 구조 프로토콜은 네트워크 통신에서 중요한 역할을 합니다. 이 프로토콜은 상위 계층과 하위 계층 간의 효율적인 데이터 전송을 가능하게 하며, 서비스 프리미티브라는 개념을 통해 서비스의 종류와 동작 원리를 이해할 수 있습니다. 이번 글에서는 연결형과 비연결형 서비스에 대해 알아보고, 서비스 프리미티브의 기능과 동작 원리를 자세히 살펴보도록 하겠습니다.
연결형 서비스
연결형(Connection-oriented) 서비스는 데이터의 신뢰성과 순서 보장을 위해 사용됩니다. 이 서비스는 3단계로 구성됩니다. 첫 번째 단계는 연결 설정 요청(CONNECT.Request)으로 시작됩니다. 이 요청은 상위 계층에서 하위 계층으로 전달되어 연결 설정을 위한 준비 작업이 이루어집니다. 두 번째 단계는 데이터 전송 요청(DATA.Request)입니다. 이를 통해 상위 계층에서 전송할 데이터를 하위 계층으로 전송합니다. 마지막으로 연결 해제 요청(DISCONNECT.Request)이 있습니다. 이 요청은 연결을 해제하고 하위 계층의 자원을 반환하는 역할을 합니다.
비연결형 서비스
비연결형 서비스는 각 데이터를 독립적으로 목적지 호스트로 전송하는 방식입니다. 이 서비스는 데이터를 전송할 때 연결 설정 과정이 필요하지 않습니다. 각 데이터는 독립적으로 전송되며, 상위 계층에서 하위 계층으로 전송하는 과정에서 상호작용이 없습니다. 이러한 특성으로 인해 연결형 서비스에 비해 속도가 빠르지만, 신뢰성과 순서 보장에는 제약이 따릅니다.
서비스 프리미티브의 기능
서비스 프리미티브는 다양한 기능을 가지고 있습니다. 연결 설정 요청(CONNECT.Request), 데이터 전송 요청(DATA.Request), 연결 해제 요청(DISCONNECT.Request) 등이 이에 해당합니다. 이러한 요청은 상위 계층에서 하위 계층으로 전달되어 해당 서비스의 동작 원리를 시작합니다. 요청에는 CONNECT.Request, DATA.Request, DISCONNECT.Request 등이 포함됩니다.
서비스 프리미티브의 동작 원리는 다음과 같습니다. 요청(Request)이 상위 계층에서 하위 계층으로 전달되면, 하위 계층은 해당 요청에 맞는 처리를 수행합니다. 연결 설정 요청인 경우, 하위 계층은 연결 설정을 위한 준비를 시작하고, 연결 설정 완료 시 CONNECT.Indication을 통해 상위 계층에 통지합니다. 데이터 전송 요청인 경우, 하위 계층은 데이터를 전송하고, 전송이 완료되면 DATA.Indication을 통해 상위 계층에 통지합니다. 마지막으로 연결 해제 요청인 경우, 하위 계층은 연결을 해제하고 자원을 반환한 후, DISCONNECT.Indication을 통해 상위 계층에 통지합니다.
응답(Response)은 요청에 대한 결과를 상위 계층에 전달하는 역할을 합니다. 연결 설정 요청에 대한 응답은 CONNECT.Response로 전달되고, 데이터 전송 요청에 대한 응답은 DATA.Response로 전달됩니다. 연결 해제 요청에 대한 응답은 DISCONNECT.Response로 전달됩니다.
Confirm은 응답에 대한 확인을 전달하는 역할을 합니다. 연결 설정은 CONNECT.Confirm로, 데이터 전송은 DATA.Confirm로, 연결 해제는 DISCONNECT.Confirm로 전달됩니다.
서비스 프리미티브는 계층 구조 프로토콜에서 연결형과 비연결형 서비스를 구현하기 위한 핵심 개념입니다. 연결형 서비스는 신뢰성과 순서 보장을 위해 3단계의 과정을 거치며, 비연결형 서비스는 데이터를 독립적으로 전송합니다. 서비스 프리미티브는 요청, 통지, 응답, 확인 등의 기능을 통해 서비스의 동작을 제어하고 결과를 상위 계층에 전달합니다. 이를 통해 효율적인 데이터 통신을 가능하게 합니다.
서비스 프리미티브를 이해하고 적절하게 활용함으로써 네트워크 통신의 성능과 신뢰성을 향상시킬 수 있습니다.
'Spring' 카테고리의 다른 글
Spring과 Hibernate를 활용한 영속성(Persistence) 개념과 이점 (0) | 2023.07.11 |
---|---|
Spring과 Hibernate를 활용한 ORM(Object Relation Mapping) 개념과 이점 (0) | 2023.07.10 |
Spring MVC (ViewResolver와 다국어 지원 기능 소개) (0) | 2023.07.09 |
Hibernate란? (ORM 프레임워크의 핵심 개념과 이점) (0) | 2023.07.09 |
Hibernate 설정(java, XML 파일과 코드를 통한 방법) (0) | 2023.07.08 |