- 프로토콜의 구조

 : 프로토콜은 수직의 구조를 가지고 있습니다. 이는 계층적인 구조를 가지고 있다는 것을 뜻합니다.

  파일을 전송해야 할 경우, 아래의 기능이 다 들어가 있어야 하므로 계층화 구조를 통해 하나로 만드는 것을

  Protocol Architecture 라고 합니다.

   

   파일 전송 예.

   1. Source는 우선 Path를 잡아줘야 합니다. 그러기 위해 Destination ID가 필요합니다.

   2. Destination System이 받을 준비가 되어 있는지 확인해야 합니다. (온라인의 경우에만 데이터를 보냄)

   3. 파일을 보내는 예제이므로 단말기 별로 파일을 처리하는 시스템이 다를 수 있으므로 모두 지원을 해줘야 합니다. (Window, Linux 등)

   4. 이질적인 시스템 간 Format이 다를 수 있으므로 이를 변환해 주어야 합니다.

 

 

 : Layer 구조

  임의의 Lay인 N 있을 경우, 수직적 계층 (N-1, N+1 등)을 사용하면 N 계층의 기능이 추가, 삭제 되더라도

  나머지 계층에는 영향을 주지 않습니다.

 

  위 Layer 와의 Interaction을 Upper Layer Interface, 아래 Layer 와의 Interaction을 Lower Layer Interface 라고 부릅니다.

  N Layer의 통신은 위, 아래 N+1, N-1 Lay와 하는 것이 아닌 네트워크를 통해 멀리 자신과 같은 일을 하는 상대방

  Peer와 통신하고 이를 Peer to Peer Interface 라고 합니다.  

 

  이러한 N에 대해 Interface를 설계할 방법을 OSI 7 계층 (N=1, ..., 7)에서 규정을 만들었는데, N-Primitive라고 합니다.

  N+1 Layer를 User, N Layer를 Provider 라고 표현합니다.

  각각의 Layer 별로 Define 된 Primitive가 생기고 이는 N Layer가 가져야 하는 기능의 집합 (프로토콜)이라고 할 수 있습니다.

 

 

 : 프로토콜의 중요한 특징

   1. Syntax

      어떠한 Format에 따라 표현이 되어야 합니다.

 

   2. Semantics

      어떠한 내용이 다루어 지고 있는지 내용 자체, 양식을 알려줍니다.

 

   3. Timing

      상대방의 입장을 반영해야 합니다. (접속, 준비 등)

      정보 사이의 순서를 표현해야 합니다.

 

 

 : Interaction의 주체

   Applications, Computers, Networks 사이의 Interaction을 프로토콜로 표현.

 - 시스템에서 Application은 여러 개가 수행이 가능하므로 Application 하나당 하나의 Application Layer 가 만들어 집니다.

 

 - Network Layer는 망이 해야하는 기능을 표현합니다.

   여러 개의 접속되는 단말들을 구별해주는 기능, 공간 상에서 어느 곳으로 보내는 기술 (라우팅)입니다.

 

 - Transport Layer는 단말이 해야하는 기능을 표현합니다.

   상대방 단말과 자신 사이 (Peer to Peer)에 정보를 손실, 오류없이 전달하는 역할을 합니다.

 

 - Application Layer는 어떠한 정보를 보낼 것인지 정보 자체를 만들어 내는 것입니다.

   파일, 영상, 이메일, 사진 등 다양한 것이 될 수 있습니다.

 

 

 : 3 Layer의 구조 

 - 망 요소 (라우터)는 최하위 Layer만 가지면 되고, 단말일 경우 모든 Layer를 가져야 합니다.

   이는 망과 단말 사이의 근본적인 차이입니다.

 

 - 위 Applications 쪽의 1, 2, 3, 4 등의 구멍을 Port 라고 부릅니다.

 

 - 통신을 하기위한 주소는 IP만 필요한것이 아니라 모든 Layer에 다 들어가 있습니다. 

   물리, 데이터 링크, 네트워크, 전송, 세션, 표현, 어플리케이션 계층 모든 Layer 별로 주소가 들어가야 합니다.

   OSI 7의 용어로 각 Layer의 주소를 Service Access Point 라고 부릅니다.

 

   이중에서 네트워크 계층의 주소를 NSAP이라고 하는데, 이를 IP 주소라고 합니다.

   TSAP, SSAP 등이 모두 존재하지만, TSAP = Header + NSAP 과 같이 하이어라키를 만들어 표현 가능합니다.

 

   그에 반해, TCP/IP는 이런 주소 확장 방식을 사용하지 않습니다.

   따라서 물리, 데이터 링크 계층의 주소를 HW Address 라고 부르고,

   Layer 별 다른 주소를 사용하므로 통신을 위해 주소를 변환하는 프로토콜이 별도로 표현합니다. (ARP, RARP, IARP 등)

 

 

 : 데이터를 포함한 그림 표현

 - 데이터를 보낼 경우 상대방 B의 망 주소만으로는 보낼 수가 없고, Peer to Peer 이므로 최종 수신자는 Entity Y입니다.

   따라서 Entity X 데이터의 목적지는 Computer B가 아니라 Entity Y이므로, Application 별로 Port가 지정되어 있습니다.

 

   Transport 계층에서는 Port to Port에 해당하는 Port 값을 Header에 붙여주고, 

   Network 계층에서는 어느 컴퓨터인지 식별하는 망 주소를 Header에 붙여주는 동작을 합니다.

 

 - 이후, 수신측 Computer B가 망을 통해 데이터를 받을 경우 Network 계층에서 위로 올라갈 때,

   망 주소는 필요없으므로 Header에서 제거 합니다.

   동일하게 Transport 계층에서 Port를 확인한 후 Header에서 Port 값을 제거하고 데이터를 위로 올립니다.

 

 - 각 Layer 별로 해야하는 기능이 어떤 Layer는 1번, 다른 Layer는 2번, 3번 등 각 횟수로 반복되는 것이 아니라,

   이는 망의 배열 구조에 따라 변경됩니다.

 

   OSI 7 계층에서 Upper Layer (Higher Layer)는 전송, 세션, 표현, 어플리케이션 계층으로 4개는 한덩어리로 나타냅니다.

   Lower Layer는 물리, 데이터 링크, 네트워크 계층으로 서로 쪼개질 수가 있습니다.

 

   장비에 따라서 부분적인 기능만 가지고 있을 수 있는데,

   예를 들어 전용선을 통해 1:1 통신시 아무런 망 요소가 필요없이 단말만 2개가 있으면 됩니다. (OSI 1-7 필요)

 

   1:1 통신시 망이 없을 경우 (OSI 4-7 필요),

   안에 망이 들어가 있을 경우 (Router 2개)는 데이터 링크 계층은 3번, 네트워크 계층은 2번 수행되어야 합니다. 

 

 

