Comments 54
В tcp@ipv6 есть обязательный pmtu. После того, как весь существенный трафик перейдёт на ipv6, можно будет безопасно пробовать поднимать размер MTU на интерфейсе, а tcp само разберётся какой размер ей хорош.
1500 Б (около 12000 бит)потому, что байт — это примерно 8 бит. Понятно.
Я ссылку дал на то, что вообще-то в те времена размер байта не обязательно был 8 бит… Поэтому речь о примерном равенстве вполне оправдана. Где-то 7, где-то 9-10 — и вот уже 1500 байт совсем не обязательно значат 12000 бит. Про слова вы это сами что-то додумали. Размер char
в C
вы думаете, отчего по стандарту так плавает?
Размер char в C вы думаете, отчего по стандарту так плаваетПросветите отсталого. Когда плавал, как.
github.com/exsilium/pxbee-blink-led/blob/master/hc08c/include/limits.h#L16
gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
www.geeksforgeeks.org/char_bit-in-c
Есть кстати ещё одно слово, которое сегодня стало синонимом байта — октет. Но так было не всегда.
ru.wikipedia.org/wiki/Limits.h...не-не, то, что в стандарте С размер целочисленных задаётся, известно ещё из K&R (даже лично мне известно уже около 40 лет). Но — когда и где в сколько-нибудь массовых применениях он «плавал»?
Кстати, во второй ссылке не очень точно, а Вы и ухватились. Char был, действительно 7-битным во время оно, а вот байт, как его хранилище, именно потому был 8-битным, с битом чётности. В то время подобные наследия телетайпной связи, аппаратные подробности, были видны сверху. Потом, когда символов потребовалось больше, перешли на 8-битный символ при прежнем 8-битном байте. Это позволяло обойтись без переделок железа, ведь бит чётности из явного в байте ушёл в аппаратную глубину.
Есть кстати ещё одно слово, которое сегодня стало синонимом байта — октет. Но так было не всегда.ойой, зачем очередной раз цитировать нагугленное без хотя бы небольшого изучения вопроса? Почти ровно наоборот. «Октет» жил недолго, в самом начале, когда архитектуры ещё не устоялись, и ещё живо было даже телеграфное представление символов. То есть во времена, когда само слово байт ещё не заняло нынешнего универсального состояния. У компьютерщиков были свои единички, байты, у связистов — свои, в телеметрии, опять же свои. По большей части они совпадали, но были свои. Потом из «совпадали» выросло и единство.
Но с сетями и MTU=1500 это по времени разведено.
И сейчас не так уж и сложно найти какой-нибудь микроконтроллер, где char=int=16/32bit
Конечно, я не думаю, что байт — такое вечное понятие. Со временем он исчезнет. Был обозначением для хранилища char'а, уже нет, сейчас это скорее уже только единица измерения (в словах считать неудобно как раз потому, что они разные бывают), чем что-то практически важное.

Обратите внимание, что на них везде одинаковый лимит чуть больше 1500 байт.
Кроме того, в общем случае на 1 передаваемый байт данных могут идти дополнительные управляющие биты. В том же горячо любимом многими последовательном порте можно выключить или включить бит чётности, а про стартовые и стоповые биты я вообще молчу.
Если бы изначально MTU был высок, то действительно ethernet возможно не взлетел бы. А если бы и взлетел, то кризис "больших файлов" настиг бы нас ещё раньше. Зачем изобретать новые кодеки? Зачем сжимать видео, если канала на 25% больше.
Или римляне на пони катались?
Тем не менее, с практической точки зрения, путем проб и ошибок была найдена оптимальная ширина колеи тележки, которая и была зафиксирована в стандартах того времени.
Лошади раньше были действительно меньше, да и люди тоже...
Римляне не использовали колесницы как транспорт — они технологически устарели ещё до появления Республики.
SRB подвозят на мыс Канаверал не по железной дороге, а по морю на барже.
Ну и так далее…
NASA даже специальный пресс-релиз на эту тему выпускала
Этот факт, хотя он и неверен во многих своих деталях, не является полностью ложным в общем смысле и, возможно, более справедливо обозначен как «Частично верно, но по тривиальным и непримечательным причинам»
даже теперь, когда человек вышел в космос, его наивысшие технические достижения напрямую зависят от РАЗМЕРА ЛОШАДИНОЙ ЗАДНИЦЫ.
А Илон нашел выход.
Арендовал украинскую Мрию, и доставил габаритные запчасти Falcom9 по воздуху.
- способностей старых компьютеров обрабатывать прерывания от сетевой карты
- ограничений на длину кабеля и излучаемую мощность
- доля служебной информации
- пропускной способности
Из (2) мы получаем минимальное время фрейма для коллизионного домена. Теперь представим коллизионный домен, в котором нас интересуют два компьютера — один очень активно передаёт много фреймов максимального размера, а второй хочет вклиниться в поток и передавать фреймы минимального размера. Чем меньше MTU, тем меньше в худшем случае ему придётся ждать.
Но при этом слишком маленькие значения MTU будут делать обработку данных слишком дорогой из-за (1), а также увеличивать (3), снижая долю полезной информации.
Если мы потребуем от узлов в 10Мбит/с-сети интерактивности в 1мс, то получим MTU=1212. Однако, в сетевых адаптерах тех времён присутствует специальный предохранитель между MAC и PHY, не позволяющий захватить коллизионный домен на слишком долгое время в случае залипания MAC в состоянии бесконечной отправки. Возможно, использование максимального времени фрейма в 1.2304мс вместо 1мс можно объяснить несовершенством настройки этого предохранителя.
И да, 1500 — это рудиментарное наследие полудуплексного Ethernet, если бы выбрали больше, пострадала бы интерактивность и эффективность сети (пока передает один узел, другие не могут получить доступ к среде передачи), а влияние на стоимость NIC вторично. Хотя в то время могло быть и наоборот (как написано в статье).
Напомнило старую-древнюю байку о том, как программисты дом строили. IT-шников на стройку пускать нельзя.
И если мы попытаемся увеличить где-то MTU, то скорее всего один из узлов всё равно подрежет его до своего значения и смысла в увеличенном размере не будет никакого.
Получается, что надо:
1. Обновить абсолютно все устройства дома (компьютеры, ноутбуки, телефоны, телевизоры, роутеры и т.д.)
2. Обновить операционные системы на компьютерах
3. Обновить всё оборудование у провайдера
4. Обновить все магистрали
И всё ради того, чтобы увеличить MTU, и чуть-чуть выиграть в скорости. Куча работы, любой баг может привести к частичной неработоспособности сети и прочее.
Но есть всеми ненавистный IPv6, у которого эти проблемы постарались решить (там встроенный MTU Discovery, нормально с номерами и размерами пакетов). Можно просто выпустить оборудование с поддержкой IPv6 и будет всё проще. Но только как-то с 1996-ого года прогресс не очень.
Двух провайдеров. На этом и на том конце. Не все же ходят исключительно на CDN, стоящие рядом с точками обмена трафиком.
По сравнению с ATM cell размером 53 байта, кадр Ethernet далеко не самый маленький)))
Как максимальной единицей передачи информации в интернете стали 1500 байт