protocol 및 layer architecture에 대한 모델에 대해 이해
- service / entity / protocol 모델의 기본 개념 및 용어
- layered architecture 특성
- OSI layer 개념
Internet 에서서의 protocol 역할
internet은 여러 sw/hw 복잡체로 이루어진 복잡한 시스템
- 기능 관점: protocol들이 집합
- 따라서 protocol을 이해하면 internet을 이해하는 것이다.
internet을 이해하려면 interent을 구성하는 각 protocol들의 메커니즘(구조)을 이해하면 된다.
Protocol이란
internet 안에서 각 entity들이 동작하는 방식
HW/SW 간 서로 메시지를 주고 받으며 상호작용을 하는 약속
주로 주고받은 메시지 + 관련 동작을 정의
Protocol 구조
통신 네트워크는 여러개의 protocol이 서로 얽혀서 동작
stack 구조로 위 아래 protocol(sw block)끼리 API로 상호 작용
상대방 프로토콜과 상호작용
상대방 프로토콜과는 상호작용을 하고 위아래로는 신호만 주고받는 구조이다.
Protocol Model
1. service primitive
2. entitiy and sap
3. sevice vs. protocol
4. protocol representation
5. protocol data units
1. service primitive
service개념
client (= service user) 에게 무언가를 해주는 것
Communication service model
- SAP (service access point)를 통해 packet 전달 서비스 제공
- SAP는 각 계층끼리 데이터를 주고 받는 접속점이다. 각 상하위 계층의 실체들을 SAP를 사용해 실체를 구별한다.
- service user는 SP(service primitive)를 통해 서비스 받음
- sp에 의해 상위 계층은 하위 계층의 서비스를 이용하며, 하위 계층은 상위 계층에 서비스를 제공하는 형태
service primitive
상하위 계층끼리 데이터를 전송하기 위하여 주고받는 서비스를 말한다.
service primitive는 이름 / 형식/ 파라미터로 구성되어 있다.
- 이름: CONNECT, DATA
- SP는 4가지 신호 종류가 있다.
- 형식: request / indication / response / confirm
- request(요청): 상위계층이 하위계층에게 데이터의 전송을 요구하거나 연결 설정을 요청할 때 사용하는 서비스
- indication(지시): 하위계층이 상위계층에게 데이터의 도착이나 연결 설정의 요청이 있음을 알려주는 서비스
- response(응답): 지시에 따른 데이터의 처리나 연결 설정을 알리는 서비스로 상위계층이 하위계층에 알리는 서비스
- confirm(확인): 처음의 요청에 응답이 왔음을 알리는 서비스로 하위계층이 상위계층에게 알리는 서비스
- 형식: request / indication / response / confirm
- 파라미터: called address, callin address, QoS, ...
- 파라미터는 프로토콜에 따라 달라진다.
2. Entity and SAP (중요)
entity: service provider 내에서 서로 상호작용하면서 실제 동작하는 존재
- communication service 실현을 위해 서로 message를 주고 받음
- peer entity를 통해 SAP 서비스를 한다.
- SAP를 통해 받은 SP를 기반으로 동작
- SAP : entity = 1:1, n:1 (복수의 entity가 하나의 sap를 갖는 것은 불가능)
3. Service vs. Protocol
communication protocol
peer entity들 간 상호작용을 하는 규칙
peer entity끼리 서로 message(PDU)를 주고 받을 때 포맷이나 순서 등의 동작을 약속한 것
Service provider 내에서 service (=SAP 서비스)를 실현하기 위한 도구/규칙이 protocol이다.
Protocol 구성
- Syntax: PDU에 대한 형식
- Semantics: protocol동작을 위한 제어 정보
- Timing: procedure에 대한 동작 순서
4. Protocol Representation
Time sequence diagram
시간 흐름에 따른 entity간 상호작용(message를 주고받는)을 그래픽하게 나타냄
5. Protocol Data Units (PDU)
peer entity간 서로 주고 받는 message이다.
PDU의 format (structure, semantics)은 protocol에 의해 정의된다.
- peer entity 양쪽에 format이 모두 알려져 있고, 한 PDU에 대해 양쪽에서 동일하게 해석
- 보통 한 protocol은 여러 종류의 PDU 활용
SDU (Service Data Units)
SAP를 통해 peer entity로 유입되는 message이다.
상향계층으로부터 보내진 실제 정보가 들어있는 데이터
SDU가 PDU화 하기 위해 쪼개지거나(Fragment), 합쳐질 수 (Aggregation) 있음.
Principle of Transparency
peer entity는 service의 user data(SDU)를 SP로 받아서 PDU 형태로 전달
service provider는 user data(PDU)에 대해 principle of tranparency를 적용
principle of tranparency
1. user data를 조작없이 그대로 통과
2. user data 내용을 참고하여 동작하지 않음
PCI (Protocol Control Information)
protocol 동작을 위해 SDU앞뒤에 붙이는 제어 정보
SDU 앞에 붙으면 protocol header, 뒤에 붙으면 protocol trailer
송신측 entity에서 붙이고, 수신측 entity에서 제거
Protocol Functions
protocol function이란 여러 protocol에서 두루 사용되는 특정 procedure / mechanism
- error control: PDU가 정상적으로 전달되지 않은 상황에서의 protocol entity의 동작
- fragmentation, flow control: entity간 data를 서로 주고 받는 속도 및 형태 조절
Protocol 동작의 특성
Concurrency (동시성)
- entity는 어떤 순간에도 서로 다른 service demand 및 event에 대해 동시적으로 반응동작해야 한다.
- ex) PDU coding 도중에 관련 연결이 끊어져서 재연결 동작을 자연스럽게 할 수 있어야함
Nondeterminism (비결정성)
- 여러가지 event가 동시에 발생하는 경우 어떤 순서로 처리가 될지에 대한 예측이 되지 않는 특성
- 어떤 event든 먼저 처리가 될 수 있어야함.
Layers
layer: SAP와-entity쌍으로 구성된 것
- 각 layer는 하나 이상의 service를 제공
Layered architecture
layer가 위아래로 존재
entity가 쌓여있는 구조이다.
위로 올라갈 수록 n이 증가
peer entity간 message 교환은 인접한 하위 layer의 entity에 의해 이루어짐
하위entity입장에서 상위 entity가 service user이다.
Layer 간 상호작용
service primitive(SP)를 통해 이루어짐. 위에서 service user는 SP를 통해 서비스를 받는다고 했다.
primitive: 수행되는 함수로 layer간 소통을 위한 것
함수에는 매개변수로 데이터나 ,제어정보 등을 넘겨 준다.
Layered Architecture
protocol stack 도 결국 layered architecture의 한 사례이다.
일상생황에서의 layer architecture
- 항공 서비스에 대한 시스템
- 티켁팅, 수화물, 게이트 통과, ...
- stack 구조의 layered architecture
- horizontal layering of functionality (service)
- 각 layer는 각각의 기능을 service
- layer는 반대편 layer와 대칭적이다.
Layered Architecture 특징
horizontal interaction
peer entities 끼리만 interaction이 이루어지며, 위아래 layer간 상호작용은 없음
위에서 peer entity간 message 교환은 인접한 하위 layer의 entity에 의해 이루어진다고 했는데?
하위 layer로부터 service는 받으나, 하위/상위 간 동작에 영향을 서로 주지는 않는다.
principle of transparency
SDU를 그대로 통과시키며 protocol 동작이 SDU에 의해 영향을 받지 않음
상위 Layer의 상호작용이 하위 layer의 동작을 줄여주지 않음. 하위 layer의 동작상 문제는 상위 layer에게 알려지지 않을 수 있음.
- 보통 자체적으로 문제 해결이 이루어지며, 치명적 문제 경우에만 infrom을 준다.
Layered Architecture 장점
크고 복잡한 기능들의 시스템을 표현하기 적절
- modularity: 기능 단위로 시스템을 분해
- 각 layer의 service에 대해 비교적 쉽게 구현
- 일부 기능에 대한 수정이 용이
기능의 series 형태로 표현되므로 동작 흐름이 한눈에 보임
- 동작 분석 및 디버깅이 용이
PDUs of Layered Architecture
N Layer에서 발생한 PDU가 N-1 layer의 SDU가 된다.
- N-1 layer는 N layer의 내용을 하나의 data로 보고 처리하므로 내부 내용은 신경쓰지 않는다.
하위로 갈수록 PDU 크기가 일반적으로 커짐 → 너무 커지면 fragmentation(쪼개지다)이 일어날 수 있음
- N → N-1 layer로 갈수록 N-1 layer의 SDU에 PCI가 붙으면서 N-1 layer의 하위 layer의 PDU가 커진다.
fragmentation이 일어날 수 있으나 principle of transparency는 보존됨.
Mapping on the (N-1) Layer
N layer의 entity는 여러개의 n-1 layer의 entity와 연결될 수 있음
- 아래 방향으로 여러 SAP로 분기되는 형태는 가능
N layer의 여러 entity가 하나의 n-1 layer entity에 연결되면 안됨.
- N-1 layer entity가 routing을 하려면 SDU 내용을 알 수 있어야하며, 이는 principle of transparency 위반
entity가 어느 SAP로 내릴지는 선택이 가능하나, SAP가 어느 entity로 선택하는 것은 안된다.
OSI (Open Systems Interconnection) Model
International Organizaiton for Standardization (ISO)에서 제안한 통신 네트워크의 표준 계층 구조
- 1970년대 만들어질 당시는 7계층 구조
- 현 internet은 5계층모델
L1: Physical layer (link layer)
물리적으로 연결된 링크에 맞는 실제 물리 신호를 생성
1hop으로 연결된 상대방에게 직접 정보 전달
1hop: transmition 하려는 상대 거리
링크나 물리 매체에 따라 상이함
- Ethernet: thwisted-pair copper wire, coaxial cable
- WiFi, LTE, ... : wireless signal
issues
characteristics of transmission medium: 전달매체의 특성, 유선이냐 무선이냐
nature of the signals (신호 및 시스템, 통신이론)
Data rates
L2: Data link layer, Medium Access Control (MAC) layer
통신 매체에 대한 접근 제어
여러 개체가 하나의 통신 매체를 공유하는 것에 대한 교통정리
L1과 보통 세트이며, 링크의 물리 매체 특성에 영향을 많이 받음 → L1에 의존적이다
L3: Network layer (Internet Protocol (IP))
우편 배달 시스템
네트워크 내에서의 packet 흐름을 결정하는 핵심 역할
L1과 L2가 하나의 장치에서 다른 장치로 1hop으로 딱 한번 이동할 때에 대한 프로토콜인 반면 L3, L4는 네트워크 내에서 end to end로 인터넷을 계속 타면서 갈 때의 프로토콜이다.
우편 서비스에서 우편물 전달 역할과 동일
Routing protocol
L4: Transport layer (TCP, UDP)
우체통 역할
application end point 간 packet을 전달하는 역할
- TCP: connection-oriented, flow control
- UDP: connectionless service → 받았는지 확인하지 않고 보내기만 하고 끝
- 우편이 너무 많으면 나눠서 전달하는 등 흐름을 제어하거나 등기처럼 받았는지 확인하거나 아니면 우편처럼 그냥 보내고 끝인 방식
L5: Application layer
통신 네트워크를 사용하는 실제 프로그램 혹은 app
- HTTP
- SMTP
- FTP
- DNS
TCP/IP기반 protocol stack 예시
- 프로토콜 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에서 네트워크를 타고가서 중간 라우터(J)로 가게된다.
- 중간 라우터의 IP layer가 destination IP주소를 확인하고 네트워크 2 로 보내서 PDU가 전달
- Host B의 L1, L2에서 데이터를 받아서 올려주는데 이때 목적지 IP를 보지 않고 처리
- IP(L3) 까지 오면 그제서야 자신한테 온 것임을 알고 TCP(L4)로 올려준다.
- TCP에서도 확인 후 SAP를 통해 애플리케이션 계층까지 전달을 하게 된다.
OSI Model 의 실물 구현
L5: Application, transport layers
- 보통 sw이면, end system에만 존재
L1, L4: Physical, data link layers: 특정 통신 link에 국한된 기능
- network interface card에 구현됨 (HW + SW)
L3: Network layer: 네트워크를 통한 packet전달
- end system / packet switch 등에 분산되어 동작(HW + SW)
Encapsulation
OSI model 관점에서 본 internet상에서의 packets전달 예시
- switch/router는 모든 layer가 가지고 있지 않고, 하위 layer들만 가짐 (L1 ~ L3)
- switch는 L2까지, router는 L3까지 가지고 있음
- 각 layer가 자신만의 정보(header)를 붙이면서, 상위 layer의 packet들 encapsulation 한다.
- layer를 통과하면서 PCI가 붙으면서 PDU가 점점 헤더가 붙어가면서 헤더로 감싸면서 캡슐화한다.
- 상대방이 PDU를 받으면 상위 layer 갈수록 붙어 있는 헤더를 제거한다.
※ 참고
'CS > 컴퓨터네트워크' 카테고리의 다른 글
7. Layer 3: Internet Protocol (0) | 2023.04.15 |
---|---|
Layer 1 & 2 (0) | 2023.04.12 |
Protocol Functions 2 (0) | 2023.04.11 |
Protocol Functions (0) | 2023.04.10 |
Communications Networks and the Internet (0) | 2023.03.31 |