본문 바로가기

CS/Network

[네트워크] Ch1 - Delay, loss, throughput in networks, Protocol layers, service models, Networks under attack: security, Internet history

 

이전 글

[네트워크] Ch1 - 인터넷과 프로토콜, network edge


✨ 1.4 Delay, loss, throughput in networks

network의 performance를 이야기할 때 delay, loss, throughput을 중요하게 생각한다.

📌 Four Sources of packet Delay

생길 수 있는 delay에는 4가지 종류가 있다

1️⃣ dproc : nodal processing

패킷이 노드에 도착하면 노드는 이를 processing한다.

특징

bit errors를 체크한다 : 잘 건너 온 것인지 체크한다

output link를 결정한다 : 어느 링크로 뽑아줘야 하는지 결정

일반적으로 msec보다 작은 딜레이를 가진다.

2️⃣ dqueue : queueing delay

outgoing link로 실려 나갈 수 있는 queue인 buffer로 들어가게 된다. 이 통로는 한정되어 있기 떄문에, buffer에서 기다리는 시간을 queueing delay라고 하는데, 노드의 복잡한 정도에 따라서 딜레이의 수준이 달라진다.

패킷이 진입 시 노드 router의 congestion이 얼마나 심하냐에 따라 달라질 수 있다.

따라서 유일하게 가변적인 Delay이다.

3️⃣ dtrans : transmission delay

내 차례가 되었을 떄, 패킷을 링크에 밀어 넣는 시간이 필요하다. 이를 trasmission delay라 한다.

패킷의 길이와, 링크의 bandwidth에 따라 딜레이가 달라진다.

L : packet length (bits)

R : link bandwidth (bps)

drans = L/R

4️⃣ dprop : propagation delay

링크를 타고 전달되는 동안 생기는 delay이다.

d : physical link의 길이

s : medium에서 전파 속도(propagation speed) (-2*10(8) m/sec)

dprop = d/s

📌 Queueing delay (revisited)

이유

큐잉 딜레이가 발생하는 이유는, outgoing link에서 뽑아내는 속도보다 패킷들이 더 빠른 속도로 유입되기 때문이다.

노드에 유입되는 양

→ (단위 시간당 도착하는 패킷의 수) * (패킷의 길이로 단위 시간당 도착하는 트래픽)으로 결정

R : link bandwidth ( bps )

L : packet length ( bits )

a : average packet arrival rate

La / R ~ 0 : queueing delay가 작다

La / R > 1 : queueing delay가 크다

La / R > 1 : 0.7 정도가 넘으면 average queueing delay가 급격히 커지는 모습을 볼 수 있는데, 이는 a가 average packet arrival rate이기 때문에 순간적으로 La가 R보다 큰 경우가 있어 큐에 쌓여 있게 되고, 이러한 현상으로 인해 average delay가 평균적으로 무한하게 된다.

📌 Packet Loss

링크 앞에 존재하는 queue는 한정된 용량을 가진다.

La/R이 1에 근접하게 되면, queue가 경우에 따라 꽉 차있는 상황이 될 수 있다.

이처럼 queue에 저장할 수 없는 상황에서는 Loss가 발생하게 되는 것이다. 그렇다면 재전송을 해야 하기 때문에, 사용자 입장에서는 딜레이를 느끼고, 네트워크에서는 이전 노드에서 다시 패킷을 보내기 떄문에 리소스를 많이 낭비하게 된다.

📌 Throughput

⁉️ 정의

throughput은 단위시간 당 Source로부터 Destination까지 배달한 traffic의 양이다. (bits/sec)

위와 같이 Rs와 Rc가 다른, 즉 연결된 link의 capacity가 다른 경우 더 작은 대역폭을 가진 Rs에 의해 throughput이 결정된다.

⭐ bottleneck link

end-end throughput을 결정하는 end-end path 위의 link를 bottleneck link라고 한다.

⁉️ Internet scenario

위와 같이 10개의 커넥션이 backbone bottleneck link R bits/sec을 공유할 때

end-end throughput의 per-connection은 min(Rc, Rs, R/10)이 될 것이다.

실제로, bottleneck은 보통 Rc 또는 Rs와 같은 edge에서 발생하고, Network Core에서는 발생하지 않는다.

✨ 1.5 Protocol layers, service models

📌 Protocol이란

프로토콜은 layering 구조로 정리되어, 방대하고 복잡한 구조를 구성하고 있다. 여기에는 장점도 있고 단점도 있다.

장점

명확한 레이어링은 복잡한 시스템의 각 부분을 identification하고 relationship을 만드는 것을 쉽게 만들어준다.

