[데이터 통신] Introduction

이강희·2021년 9월 2일
1

데이터 통신

목록 보기
1/1
post-thumbnail

1. 컴퓨터 네트워크란?

자율적인 시스템들이 연결된 단일 집합체, 이를 Autonomous System이라고 한다.
즉, 하나의 네트워크 서비스를 제공하는 네트워크를 사용한 여러 자율적인 시스템 단말의 집합체라고 할 수 있다.
자율적인 시스템 상호 간 동일한 언어가 사용되어야 하며, 언어가 다를 경우 이를 연결할 수 있도록
Interpreter가 필요하다.

여기서 Distributed System에 대한 설명을 하고 넘어가자면, 이 또한 컴퓨터 네트워크라고 할 수 있으나(맞나?)
이는 자율적인 시스템이 아닌 하나의 Managing application에 의해 관리되는 여러 시스템의 집합체가 있다.

2. 컴퓨타 네트워크를 이용하는 목적

2.1 산업에서의 목적

산업에서 가장 중요한 목적은 Resource 공유 이다. 특정한 자원을 독점이 아닌, 소비자, 또는 타 기업, 정부와 고객 등과 공유하기 위해 컴퓨터 네트워크를 이용한다.

2.2 가정에서의 목적

이 또한 Resource 공유를 위함이나, 이는 산업에서의 개념과는 조금 다른 의미의 공유이다.
일례로 IoT환경에서의 공유는 정보를 주고 받음은 산업에서와 동일하지만 이를 활용하여 이익을 창출하기 보다는, 사용자의 편리를 추구하기 위함이다.

*모바일 유저의 네트워크

모바일 네트워크는 Wifi와 Celluler의 표준인 IEEE 802.11를 따른다.

이 때 우리가 알고있는 Mobile과 Wireless의 개념은 다르다.
Wireless이지만 Mobile인 것과 아닌 것이 있고
Mobile이지만 Wirelss인 것과 아닌 것도 있다.

3. Internet software structure

3.1 Client-Server Paradigm

전통적인 인터넷 패러다임으로, Client와 Server의 역할이 정해져 있다.
Server은 데이터베이스를 소유하고 있고
Client는 I/O를 담당한다.

Client는 Server에게 Request를, Server은 이 Request에 대한 Reply를 제공한다.
기존에는 특정 Server에 여러 Client가 몰리게 되면 Bottleneck Issue가 발생할 수 있었으나
최근에는 Server의 Power를 높히거나 request의 속도를 높혀 이를 해소한다.

3.2 Peer-to-Peer Paradigm

기존의 방식과는 다른 새로운 패러다임이다.
Server라고 정해진 역할이 없기 때문에 서로가 서로에게 직접 연결되어 정보를 주고 받는다.
즉, 사용자 자체가 Server이자 Client가 될 수 있다.
하지만 Server가 없기 때문에 원하는 Resource를 찾기 힘들다는 단점이 있다.
Server가 없기 때문에 Bottleneck 자체가 발생하지 않는다.

4. Network Hardware

네트워크를 다음의 기준으로 구분할 수 있다.

4.1 전송 방식에 대한 구분

4.1.1 Broadcast Network (One-to-All)

  • 하나의 공통된 Channel을 통해 통신한다.
  • One-to-N(n>=2) 방식인 Multicast의 일종이다.
  • 유지하기가 쉽고 비용이 저렴하다.
  • Size가 한정적이기 때문에 특정 Size이상 연결을 증가시킬 수 없다.

4.1.2 Point-to-Point Network

  • 기계 사이의 수많은 연결을 유지한다.
  • One-to-One인 Unicast의 일종이다.
  • 기계와 기계 사이에 수많은 연결이 존재하기 때문에 이를 관리할 Switch가 필요하다.
  • Switch가 존재하기 때문에 확장성이 좋다.
  • 연결이 많기 때문에 복잡하고 유지하는 데 비용이 많이 든다.

*어떤 네트워크에 어떤 전송 방식을 써야 하는가

작은 네트워크에는 Broadcast network를,
큰 네트워크에서는 Point-to-Point network를 사용한다.

4.2 Scale에 따른 구분

1m - Square meter - Personame area network (PAN)
10m~1Km - Room~Campus - Local area network (LAN)
10Km - City - Metropolitan area network (MAN)
100Km~1,000Km - Country~Continent - Wide area network (WAN)
10,000Km - Planet - The Internet

