billions of connected compuing devices
host = end systems
running network apps
communication links
packet switches
: forward packets
routers
and switches
Internet : "network of networks"
Protocols : network 안에서 data들을 주고 받고 하는 것을 제어하는 Rule.
Internet Standards :
Internet은 기본적으로 개방성을 갖는다. 그래서 대부분의 Protocol은 Internet Standards가 있다.
application service를 제공해주는 infrastructure :
우리의 computer에서 실행된는 Application에서 Internet을 통해서 정보를 받아 Service를 할 수 있게 하는 것이 Internet의 기본적이 역할이다
provides programming interface to apps
Protocols
define format, order of messages sent and received among network entities, and actions taken on message transmission, receipt.network edge
: Internet application이 실행되고 있는 모든 system들은 edge에 있다.access networks, physical media
network core
: edge router
: edge system들에 붙어있는 routeraccess network
: edge router에 연결하는 network. accessHow to connect end systems to edge router?
digital subscriber line(DSL)
:freqeuncy divisoin multiplexing
: different channels transmitted in different frequency bands. (나중에 배울 내용)wireless LANs
wide-area wireless access
host가 router로 packet을 유선으로 보낼 때, 그 선이 얼만큼 빠르게 보낼 수 있는 매체인가? 에 따라 달라짐.
이러한 두 개 사이의 연결된 선을 link
라고 한다.
R
: link trasmission rate (bit / sec) : link가 초당 몇 bit 보낼 수 있는가?
packet trasmission delay
: R을 갖는 link로 L-bit를 보내는 데에 걸리는 시간
bit
: transmitter/receiver 사이의 propagates
physical link
: what lies between transmitter & receiver
guided media
: 유선(copper(구리), fiber(광케이블), coax)
coaxial cable
: two concentric copper conductorsfiber optic cable
: glass fiber carrying light pulses, each pulse a bitunguided media
: 무선(radio)
radio
: signal carried in electromagnetic spectrumradio link types
: TP(Twisted Pair)
:
two insulated copper wires. 속도에 따라 category가 달라짐
network core
: mesh of interconnected routers
packet switching
:
수억, 수천 억개의 router들이 연결되어 있다.
router들은 edge로부터 받은 message를 destination으로 전달해준다.
그럼 어떠한 방식으로 data를 전달하는가? ➡️ packet switching
packet switching에서 packet은 그냥 network에 던져진다.
network 상황에 따라서 하나의 영상에서 보내지는 frame들이 각각 다른 route로 전달되어질 수 있다.
store and forward
방식이다 :queueing and loss
:Two key network-core functions
routing
: determines source destination route taken by packetsforwarding
: move packets from router's input to appropriate router outputCircuit switching
: end-end resources allocated to, reserved for "call" between source & destFDM(Frequency Division Multiplexing)
:
모든 time에서 동시에 여러 device를 쓸 수 있게 frequency를 나누는 방법.
frequency를 나누기 때문에 나머지 user들이 쓰든 안쓰든 정해진 frequency만큼만 사용할 수 있어서 속도가 느린 상태로 고정된다.
또한 구현의 측면에서는 frequency 대역을 나누기 위해서 해당하는 공진 주파수를 맞춰야 한다.
모든 Host에서 해당 주파수를 맞출 수 있는 추가적인 HW가 필요하다
그리고 bandwidth가 다 다르기 때문에 해당하는 Rink도 다 다르게 되어 hop이 넘어갈수록 문제가 복잡해진다.
➡️ 위의 문제들로 인해 FDM은 Internet으로 사용될 수 없다. 주로 무선 network에 이용된다.
TDM(Time Division Multiplexing)
:
Time을 나누는 방법.
해당하는 user가 모든 bandwidth를 사용할 수 있다.
(시간으로 나눈 구간들을 slot이라고 한다. slot들이 반복되는 묶음을 1 frame이라고 한다.)
user수가 늘어나면, slot이 늘어난다.
TDM은 사용자가 적을 때는 효과적이지만, 사용자가 많아지면 내가 사용할 수 있는 slot이 짧고 오래 걸리기 때문에 문제가 된다.
또한 internet의 접속자들은 시시각각 가변적이라 TDM은 취약하게 된다.
TDM은 frame 구조를 만들기 위해서 centralized해주는 coordinator가 slot을 할당해준다.
따라서 통신에 참여하는 모든 user들 간의 tight한 동기화가 필요하다.
조금이라도 밀리면 누적되어 drift가 생긴다.
따라서 지속적으로 동기화해주는 작업도 필요하다.
TDM은 보통 BLE에 사용된다(Master와 slaves)
FDM, TDM은 여기저기서 사용되긴 하지만 위와 같은 이유로 Internet에 적용하기 어렵다.
그래서 Internet에 Circuit Switching 방식이 아닌 Packet Switching 방식이 사용된다.
Packet switching
allows more users to use network.congesetion
congestion
이 심하면, packet delay and loss가 발생한다.TCP(Transmission Control Protocol)
이다.RTP(Real Time Transport Protocol)
이 있다.End systems connect to Internet via access ISPs(Internet Service Providers)
각각의 network들은 ISP(KT, SKT, U+)업체들이 관리하는데
전세계모든 edge에 있는 device들은 해당하는 ISP network로 들어가는 것이다.
ISP는 아무리 미국에 있는 대형 회사라고 하더라도 그 ISP가 직접 전 세계 core를 관리하지 않는다.
core는 주인 없이 distributed하다.
Let's take a stepwise approach to describe current Internet structure.
Internet structure를 한 눈에 정리하자면, 다음과 같다.
Internet은 다음과 같이 계층적으로 되어 있다.
router는 data를 언제 받을지 모름.
router는 queue에 data가 대기하지 않을 때(=Rink가 idle 할 때),
router에 들어오는 속도가 내보내는 일정한 속도보다 빨라지면, queue에 쌓이기 시작.
queue에 기다릴수록 delay되는 시간 = queueing delay
queue가 꽉 찼는데 data가 계속해서 들어오면, data가 drop된다.
data를 보낸 host에게 drop되었다는 것을 알리지 않음.
그럼 host는 어떻게 아는가?
➡️ congestion이 일어났다.
(router에서는 자기가 가용할 수 있는 memory만큼 queue를 만들지 않음. delay가 많이 발생하기 때문.)
How long until caravan is lined up before 2nd toll booth?
Will cars arrive to 2nd booth before all cars serviced at first booth?
R : link bandwidth(bps) -> 내보내는 속도
L : packet length(bits) ->
= transmission rate
a : average packet arrival rate
traffic intensity
= 초당 얼마나 많은 packet들이 발생하는가?
= tranmission rate x arrival rate (단위는 없음)
traceroute program
:Throughput
: 단위 시간 동안 몇 bit를 받았는가?
instantaneous throughput
: rate at given point in time (순간 속도)
average throughput
: rate over longer period of time (평균 속도)
➡️ 우리는 average throughput을 고려한다. instantaneous throughput은 값이 너무 튀기 때문
Server side link의 capacity()와 Clienet side link의 capacity()가 다르다.
bottleneck link
라고 한다.Why layering?
:Internet protocol stack :
application
:transport
:network
:link
:physical
:physical, link, network , transport layer는 OS에 있어서 건드릴 수 없음.
우리가 건드릴 수 있는 것은 application layer.
OS로부터 network를 사용할 수 있는 socket을 받아야 함. (나중에 공부)
ISO : International Standards Organization
OSI : Open System Interconnection
OSI 7-layers model이 왜 나왔는가?
옛날 은행에는 computer(Unix)가 귀해서 한 대만 있었다.
그 multi-user들이 키보드와 모니터만 서버에 연결해서 사용했다.
그 각각의 모니터를 terminal이라고 함.
terminal로 연결해서 쓰는 Server들이 제조사마다 각각의 HW와 protocol을 사용했다.
그러다보니까 monitor와 keyboard가 그대로이고 Server만 바꿔도 호환이 되지 않았다.
그러한 번거로움을 없애기 위해
ISO에서 "개방형 형태로 통신, 네트워크를 통해서 가는 system들은 표준화된 rule을 따르면 다 호환이 될 수 있도록 해보자"해서 reference model을 만듦 ➡️ 7 layer
ISO/OSI reference model
= OSI 7 layers model
:
presentation
:session
:그런데 왜 internet에서 presentation layer, session layer를 뺐을까?
internet이 나오면서 가장 먼저 나온 application이 web이었다. (HTTP)
HTTP는 기본적으로 stateless이다. (연결을 유지하지도 않고 server에 web page를 요청하면, 자료를 browser에 보여주고 끝)
모든 Internet application들이 암호화, 로그인정보 유지가 필요하지 않기 때문에
internet protocol stack에서는 presentation, session에 관련된 부분을 application layer와
또한 암호화와 관련된 security들은 transport layer(TCP)에서도 처리하도록 한다. (TLS, SSL, HTTPS)
그래서 원래는 OSI 7 layer가 먼저 생겼지만
presentation, session layer를 application layer 또는 transport layer에 포함을 시키고,
지금의 internet protocol stack이 되었다.
참고로 이때부터 개방형 시스템의 붐이 일어남.
상호호환 가능하게 만들어짐. IBM, NVIDIA 등 이때 많은 발전을 이룸.
Apple은 그 누구와도 호환하지 않음. (독자 개발)
source의 message를 destination으로 보내줘야 하는데,
그 message를 어떻게 internet을 통해서 destination까지 잘 보내줄 수 있을까?
➡️ internet stack protocl
Header
와 Data
가 있음.Encapsulation
:
이렇게 각각의 layer에서 각각의 일을들을 header를 저장한다 (Encapsulation
)
access router에서 frame을 받으면 다음과 같다.
여기서 Decapsulation을 통해 message를 얻는다.
카톡을 보낼 때 encapsulation, decapsulation 과정이 항상 진행된다.
각각의 modularization된 layered architecture에서 일을 수행하여 message가 보내지는 것이다.
network security는 모든 layer에서 고려되어야 한다.
catch-up
: attack이 발생하고 나서, 수습을 한다.
(나오지도 않은 virus에 대해서 백신을 먼저 만들지 않는 것처럼)
malware
라는 이상한 SW를 Internet을 통해 host에 전달
(internet에 연결된 host들을 이용)
infected host can be enrolled in botnet
, used for spam.
감염된 host들은 botnet이라는 group에 들어가게 된다.
Denial of Service(DoS)
: attackers make resources unavailable to legitimate traffic by overwhelming resource with bogus traffic
Distributed DoS(DDOS)
:
단일 컴퓨터의 Process로 공격하는 것이 DoS.
DDoS는 여러 host들이 분산적으로 동시에 공격하는 것.
packet sniffing
:IP spoofing
: send packet with false source addressskip