[네트워크] Ch1. Introduction

옥주연·2023년 3월 23일
0

네트워크

목록 보기
1/9

Overview
1. What is the internet?
2. What is a protocol?
3. Network Edge: Hosts, Access network, Physical media
4. Network Core: Packet/Circuit Switching, Internet Structue
5. Security
6. Protocol layers, Service models

Internet

Components

  • Host (End System)
  • Communication link
  • Switch, Router

Internet은 여러 네트워들이 상호 연결된 네트워크로, 기본적인 네트워크는 위 3가지 요소들로 구성된다. Host는 인터넷의 가장자리에서 네트워크를 필요로 하는 어플리케이션들을 실행하고, communication link와 여러 switch, router를 통해 데이터로 이루어진 packet이 이동하게 된다.

  • Protocol

Protocol은 네트워크 상에서 통신 시 메세지의 구성, 교환 순서, 전송 시 action 등을 정해놓은 규약을 말한다. 대표적인 예로 HTTP, TCP, IP, Ethernet 등이 이에 속한다.

  • ISP (Internet SErvice Provider)

ISP는 인터넷 서비스를 제공하는 업체를 통칭한다. Residential ISP, corporate ISP, global ISP 등 다양한 ISP들이 존재하며 hierarchy를 가지고 있다.

  • RFC (Request for Comments)
  • IETF (Internet Engineering Task Force)

인터넷에 관련된 표준들. IETF에서 RFC를 발표하며, RFC에서 우리가 따르는 protocol들에 대해 문서로 정리되어 있다.

Service

  • Infrastructure

인터넷은 분산된 어플리케이션들에게 일련의 서비스를 제공하는 infrastructure과 같다. 예를 들어, 메일, 비디오 스트리밍, 게임, 소셜 미디어 등의 서비스들은 모두 인터넷을 기반으로 서비스가 제공된다.

  • Programming interface (Socket interface)

인터넷은 socket이라는 인터페이스를 제공하며, 이를 통해 host에서 실행되는 프로그램이 다른 host에서 실행되는 프로그램에 데이터를 전달하고자 할 때 어떻게 해야하는지 알려준다. (2단원에서 자세히 다룸)


Protocol

Protocol이란, network entity들 사이에서 메세지를 주고 받을 때 format, order, action 등을 정의한 것이다. 예를 들어 우리가 사람 사이에서 대화를 하고자 할 때 "안녕?"과 같은 말로 인사를 한 뒤 "너 이름이 뭐야?"와 같은 질문을 하는 것 처럼, TCP protocol에선 연결을 요청에서 성공한 경우에 통신이 가능하다는 규칙을 가지고 있다.


Network Edge

Host

  • Client (ex. desktop, laptop, smartphone)
  • Server (ex. web page, stream video, email)

최근 data center라는 곳을 만들어 대규모의 서버를 모아두기도 한다.

Access Network

Access network란 end system을 첫 번째 router(a.k.a edge router)에 물리적으로 연결시켜주는 network를 뜻한다.

  • Residential access network : 집
  • Institutional access network : 학교, 회사
  • Mobile access network : 와이파이, 4G, 5G

Access network : Cable-based access

기존에 존재하던 TV cable line을 이용해서 통신을 하는 것으로, tv 비디오와 데이터가 다른 frequency를 이용해 송수신하는 frequency division multiplexing(FDM) 방식을 기반으로 하고 있다. 이때 end system 쪽에 있는 cable modem에서, 서버 쪽에선 cable modem termination system(CMTS)를 통해 아날로그 신호를 디지털 포맷으로 변환해 데이터만 분리하게 된다. 주로 HFC(hybrid fiber coax)를 이용해 데이터들이 전송되며, 수많은 가정들이 ISP router와 연결할 때 같은 cable을 사용하게 된다(공유형태).

Access network : Digital Subscriber Line (DSL)