모듈화를 하면 커다란 시스템을 업데이트하고 유지하는 일이 쉬워진다.

단점

레이어는 고유한 목적을 가지고 구성되는데, 이러한 목적들이 겹치는 레이어가 존재할 수 있다. ex) per-link와 end-to-end error recovery

한 레이어의 기능에 다른 레이어와의 교류(정보)를 요구할 수도 있다.

📌 Internet protocol stack

Internet protocol은 5계층을 가지고 있다.

1️⃣ application : 네트워크 applciations를 supporting한다

FTP, SMTP, HTTP(Web)

유저가 application 에서 발생시킨 데이터를 포장해서 메시지로 만드는 역할을 한다.

이러한 메시지를 transport 계층에 전달한다.

2️⃣ transport: process-process data transfer

TCP, UDP

Source host의 Source process가 message를 만들어 내고, destination host의 destination processor로 이를 전달하는 역할을 transport layer가 한다.

process - process transfer를 하기 위해서는 source host에서 destination host로 전달해야 하기 때문에 이를 network layer에 요청한다.

3️⃣ network : source에서 destination으로 가는 datagrams를 routing한다.

IP, routing protocols

source에서 destination으로 가는 길을 routing하기 위해서는 hopping을 하면서 찾아가야 하는데, 이를 link에 요청한다.

4️⃣ link : 이웃한 network elements 사이의 데이터를 전달한다.

Ethernet, WiFi, PPP

5️⃣ Physical : 물리적인 매개체를 통해 bits가 전달된다.

📌 Encapsulation

application과 transport는 고층의 layer이기 때문에 end system에만 존재한다.

network 계층은 routing을 하기 때문에 router에도 존재한다.

switch에는 routing 기능이 없다.

 

각 계층에서는 하위 계층을 지나가기 위해서 각각의 헤더를 만들어서 캡슐화를 하게 된다.

따라서 각각이 peer를 만날 때까지 메시지가 유지될 수 있도록 한다.

헤더를 가지고 각자의 목적지가 맞는지 확인해서 더이상 이동을 진행할 것인지에 대해 판단한다.

 

PDU = Protocol Data Unit : 데이터 통신에서 상위 계층이 전달한 데이터에 붙이는 제어 정보

각각의 PDU에 대한 이름이 다르다.

application: message → transport: segment → network: datagram → link: frame

✨ 1.6 Networks under attack: security

📌 Network security

1️⃣ 네트워크 보안의 영역

90년대 이후로 인터넷이 상업화가 되면서 많은 사람들이 인터넷의 사용자가 되었고, 이후 중요한 문제가 되었다.

original protocol design 자체에는 보안 메커니즘이 없었다. 따라서 refactor 되었다.

다루는 부분

네트워크를 공격하는 방법

네트워크에 대한 공격을 어떻게 방어할까

공격에 면역을 가지는 구조가 어떠할까

malware

virus : 받아서 실행을 해야만 전파가 되고 복제가 된다

worm : 받기만 하면 저절로 구동이 되어서 self-replcating을 한다

spyware malware

keystrokes, web site visited, upload를 collection site에 기록한다

Botnet

DDoS나 spam에 사용되는 이미 감염된 컴퓨터들

2️⃣ 공격의 유형

⁉️ Denial of Service (DoS) :

garbage packet을 많이 보내서 실제 사용자가 사용하지 못하도록 하는 것

  1. target을 결정한다
  2. 네트워크 주변에 있는 hosts들을 malware를 보내서 botnet으로 만들어 버린다.
  3. target으로 packet을 보낸다.

⁉️ Packet “sniffling”

wifi나 shared ethernet 환경에서 일어날 수 있다.

medium의 여러 호스트들이 연결되어서 sharing하는 상황(broadcast media라고 한다)에서 일어난다.

NIC(Network Interface Card)에는 물리적으로 고유한 address가 있다. physical 계층에서 하는 일은, frame을 받으면 거기에 적힌 주소를 보고 나의 주소와 같을 때 위의 계층으로 올려 보내고, 일치하지 않으면 frame을 drop시켜 다른 곳으로 보낸다.

간혹 promiscuous network로 세팅해서 지나가는 모든 패킷을 저장하고 읽을 수 있다. 모든 NIC를 받아서 거기에 들어가는 정보들을 볼 수 있는 것이다.

 

⁉️ IP spoofing : 잘못된 source addresss를 보내서 마치 자신이 다른 source인 듯이 하는 것

✨ 1.7 History

67년에 최초의 인터넷인 ARPAnet이 등장한다.

이후 72년에 첫 protocol이 등장한다.

다른 종류의 네트워크들이 많이 등장하게 된다.