나는 패킷 전송의 처리량 속도를 연구해 왔으며 한 엔드 시스템에서 다른 엔드 시스템으로의 총 처리량에 대해 혼란스러워했습니다. 예를 들어 서버가 라우터를 사이에 두고 클라이언트에 패킷을 보내고 있다고 가정해 보겠습니다. 내 교과서컴퓨터 네트워킹Kurose와 Ross는 처리 속도가 느린 최종 시스템이 전체 파일 전송의 처리 속도를 결정한다고 말합니다. 왜 이런거야?
전체 파일 전송 처리량을 구성하기 위해 두 가지 처리 속도를 합산하지 않습니까? 예를 들어 서버의 처리량은 1Mbps로 비트를 펌핑하고 라우터는 2Mbps로 비트를 펌핑합니다. 파일 크기가 1천만 비트라고 가정해 보세요. 서버에서 라우터까지 서버에 도달하는 데 10초가 걸리고 클라이언트에 도달하는 데 약 5초가 걸리므로 총 처리량 상호 작용에는 15초가 걸립니다. 내 생각에는 그렇게 생각되지만 교과서의 논리를 사용하면 10초가 걸릴 것입니다. 왜 이런거야?
답변1
개미들이 나뭇잎에서 구멍으로 이동하고 있는데 개미들이 기어오르는 데 막대기가 가로막고 있다고 상상해 보세요.
<Leaf> ------ <stick> ------ <hole>
개미가 막대기에 도달하는 데 3초(여행의 다리 1)가 걸리고, 막대기 위로 올라가는 데 10초(다리 2)가 걸리고, 막대기에서 구멍(다리 3)까지 이동하는 데 2초가 걸립니다. 다리1의 총 대역폭은 개미 3마리, 막대기의 대역폭은 개미 1마리, 다리3의 대역폭은 개미 3마리입니다.
그래서 개미0은 나뭇잎을 떠나 막대기로 이동합니다. 그는 막대기 위로 올라가 구멍으로 걸어갑니다. 총 시간 = 15초.
Ant1은 ant0 뒤에 1초를 남기고 3초 안에 Leg1을 횡단합니다. 스틱에 도달했지만 Ant0이 이를 사용하고 있기 때문에 스틱 대역폭이 가득 찼습니다. 따라서 Ant1은 스틱을 건너기 시작하기 전에 9초를 기다려야 합니다. Ant0이 막대기 위에서 작업을 마치면 Ant1이 막대기를 가로질러 계속해서 구멍으로 들어갑니다. 총 소요 시간은 3초 + 9초(대기) + 스틱 통과 10초 + 홀까지 2초 => 24초입니다.
Ant2는 ant1보다 1초 뒤에 있고 막대기에 도달하는 데 3초가 걸립니다. 그런 다음 Ant0과 Ant1이 교차하기 전에 스틱을 치울 때까지 기다려야 합니다. 총 시간 = 3초 + 10초(ant1 대기) + 8초(ant0 대기) + 10초(막대 건너기) + 구멍에 도달하는 데 2초 => 33초.
따라서 이 경로의 처리량을 측정한다면 초당 3/(15+24+33) => 0.0416 Ants가 됩니다.
Leg1의 속도를 1초로(3배 더 빠르게) 높였다고 가정해 보겠습니다. 결국 초당 3/(13+22+31) => 0.454 Ant가 됩니다. 한쪽 다리의 속도가 3배 증가하면 거의 증가하지 않습니다.
다리 3의 속도를 1초(2배 더 빠르게)로 높였다고 가정해 보겠습니다. 결국 초당 3/(12+21+30) => 0.0476 Ant가 됩니다. 다시 한 번 영향이 거의 없습니다.
그러나 다리 2의 속도를 2배에서 5초로 늘리면 매우 다른 숫자인 3/(7 + 11 + 17) => 초당 0.085 Ants를 얻게 됩니다.
따라서 더 빠른 구간 중 하나의 증가는 거의 효과가 없었지만 가장 느린 구성 요소의 속도를 두 배로 늘리면 경로 처리량은 사실상 두 배로 늘어났습니다.
따라서 Leg3에 충분한 대역폭과 빠른 전송 속도가 있더라도 개미가 구멍에 도달하는 속도에는 영향을 미치지 않습니다. 왜냐하면 개미가 Leg3에 들어가는 속도는 막대에 의해 병목 현상이 발생하기 때문입니다. Leg3의 대역폭을 사용할 수 없습니다. 개미가 구멍에 도달하는 속도에 큰 영향을 미치지 않으면서 이를 100배로 늘릴 수 있습니다. 이 상황에서 방정식을 완전히 바꾸기 위해 할 수 있는 유일한 일은 개미가 막대기를 건너는 속도를 높이는 것입니다. 다른 모든 것은 의미가 없습니다.
답변2
말 그대로 더 빠르게 데이터를 수신할 수 없기 때문에 속도가 가장 느린 쪽이 전체 링크 속도를 결정합니다. 그렇지 않으면 오류가 발생합니다.
걸리는 시간에 대해 생각하지 말고, 무언가가 얼마나 빨리 들을 수 있는지 생각해보세요.
이렇게 표현하면, 큰 소리로 책을 읽는 사람이 있는데, 그 사람은 정말 빠르게 말할 수 있고, 듣는 사람이 있습니다. 듣는 사람은 느린 속도로만 이해할 수 있으므로 빠른 독자는 듣는 사람이 이해할 수 있는 속도로 속도를 늦춰야 하거나, 듣는 사람은 "잠깐만, 그거 반복해 줄래?"라고 계속 말해야 합니다. 이것이 처리량을 결정합니다.
또한 라우터가 전송될 전체 데이터 블록을 전달하기 전에 보유하고 있다고 가정하는 것은 심각한 오류를 범하는 것입니다. 이는 작은 데이터 블록에서 발생하지만 전체 시스템이 작동하는 방식은 아닙니다.
여기서 보고 있는 처리량은 두 가지입니다. 발신지에서 라우터로, 라우터에서 수신자로의 처리량입니다. 라우터는 특정 순간에 소량의 데이터만 보유하고 이를 재전송하기 전에 전체 큰 블록을 저장하지 않으므로 시스템에서 가장 느린 링크를 갖게 되어 종단 간 링크가 작동할 수 있는 전체 속도를 제한하게 됩니다. 에.