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은 여러 네트워들이 상호 연결된 네트워크로, 기본적인 네트워크는 위 3가지 요소들로 구성된다. Host는 인터넷의 가장자리에서 네트워크를 필요로 하는 어플리케이션들을 실행하고, communication link와 여러 switch, router를 통해 데이터로 이루어진 packet이 이동하게 된다.
Protocol은 네트워크 상에서 통신 시 메세지의 구성, 교환 순서, 전송 시 action 등을 정해놓은 규약을 말한다. 대표적인 예로 HTTP, TCP, IP, Ethernet 등이 이에 속한다.
ISP는 인터넷 서비스를 제공하는 업체를 통칭한다. Residential ISP, corporate ISP, global ISP 등 다양한 ISP들이 존재하며 hierarchy를 가지고 있다.
인터넷에 관련된 표준들. IETF에서 RFC를 발표하며, RFC에서 우리가 따르는 protocol들에 대해 문서로 정리되어 있다.
인터넷은 분산된 어플리케이션들에게 일련의 서비스를 제공하는 infrastructure과 같다. 예를 들어, 메일, 비디오 스트리밍, 게임, 소셜 미디어 등의 서비스들은 모두 인터넷을 기반으로 서비스가 제공된다.
인터넷은 socket이라는 인터페이스를 제공하며, 이를 통해 host에서 실행되는 프로그램이 다른 host에서 실행되는 프로그램에 데이터를 전달하고자 할 때 어떻게 해야하는지 알려준다. (2단원에서 자세히 다룸)
Protocol이란, network entity들 사이에서 메세지를 주고 받을 때 format, order, action 등을 정의한 것이다. 예를 들어 우리가 사람 사이에서 대화를 하고자 할 때 "안녕?"과 같은 말로 인사를 한 뒤 "너 이름이 뭐야?"와 같은 질문을 하는 것 처럼, TCP protocol에선 연결을 요청에서 성공한 경우에 통신이 가능하다는 규칙을 가지고 있다.
최근 data center라는 곳을 만들어 대규모의 서버를 모아두기도 한다.
Access network란 end system을 첫 번째 router(a.k.a edge router)에 물리적으로 연결시켜주는 network를 뜻한다.
기존에 존재하던 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을 사용하게 된다(공유형태).
기존에 존재하던 DSL phone line을 이용해 통신을 하는 것으로, 케이블 방식과 유사하게 음성과 데이터가 다른 frequency를 이용해 송수신한다. 사람의 가청 음역대인 0 ~ 4kHz 구간을 전화 채널로 이용하며, 4kHz ~ 50kHz 구간을 upstream channel (client -> server), 50kHz ~ 1MHz 구간을 downstream channel (server -> cliet)로 사용한다. DSL modem과 DSLAM을 이용해 아날로그 신호를 디지털 신호로 변환해 사용한다.
광 케이블을 이용해 통신. 광케이블의 경우 유리로 이루어져 있기에 구리 재질에 비해 날씨, 낙뢰, 전파 등에 의한 품질저하가 적다는 장점이 있다.
Wireless access network는 end System을 router로 연결할 때 access point와 같은 장치를 이용해 연결하며, 이 과정에서 구역의 넓이에 따라 다른 방식을 이용한다.
기업, 대학등과 같은 장소에서 wired, wireless link 기술을 혼합하고, 여러 switch와 router를 이용해 통신을 한다.
Communication link는 다양한 소재로 이루어져있고, 각 소재별로 특징을 가진다.
Transmission delay를 구하여라 -> 이때 전송해야할 packet은 L bit -> link의 transmission rate는 R bps -> 총 delay는 L/R sec
즉 packet의 길이 / 링크 전송률 = 링크 딜레이 시간이다.
Circuit switching은 source와 destination 사이에 call을 설정하고, 해당 경로 상에 존재하는 switch들이 연결 상태를 유지하는 방식이다. (circuit, 회선이 유지되는 것) 오래된 전화망에서 사용하는 방식.
Circuit switching은 하나의 circuit을 고정해서 사용하지만 bandwith을 공유해서 사용할 수 있으며, 그 방법에는 FDM과 TDM이 있다.
Packet Switch
- 장점 : 더 많은 사용자 수를 수용할 수 있음. call setup이 필요하지 않아 단순한 구조. 필요할 때만 링크를 할당해서 사용.
- 단점 : 가변적이고 예측할 수 없는 delay 때문에 실시간 서비스에 부적합. (혼합 제어(Congestion control)이 요구됨)
Circuit Switch
- 장점 : 사용자 수가 확실히 정해져있는 경우에 한해 빠르게 전송 가능.
- 단점 : 필요에 관계없이 항상 링크를 할당해야 함. 사용자 수를 상대적으로 적게 수용.
위 문제를 통해 왜 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명 이상이 활성화 상태일 확률을 물어볼 수도 있다. 그땐 다음과 같은 식으로 쓰면 된다.
많은 access network를 커버하기 위해서, 수많은 Isp들이 계층 구조를 이루며 이어지게 된다.
Access network -> Regional ISP -> Global ISP -> IXP -> Content provider network (Google, Microsoft, Akami 등)
Packet은 언제 loss와 delay가 발생하는가? Packet은 router를 만났을 때 버퍼에서 기다리게 되고, 순간적으로 링크를 통해 도착하는 속도가 링크를 통해 나가는 속도를 넘어서는 순간 loss가 발생하게 된다.
Packet은 전송 과정에서 4종류의 delay가 발생할 수 있다.
이때, traffic intensity = La/R를 이용해 queueing delay를 측정하게 된다. 즉, traffic intensity가 0 근처일 땐 queueing delay가 거의 발생하지 않으며, 1에 가까워질수록 급격히 커지게 된다. 만약 1을 넘어서게 된다면 도착하는 packet이 내보내는 것보다 커지게 되는 것으로, infinite delay가 발생하게 된다. (즉, loss가 일어남.)
Router가 가지고 있는 buffer는 한정된 용량을 가지기 때문에, 만약 queue가 가득차게 된다면 lost가 발생한다. Lost packet은 이전 노드로 재전송되거나, 아무런 행동이 발생하지 않을 수 있다.
Throughput은 sender에서 receiver까지 비트가 전송되는 rate로, bits/time의 단위를 가진다.
위 처럼 특정 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이 된다.
Malware는 virus나 worm을 통해 host에 들어와서 키입력, 웹사이트 방문 기록, 업로드 정보 등을 알아낸다. 감염된 host는 botnet으로 분류되어 스팸이나 DDos 공격에 이용된다.
Dos란 네트워크 리소스 운영이 불가능하도록 악성 트래픽을 대량으로 보내 공격하는 것. 이를 통해 정상적인 접근 방식으로는 공격 대상엔 접근할 수 없게 된다.
위 그림에서 알 수 있듯이 source에서 destination으로 데이터를 전송할 때 각 layer에서 필요한 header를 추가하게 된다. 그 후 전송되는 과정에서 switch를 만나면 새로운 link header를 달게 되고, router를 만나면 새로운 link, network header를 달게 된다. 결과적으로 destination에 도착하면 모든 header를 역순으로 제거하게 된다.