Network core는 상호 연결된 라우터들의 집합이다. 이전 글에서 언급했듯, Hosts는 Application-layer의 메시지들을 패킷들로 나누고, 네트워크는 패킷들을 하나의 라우터에서 다음 라우터로 링크들을 가로질러 출발지에서 목적지까지 forwarding한다. 이를 Packet-Switching이라고 한다.

Forwarding과 Routing의 차이

  • Forwarding
    • Switching이라고도 불린다.
    • local action
      • 라우터의 입력 링크로 도착한 패킷을 적절한 라우터의 출력 링크로 보내는 행위
  • Routing
    • global action
      • 출발지에서 도착지까지(source-destination) 패킷들의 총체적인 경로를 결정하는 행위
    • routing algorithms이 존재.

 

Packet-Switching

Store-and-forward 방식

  • store and forward: 반드시 전체 패킷이 라우터에 도착한 후 다음 링크로 전송될 수 있다.
  • 패킷 전송 딜레이: L비트의 패킷을 Rbps 속도의 링크로 전송한다면 L/R(seconds)가 소요된다.

Queueing

  • Occurs when work arrives faster than it can be serviced
    • 라우터에서 패킷을 보내는 속도보다 패킷을 받는 속도가 빠를 때 출력 링크로의 전송을 대기하는 패킷들이 큐에 쌓인다.
    • 라우터의 메모리(버퍼)가 모두 차면 패킷 손실이 발생할 수 있다.

 

Circuit-Switching

End-end resource들이 출발지-목적지(source-destination) 사이에서 요청에 의해 예약 / 할당되는 방식을 의미한다.

링크(회선)을 독점하기 때문에 성능이 일정하게 보장된다.

공유되지 않기 때문에 서킷 세그먼트는 요청되어 사용되지 않는다면 유휴상태이다. 보통 traditional telephon network에서 자주 사용된다.

FDM과 TDM

  • Frequency Division Multiplexing(FDM)
    • optical, electromagnetic frequecy가 frequency bands로 나누어진다.
    • 각각의 요청에 고유한 대역이 할당되며, 대역의 최대속도로 전송될 수 있다.

  • Time Division Multiplexing(TDM)
    • 시간이 슬롯들로 분할된다.
    • 각각의 요청은 일정한 주기를 가지는 슬롯(periodic slot)으로 할당되며, 해당 타임 슬롯 주파수 대역의 최대 속도로 전송된다.

 

패킷 스위칭 vs 서킷 스위칭

예시를 들어보자.

  • 1Gb/s link
  • 각 유저는 100Mb/s의 전송 속도로 10%의 시간을 활동한다.

이 때, 서킷 스위칭은 10명의 사용자를 핸들링할 수 있고, 패킷 스위칭은 35명의 사용자가 할당되었을 때, 동시에 10명 이상이 몰릴 확률은 0.004보다 낮다.

이처럼 패킷 스위칭은 회선에 데이터가 폭발적으로 몰릴 때 유리하다.

  • resource sharing(회선 공유)
  • no call setup(회선에 별도의 할당 요청 없이)

위와 같은 특징 때문이다.

그러나, 과도한 혼잡(excessive congestion)이 발생할 수 있다. 이는 라우터의 buffer overflow로 인해 패킷 딜레이나 손실이 발생하는 경우다. 따라서 프로토콜이 필요하며, 프로토콜은 안정적인 데이터 전송과 혼잡 제어(congestion control)를 지원한다.

Q. 그렇다면 어떻게 circuit-like behavior를(마치 서킷 스위칭을 사용하는 것처럼 사용자가 많아도 일정한 성능을 보장하는) 패킷 스위칭으로 제공할 수 있을까?

 

정리해보면,

서킷의 장점

  • Better application performance (reserved bandwidth)
  • More predictable and understandable(w/o failures) : 더 예측 가능하고 이해하기 쉽다.

