[컴퓨터네트워크] Chapter 2. Protocol Stack
Protocol Stack
- 프로토콜 및 레이어드 아키텍쳐에 대한 모델의 이해
Layered Architecute(계층적 구조)
- 인터넷
- SW/HW 복잡체로 이루어진 복잡한 시스템
- 기능 관점에서는 프로토콜들의 집합
- 인터넷을 구성하는 각 프로토콜의 메커니즘을 이해하면 인터넷을 알 수 있음
- 프로토콜에 대한 개념 수준부터 이해 필요.
프로토콜이란
- 인터넷 안에서의 각 엔티티들이 동작하는 방식
- 정보 송수신에 대한 기능적 실체
- HW/SW 간 서로 메시지를 주고받으며 상호작용 하는 약속
- 주로 주고받는 메시지 + 관련 동작을 정의
프로토콜 스택
각 기능을 가진 소프트웨어 모듈을 블락이라 한다.(PHY,MAC ….)
소프트웨어 모듈이 쌓여있는 구조.
통신 네트워크는 여러개의 프로토콜이 얽혀서 동작
- 스택 구조로 위아래 프로토콜끼리 API로 상호 작용
- 상대방 프로코톨과의 상호작용
Service
- Client (혹은 service user) 에게 무언가를 해주는 것
- Communication service model
- SAP (service access point)를 통해 packet 전달 서비스 제공
- service user는 SP (Service Primitive)를 통해 서비스 받음
Entity and SAP
엔티티 : 서비스 프로바이더 내에서 서로 상호작용하면서 실제 동작하는 존재
- 커뮤니케이션 서비스 실현을 위해 서로 메세지를 주고받음
-
sap를 통해 받은 sp를 기반으로 동작.
- 커뮤니케이션 프로토콜
- 어플리케이션이 요청을 하고 → 엔티티끼리 서로 상호작용하는 규칙
- peer 엔티티끼리 서로 메세지를 주고 받을 때 포멧인 순서 등의 동작을 약속한것
- 커뮤니케이션은 반복적이다.
- 대칭적 / 비대칭적
- 대칭적 : 웹서버에서 검색을 하면 서버는 그에 해당하는 응답을 한다.
- 비대칭적 : 한쪽이 보내고, 한쪽은 받기만 한다.
- 서비스 프로바이더 내에서 service를 실현하기 위한 도구/규칙이 프로토콜이다.
프로토콜 구성
- Syntax : 데이터에 대한 형식(requset,response)
- Semantics : protocol 동작을 위한 제어 정보
- Timing : procedure(절차)에 대한 동작 순서(화살표)
- Time sequence diagram
- 시간 흐름에 따른 entity간 상호 작용을 그래픽의 형태로 나타냄
- 상호작용 = message 주고 받는 동작
indication(표시)
confirm(확인)
SDU(service data unit) → 엔티티 → PDU(protocol data unit)
pci(protocol control information)
SDU에다가 헤더(길이, ) ,트레일러 등을 붙인다 → PDU로 만들어서 넘긴다 → 다시 SDU로 받는다.
- PDU
- 피어 엔티티 간 서로 주고 받는 메세지이다.
- PDU의 포맷은 프로토콜에 의해 정의
- 피어 엔티티 양쪽에 포맷이 모두 알려져있고, 한 PDU에 대해 양쪽에서 동일하게 해석
- 한 프로토콜은 여러 종류의 PDU를 활용
- SDU
- SAP로 피어 엔티티로 유입되는 메세지이다.
Principle of Transparency
- 서비스의 유저데이터(SDU)에 대한 전달
- 피어 엔티티는 SP로 받아 PDU 형태로 전달
- 서비스 프로바이더는 유저 데이터에 대해 principle of transparency 적용
- 투명성의 원리
- PCI(Protocol Control Information)
- 프로토콜 동작을 위해 SDU 앞뒤에 붙이는 제어 정보
- 프로토콜 헤더/트레일러
- 송식 측 엔티티에서 붙이고, 수신측 엔티티에서 제거
동시성
- 엔티티는 어떤 순간에도 다른 service demand및 이벤드에 대해 동시적으로 반응동작해야함
- ex: PDU coding중 연결 끊어져서 재연결 자연스럽게 해야함
비결정성
- 여러가지 event가 동시에 발생하는 경우 어떤 순서로 처리 될지에 대한 예측 하지 않는 특성
- 어떤 event든 먼저 처리가 될 수 있어야함.
Layer
-
레이어 : SAP와 엔티티로 구성된것
- 각 layer 는 하나의 서비스를 제공.
-
레이어 아키텍쳐
- 레이어가 위아래로 존재
- N-layer
- 피어 엔티티간 메세지 교환은 인접한 하위 layer의 엔티티에 의해 이루어짐.
- 하층 레이어에 정보가 전달됨.
(N-1)-SAP가 SAP가 되고 → (N-1) entitiy로
Layered Architecture 특징
-
Horizontal interaction(수평적 상호작용) : peer entities끼리만 interaction이 이루어지며, 위아래 layer간 interaction은 없음
- 하위 layer로부터 service는 받으나, 하위/상위 간 동작에 영향을 서로 주지는 않음
-
Principle of transparency : SDU를 그대로 통과시키며 protocol 동작이 SDU에 의해
영향을 받지 않음
- 상위 layer의 interaction이 하위 layer의 동작을 줄여주지 않음
- 하위 layer의 동작상 문제는 상위 layer에게 알려지지 않을 수 있음
- 보통 자체적으로 문제 해결이 이루어지며, 치명적 문제 경우에만 inform을 줌
밑에 레이어는 헤더를 붙여서 전달만 할뿐. 동작에 영향 주지 않음. 동작은 같은 계층에서만 상호작용으로
크고 복잡한 기능들의 시스템을 표현하기 적절함.
- 모듈 단위 : 기능 단위로 시스템 분해
- 각 layer의 service에 대해 쉽게 구현
- 일부 기능에 대한 수정이 용이
- 기능의 Series 형태로 표현되므로 동작 흐름이 한눈에 보임.
- 동작 분석 및 디버깅이 용이.
PDUs of Layered Architecture
- N LAyer에서 발생한 PDU가 N-1 layer의 SDU가 됨.
- 하위로 갈수록 PDU 크기가 일반적으로 커짐
- N → N - 1 layer로 갈수록 PCI가 붙으면서 PDU가 커짐
- Fragmentation이 일어날 수 있으나 principle of transparecy는 보존됨.
- 조각으로 나눠지나 통신의 투명성이 손상되지 않고 유지된다는 것을 의미.
- N layer의 entity는 여러개의 N-1 layer의 entity와 연결될 수 있음
- 아래 방향으로 여러 SAP로 분기되는 형태는 가능
- N layer 의 여러 entity가 하나의 N-1 layer entity에 연결되면 안됨
N-1 layer entity가 routing을 하려면 SDU 내용을 알수 있어야 하며, 이는 principle of transparency 위반
Open Systems Interconnection (OSI) Model
- international Organization for Standardization(ISO)에서 제안한 통신 네트워크의 표준 계층 구조
- 1970년대 만들어질 당시는 7계층
- 현 internet은 5계층
- Link layer와 physical layer를 합쳐서 4계층 모델로 보기도함.
응용계층(SMTP,FTP,SSH,HTTP)
- 통신 네트워크를 사용하는 실제 프로그램 혹은 app.
전송계층(TCP,UDP)
- 하드웨어와의 연결 담당 (ex : 포트 번호)
네트워크 계층(IPv4, IPv6)
- 호스트 구분
링크계층(이더넷 와이파이)
- 실제 어떤 네트워크 선택할것인지.
물리계층
- 아날로그 신호로 바꿔줌
L1 : Physical layer(물리계층)
- 물리적 으로 연결된 링크를 맞는 실제 물리 신호 생성
- 1 hop으로 연결된 상대방에게 직접 정보 전달
- 유선으로 줄것이냐 무선으루 줄것이냐 어떤 주파수로 줄것이냐
- 피지컬 레이어 이슈
- Characteristics of transmission medium(전송매체 특성)
- Nature of the signals (신호및시스템, 통신이론)
- Data rates(전송률)
L2 : 링크 계층(Data link layer, Medium Access Control(MAC) layer
- 통신 매체에 대한 접근 제어
- 여러 개체가 하나의 통신 매체를 공유하는 것에 대한 교통 정리
- 여러대의 컴퓨터가 하나에 연결한다 했을 때(1 hop) 어떻게 선택할 것이냐
- L1과 보통 세트이며, 링크의 물리 매체 특성에 영향을 많이 받음
L3 : 네트워크 레이어 → 우편 배달 시스템
- 패킷 흐름을 결정하는 핵심 역할
- 우편 서비스에서 보내는 사람 → 받는 사람으로 우편물 전달 역할
- 라우팅 알고리즘
L4 : Transport layer → 우체통
- 어플리케이션 종단간 패킷 전달 역할
- 어떤 애플리케이션에게 이 패킷을 전달 해야할까?
- 이때 돌아가는 프로토콜을 TCP, UDP
L5 : Application layer
-
통신 네트워크를 사용하는 실제 프로그램 혹은 app.
-
HTTP
-
SMTP
-
FTP
-
DNS
-
Application, transport layers
- 보통 SW이며, end-system에만 존재
-
Physical, data link layers : 특정 통신 link에 국한된 기능
Network interface card
에 구현됨 (HW + SW)
-
Network layer : 네트워크를 통한 packet 전달
- End-system / Packet switch 등에 분산되어 동작 HW + SW
OSI model 관점에서 본 Internet 상에서의 packets 전달 예시
- Switch/router는 모든 layer 가 없고, 하위 layer들만 가짐
- 각 layer가 자신만의 정보(header)를 붙이면서, 상위 layer의 packet을 encapsulation(캡슐화)함
각 계층의 PDU
- Message(응용)
- Segment(전송)
- Datagram(네트워크)
- 네트워크 계층의 PDU를 데이터그램 = 패킷 이라고함.
- Frame(링크)
댓글남기기