네트워크#2-1 [Protocol stack] Protocol 모델에 대하여
Protocol 이란
- Internet 안에서의 각 entity들이 동작하는 방식
- 주로 주고받는 메시지 + 관련 동작을 정의
Protocol 구조
통신 네트워크는 여러 개의 protocol이 서로 얽혀서 동작
- stack 구조로 위 아래 protocol 끼리 API로 상호 작용
Protocol Model: Service 개념
Clinet (혹은 service user)에게 무언가를 제공하는 것
- Communication service model
- SAP(service access point)를 통해 packet 전달 서비스 제공
- service user는 SP (Service Primitive)를 통해 서비스받음
“user를 통해 제공되며 SP 형식으로 교환”
Protocol Model: Service Primitive
Service primitive는 이름/ 형식/ 파라미터로 구성
- 이름 : CONNECT(연결 요청), DATA(요구/보낼 데이터)
- 형식 : request / indication / response / confirm
- 파라미터: called address, calling address, QoS…
REQ -> (2) IND -> (3) RES -> (4) CNF 순서 (들어있는 내용에 따라 CONNECT/DATA로 나뉜다.)
Protocol Model: Entity and SAP
Entities : Service Provider 내에서 서로 interacting 하면서 실제 동작을 하는 존재
- communication service 실현을 위해 서로 message를 주고받음
SAP를 통해 받은 SP를 기반으로 동작
“하나의 SAP에서 두 개의 Instance로 분산될 수 없다.”
Protocol Model: Service vs. Protocol
Communication protocol
- peer entity들 간 상호작용을 하는 규칙
- peer entity끼리 서로 message를 주고받을 때 포맷이나 순서 등의 동작을 약속
- symmetric / asymmetric
Service Provider 내에서 service를 실현하기 위한 도구/규칙이 바로 protocol임
Protocol Model: Protocol 구성
- Syntax : PDU에 대한 형식
- Semantics : protocol 동작을 위한 제어 정보
- Timing : procedure에 대한 동작 순서
Protocol Representation
Time sequence diagram : 시간 흐름에 따른 entity 간 상호 작용을 그래픽하게 나타냄
Protocol Model: Protocol Data Units
peer entity간 서로 주고받는 message가 PDU
- PDU의 format (structure, semantics)은 protocol에 의해 정의됨
반대로 SAP를 통해 전달되는 message는 SDU
Principle of Transparency
- service provider는 user data에 대해 principle of transparency 적용
- user data를 조작 없이 그대로 통과(하지만 너무 크면, fragmentation은 일어날 수 있다.)
- Entity가 SDU를 PDU로 전달할 때는, SDU를 조작하면 안 된다.
- user data 내용을 참고하여 동작하지 않음(protocol이 해야 하는 역할만 하고 처리해야 한다.)
- Protocol Control Information (PCI)
- protocol 동작을 위해 SDU 앞뒤에 붙이는 제어 정보
- Protocol header / trailer ( header + SDU + trailer)
- 송신 측 entity에서 붙이고, 수신 측 entity에서 제거
Protocol Functions
여러 protocol에서 두루 사용되는 특정 procedure / mechanism
Error Control
- PDU가 정상적으로 전달되지 않은 상황에서의 protocol entity의 동작
- 에러가 난 packet은 재전송한다. (공용 protocol function)
Fragmentation, Flow control
- entity 간 data를 서로 주고받는 속도 및 형태 조절
Protocol 동작의 특성
Concurrency
- entity는 어떤 순간에도 서로 다른 service demand 및 event에 대해 동시적으로 반응동작해야 한다.
Nondeterminism
- 여러 가지 event가 동시에 발생하는 경우 어떤 순서로 처리가 될 지에 대한 예측이 되지 않는 특성
- 어떤 event든 먼저 처리가 될 수 있어야 한다.