- TCP/IP 구조

 : TCP/IP는 TCP 하나, IP 하나가 아닌 인터넷에서 사용하는 모든 프로토콜의 집합을 통칭하는 것입니다.

 - PHY

   1. Interface에 대한 규정 

      - Cable (어떠한 전송 매체를 쓸 것인가에 대한 규정: 구리선, 광케이블 등)

      - Connector

   2. Signal에 대한 규정

      - Modulation

      - Rate

      - Encoding

 

 

 : 네트워크 계층의 대표적인 Protocol

   1. Network Layer Protocol

      - IP/ICMP/IGMP

      - ARP

 

   2. Routing Protocol

      - Distance Vector Protocol (RIP)

      - Path Vector Protocol (BGP)

      - Link-state Protocol (OSPF, IS-IS)

 

   3. RSVP Protocol

 

 

- TCP/IP 개념

 - 라우터에는 Layer 3까지만 들어있으면 됩니다.

 - Network 1, Network 2를 Sub Network라고 통칭합니다. (유선, 무선 등 다양하게 구성될 수 있습니다.)

 - TCP를 사용하므로 접속 지향형 Application 입니다.

 

 

 : TCP/IP 구조의 Protocol Data Unit

 - NPDU = N (Header) + TPDU 로 표현

   (NPDU는 위에서 내려온 PDU에 Header를 붙였고, 이를 Protocol Service Unit 라고도 부릅니다.)

 

 - Layer가 6일 경우, PPDU = P + APDU = 6-PSU 로 표현가능합니다.

 

 

- TCP (Transmission Control Protocol) 와 UDP (User Datagram Protocol) 

 TCP.

  - TCP는 대부분의 애플리케이션을 위한 전송 계층 프로토콜

  - TCP는 데이터 전송을위한 안정적인 연결을 제공

  - 세그먼트는 기본 프로토콜 단위

 

 UDP.

  - UDP는 TCP의 대안입니다.

  - 전송, 시퀀스 보존 또는 중복 방지

  - 프로 시저가 다른 프로 시저에 메시지를 보낼 수 있도록합니다.

  - 최소 프로토콜 메커니즘

  - IP에 포트 주소 지정 기능 추가

  - SNMP (Simple Network Management Protocol)와 함께 사용

  - 데이터에 오류가 발생하지 않았는지 확인하기위한 체크섬 포함

 

 

 - TCP는 Sequence Number가 존재하는 반면, UDP는 존재하지 않으므로 덩어리가 1개일 경우에만 사용합니다. 

   Sequence Number는 몇 번째의 덩어리인지 알려주는 기능을 합니다.

 

 - 오랜시간에 거쳐 많은 데이터를 보낼 경우, TCP를 사용하는 것이 맞습니다.

   모든 데이터가 필요할 때, 일부분이라고 깨지면 모두 다시 보내야하기 때문에 Block by Block으로 처리하는게 유리합니다.

 

 

- IPv4 Header

 

 

- IPv6 Header

 : IPv6는 오버헤드가 많습니다.

   IP 주소의 고갈을 방지하기 위해 IPv6의 Source Address는 IPv4의 Source Address에 비해 4배 확장된 16Byte의 크기를 가집니다.

   주요 특징은 Flow Label로 Label Switching을 지원하기 위해 만들었고, QoS를 제공할 수 있도록 합니다.

 

 

- 프로토콜 정리

 : 대다수 TCP를 사용하는 환경입니다.

 

 

'Computer Communication' 카테고리의 다른 글

데이터 통신, 네트워킹, 인터넷  (0) 2021.03.06