본문 바로가기
  • 시 쓰는 개발자
CS 개념/네트워크

데이터 통신 정리 (1) - 인터넷 소프트웨어 구조, 네트워크 분류

by poetDeveloper 2023. 9. 27.

(학교 수업 내용을 정리한 글입니다.)

 

Computer Network의 정의

  • single technology에 의해 자발적인(autonomous) 컴퓨터들의 상호연결된 묶음이다.
  • 많은 터미널이 mainframe에 연결되어 있는 것은 터미널들이 autonomous하지 않기에 Computer Network가 아니다.
  • 같은 네트워크의 autonomous 기기들은 single technology로 연결되어 있기 때문에 소통이 가능하다.

 

분산 시스템(Distributed system)과의 차이는?

  • 여기서 말하는 분산 시스템은 클라우드 컴퓨팅이나 WEB 등이 있다.
  • 독립적인 컴퓨터들은 single oherent system으로 묶여 있어서 각각의 컴퓨터를 분류할 수가 없다.
  • 각 컴퓨터들의 존재가 invisible, transparent하다는 점에서 computer network와는 다르다.
  • 이때, transparent는 있는데 없는 것 처럼 만드는 것으로써, 없는데 있는 것으로 보여주는 virtual과 대비된다.

 

컴퓨터 네트워크 목적

  • 기업, 가정 등에서 모두 사용되지만 결국 목적은 Resource Sharing (자원 공유, 정보 공유 등을 포함)이다.

 

인터넷 소프트웨어 구조 - 2가지

Client-Server 패러다임

  • 전통적인 인터넷 프로그램 방식이다.
  • Centralized(중앙 집권)된 자원을 공유하는데에 효과적이다.
  • 서버는 DB를 소유하고, 클라이언트는 I/O를 담당한다.
  • Resource를 찾기가 쉽지만 많은 사람이 몰릴 경우 Bottleneck 현상이 일어나기 쉽다.

Peer to Peer 패러다임 (P2P)

  • 새로운 인터넷 프로그램 방식이다.
  • Distributed된 자원을 공유하는데 효과적이다.
  • 정보가 각 사용자들에게 분산되므로 각각의 프로세스들이 서버와 클라이언트로서의 역할을 수행할 수 있어 고정된 서버와 클라이언트가 없다.
  • Bottleneck 현상이 일어나지 않는다. 하지만 필요한 정보를 찾을 때 오래걸린다.

 

Network 분류 - 4가지

  • Transmission technology (전송 기술)
  • Scale (크기)
  • Type of media (전송 방식)
  • Switching technique (전환 기술)

1. Transmission technology (전송 기술)에 따른 구분

(1) Broadcast Network

  • 단일 통신채널에서 공유한다.
  • Maintenance하기 쉽고, 단순하고, 저렴하다.
  • 1:N 방식으로 통신한다.
  • 작은 규모의 네트워크에서 적합하다.

(2) Point to Point Network

  • 스위치들을 통해 기계간 연결을 지원한다.
  • Maintenance가 어렵고 복잡하고 비싸지만 확장에 용이하다.
  • 1:1 방식으로 통신한다.
  • 큰 규모의 네트워크에서 적합하다.

2. Scale (크기)에 따른 구분

(1) PAN (Personal Area Network - 반경 1m 수준)

  • 1명을 위한 네트워크이다.
  • 주변 기기를 연결한다.
  • 비용 절감을 위해 Master-Slave 관계를 이용한다. → 컴퓨터가 일을 시키는 Master라면 마우스는 시키는 대로 하는 Slave가 됨.
  • BroadCast Network이다.
  • ex. 블루투스, RFID 등

(2) LAN (Local Area Network - 반경 1m ~ 1km 수준)

  • 1km 반경 수준에서 프라이빗하게 소유된 네트워크이다. 제한된 범위를 벗어나면 통신이 되지 않는다.
  • 전파지연(Propagation Delay)이 있을 수 있다.
  • 관리가 쉽지만 네트워크 연결은 컴퓨터 1000대 미만으로 할 수 있다.
  • Master가 없기 때문에 중재 매커니즘(Arbitration Mechanism)을 이용해 다음에 무엇을 보낼지 정한다.
  • BroadCast Network이다.
  • ex. IEEE 802.3 (Ethernet), IEEE 802.11 (WIFI), IEEE 1394 (FireWire), Power-line networks 

(3) MAN (Metropolitan Area Network - 반경 10km 수준, 도시정도의 크기)

  • LAN과 같은 방식으로 동작하지 않는다. 또한, LAN은 MAN이 될 수 없다.
  • 스위치를 쓰지 않지만, 성능 향상을 위해 Master와 같은 역할을 하는 것을 추가한다.
  • BroadCast Network이다. (BUS 구조를 가짐)
  • ex. 케이블 TV, Wireless MAN, DQDB 등

