AtraFelis's Develop Diary

[컴퓨터 네트워크] 네트워크 성능 본문

Computer Science : CS/컴퓨터 네트워크

[컴퓨터 네트워크] 네트워크 성능

AtraFelis 2024. 4. 16. 17:32

성능 Performance

상위 계층은 네트워크 계층에 이상적인 서비스를 기대하지만, 네트워크 계층은 완벽하지 않다. 그렇기에 네트워크의 성능을 향상 시키기 위해서 혼잡 제어 Congestion control 등의 기법을 사용하는 것이다.

하지만 성능을 향상시키기 이전에 성능을 측정할 객관적인 기준이 필요하다. 네트워크 성능은 일반적으로 네트워크 성능 = 지연 + 처리율 + 패킷 손실률의 공식으로 측정할 수 있다.

 

 

지연 Delay

우리는 네트워크로부터 즉각적인 응답을 기대하지만, 발신지에서 목적지까지 패킷이 전달되는 과정에서 지연이 일어날 수밖에 없다. 이런 패킷 지연은 네 가지가 정의되어 있다.

 

전송 지연 transmission delay

발신지 호스트에서 패킷을 한 번에 보내는 것은 불가능하다. 어떻게 전송을 하더라도, 패킷의 첫 번째 비트와 마지막 비트 사이에 시간 차가 생기는 것은 어쩔 수 없는 일이다. 이러한 시간 차를 전송 지연 transmission delay라고 한다.

$$
Delay_{tr} = {Packet \ length \over Transmission\ rate}
$$

전송 지연은 패킷의 길이가 길 수록 늘어난다. 당연히 전송 속도가 빨라지면, 전송 지연은 줄어든다.

전파 지연 propagation delay

전송 매체를 통해 출발지 A에서 목적지 B까지 1비트가 전달되는데 걸리는 시간을 전파 지연 propagation delay라고 한다.

$$
Delay_{pg} = {Distance \over Propagation\ speed}
$$

당연히 A와 B 사이의 거리가 멀면 전파 지연은 증가하며, 전파 속도(전달 속도)가 빠르면 전파 지연은 감소한다.

처리 지연 progressing delay

이렇게 라우터나 목적지 호스트에서 패킷을 처리하는데 걸리는 시간을 처리 지연 progressing delay라고 한다.

패킷은 도착한다고 끝이 아니다. 전송되는 도중 패킷에 손실이 있었는지 확인해야 하고, 라우터에서는 다음 주소가 어딘지 확인하기 위해 헤드를 제거하여 확인해 보아야 하는 등, 여러가지 처리를 거쳐야 한다.

$$
Delay_{pr} = Time\ required\ to\ process\ a\ packet
$$

대기 지연 queuing delay

일반적으로 대기 지연은 라우터에서 발생한다. 라우터는 각 입력 포트마다 처리할 패킷을 보관하는 큐와 출력 포트에 전송할 패킷을 보관하는 큐를 가지고 있다. 패킷은 이런 큐 내부에서 대기하게 되는데, 이 시간을 대기 지연 queuing delay라고 한다.

$$
Delay_{qu} = The\ time\ a\ packet\ waits\ in\ queues
$$

전체 지연 total delay

전체 경로상의 라우터 개수 n이라고 하고 송신자, 라우터, 수신자가 각각 전부 같은 지연을 가진다고 가정하면, 이때 패킷에 발생할 전체 지연은

$$
Total\ dealy = (n+1) (delay_{tr}+delay_{pg}+dealy_{pr}) + (n)(delay_{qu})
$$

이 된다.

중간에 거쳐가는 라우터가 n개이면, 그 사이에는 n+1 개의 링크가 존재할 것이다. 여기서 n+1 번의 전송지연, 전파지연, 처리 지연이 발생한다. 대기 지연은 라우터에서만 발생하므로, 라우터 n개에 대하여 n번의 대기 지연이 발생한다.

 

 

처리량 throughput

한 지점을 지나는 초당 비트 수로 해당 지점의 실질적인 전송률이다.

image

하지만 위의 경우에서는 서로 다른 전송률을 가진 세 개의 링크를 통과한다. 그렇다면 이 경우의 처리량은 어떻게 되는 걸까? 직관적으로 생각해서 평균을 내면 될 것 같지만, 그렇지는 않다.

아무리 Link1Link3에서 200 kbps, 150kps로 전송한다고 하더라도, Link2에서는 최대 100kps의 처리량 만을 가지기에, 100kbps 이상의 속도로 데이터가 전송될 수는 없다.

$$
Throughput=minimun\ {TR_1, TR_2, ..., Tr_n}
$$

따라서 일반적으로 연속된 n개의 링크를 가진 경로에서의 처리량은 위와 같다.

 

 

패킷 손실 Packet loss

통신의 성능에 가장 큰 영향을 미치는 요소이다. 위에서 대기 지연을 설명할 때 라우터는 모두 큐를 가진다고 말했다. 하지만 이 큐의 용량은 한정되어 있기에 이 버퍼가 가득 차는 경우 패킷은 버려지게 된다.