1.4 패킷 교환 네트워크에서의 지연, 손실과 처리율

Mando·2023년 3월 13일
0

네트워크

목록 보기
6/7

네트워크는 두 종단 시스템 간의 처리율(전달 될 수 있는 초당 데이터의 양)을 제한하여 종단 시스템 간의 지연을 야기하며 실제로 패킷을 잃어버리기도 한다.

1.4.1 패킷 교환 네트워크에서의 지연 개요


패킷이 한 호스트(소스 또는 출발지)에서 시작하고 일련의 라우터들을 통과하며, 다른 호스트(목적지)에서 여행을 마친다. 패킷은 경로를 따라 한 노드에서 다음 노드로 전달되므로, 그 패킷은 경로 상의 각 노드에서 다양한 지연을 겪는다.

노드 처리 지연(nodal processing delay), 큐잉 지연(queing delay), 전송 지연(transmission delay), 전파 지연(propagation delay)가 있으며, 이 지연들이 쌓여서 전체 노드 지연(total nodal delay)을 일으킨다.

패킷이 라우터 A에 도착하면, 라우터 A는 그 패킷에 대한 외향 링크를 결정하기 위해 패킷 헤더를 조사하고, 선택된 링크로 그 패킷을 보낸다.

이 과정에서 패킷은 링크에 현재 전송되는 다른 패킷이 없고, 큐에 자신보다 앞선 다른 패킷들이 없으면 링크로 바로 전송될 수 있다.

하지만, 링크가 이미 이용되고 있거나 그 링크를 이용하기 위해 큐에서 대기 중인 다른 패킷이 있다면 새로 도착한 패킷은 큐에서 기다린다.

처리 지연(processing delay)


  • 패킷 헤더를 조사하고 패킷을 어디 링크로 보낼지 결정하는 시간
  • 업스트림 노드에서 라우터 A로 패킷을 전송하면서 발생하는 패킷의 오류를 조사하는 시간

이러한 처리 이후에 라우터A는 그 패킷을 라우터B에 전송한다.

큐잉 지연(queuing delay)


  • 패킷이 링크로 내보내지기를 기다리는 시간

특정 패킷의 큐잉 지연 시간이 결정되는 요소는 무엇인가?

큐에 저장되어 링크로 전송되기를 기다리는 다른 패킷의 수에 의해 결정된다.

따라서,

  • 큐잉 지연이 0인 상황 : 큐가 비어있고 링크가 다른 패킷을 전송 중인 상태가 아님
  • 큐잉 지연이 긴 상황 : 다른 많은 패킷이 큐에서 기다리는 상황

전송 지연(transmission delay)


패킷은 앞서 도착한 다른 패킷들이 전송된 다음에 전송된다.

패킷의 길이를 L bit로, 라우터 A에서 라우터 B까지 가는 경로에 있는 링크의 전송률을 R(링크의 전송률에 의해 결정된다.) bps라고 한다면 전송 지연은 L/R이다.

전파 지연(propagation delay)


  • 라우터 A에서 패킷이 링크에 전해지고 라우터 B까지 전파에 필요한 시간

라우터 A에서 라우터 B까지의 길이를 d로, 링크의 전파 속도를 s라고 한다면 전파 지연은 d/s이다.

전송 지연과 전파 지연 비교


  • 전송 지연 : 라우터가 패킷을 내보내는 데 걸리는 시간(따라서 두 라우터 사이의 거리는 상관없다.)
  • 전파 지연 : 한 라우터에서 다음 라우터로 전파되는 데 걸리는 시간(따라서 두 라우터 사이의 길이에 대한 함수)

예시)
고속도로 요금계산소 사이를 링크, 요금 계산소를 라우터로 생각해보자.
각 자동차를 비트로 생각하고 트레일러처럼 10대 전체를 패킷으로 생각하자.
또한, 각 요금계산소는 12초마다 한 대의 차를 전송하고, 고속도로에 다른 차는 없다.(즉 링크를 사용하고 있는 패킷은 없다.)

우선, 요금저장소가 전체 자동차(패킷)을 밀어내는 데 걸리는 시간은 2분이다. 이 시간은 라우터에서의 전송 지연과 동일하다.

한 자동차가 한 요금 계산소에서 다음 계산소로의 이동에는 100km 즉, 1시간이 걸린다.
이 시간은 라우터에서의 전파 지연과 동일하다.

