Как оценить общее время выполнения запроса в UDP и TCP (Distirbuted Systems) - PullRequest
0 голосов
/ 28 октября 2018

Я наткнулся на вопрос, который я действительно не могу понять, как появились ответы.Я опубликую вопрос и ответ ниже.

Рассмотрим распределенную систему, которая имеет следующие характеристики: * Задержка на пакет (локальная или удаленная, возникающая при отправке и получении): 5 мс.* Время установления соединения (только TCP): 5 мс* Скорость передачи данных: 10 Мбит / с.* MTU: 1000 байтов.* Время обработки запроса к серверу: 2 мс

Предположим, что сеть слегка загружена.Клиент отправляет 200-байтовое сообщение-запрос в службу, которая выдает ответ, содержащий 5000 байт.Оцените общее время выполнения запроса в каждом из следующих случаев, используя приведенные ниже предположения о производительности:

1) Использование связи без установления соединения (датаграмма) (например, UDP);

Ответ: UDP: 5 + 2000/10000 + 2 + 5 (5 + 10000/10000) = 37,2 миллисекунды

У нас не было никакой формулы, поэтому я не могу найти, что на самом деле означают числа в приведенных выше вычислениях.

  • 2000/10000 - я думаю, что 10000 должно быть 10 Мбит / с * 1000, я просто не знаю, что означает 2000

  • (5 + 10000/10000)- (Я знаю, что это нужно умножить на 5, потому что MTU равен 1000 байтов, но я просто не знаю, что означают числа)

Спасибо, с нетерпением жду ваших идей

1 Ответ

0 голосов
/ 28 октября 2018

Для 2000/10000, я думаю, что 2000 означает размер сообщения запроса в битах.Теоретически размер сообщения запроса должен составлять 1600 бит, поскольку 200 байтов = 200 * 8 бит.Я предполагаю, что ответ приблизительный 1600 будет 2000 для простоты.

Для 5 (5 + 10000/10000) первый MTU является сокращенным для Maximum Transmission Unit, который является наибольшим размером пакета, которыйможно общаться в сети.Ответное сообщение составляет 5000 байтов, а MTU - 1000 байтов, поэтому ответ делится на 5 пакетов, каждый из которых имеет 1000 байтов.

Поскольку это связь без установления соединения, конвейерная обработка отсутствует.Каждый раз в ссылке содержится только один пакет.Таким образом, для каждого пакета время его отправки составляет 5 + 10000/10000 (строго, это должно быть 8000/10000, поскольку MTU составляет 1000 * 8 бит. Опять же, я предполагаю, что для простоты он также приблизительно равен 10000).Таким образом, чтобы отправить обратно все 5 пакетов, общее время составляет 5 (5 + 10000/10000).

...