기존에 존재하던 DSL phone line을 이용해 통신을 하는 것으로, 케이블 방식과 유사하게 음성과 데이터가 다른 frequency를 이용해 송수신한다. 사람의 가청 음역대인 0 ~ 4kHz 구간을 전화 채널로 이용하며, 4kHz ~ 50kHz 구간을 upstream channel (client -> server), 50kHz ~ 1MHz 구간을 downstream channel (server -> cliet)로 사용한다. DSL modem과 DSLAM을 이용해 아날로그 신호를 디지털 신호로 변환해 사용한다.

Access network : Fiber-to-the-home (FTTH)

광 케이블을 이용해 통신. 광케이블의 경우 유리로 이루어져 있기에 구리 재질에 비해 날씨, 낙뢰, 전파 등에 의한 품질저하가 적다는 장점이 있다.

Access network : Wireless access network

Wireless access network는 end System을 router로 연결할 때 access point와 같은 장치를 이용해 연결하며, 이 과정에서 구역의 넓이에 따라 다른 방식을 이용한다.

  • Wirless local area networks (WLANs) : 건물 내부(~30m)와 같이 좁은 구역에서 WiFi를 이용해 통신
  • Wide-area cellular access networks : 10km에 달하는 넓은 구역에서 4G, 5G와 같은 cellular network를 이용해 통신

Access network : Enterprise network

기업, 대학등과 같은 장소에서 wired, wireless link 기술을 혼합하고, 여러 switch와 router를 이용해 통신을 한다.

  • Ethernet : Wired access. 100Mbps, 1Gbps, 10Gps (빠른 속도)
  • WiFi : Wireless access points at 11, 54, 450bps 이상 (느린 속도)

Communication link는 다양한 소재로 이루어져있고, 각 소재별로 특징을 가진다.

  • Coaxial cable(동축 케이블)
    - 2개의 동축 구리 / 양방향 / multiple frequency channel
  • Fiber Optic cable(광케이블)
    - 유리섬유 / 높은 속도 / 낮은 에러 / 멀리 전송
  • Wireless radio
    - 전자기파 / 단방향 (sender -> receiver) / 전파 과정에서 환경에 의해 반사, 방해
    • microwave, WLAN(wifi), cellular, satellite

Host의 Packet 전송 과정

  • Packet : 데이터 덩어리 + header로 이루어진 기본 블럭
  • Transmission delay (전송 지연) : Packet이 모든 비트를 link로 전송하는데 필요한 시간
  • Propagation delay (전파 지연) : 비트가 link를 통해 router로 전파되는데 필요한 시간
  • Link transmission rate (a.k.a link bandwith) : 전송률

Transmission delay를 구하여라 -> 이때 전송해야할 packet은 L bit -> link의 transmission rate는 R bps -> 총 delay는 L/R sec

즉 packet의 길이 / 링크 전송률 = 링크 딜레이 시간이다.


Network Core

  • 상호 연결된 router 덩어리
  • Packet Switching 시스템을 이용
    - Host가 application layer의 message들을 packet으로 쪼개 전송하는 방식.
    • Packet을 link를 통해 router들로 최대 link capacity에 따라 전송.

Packet-Switching : Store and forward

  • 전체 packet이 라우터에 모두 도착한 이후에 다음 링크로 전송될 수 있다.
  • Transmission delay : L bit를 밀어내는데 L/R sec
  • End-end delay : 밀어낼 때, 받을 때 두 번의 transmission delay가 발생하므로 2L/R sec. (이때 propagation delay = 0으로 가정)

Packet-Switching : Queueing delay, loss

  • 링크가 arrival rate > transmission rate일 때 발생.
  • Queue를 이용해 링크로 내보내기 전 기다리는 버퍼처럼 사용하되, 일정 메모리 크기를 넘어서면 lost될 수 있다.
  • queueing delay는 항상 발생하는 것이 아니라, 트래픽이 많아지는 구간에서 일어나는 것.

Two key network-core functions : Forwarding,Routing

  • Forwarding : 도착한 packet을 input link에서 적절한 output link로 옮기는 것 (실제 전송)
  • Routing : packet이 가야할 source-destination 경로를 판단하는 것 (방향 결정)
    - Routing algorithm

Circuit Switching