*Body area - for wearable device

4.2.1 PAN (Personal Area Network)

  • 비용이 저렴하고 구성이 간단하다.
  • 하나의 디바이스에 여러 디바이스를 연결하는 방식
  • Broadcast network의 일종
  • Master and slave 관계로, 일례로 컴퓨터에 블루투스 스피커, 마우스, 키보드를 연결하는 것. 명령 없이는 자유로이 I/O 및 동작을 할 수 없음

4.2.2 LAN (Local Area Network)

  • 수 킬로미터 내의 독자적인 network에 연결되어 사용하는 것
    -Switch가 없어 다루기 쉽다.
    -1000대 미만의 컴퓨터를 연결할 때 사용
    -한 지점에서 다른 지점까지 가는 데 걸리는 시간 (Propagation delay) 가 발생한다.
    -Size가 한정되어있다.
  • Broadcast network의 일종
  • 10Mbps~10Gbps의 속도를 가진다.
  • Master가 없고 Arbitration mechanism에 의해 전송 순서를 정해 컴퓨터 간 데이터 전송 시 발생할 수 있는 충돌을 방지한다.

예 ) IEEE 802.3 (Ethernet), IEEE 802.11 (WIFI), IEEE 1394 (FireWire)

  • 이더넷와 WIFI 를 이용한 LAN
    • 이더넷
      • 이더넷 스위치에 각 기기를 연결하여 사용
      • 가격이 WIFI를 이용할 경우보다 비싸다.
      • 속도는 WIFI를 이용할 경우보다 빠르다.
    • WIFI
      • 네트워크에 연결된 Host point, AP(acess point)에 각 기기를 무선으로 연결
      • 가격이 이더넷으로 구현한 경우보다 저렴하다.
      • 속도는 이더넷을 이용할 경우보다 느리다.

4.2.3 MAN (Metropolitan Area Network)

  • 10Km 이상 100Km 미만의 지역을 network에 연결
  • PAN, LAN과 같이 간단한 topology
  • Broadcast network의 일종
  • LAN과 유사한 방식으로 사용되나 LAN은 MAN이 될 수 없다.
    • LAN의 경우 네트워크의 속도와 크기에 영향을 받지만 MAN은 그렇지 않다.

4.2.4 WAN (Wide Area Network)

  • 지리적으로 매우 큰 (한 국가와 같이) 지역을 연결한다.

  • 효율이 매우 떨어지기 때문에 Broadcasting으로 구현할 수 없다.

  • Point-to-Point 로 구현되며 Store-and-Forward 방식의 SubnetLAN들로 구성된다.

  • Switch들과 이들을 연결하는 Line으로 구성된 Core networks(Subnet) 과 여기에 연결된 LANs(Access networks) 로 이루어져있다.

  • 구현 방법

    • 각자 독자적인 Line으로 연결하는 것 : 지하에 케이블을 매설하는 등의 방법으로 모든 지점을 직접 연결하는 방식이다. 속도는 빠르지만 비용이 비싸다.
    • VPN(Virtual Provate Network) : 전화망을 이용하는데, 이 전화망에 라우터에 설치된 IPsec을 입혀 사용한다.
    • ISP(Internet Service Provider) : 전화망을 있는 그대로 사용한다.
  • 작동 방식

    • Subnet 안에, Host들을 연결한 LAN 또는 MAN으로 구성된 Router(Switch)들의 집합으로 이루어져 있으며, 이들은 임의의 크기를 가진 Packet들을 주고 받으며 작동한다.

4.2.5 Wireless Networks

  • Cabling(기기들을 서로 네트워크에 연결하는 것)이 편리하다.
  • 속도가 Wired에 비해 느리다.
  • Wireless network의 예
    • PAN : Bluetooth
    • LAN : WIFI
    • MAN : 스마트폰의 통신망

4.2.6 Home Networks

  • TV, 냉장고 등 소형 컴퓨터가 장착된 장치들과 이들과 통신하기 위해 사용되는 장치들을 연결하기 위해 사용하는 Netwokr이다.
  • LAN과 다르게 확장성, 신뢰성이 필요하고 비용이 저렴해야 한다.
  • 소요 비용의 측면에서는 Wireless, 속도와 보안 측면에선 Wired가 권장된다.

4.3 Switching Techniques에 따른 구분

Switching의 기술에 따라 다음의 두 가지로 나눌 수 있다.