패킷의 장점

  • Better efficiency
  • Simpler state in switches(not per-flow)
  • Easier recovery from network failure(네트워크 오류 시에도 복구가 쉽다.)
  • Faster startup to first packet delivered (첫번째 패킷이 전송되기 까지 초기 설정이 빠르다)

그리고 앞서 얘기했듯, 인터넷은 네트워크들의 네트워크다. hosts는 ISP에 액세스하여 인터넷에 연결된다. ISP들은 상호연결되어 있다. 그렇기에 어느 host간이든 서로 패킷을 주고 받을 수 있게 된다.

 

Loss, Delay, Throughput 성능

패킷들은 라우터 버퍼에 queue되고, 전송될 차례를 기다린다. 출력 회선의 가용량보다 해당 라우터 회선으로의 패킷 도착 속도가 더 빠를 때 큐의 길이는 길어진다.

패킷 손실은 패킷을 큐잉(queueing)하는 메모리가 꽉 찼을 때 발생한다. 버퍼에 자리가 없을 경우 도착하는 패킷들을 버린다. 버려진 패킷은 프로토콜에 따라 이전 노드에서 재전송되거나 혹은 누락된다. 재전송은 네트워크 내에 패킷을 추가해 혼잡을 증가시킬 수 있다.

  • transmission delay: 패킷을 전송할 때 발생하는 딜레이(패킷 길이(L)/회선 전송 속도(R))
  • queueing delay: 패킷이 라우터 버퍼에 보관되어 출력 회선으로의 전송을 대기하며 발생하는 딜레이, 라우터의 혼잡도에 의존한다.
  • processing delay: 비트 에러를 체크하고 출력 회선을 결정하며 걸리는 딜레이
  • propagation delay: 회선을 지나는데 걸리는 시간 (물리 회선의 길이(d)/전파 속도(s))
  • nodal processing delay: 위 딜레이들의 총합이다.

 

traffic intensity

traffic intensity의 정도를 측정하는 방법이다.

  • a: average packet arrival rate
  • L: packet length (bits)
  • R: link bandwidth (bit transmission rate)

L*a/R : arrival rate of bits / service rate of bits가 된다.

이 값이 0에 가까우면 queueing delay가 작다고 볼 수 있다.

이 값이 1보다 크면 시스템이 정상적으로 동작하지 않는다. 1보다 작아야 한다.

Q: La/R<1 일때도 왜 queueing delay가 발생할까?

A: La/R 값이 1 이하이더라도, 이는 평균 값이기 때문에 실제로는 높을 때도, 낮을 때도 있기 때문에 queueing delay가 발생한다.

Throughput

전송자에서 수신자까지 bits가 보내지는 속도다. (bits/time unit)

End-end path의 throughput은 bottleneck link에 의해서 결정된다. Bottleneck link는 end-end path link의 throughput을 제한한다.

Q. 오버프로비저닝(실제 평균 사용량보다 더 높은 부하를 버틸 수 있도록 네트워크 성능을 구성)을 하는 이유가 뭘까?

A. average load는 낮을 수 있어도 peak load는 매우 높을 수 있기 때문이다.

 

Security Attack

packet sniffing

promiscuous network interface를 사용해 패킷을 가로채는 행위이다. wireshark software는 대표적인 packet-sniffer이다. https를 사용하지 않을 경우 실제로 wireshark를 사용하면 패킷의 raw data를 읽을 수 있다. https를 사용한다면 모든 데이터가 encrypt되므로 이러한 보안 문제를 해결할 수 있다.

IP spoofing

source address를 속이고 패킷을 주입하는 행위이다.

Denial of Service(DOS)

과도한 트래픽을 발생시켜 자원을 사용할 수 없도록 만드는 행위이다.

 

Defense

  • Authentication: 자신이 누군지 증명하는 것
  • Confidentiality: encrypt를 통해 이뤄낸다.
  • Integrity Checks: digital signature를 사용해 변조를 예방한다.
  • access restictions: 패스워드나 보호된 VPN 사용
  • firewalls: unknown sources의 packet을 차단한다. DOS attack을 탐지하고 대응한다.
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기