Circuit switching은 source와 destination 사이에 call을 설정하고, 해당 경로 상에 존재하는 switch들이 연결 상태를 유지하는 방식이다. (circuit, 회선이 유지되는 것) 오래된 전화망에서 사용하는 방식.

Circuit Switching : FDM, TDM

Circuit switching은 하나의 circuit을 고정해서 사용하지만 bandwith을 공유해서 사용할 수 있으며, 그 방법에는 FDM과 TDM이 있다.

  • FDM (Frequency Division Multiplexing)
    - Bandwith를 여러 band들로 나누어 call마다 고유한 band를 할당하는 방식. 좁은 band에서 max rate로 전송할 수 있다.
  • TDM (Time Division Multiplexing)
    - Bandwith를 시간에 따라 call을 할당하는 방식. 넓은 band에서 max rate로 전송할 수 있으나, 지정된 시간내에서만 가능하다.

Packet Switching vs Circuit Switching

  • Packet Switch
    - 장점 : 더 많은 사용자 수를 수용할 수 있음. call setup이 필요하지 않아 단순한 구조. 필요할 때만 링크를 할당해서 사용.
    - 단점 : 가변적이고 예측할 수 없는 delay 때문에 실시간 서비스에 부적합. (혼합 제어(Congestion control)이 요구됨)

  • Circuit Switch
    - 장점 : 사용자 수가 확실히 정해져있는 경우에 한해 빠르게 전송 가능.
    - 단점 : 필요에 관계없이 항상 링크를 할당해야 함. 사용자 수를 상대적으로 적게 수용.

  • 조건 : 10명보다 많은 사용자가 active할 확률은 0.0004보다 작아야 한다.

위 문제를 통해 왜 packet Switching이 circuit switching보다 많은 user를 가질 수 있는지 알 수 있다. 이 문제 상황에서 최대로 사용할 수 있는 user 수는 몇일까?

Circuit switching의 경우 TDM일 경우 한번에 1명씩 밖에 사용하지 못하니 FDM 방식을 사용해야 한다. 따라서, 사용자 별로 고유한 band를 가져야 하므로 최대 1Gb/100Mb = 10 명의 사용자가 사용할 수 있다.

Packet switching의 경우 여러 N명의 사용자가 동시에 접속하는 사용자가 10명이하만 유지된다면 사용할 수 있다. 이 상황을 확률 식으로 표현하면, N명의 사용자중 k명이 활성화 상태이며 활성화가 될 확률이 10% 이므로 NCk (0.1)k (0.9)N-k라 할 수 있다. 이때 위 문제의 조건에 따라 k = 11이 되는 순간 위 값이 0.0004보다 작아야한다. 이를 만족하는 최대 N은 34가 된다.

이 문제의 변형판으로, 35명의 사용자가 존재할 때 10명 이상이 활성화 상태일 확률을 물어볼 수도 있다. 그땐 다음과 같은 식으로 쓰면 된다.

Internet Structure

  • Host는 ISP를 통해 인터넷에 연결된다.
  • Access ISP들은 반드시 상호 연결되어 있다.

많은 access network를 커버하기 위해서, 수많은 Isp들이 계층 구조를 이루며 이어지게 된다.

Access network -> Regional ISP -> Global ISP -> IXP -> Content provider network (Google, Microsoft, Akami 등)


Performance

Packet은 언제 loss와 delay가 발생하는가? Packet은 router를 만났을 때 버퍼에서 기다리게 되고, 순간적으로 링크를 통해 도착하는 속도가 링크를 통해 나가는 속도를 넘어서는 순간 loss가 발생하게 된다.

Packet Delay's 4 sources

Packet은 전송 과정에서 4종류의 delay가 발생할 수 있다.

  • d_proc : nodal processing delay
    - Packet의 header를 조사해 에러를 확인하고 어떤 링크로 보낼지 결정하는데 걸리는 시간.
  • d_queue : queueing delay
    - Queue에서 링크로 나가는데 걸리는 시간. Router의 congestion level에 따라 결정된다.
  • d_trans : transission delay
    - Packet을 모두 내보내는데 걸리는 시간.
    • L bit, R transmission rate -> L/R
  • d_prop : propagation delay
    - Packet이 링크를 통해 router에 도착하는데 걸리는 시간.
    • Physical link length d, propagation speed s -> d/s

