728x90
프로토콜 (Protocol)
- 정의
- 통신에 사용되는 약속 (수신호, 언어 같은)
- 반드시 통신하는 양쪽이 대칭 관계여야 한다.
- 다양한 컴퓨터 통신 시스템/응용으로 인해
- 기능이 많아져서 프로토콜이 복잡해지고
- 불명확한 해석이 생기고
- 복잡한 시스템 때문에 변경 등 관리가 어렵고
- 새로운 프로토콜이 필요할 때마다 반복하게 된다
→ 복잡성을 해결하는 구조적 기법이 필요하다
→ protocol을 정하는 방법을 일반화/구조화 하자!
계층화
- 복잡한 문제는 한번에 풀 수 없다.
- 복잡한 내용/문제를 숨겨서 문제를 단순화 → 추상화한다 (abstractions)
- 추상화된 문제/내용 해결 → 추상화를 recursive하게 적용한다.
- 추상화는 자연스럽게 계층화를 유도하게 된다.
- 통신 프로토콜은 여러 계층으로 정의된다.
- 각 계층은 하나의 기능을 하는 부품/개체로서 다른 프로토콜에서 재사용 가능하고, 다른 계층에 영향 없이 교체 가능하다.
프로토콜 계층/개체
- 프로토콜 계층/개체
- (전체) 프로토콜을 구성하는 계층. 프로토콜의 구성요소
- 프로토콜 자체도 프로토콜이다.
- 서비스 인터페이스 (service interface) : 해당 프로토콜의 작업을 정의한다. 상위 계층이 어떻게 해당 계층을 사용하는지 설명하는 것.
- 동료 인터페이스 (peer-to-peer interface) : 동료간에 교환되는 메시지를 정의한다. 상대방의 동일 계층과 통신하는 것.각 프로토콜 개체의 인터페이스
전체 프로토콜 정의 : 프로토콜 그래프
- 프로토콜 그래프 (또는 프로토콜 스택)
- 프로토콜 계층을 어떻게 쌓는가
- 프로토콜의 모음(collection)과 그들 사이의 의존관계 (dependency)를 표현한 것
- 동료간의 통신 (peer-to-peer)은 대개 간접적/논리적으로 이루어진다.
- 실제 통신은 하위 계층을 사용하여/위임하여 이루어진다.
- 하드웨어 수준에서만 peer-to-peer 가 직접적이다.
- 제일 하위 계층에서는 logical과 physical이 만나게 되어 physical하게 통신한다. (전화선 등)
- 하위 프로토콜을 공유/재사용할 수 있다.
→ 다중화 (Multiplexing) 및 역 다중화 (Demultiplexing) — demux key (TCP port number 또는 protocol ID가 demux key가 될 수 있다)
계층적 프로토콜에서 통신이란?
→ 논리적 통신 : peer-to-peer 통신을 의미
→ 물리적 통신 : 하위 계층에 send down 하는 것.
계층적 프로토콜 : 동작 원칙
모든 프로토콜이 해당 원칙으로 구성된다. (모든 프로토콜에 적용되는 규칙)
- 포장/캡슐화 (encapsulation) : 헤더 (header) / 바디 (body)
- 프로토콜의 계층에서 recursive하게 send down하며 encapsulation(헤더 붙이기)을 수행한다. data는 건드리면 안 된다.
- 통신의 수신자에서 전달받은 메시지를 계층을 거쳐가며 decapsulation (헤더 떼기)을 수행한다.
모든 프로토콜의 동작원칙이 같다면?
구조적으로는 같지만 header에 넣기 위해 하는 일, 상대방의 peer의 의미를 해석하는 것은 프로토콜마다 다 다르다.
Service interface의 실체 : 대부분 함수 시그니처를 의미한다.
peer-to-peer interface 의 실체: peer간의 약속 → header의 길이나 의미 등등. 서로 다른 프로토콜은 header의 길이, 해석 등이 다르다.
Layering: Logical communication
Layering: Physical communication
추상화/계층화 개념 정리
- 추상화 : “~ 기능은 있다고 가정하자”⇒ “~ 기능”문제로부터 해방 (아래 계층이 기능을 맡게 되므로 상위 계층은 해당 문제로부터 해방될 수 있는 것)
- ⇒ “~ 기능이 하위 계층에서 제공된다”고 가정
- 계층화 : “여러 계층으로 나누어 각 계층이 해당 기능을 담당한다”
- ⇒ 하위 계층이 제공하는 기능을 (정해진 서비스 인터페이스에 따라) 이용해서, 주어진 기능을 상위 계층에게 제공
표준 구조 (Standard Architectures) - 1
- Open Systems Interconnect (OSI) Architecture
- 계층은 몇 개로 할 것인지? 각각 무슨 역할을 하는지? 모든 프로토콜에 적용할 것인지를 각각 정의한 것.
- OSI 모델 구조는 7계층 모델이다.
- 서로 계층이 다르면 통신할 수 없다.
- recursive하게 send down하며 encapsulation하고, 반대편에서 decapsulation하는 형태
7계층 (기능) 정의
- 응용(Application) 계층 : 응용 자체와 관련된 사항만 존재
- 프리젠테이션(Presentation) 계층 : 데이터 (암호화) 표현 방법과 관련된 사항
- 세션(Session) 계층 : 대화 패턴과 관련된 사항 담당
- 트랜스포트 계층 (Transport - TCP) : 통신 응용 사이의 신뢰성 있는 메시지 교환
- end-to-end reliable data transfer (process간 channel 제공)
- 단말이 끝이 아니라 앱이 실제 통신의 주체가 된다.
- 패킷이 많으면 overflow 때문에 잘 와도 버려지는 경우도 존재한다.
- 네트워크(Network) 계층 : 네트워크를 통해 연결된 호스트 (단말) 사이의 데이터 (패킷 - 프레임의 묶음) 교환
- 단말, 스위치, 노드에 모두 존재한다.
- Host to Host
- 링크(Data link) 계층 : 하나의 링크로 연결된 두 노드 사이의 비트 묶음 (프레임) 교환.
- Ex. 0, 1 sequence를 잘라 보내는 것. 링크의 장애/오류 극복 (천재 지변 등)
- 물리(Physical) 계층 : 링크를 통해 물리적인 신호 교환과 관련된 사항 담당
- 신호는 반드시 0, 1을 의미한다.
- 한 비트와 관련되어 있다. 비트와 관련된 건 1계층
각 계층마다 누가 무엇을 하는지가 중요하다.
상위 계층은 하위 계층을 ‘사용’한다. (계층은 하위 응용이 필요하다)
1~3계층은 존재감이 미약하다.
표준 구조 (Standard Architecture) - 2
- 인터네트 (Internet) 구조
- Internet Engineering Task Force (IETF)
- 응용 및 응용 프로토콜 (FTP, HTTP)
- 특징
- 계층화를 그대로 따르지는 않는다. (계층화 유연성)
- 모래시계 형태의 모양
- 설계와 구현을 병행해서 진행
OSI (7계층) 모델에 대해 설명하시오
- 컴퓨터 네트워크 설계/구현의 구조체계(Architecture) 표준
- 실제 구현이 아닌 문제 인식/설계의 참조 모델
- 통신에 필요한 모든 기능/기술 요소를 7계층의 계층 구조로 배분 (공유, 재사용 가능)
- 하위 계층 서비스를 추상화하고 상위 계층을 해결한다.
- 각 계층 설명
- 물리계층 : 직접 연결된 노드 사이의 비트 전송
- 링크계층 : 직접 연결된 노드 사이의 프레임 (비트 묶음) 전송
- 네트워크 계층 : 스위치로 간접 연결된 호스트 사이의 패킷 전송
- 트랜스포트 계층 : 종단간 (end-to-end) 신뢰성 있는 전송
- 종단 : 응용이 연결되는 지점
728x90
'School Lecture Study > 컴퓨터 통신' 카테고리의 다른 글
6. 프레이밍 (Framing) (0) | 2022.10.25 |
---|---|
5. 인코딩 (Encoding) (0) | 2022.10.25 |
4. 점대점(Point-To-Point) 링크 - 하드웨어 구성요소 (0) | 2022.10.25 |
3. 네트워크 성능 (0) | 2022.10.25 |
1. 네트워크 기본 개념 - 요구사항 (0) | 2022.10.25 |