Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

컴퓨터 네트워크 서비스 프리미티브란? 기본 요소와 유형 총정리

서비스 프리미티브란 무엇인가?

서비스(Service)란 사용자가 해당 서비스에 접근하기 위해 호출할 수 있는 프리미티브(primitive), 즉 연산(operation)들의 집합을 의미합니다. 선택된 프리미티브는 피어 노드(peer node)가 수행한 동작을 서비스에 알려주는 역할을 합니다.

연결 설정 과정의 예

  • 발신 노드가 연결 설정을 원할 경우 CONNECT.request를 전송합니다.
    • Request – 노드가 어떤 작업을 수행하거나 패킷을 전송하고자 할 때 사용됩니다.
  • 수신 측이 요청을 받으면 CONNECT.indication으로 통보받습니다.
    • Indication – 상대 노드가 자신과의 연결 설정을 원한다는 사실을 알려주는 것입니다.
  • CONNECT.response는 제안된 연결을 수락할지 거부할지를 알려주는 프리미티브입니다.
  • 최초 CONNECT.request를 보낸 노드는 CONNECT.confirm 프리미티브를 통해 처리 결과를 확인합니다.

서비스 프리미티브의 유형

일반적으로 서비스 프리미티브는 다음과 같이 네 가지 클래스로 나뉩니다.

  • Request(요청) – 서비스 노드가 인접 계층에 특정 서비스를 요청하며, 요청 내용을 명시하는 매개변수를 함께 전달합니다.
  • Indication(통보) – 다른 서비스 노드 또는 수신 노드가 인접 서비스 노드에 의해 어떤 절차가 호출되었음을 통보받습니다.
  • Response(응답) – 수신 서비스 노드가 해당 절차를 확인하거나 완료합니다.
  • Confirm(확인) – 서비스 노드들이 연결 허용 여부에 대한 승인을 주고받습니다.

프리미티브별 상세 설명

프리미티브설명
Indication노드에서 발생한 이벤트에 대한 정보를 전달
예시 – 수신자가 방금 연결 요청을 받았을 경우
Request노드가 서비스를 요청
예시 – 원격 컴퓨터와의 연결을 요청할 경우
Response노드가 이벤트에 대해 응답
예시 – 수신자가 연결 허가를 보낼 경우
Confirm노드가 자신의 요청에 대한 응답을 확인
예시 – 송신자로부터 데이터를 받은 후 수신자가 확인 응답을 보내는 경우

서비스 프리미티브의 매개변수

프리미티브의 매개변수에는 CONNECT, DATA, DISCONNECT가 있으며, 각각 연결 설정, 데이터 전송, 연결 해제에 사용됩니다.

일반적으로 서비스는 확인형(confirmed)과 비확인형(unconfirmed)으로 구분됩니다.

  • 확인형 서비스(Confirmed service) – 연결 지향 서비스를 의미합니다.
  • 비확인형 서비스(Unconfirmed service) – 비연결형 서비스를 의미합니다.

연결 지향 서비스(Connection-Oriented Service)

연결 지향 서비스에서 사용되는 서비스 프리미티브는 다음과 같습니다.

  • CONNECT.request: 연결 설정을 요청합니다.
  • CONNECT.indication: 착신자에게 신호를 전달합니다(전화 벨소리에 해당).
  • CONNECT.response: 호출을 수락하거나 거절합니다.
  • CONNECT.confirm: 발신자에게 호출 수락 여부를 알려줍니다.
  • DATA.request: 데이터 전송을 요청합니다.
  • DATA.indication: 데이터 도착을 알립니다.
  • DISCONNECT.request: 연결 해제를 요청합니다.
  • DISCONNECT.indication: 피어에게 해제 요청을 통보합니다.
  • 예시: 현대의 전화 서비스 및 인터넷 서비스

비연결형 서비스(Connectionless Service)

비연결형 서비스에서 사용되는 서비스 프리미티브는 다음과 같습니다.

  • SENDING.data – 송신자가 단순히 데이터를 전송합니다(일반 우편 서비스에 해당).
  • REPORT.confirm – 데이터가 목적지에 도착했음을 보고합니다(등기 우편에 해당).