Packet queueing delay

  • R : Link bandwith (bps)
  • L : Packet length (bits)
  • a : average packet arrival rate (packet/sec)

이때, traffic intensity = La/R를 이용해 queueing delay를 측정하게 된다. 즉, traffic intensity가 0 근처일 땐 queueing delay가 거의 발생하지 않으며, 1에 가까워질수록 급격히 커지게 된다. 만약 1을 넘어서게 된다면 도착하는 packet이 내보내는 것보다 커지게 되는 것으로, infinite delay가 발생하게 된다. (즉, loss가 일어남.)

Packet loss

Router가 가지고 있는 buffer는 한정된 용량을 가지기 때문에, 만약 queue가 가득차게 된다면 lost가 발생한다. Lost packet은 이전 노드로 재전송되거나, 아무런 행동이 발생하지 않을 수 있다.

Throughput

Throughput은 sender에서 receiver까지 비트가 전송되는 rate로, bits/time의 단위를 가진다.

  • instantaneous : 특정 시각에서의 rate
  • average : 일정 시간동안 rate

위 처럼 특정 router를 기준으로 들어오는 링크의 throughput을 Rs, 나가는 링크의 throughput을 Rc라 하자.

위 문제의 답은 순서대로 Rs, Rc이다. 즉, throughput = min{Rc, Rs}을 가지며, 이 값을 가지는 곳이 bottlenect link가 된다.

이번엔 각각 10대의 client, server가 R의 throughput을 가지는 link를 공통적으로 지나는 상황이다. 만약 R이 Rc나 Rs에 매우 크다면 최종 throughput은 min{Rc, Rs}가 된다. 하지만 그렇지 않은 상황이며 10개의 connection이 동등하게 R을 나눈다는 가정하에 min{Rc, Rs, R/10}이 최종 throughput이 된다.


Security

Malware

Malware는 virus나 worm을 통해 host에 들어와서 키입력, 웹사이트 방문 기록, 업로드 정보 등을 알아낸다. 감염된 host는 botnet으로 분류되어 스팸이나 DDos 공격에 이용된다.

Denial of Service (DoS)

Dos란 네트워크 리소스 운영이 불가능하도록 악성 트래픽을 대량으로 보내 공격하는 것. 이를 통해 정상적인 접근 방식으로는 공격 대상엔 접근할 수 없게 된다.

Packet interception

  • Packet sniffing : 네트워크 상에서 자신이 아닌 다른 상대방들의 packet switching 과정을 엿듣는 것. 이 과정에서 비밀번호 유출.

fake identity

  • IP spoofing : 자신의 IP 주소를 속여서 접속하는 공격.

Protocol Layers, Service Models

Internet protocol stack

인터넷은 5개의 layer들로 구성되어 있으며, 각 layer별로 하나의 서비스를 구성하고 있다. 각 layer는 하위에 존재하는 layer의 동작을 기반으로 한다.
  • application layer : 네트워크 어플리케이션 지원
    - IMAP, SMTP, HTTP ... message 전송
  • transport layer : 프로세스 간의 데이터 전송
    - TCP, UDP ... segment 전송
  • network layer : source에서 destination으로 datagram을 routing
    - IP, routing protocol ... datagram 전송
  • link layer : 이웃한 네트워크 요소 간의 데이터 전송
    - Ethernet, 802.11 (WiFi), PPP ... frame 전송
  • physical layer : bit 전송

Encapsulation

위 그림에서 알 수 있듯이 source에서 destination으로 데이터를 전송할 때 각 layer에서 필요한 header를 추가하게 된다. 그 후 전송되는 과정에서 switch를 만나면 새로운 link header를 달게 되고, router를 만나면 새로운 link, network header를 달게 된다. 결과적으로 destination에 도착하면 모든 header를 역순으로 제거하게 된다.

0개의 댓글