4.3.1 Circuit-Switched Networks

  • ISP를 이용한 network를 예로 들 수 있다.
  • End-to-End가 전화선으로 연결되어 있으며, 여러 장치가 연결되어있으면 각 장치에 일정한 속도를 지닐 수 있도록 나눠서 사용한다.
    • 시간대/주파수 별로 나눠서 제공한다.
  • 한 장치가 작업을 수행하는 중에는 나눠져 받은 하나를 독점적으로 사용한다.
    • 단, 작업을 수행하지 않는 경우에도 점유하고 있으므로 효율적이지 못한 부분이 있다.
    • 각 사용자에게 따로 독점적으로 제공하기 때문에 사용자가 서로 공유하지 않는다.
  • 사용 가능한 사용자의 수가 정해져있다.

4.3.2 Packet-Switched Networks

  • Internet이 해당 방식으로 이용된다.(확인필요)
  • End-to-End는 Data가 Packet으로 나뉘어져 전송된다.
  • 여러 기기 중 한 기기가 Data를 전송하려고 한다면, 가장 빠른 속도로 전송한 후 다른 기기가 사용할 수 있도록 한다. (해당 기기에 주어진 순간에는 가장 빠르게 작동한다.)
  • 사용자가 많아질수록 효율적으로 운영이 가능하다.

4.3.3 Circuit VS Packet

전송속도가 1Mbit link에서 Circuit 방식으로 10명이 이용할 경우

  • 1명당 100kbps의 속도를 갖게된다.

이 때 Packet 방식에선
N명의 사용자 중 각 사용자가 데이터를 보낼 확률을 p라 하고
데이터를 보내려는 유저가 n명이라 하면
NCnp^n(1-p)^(N-n)의 확률로 모두가 이용하게된다.

4.3.4 Four sources of packet delay

1. Nodal processing

  • Packet이 도착할 시 bit error을 확인
  • 다음 Packet은 무엇인지 주소를 확인한다.

2. Queueing

  • Packet은 Queue의 구조로 전송
  • 이미 전송되고 있는 Packet이 전송될 때 까지 기다린 후 전송된다.
  • 이 delay를 Queueing delay라고 한다. 이 때의 delay는 가변적이다.
  • Circuit에서는 모든 기기가 각자의 link를 갖고있기 때문에 이 delay는 발생하지 않는다.

3. Transmission delay

  • Signal로 변환하는 데 걸리는 시간을 의미한다.
  • R을 link의 전송속도(bps)
  • L을 Packet의 길이(bits)라 하면
  • bits를 link로 전송하는데 걸리는 시간은 L/R이다.
  • 이는 Circuit에서도 동일하게 나타난다.

4. Propagation delay

  • 전송하는 데 걸리는 시간을 의미한다.
  • link의 물리적 길이를 d
  • 평균 전달 속도를 s(~2x10^8 m/s)라 하면 (s와 R은 다르다. 같은 것이 아니다.)
  • Propagation delay는 d/s
  • 이는 Circuit에서도 동일하게 나타난다.

5.Network Software

복잡함을 줄이기 위해 Stack 방식의 계층 구조로 이루어져 있다.

  • Network Software Hierarchy
    • 각 계층은 높은 계층에게 특정 서비스를 제공한다.
    • 각 계층은 가상 기기를 포함한다.
  • Layering
    • Information hiding, Abstract data types와 동일한 뜻을 갖고있다.
    • "Divide and conquer approach"의 방식으로 복잡함을 줄인다.
    • 낮은 계층의 detail을 숨김으로써 높은 계층의 구축을 용이하도록 한다.
      • ex) 함수 내용->getc()->getline()에서 볼 수 있듯이 낮은 계층의 내용을 몰라도 사용이 가능

5.1 More Network Terminology

  • Service
    • 각 계층이 무엇을 하는지 정의한다. 다음 계층에 무엇을 전달할 지 결정
  • Interface
    • 어떤 방식으로 다음 계층과 통신하는 지를 얘기한다.
  • Protocol
    • 각 계층이 수평적으로 어떻게 통신하는 지 정의한다.

5.2 프로토콜을 정의하는 방법

  • Syntax of message : 구조
  • Semantics of a message : 뜻
  • Actions to take on receipt of a message : 행동

~9/7 데이터 통신 입문 Dongguk Univ. C.S.E

profile
Dongguk Univ. Computer Science Engieneering👋

0개의 댓글