따라서 차랑 대열이 한 요금계산소에서 다음 요금계산소 앞에 저장될 때까지 걸리는 시간은 전송 지연 + 전파 지연을 합쳐서 총 62분이다.

의문점

이 예시를 보면서 의문점이 들었다.
패킷 교환 네트워크에서는 패킷을 링크로 내본낸다고 했는데, 여기서는 패킷을 또 비트로 쪼개서 1비트씩 내보내고 있기 때문이다.

그래서 라우터에서 링크로 패킷을 내보낼 때 전체를 한꺼번에 내보내는 것이 아닌 패킷의 일부분씩만 링크로 내보내는 것인지 궁금하다.

전체 노드 지연

전체 노드 지연 = 처리 지연 + 큐잉 지연 + 전송 지연 + 전파 지연이다.

1.4.2 큐잉 지연과 패킷 손실


큐잉 지연은 패킷마다 다를 수 있다.

예를 들어, 10개의 패킷이 동시에 비어있는 큐에 도착한다면, 전송된 첫 패킷은 큐잉 지연을 겪지 않지만 마지막으로 전송되는 패킷은 상당히 많은 큐잉 지연을 겪는다.

언제 큐잉 지연이 크고, 언제 미미한가?


  • a(패킷/초) : 패킷이 큐에 도착하는 평균율
  • R(비트/초) : 전송률 , 비트가 큐에서 밀려나는 비율
  • L : 모든 패킷은 L 비트이다.

이때 비트가 큐에 도착하는 평균율은 La(비트/초)이다.
따라서 비트가 큐에 도착하는 평균율과 비트가 큐에서 밀려나는 비율을 비교하면 큐잉 지연의 정도를 측정할 수 있다.

  • La/R > 1 (비트가 큐에 도착하는 평균율이 비트가 큐에서 전송되는 비율보다 크다.)
    이 경우에 큐는 끝없이 증가하고 큐잉 지연은 무한대에 도달한다.

  • La/R < 1 (비트가 큐에 도착하는 평균율이 비트가 큐에서 전송되는 비율보다 작다.)
    이때는 도착 트래픽의 특성이 큐잉 지연에 영향을 미친다.

  1. 패킷이 주기적으로 도착 : 즉 하나의 패킷이 L/R초마다 도착한다면, 이때 모든 패킷은 빈 큐에 도착할 것이고 큐잉 지연은 없다.

  2. 패킷이 몰려서(버스트)하게 도착 : 상당한 큐잉 지연이 발생. 예를 들어 N개의 패킷이 동시에 (L/R)N초마다 도착한다고 하자. 처음의 패킷은 큐잉지연이 없지만, 두 번째 전송된 패킷은 L/R 초의 지연을 겪는다. 따라서 n번째 전송된 패킷은 (n-1)L/R 초의 큐잉 지연을 겪는다.

패킷 손실


실제론 큐 용량이 유한하므로, 패킷이 도착해서 큐가 꽉 찬 것을 발견하게 된다.
이렇게 패킷을 저장할 수 없는 경우에 라우터는 패킷을 버린다.(즉, 패킷을 잃어버린다.)

1.4.4 컴퓨터 네트워크에서의 처리율


2개의 통신 링크와 라우터로 연결된 하나의 서버와 하나의 클라이언트가 있다.
서버로부터 클라이언트로의 파일 전송에 대한 처리율을 고려하자.

Rs : 서버와 라우터 간의 링크 속도 , Rc : 라우터와 클라이언트 간의 링크 속도라고 가정하자

  • Rs < Rc : Rs의 속도로 클라이언트에 도착하여 Rs bps 처리율을 나타낸다.
  • Rs > Rc : Rs의 속도로 라우터에 도착하지만, 이러한 비트는 라우터로 Rc의 속도로 떠나게 되고 종단간 처리율은 Rc가 된다.

또한, 비트들이 라우터에서 Rs의 속도로 계속해서 라우터에 도착하고 라우터에서 Rc의 속도로 떠난다면, 클라이언트로 전송을 위해 라우터에서 기다리는 패킷들은 증가할 것이다.

병목 링크


이런식으로 2개의 링크로 구성된 네트워크의 경우, 처리율은 min(Rc, Rs) 즉 병목 링크의 전송률이 처리율이 된다.

0개의 댓글