퍼포먼스

강한친구·2022년 9월 16일
0

컴퓨터 네트워크

목록 보기
4/19

패킷 딜레이와 로스는 왜 일어나는가?

전송속도, 트랜스미션 딜레이, 큐 딜레이 버퍼 공간 부족등이 원인이다

딜레이

1. propagation delay

전송속도 딜레이다.

D = length of link
S = propagation speed (speed of light)
dprop = d / s

물리적으로 링크를 이동하는 시간만큼의 딜레이가 생긴다.

2. Transmission delay

이미 한창 다뤘던 그 딜레이다.

L = Packet Length(bits)
R = link transmission rate (bps)
dtrans = L/R

nodal delay

라우터 내부의 포워딩(로컬 액션)을 하는 시간, 에러 체크 시간

  • Nodal = proc + queue + trans + prop
  • 포워딩도, 에러체크도 거의 상수값이고 평균적으로 마이크로 세컨드 이하다.

queueing delay

도착했는데 순서대기 패킷들이 있는 경우 발생한다.

  • 이 값은 네트워크 상황에 따라서 굉장히 유동적으로 나타난다
  • 이 값 자체가 다른 딜레이들에 비해서 굉장히 크다.

전송지연과 전파지연

카라반 문제

10비트짜리 패킷을 상징하는 자동차 10대가 있다.
하나의 스위치/라우터를 상징하는 톨을 통과하는데 각 12초가 걸리고, 각 톨간의 거리는 100km이다.
이때, propagate 속도는 100km/h 이다.

다음 지점에 정렬되기까지 시간이 총 얼마나 걸리게 될까?

풀이

맨 뒤 차에 초첨을 맞춰야한다.
맨 뒤 차는 톨 부스를 통과하기까지 앞의 9대 * 12 + 자기시간 12초해서 총 120초가 소요된다. 그리고 이동하는데 1시간이 걸리게 된다.

따라서 총 62분이 소요된다.

유사한 문제

이번에는 좀더 인터넷과 유사한 환경을 맞추기위해 propagate 속도를 1000km로 지정하였다.

이때, 마지막 차가 통과하기전에 두번째 지점에 차가 도착하게 될까?

계산결과 7분에 첫 차가 도착하게 된다.

Packet Queue Delay

a: 패킷이 큐에 도착하는 평균율(단위는 패킷/초)
R: 전송률(즉, 비트가 큐에서 밀려나는 비율(비트/초))
L: 모든 패킷
La: 비트가 큐에 도착하는 평균율(비트/초)
La/R: 트래픽 강도(traffic intensity)

(L A) / R => 이를 트래픽 강도라고 부른다.
평균 전송률
패킷 길이(비트) 를 transmission rate로 나눈것이다.

이 값이 0에 가까우면 분모(대역폭)이 크다는 뜻이고 문제가 없다는 뜻이다.

이 값이 1에 가까워질수록 딜레이가 늘어난다. 이는 비례해서 증가하는 것이 아니라 1에 점점 가까이 갈수록 딜레이는 지수적으로 증가해서 무한대로 솟구친다.

이는 평균이라는 개념의 특성이다. a값은 평균이라 균일하게 발생할 수도 있지만, 갑자기 순간적으로 막 나올 수 있는것이다. 즉, 이 값은 1이 될 수가 없는것이다.

이러한 특성 때문에 네트워크는 보통 60~70% 까지만 쓰지 90%까지 쓰는건 너무 위험한 일이다.

진짜 인터넷 딜레이와 라우트

TraceRoute라는 프로그램으로 라우팅 경로를 볼 수 있다.

작동원리

우선 작동원리를 알기 위해선 좀비패킷을 막는 방법을 알아야한다.

좀비패킷을 막기

  • 패킷은 나갈 때 마다 TTL을 지정해서 나간다. 만나는 라우터마다 이 값을 1씩 떨어트려서 이 값이 0이 되면 라우터는 이를 좀비패킷이라 판단 이를 지워버리고 패킷의 소스 주소를 찾아내서 소스에게 메시지를 보내준다.

이러한 원리를 이용해서 처음에는 1짜리, 그 다음에는 2짜리, 그 다음에는 3짜리 같은 점점 증가하는 패킷을 보내서 속도와 위치를 측정하는것이다. 목적지에 도착한 경우, icmp 프로토콜을 이용, 목적지에서 이는 페이크 패킷임을 알게 되고 이를 반환해주는것으로 확인할 수 있다.

뭔가 이상하다...

스루풋

  • 최대속도가 있더라도, 실질적인 전달 속도를 말함
  • 앞에 링크는 작고 뒤에 링크가 크면 병목이 생긴다. 즉, 쓰르풋을 병목 링크가 결정한다.

per-connection end-end throughput: min(Rc,Rs,R/10)
in practice: Rc or Rs is often bottleneck

0개의 댓글