티스토리 뷰
protocol 및 layer architecture에 대한 모델에 대해 이해
- service / entity / protocol 모델의 기본 개념 및 용어
- layered architecture 특정
- OSI layer 개념 (Open Systems Interconnection 7Layer)
Protocol이란?
Internet안에서 각 entity들이 동작하는 방식
- HW / SW 간 서로 메시지를 주고받으며 상호작용을 하는 약속
- entity로는 end-system, router 등을 의미
주로 주고받는 메시지 + 관련동작을 정의
- "Protocol defines the format and the order of message exchanged between two or more communicating entities"
- 프로토콜은 두개 또는 이상의 커뮤니케이션을 하는 엔티티 사이의 교환되는 메시지의 형식이나 순서를 정의한다.
Protocol 구조
- 통신 네트워크는 여러개의 프로토콜이 얽혀서 동작한다
- stack구조로 쌓여있는 형태이고, 위아래 protocol끼리 API로 상호작용한다
- 상대방 protocol과 상호작용을 한다
Service 개념
Client(= service user)에게 무언가를 해주는것이다
- SAP (Service Access Point)를 통해 Packet 전달 서비스 제공
- service user는 SP (Service Primitive)를 통해 서비스를 받는다
SP : 공통된 메시지 형태
Service Primitive
- 이름 / 형식 / 파라미터 로 구성되어 있다
이름 : CONNECT, DATA, ..
형식 : request, indication, response, confirm
파라미터 : called address, calling address, ..
REQUEST
- 서비스가 무언가 시작하는 것
CONFIRM
- REQUEST 대한 응답으로 CONFIRM되는 것
INDICATION
- 프로토콜에서 서비스한테 무언가 동작을 시작 할 때, primitive가 indication 되는 것
- request 받은 반대편 프로토콜이 현재 서비스한테 indicate를 주는 PM
RESPONSE
- INDICATION에 대한 응답
Entity & SAP 개념
Enitities
- service provider 내에서 서로 상호작용하면서 실제 동작을 하는 존재
- communication service 실현을 위해 서로 message를 주고받는다.
- peer eintity를 통해 SAPs을 제공한다.
- SAP를 통해 받은 Service Primitive를 기반으로 동작한다.
하나의 SAP는 하나의 Entity에 매핑이 되어있다. 복수의 SAP가 하나의 Entity를 가질수 있지만, 복수의 Entity가 하나의 SAP을 갖는 것은 불가하다.
Communication Protocol
- 즉, peer entity들간에 상호작용에 대한 규칙을 정한것이다
- Service provider내에서 Service를 실현하기 위한 도구/규칙이 protocol인 것
Protocol 구성
- Syntax : PDU에 대한 형식 (data block의 format)
- Semantics : protocol 동작을 위한 제어정보
- Timing : procedure에 대한 동작 순서
protocol Representation
- Time sequence diagram으로 표현상호작용은 곧 message를 주고받는 동작
- 시간 흐름에 따른 entity간 상호 작용을 그래픽하게 나타낸 것
SAP를 통해 CR (connect request)가 들어오면 반대편 서비스로 indication이 올라오고 서비스가 이를 받아서 response메시지를 내려주면 CC (connect confirm)메시지를 전달한다
PDU - Protocol Data Unit
peer entity간 서로 주고받는 message(정보)
PDU의 format은 protocol(sementics)에 의해 정의된다
- peer entity 양쪽에 format이 모두 알려져있고, 한 PDU에 대해 양쪽에서 동일하게 해석한다
- 한 프로토콜에서 여러종류의 PDU를 활용한다.
SAP를 통해 peer entity로 들어오는 message는 Service Data Unit이다.
SDU → Entity(protocol) → PDU
Service Provider는 PDU에대해 principle of Transparency를 적용하는데
- user data를 조작하지 않고 통과시킨다
- user data를 참고하여 동작하지 않는다
Protocol Control Information (PCI)
- Protocol동작을 위해 SDU 앞뒤에 붙이는 제어 정보이다 - 앞 (header) / 뒤(trailer)
- 송신측 entity가 붙이고, 수신측 entity에서 제거한다
Protocol Functions
프로토콜에서 두루 사용되는 특정 절차 / 메커니즘
error control : PDU가 정상적으로 전달되지 않는 상황에서의 entity의 동작
fragmentation, flow control : entity간 data를 서로 주고받는 속도 및 형태 조절
Protocol 동작의 특성
Concurrency
- entity는 어떤 순간에도 서로 다른 service demand 및 event에 대해 동시적으로 반응동작 해야한다
Nondeterminism
- 여러가지 event가 동시에 발생하는 경우 어떤 순서로 처리가 될지에 대한 예측이 되지 않는 특성으로, 어떤 event든 먼저 처리가 될수 있어야한다
Layer
위에서 말했듯이 SAP-Entity 쌍으로 구성되어있는데 이를 말하는 것.
각 layer는 하나 이상의 service를 제공한다.
Layered architecture
- layer가 위아래로 존재한다 : N-Layer
- peer entity간 message교환은 인접한 하위 layer의 entity에 의해 이뤄진다
Layer간 상호작용은 Service Primitive를 통해 이뤄진다
- primitive : 수행되는 함수로 Layer간 소통을 위한 것
- 함수에는 매개변수로 데이터나, 제어 정보등이 있다
- 이에반해 PDU는 Entity간 소통을 위해 주고받는 message이다
Layered Architecture
Protocol Stack도 layered architecture의 한 사례
일상에서 항공 서비스 시스템 등을 찾아 볼 수 있다
- stack구조의 layered architecture
- Horizontal layering of functionality (service)
- layer는 반대편 layer와 대칭적이다
- 각 layer는 각각의 서비스를 한다
특징
horizontal interaction
- peer entities끼리만 interaction이 이뤄지고, 위아래 계층끼리는 이뤄지지않는다. 서비스는 받아도 서로간에 영향 X
principle of trasparency
- SDU를 그대로 통과시키며 protocol 동작이 SDU에 의해 영향 받지 않는다
상위 layer의 interaction이 하위 layer의 동작을 줄여주지 않고, 하위 layer의 동작상의 문제는 상위 layer에게 알려주지 않는다 (독립적)
- 보통 자체적으로 문제해결이 이뤄지고, 치명적인 문제 경우에만 infom을 준다
장점
크고 복잡한 기능들의 시스템을 표현하기 적절한다
- Modularity : 기능 단위로 시스템을 분해
- 각 layer의 service에 대해 비교적 쉽게 구현
- 기능의 series형태로 표현되므로 동작 흐름이 쉽게 보인다 → 동작 분석 및 디버깅이 용이하다
Layer Architecture 관점에서 PDU
N - layer의 PDU → (N-1) - layer의 SDU ...
계층을 내려갈 수록 PCI가 붙으면서 PDU의 크기가 커진다
- 여기서 PCI는 SDU에 붙는 것이고 PDU에 대한 priciple of transparency는 유지된다
Layer에서의 Mapping
Entity - SAP는 1~N개의 SAP에대해 단 한개의 Entity만이 붙을 수 있다
- 아래 방향으로 여러 SAP로 분기되는 형태는 가능하다
- Entity가 어느 SAP로 내릴지는 선택 가능하나, SAP가 어느 Entity로 선택하는 것은 안된다
Open Systems Interconnection Model
OSI Model 7계층 _ ISO에서 제안한 통신 네트워크 표준 계층 구조
- 현 internet은 5계층 모델
L1 : Physical Layer (link laeyr)
PDU = bit (stream)
- 물리적으로 연결된 링크에 맞는 실제 물리 신호를 생성
- 1 hop으로 연결된 상대방에게 직접 정보 전달
링크나 물리매체에 따라 상이하다 - Ethernet / wireless siganl (wifi, lte..)
L2 : Data link Layer, Medium Access Control (MAC) layer
PDU = frame
- 통신 매체에 대한 접근 제어
- 여러 개체가 하나의 통신 매체를 공유하는 것에 대한 교통정리 (공유기, 기지국)
- L1에 매우 의존적, 쌍으로 이뤄지는 경우가 많다
L3 : Network Layer (IP)
PDU = packet
L1, L2가 하나의 장치에서 다른 장치로 1hop으로 딱 한번 이동을 할 때에 대한 프로토콜인 반면에 L3, L4는 네트워크내에서 end to end로 인터넷을 계속 타면서 갈 때의 프로토콜이다
- 네트워크 내에서 Packet 흐름을 결정하는 핵심 역활
- Routing protocol
우편 서비스에서 보내는사람 → 받는 사람으로 우편물 전달 역활과 동일하다. 즉 여러 우편 처리 시설을 들리면서 end to end로 가게 되는 것
L4 : Transport Layer (TCP, UDP)
PDU = TCP 세그먼트
application endpoint간 Packet을 전달하는 역활로, flow(흐름)을 제어한다
- TCP : Connection-Oriented, flow control
- UDP : Connectionless Service (받았는지 확인하지 않고 보내기만 하고 끝)
우편이 너무 많으면 나눠서 전달하는 등 흐름을 제어하거나 등기처럼 받았는지 확인하거나 아니면 우편처럼 그냥 보내고 끝인 방식
L5 : Application Layer
PDU = 메시지, 데이터
통신 네트워크를 사용하는 실제 프로그램 혹은 APP
- HTTP
- SMPT
- FTP
- DNS
...
TCP/IP 기반 Protocol Stack 예시
Host A → Host B로 정보가 전달될 때
- 프로토콜 A 애플리케이션이 정보를 만들어서 TCP쪽 SAP에 DATA를 내려준다. SDU가 내려간다 (L5 → L4)
- TCP는 받은 SDU에 대해 PDU로 만들어서(SDU+PCI) IP로 전달한다 (L4 → L3)
- IP는 전달 받은 데이터를 통해서 Destination IP(Host B의 주소)를 얻게 된다. 그러고 해당 목적지 IP를 확인하고 어디로 보낼지 정해서 PDU를 내려준다 (L3 → L2)
- L2와 L1에서 네트워크를 타고가서 중간 라우터로 가게된다
- 중간 Router의 IP Layer가 Destination IP주소를 확인하고 네트워크 2로 보내서 PDU가 전달된다
- Host B의 L1, L2에서는 데이터를 받아서 올려주는데 이때는 목적지 IP를 보지않고 처리한다
- IP (L3)까지 오면 그제서야 자신한테 온것임을 알고 TCP (L4)로 올려준다
- TCP에서도 확인 후 SAP을 통해 애플리케이션 계층까지 전달을 하게 된다
Encapsulation
OSI model관점에서 본 Internet상에서의 Packet 전달
layer를 통과하면서 PCI가 붙으면서 PDU가 점점 헤더가 붙으면서 가는것을 뭔가가 계속 감싸지면서 가는 형태로 캡슐화라 한다 == Encapsulation
- switch / router는 모든 Layer가 있지 않고, 하위 1~3 Layer들만 갖는다
- 각 layer가 자신만의 정보 Header를 붙이면서, 상위 Layer의 Packet을 Encapsulation 한다
'CS > 네트워크 전공 수업 정리' 카테고리의 다른 글
5. Protocol Function 3 (2) | 2021.04.27 |
---|---|
4. Protocol Function 2 (0) | 2021.04.27 |
3. Protocol Function (0) | 2021.04.27 |
1. Communications Networks and the Internet (0) | 2021.04.27 |
네트워크 (0) | 2021.04.27 |
- Total
- Today
- Yesterday