이제 1-3)에서 살펴보았던 Packet loss에 관련해서 이야기를 해볼 것이다.
위 그림처럼, Packet switching에서 발생할 수 있는 delay는 총 4가지이다.
출발지와 목적지 사이 종단 간 경로의 일부로서, 한 패킷이 업스트림 노드로부터 라우터 A를 통해 라우터 B로 보내진다.
- 업스트림(upstream) : 클라이언트에서 서버로 전송되는 데이터의 흐름
- 다운스트림(downstream) : 서버에서 클라이언트로 전송되는 데이터의 흐름, 일반적으로 다운스트림 트래픽은 업스트림 트래픽보다 더 많은 볼륨이 있다.
라우터 A는 라우터 B에 이르는 하나의 출력(outgoing) 링크를 가지며, 이 링크 앞에 큐(queue, 버퍼(buffer))가 존재한다.
- 패킷이 업스트림 노드로부터 라우터 A에 도착한다.
- 라우터 A는 그 패킷에 대한 적당한 출력 링크를 결정하기 위해 패킷 헤더를 조사한다.
- 라우터 A는 선택된 링크로 그 패킷을 보낸다. (그림에서 선택된 링크 = 라우터 B에 이르는 링크)
만약 이 과정에서 큐에 자신보다 앞선 패킷이 존재한다면, 지연이 생기게 된다.
- Processing delay
- 패킷 헤더를 조사해 어떤 출력 링크로 보낼 지 결정하는 과정이다.
- 또한, Processing 과정에서 패킷 헤더에 bit 오류가 있는지 확인한다.
- 주로 msec보다 작다.
- Queueing delay
- Transmission이 시작될 때까지 걸리는 거리다.
- 즉, Queue에서 전송을 시작할 때까지의 대기시간이다.
- Transmission delay
- 만약에 패킷의 길이가 L bits 이고, 라우터의 전송률이 Rbps 이라면 버퍼에 보관해놨던 패킷을 모두 밖으로 꺼내는 데 까지는 L/R의 시간이 발생할 것이다.
- 이 시간을 Transmission delay라고 한다.
- Propagation delay
- 라우터들 사이의 거리를 d, 링크의 전파 속도를 s라고 한다면 라우터들 사이에 데이터가 전송되는 시간이다.
- d/s이다. 3번과 매우 다름 유의
⇒ 이러한 4가지 delay를 모두 합친 것을 “nodal delay”라고 부른다.
그렇다면, 이 중 패킷의 길이에 따라 달라질 수 있는 Queueing delay에 대해서 자세히 알아보자.
Queueing delay and Packet loss
아래와 같은 상황을 가정해보자.
패킷이 큐에 도착하는 평균율 : a 패킷/초
전송률(패킷이 큐에서 밀려나는 비율) : R 비트/초
모든 패킷은 L 비트
큐가 매우 커서 무한대 비트를 저장할 수 있음
그렇다면, 우리는 트래픽의 강도를 계산하는 척도로 La/R을 정의할 수 있다.
- 만약 처리해야할 계산량 La > 처리할 수 있는 계산량 R보다 크면, 즉 La/R > 1이라면 큐잉 지연은 무한대에 도달한다.
- 만약 처리해야할 계산량 La = 처리할 수 있는 계산량 R과 같거나 작으면, 즉 La/R ≤1이라면 큐잉 지연은 발생하지 않을 것이다.
→ 하지만 ,이는 하나의 패킷이 L/R초마다 주기적으로 도착한다는 가정이 있으므로, Packet이 burst 되는 상황에는 상당한 Queueing delay가 발생할 수 있다.
- 위의 그래프는, 그래픽 강도와 평균 queueing delay 사이의 관계를 나타낸 그래프이다.
- 실생활에서는 Traceroute라는 패킷 지연 시간 측정 프로그램을 사용한다.
- 출발지에서 i번째 라우터에 도착할 때까지 3개의 패킷을 보낸다.이 패킷의 TTL(Time-to-Live) 값을 i로 설정해, i 번째 라우터까지만 패킷이 전달되도록 한다.
- i번째 라우터에 도착하면, 패킷은 다시 돌아온다.
- 이 시간을 기록해, i번째 라우터에 도착하고 돌아오는 데 걸린 지연 시간을 기록한다.
- 위의 가정에서는 버퍼가 무한대의 용량을 가진다고 가정했으나, 실제로는 유한의 용량을 보유한다.
- 즉 트래픽 강도가 1에 가까워짐에 따라서, 큐가 꽉 차서 패킷을 저장할 수가 없게 되고, 라우터는 그 패킷을 버리게 되어 Packet loss가 발생하게 된다.
Throughput
- 컴퓨터 네트워크에서, 성능을 평가하는 주요한 요소는 크게 3가지이다.
- 지연정도
- 패킷 손실 확률
- 종단 간 처리율 (Throughput)
- 이 중, 3번째인 Throughtput에 대해서 알아보고자 한다.
- Throughput의 정의는 다음과 같다.
- Rate (bits / time unit) where bits are being sent from sender to server
- Throghput의 종류는 2가지가 있다. 만약 A→B에서 파일이 이동할 때, 해당 파일이 F 비트로 구성되고 비트를 수신하는 데 T초가 걸린다고 하자.
- Instantaneous throughput : 어느 한 순간에서의 순간적인 처리율
- 이는 호스트 A→B로 데이터가 이동한다고 할 때, 호스트 B가 파일을 수신하는 비율과 같다.
- Average throughput : 평균 처리율
- 이는 F/T로 간단하게 구할 수 있다.
그렇다면, 우리는 다음과 같은 두 가지 상황을 생각해볼 수 있다.
- 첫 번째 그림에서는, 항상 Rs 만큼의 처리율으로 데이터를 전송할 수 있다.
- 두 번째 그림에서는, 첫 번쨰 파이프가 Rs만큼의 처리율으로 데이터를 보내나 2번째 파이프가 처리할 수 있는 처리율은 Rc이기에 Bottle neck현상이 발생해 average end-end throughput은 Rc가 된다.
처리율 = min{Rc, Rs} = 병목 링크(bottleneck link)의 전송률
이라는 사실을 위의 사례에서 생각해볼 수 있다.
또한, 조금 더 일반적인 예시로 확장해보면, 아래와 같은 상황에서 end-to-end throughput은
min { Rs, Rc, R/10 }임을 알 수 있다.
'Computer Network > Ch1)introduction' 카테고리의 다른 글
CH1-6) Protocol layers, Service model (0) | 2024.10.27 |
---|---|
Ch1-5)Network Security (0) | 2024.10.27 |
Ch1-3) Network core: Packet/circuit switching, Internet structure (1) | 2024.10.27 |
Ch1-2) Access networks and physical media (0) | 2024.10.27 |
Ch1-1) Architecture of Internet Structure (0) | 2024.10.27 |