(4) WAN (Wide Area Network - 반경 100km ~ 1000km 수준, 그 이상은 The Internet)

  • 국가 정도의 크기이다.
  • 사이즈가 커져서 BroadCast Network를 사용하지 않는다.
  • Access Network 구조(= hosts OR LAN이고, LAN으로 구현)를 포함한다.
  • Core Network 구조(= Subnet)를 포함한다. (= Transmission lines + Switching element)
  • Transmission lines( Circuits[전화망], channels, trunks, links )으로 signal을 전달하는 "길"의 역할을 한다.
  • Switching element( packet switching nodes, routers, switches )로 Output을 결정하는데, "교차로" 역할을 한다.
  • Store-and-Forward 방식 사용 : 데이터를 메모리에 저장했다가 알맞은 Output에 전달한다.
  • WAN을 구축하는 3가지 방법 ... ??
  • 전용선을 이용한다면 항상 빠른 속도를 보장한다.
  • VPN (Virtual Private Networks) : IPsec을 설치하여 보안을 강화하였다.
  • ISP (Internet Service Proivider) 또한 share line이다.

3. Type of media (전송 방식)에 따른 구분

(1) Wireless Network

  • 무선이지만 느리다. 또한 오류가 많다.
  • Wireless PAN : Blootooth
  • Wireless LAN : WIFI
  • Wireless WAN : Cellular telephones (5G)

4. Switching technique (전환 기술)에 따른 구분 ★★★

(1) Circuit Switching

  • "Call 단위"로 자원을 예약한다. (End-to-End resources reserved for "call")
  • 하나의 Physical Link를 여러개의 Logical Link로 나누어 공유한다.
  • 한번 Call로 만들어지면 Circuit을 독점적으로 사용하기 때문에 performance가 보장되고(no sharing), 끊김이 없다.
  • Link Bandwidth의 분류
  • FDMA (Frequency Division Multiple Accesss) - 유선, 공간을 나누는 것과 같다.
  • TDMA (Time Division Multiple Accesss) - 유선
  • CDMA (Code Division Multiple Accesss) - 무선

(2) Packet Switching

  • Data를 "Packet 단위"로 나누어 각 라인에 보낸다.
  • 데이터를 많이 보내는 쪽이 더 많은 패킷을 사용한다.
  • 각 Packet은 Full Link Bandwidth를 사용한다.
  • Network Resource를 공유하고, Resource는 필요할때만 사용할 수 있다.
  • 사용자가 한번에 몰리면 기다려야 한다.

Circuit Switching   VS   Packet Switching 비교하기

  • Circuit Switching : 효율은 떨어지고, 성능 자체는 좋다. (dedicated)
  • Packet Switching : 효율적이지만 성능 자체는 좋지 않다. 더 많은 유저가 사용할 수 있다. (sharing)

상황을 하나 들어보자.

  • N명의 유저, 1 Mbps Link
  • 각 유저들은 1번 전송할 때마다 100 kbps가 들고, 한 유저마다 시간의 10%를 사용한다.
  • Circuit Switching : 10명만 사용 가능해서 낭비가 심하다.
  • Packet Switching : 더 많이 사용 가능. 만약 35명이 보낸다고 가정할 때, 10명의 사람들이 동시에 보낼 확률(0.0004)도 매우 낮다. 즉, 큐잉 지연 없이 보낼 수 있다. 이때의 수식은 다음과 같다.

  • P : 사용자가 데이터를 보낼 확률
  • N : 전체 사용자 수
  • n : 데이터를 보내는 사람 수
  • 즉, 여기서는 P가 0.1, N이 35가 되고 n은 상황에 따라 달리 넣어주면 된다.

② Packet Switching Delay 4가지 요소

  • Nodal processing delay → 매우 작음
  • 오류 검출 코드로 bit 에러를 체크한다.
  • forwarding table을 보고 어느쪽으로 나갈지에 대한 Output link를 결정한다.
  • Queueing delay  → Congestion level에 비례하여 커질 수 있음.
  • 같은 path를 가진 패킷들의 버퍼이다.
  • 앞에 있는 패킷이 나가는 속도보다 들어오는 패킷의 속도가 빠르면 들어오는 패킷을 큐에 보관해야한다.
  • 버퍼에 저장되어 전송 순서를 기다린다.
  • Transmission delay
  • Packet이 라우터를 빠저나가는 시간, 즉 Data(logical) → Signal(Physical) 과정을 의미한다.
  • L = packet length (bits) : 패킷의 크기 (길이, 사이즈)
  • R = link bandwidth (bps) : 변환속도 (스피드) → 1초동안 몇 bit를 Signal로 변환하는지 속도를 의미함
  • L/R = link를 따라 bits를 보내는데에 걸리는 시간
  • Propagation(전파) delay
  • 다음 라우터까지 도달하는데 걸리는 시간, 즉 라우터 → 라우터 과정을 의미한다. 
  • d = length of phsical link : 실제 link의 물리적 길이
  • s = propagation speed in medium (~2x10^8 m/sec) : 매체의 전파 속도
  • d/s : Propagation delay