Chapter 4. 패킷 교환 네트워크에서 지연, 손실, 처리율

MoonLight·2021년 10월 25일
0

컴퓨터 네트워크

목록 보기
4/10

0x04 패킷 교환 네트워크에서 지연, 손실, 처리율

4.1 패킷 교환네트워크 지연 개요


buffer에서 packet이 delay가 일어나는 경우가 4가지 있다 :

(1) 노드처리지연(processing delay)

패킷 헤더(오류)를 조사하고 그 패킷을 어떤 출력링크로 보낼지를 결정하는 시간(일반적으로 ms)

(2) 큐잉지연(Queuing delay)

에서 출력링크로 전송되기를 기다리는 시간

  1. 특정 패킷 큐잉 지연 길이는 큐에 앞서 도착한 패킷의 수에 의해 결정되며

  2. 라우터의 혼잡제어 레벨에 따라 결정됨

  • 출력링크가 큐로들어오는 패킷의 속도를 따라잡지 못하는 경우 발생
  • 큐가 비어 있고 다른 패킷이 전송중인 상태가 아니라면 큐잉지연은 0, 트래픽이 많고 다른 많은 패킷이 전송 대기 중이면 큐잉 지연은 매우 길어짐
  • 큐잉 지연은 수 μs ~ 수 ms

(3) 전송지연(transmission delay)

에서 하나의 패킷의 모든비트가 출력링크로 전송되는 시간

  • 패킷의 길이를 L bits, 라우터 A에서 B까지 링크 전송률을 R bps라 할 때, R은 라우터 B로 가는 링크의 전송률에 의해 결정됨
  • 예를 들어 10 Mbps 이더넷 링크의 경우 전송률 R은 10 Mbps인 것(100Mbps면 100Mbps임)
    이 때 전송지연은 L/R임. 일반적으로 수 μs ~ 수 ms

(4) 전파지연(propagation delay)

출력링크의 처음부터 라우터 B 까지의 전파에 필요한 시간

  • 전파속도는 링크의 물리 매체(광 섬유, 꼬임쌍선)에 따라 다른데 범위는
    2108meter/sec 에서 3108meter/sec2*10^8 meter/sec \ 에서 \ 3*10^8 meter/sec 임(빛의 속도와 같거나 약간 작음)

  • 전파 지연은 구 라우터 사이의 거리(링크길이)를 전파 속도로 나눈 것 👉 d/s

    • 거의 빛의 속도..!

    전파속도 ≠ 전송률(band width)

    windows에서 tracert, Linux에서 traceroute를 쓰면 실제지연인 dnodald_{nodal}를 볼 수 있으며, 총 3번의 실험을 한다.(전송과 라우터의 응답사이의 시간) 또한 이 명령어는 end system간의 경로도 출력해준다.

4.2 큐잉지연과 패킷손실


(1) 큐잉지연

앞의 3가지 지연과 달리 큐잉지연은 패킷마다 모두 다르다. 예를들어, 10개의 패킷이 날라갔다고 가정할 때 1번째 패킷은 큐잉지연이 없지만, 10번째 패킷은 매우긴 큐잉지연이 될 것이다. 따라서 일반적으로 큐잉지연을 말할 때 모든 패킷의 평균으로 계산하게 된다.

  • R : link bandwidth (bps) # 전송률(비트가 큐에서 밀려나오는 비율)
  • L : packet length (bits) # 하나의 패킷의 비트 수
  • a : average packet arrival rate # 패킷이 큐에 도착하는 평균율(단위:packet/sec)
    • 평균적으로 초당 몇개의 패킷이 큐에 도착?
  • L*a : 비트가 큐에 도착하는 평균율(큐에 쌓이는 정도로 이해하면 쉽다.)
    • 평균적으로 초당 몇개의 비트가 큐에 도착?
  • La/RLa/R : 트래픽 강도(traffic intensity)
큐가 매우 커서 무한대 비트를 저장할 수 있다고 가정

La/R = 0 : average. 큐잉지연이 없음

La/R → 1 : average. 큐잉지연이 커짐

La/R > 1 : 무한대의 큐잉지연!

궁금증❓ 들어오는 속도와 나가는 속도가 같으면 1이 아닌가라는 생각이 들텐데 a는 평균이기 때문에 훨씬 큰 값이 들어오기도 한다.

(2) 패킷손실

  • 패킷이 무한대로 큐로 온다고 가정함
  • 현실적으로 큐의 용량은 스위치 설계와 비용에 크게 의존하며, 일반적으로 유한 용량을 가짐
  • 큐 용량이 유한하므로 트래픽 강도가 1에 접근함에 따라 패킷 지연이 실제로 무한대가 되진 않는다
  • 다만, 패킷이 도착해서 큐가 꽉 찬 것을 발견하면, 라우터는 그 패킷을 버림(drop, lost)
  • 종단 시스템 입장에서 패킷 손실은 캐핏이 네트워크 코어로 전송되었으나, 네트워크로부터 목적지에 나타나지 않는 것으로 보임

4.3 종단간 지연


종단간 지연

  • 출발지 호스트와 목적지 호스트 사이에 N-1개의 라우터가 있다고 할 때

  • 또한 네트워크가 혼잡하지 않으며(큐잉 지연 무시)

  • 각 라우터와 출발지 호스트의 처리 지연은 dprocd_{proc}

  • 각 링크에서의 전파지연은 dpropd_{prop}

  • 각 호스트와 출발지 호스트에서의 전송률은 R bit/s, dtrans=L/RR \ bit/s, \ d_{trans} = L/R

  • 위에 노드 지연을 더하면 종단간의 지연을 얻을 수 있음

dendend=N(dproc+dtrans+dprop)d_{end-end} = N(d_{proc} + d_{trans} + d_{prop})

4.4 처리율(Throughput)


📝 처리율(Throughput) : 1초에 sender와 receiver 사이에 bit가 전송된 양(bps)

  • 순간적인 처리율(instantaneous throughput)

    • 컴퓨터 네트워크를 통해 호스트 A와 B가 커다란 파일을 전송하는 것을 고려할 때 어느 특정 순간에 호스트 B가 파일을 수신하는 비율(bits/s)
  • 평균 처리율(average througnput)

    • 위 경우에서 파일이 F 비트이고, 호스트 B가 해당 파일을 수신하는데 T초가 걸린다면

      평균 처리율은 F/T(bits/s)F/T (bits/s)

위 그림은 서버측의 처리율(Rs)(R_s)과 클라이언트측 처리율(Rc)(R_c)을 구분하고 있다.

  • 클라이언트측 처리율이 더 크다면 average end-end throughput은 RsR_s
  • 클라이언트와 출력링크사이에 병목현상(bottleneck link)이 생긴다

  • 서버측 처리율이 더 크다면 average end-end throughput은 RcR_c
  • 라우터에는 병목현상(bottleneck link)이 생긴다.
    • 보통 라우터에서 병목현상이 생긴다.
    • 처리율이 가장 작은데서 병목현상이 생긴다

처리율은 사용자들이 접속할 때마다 커지는 트래픽, 네트워크 장치간 대역폭, 네트워크 중간에 발생하는 에러, 장치 스펙에 영향을 받음.

대역폭(bandwidth) == 최대처리율, 즉 단위시간당 전송가능한 최대비트수

profile
hello world :)

0개의 댓글