Вопрос из
книги Таненбаума про компьютерные сети к главе 1 «Введение», цитата:
23. Имеется несжатое изображение размером 1600 × 1200 пикселов, 3 байта/пиксел. Сколько времени потребуется на его передачу с помощью модема, работающего со скоростью 56 Кбит/с? С помощью кабельного модема, работающего на 1 Мбит/с? По Ethernet со скоростью передачи 10 Мбит/с? По Ethernet со скоростью 100 Мбит/с? По гигабитной Ethernet?
Про то, что такое «пропускная способность» и «Ethernet», было в
предыдущем посте по теме.
Почему для хранения одного пикселя изображения используется 3 байта? Пиксель изображения характеризуется его цветом. Например, для хранения одного пикселя черно-белого изображения можно использовать один бит: 1 - черный цвет, 0 - белый цвет (или наоборот). Для хранения одного пикселя избражения, в котором используется большее количество цветов, потребуется уже несколько битов (или даже несколько байтов). Например, для хранения одного пикселя изображения, в котором цвет каждого пикселя может принимать одно значение из 16 777 216 возможных, потребуется 24 бита или 3 байта. Тут подробнее:
https://ru.wikipedia.org/wiki/TrueColor Из-за того, что для хранения одного пикселя приходится использовать целых 3 байта, размеры изображений могут получаться очень большими, а, следовательно, их передача по сети может занимать довольно большое время, особенно по каналам с небольшой пропускной способностью. Поэтому для обмена изображениями по сети были придуманы разнообразные способы сжатия изображений в виде разных форматов хранения картинок. Например, форматы хранения картинок GIF или JPEG. Но в нашем случае предполагается, что сжатие не используется, чтобы упростить вычисления.
Вообще, этот вопрос - один из самых простых к этой главе книги.
Вычислим размер изображения:
1600 * 1200 * 3 = 5 760 000 байт или
5 760 000 * 8 = 46 080 000 бит
Вычислим время на передачу этого изображения по сетям с разной пропускной способностью:
1) 46 080 000 бит / 56 Кбит/с = 46 080 000 / 56 000 = 822,86 с = 13,71 мин
2) 46 080 000 бит / 1 Мбит/с = 46 080 000 / 106 = 46,08 с
3) 46 080 000 бит / 10 Мбит/с = 46 080 000 / (10 * 106) = 4,608 с
4) 46 080 000 бит / 100 Мбит/с = 46 080 000 / (100 * 106) = 0,4608 с
5) 46 080 000 бит / 1000 Мбит/с = 46 080 000 / (1000 * 106) = 0,04608 с