4 분 소요

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(전송률)



  • 통신 매체에 대한 접근 제어
  • 여러 개체가 하나의 통신 매체를 공유하는 것에 대한 교통 정리
    • 여러대의 컴퓨터가 하나에 연결한다 했을 때(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(링크)



댓글남기기