Интернет действительно работает на 1500 байт?

MTU (Максимальная единица передачи) — это максимальный размер кадра, который может быть передан. Когда мы говорим о MTU, это обычно ограничение на аппаратном уровне и для уровней более низкого уровня — DataLink и физического уровня.

Теперь, учитывая уровень OSI, не имеет значения, насколько эффективны верхние уровни или какой магический соус они применяют, уровень канала передачи данных всегда будет создавать кадры размером ‹ 1500 байт (или любой другой MTU) и что угодно. в Интернете всегда будет передаваться с этим размером кадра.

Text

Действительно ли скорость передачи в Интернете ограничена 1500 байтами? Сейчас мы видим скорости в 10-100 Мбит/с и даже Гбит/с. Интересно, для таких скоростей кадры по-прежнему передаются с размером 1500 байт, что означало бы много-много-много фрагментации и повторной сборки на приемнике. Как при таком масштабе верхний слой достигает эффективности?!

[РЕДАКТИРОВАТЬ]

Основываясь на приведенных ниже комментариях, я переформулирую свой вопрос:

Если уровень данных передает кадры размером 1500 байт, я хочу знать, как верхний уровень на приемнике может обрабатывать такие огромные входящие кадры данных.

Например: при скорости интернета 100 Мбит/с верхние уровни должны будут обрабатывать 104857600 байт/сек или 104857600/1500 = 69905 кадров/сек. Сетевому уровню также необходимо повторно собрать эти кадры. Как сетевой уровень справляется с такими масштабами.


person DUDE_MXP    schedule 28.10.2020    source источник
comment
Не совсем понял, почему MTU в 1500 байт (при условии, что это так) помешает пропускной способности 10-100 Мбит/с? Это просто означает, что каждые 1500 байт сетевое устройство выдает новый заголовок, а это небольшие накладные расходы. Но он все еще может выкачивать данные и эти заголовки со скоростью ~ 100 Мбит / с.   -  person deceze♦    schedule 28.10.2020
comment
да, но мой главный вопрос был об эффективности. Как это небольшие накладные расходы - 100Mb это 104857600 байт. Это будет означать обработку 104857600/1500 = 69905 кадров/с. Сетевые интерфейсы должны будут отправлять 69 000 кадров/с, а получатель должен повторно передавать одни и те же 69 000 кадров каждую секунду. Мне это не кажется пустяком.   -  person DUDE_MXP    schedule 28.10.2020
comment
Да…? Это все еще накладные расходы в диапазоне 1-2%. Преимущество пакетов меньшего размера заключается в том, что для них требуется меньше повторных передач пакетов с ошибкой. Таким образом, на перегруженных маршрутах меньшие пакеты могут привести к увеличению общей пропускной способности.   -  person deceze♦    schedule 28.10.2020
comment
OSI не имеет ничего общего с Интернетом: это модель, единственной целью которой было описание более или менее несуществующего набора протоколов OSI. MTU — это свойство уровня линии передачи данных: оно почти или совсем не связано с пропускной способностью.   -  person user207421    schedule 28.10.2020
comment
Вас беспокоит, что сетевое оборудование не должно обрабатывать 69905 кадров в секунду? Предполагая, что вы используете MTU 100 Мбит, поэтому вам нужно передавать только один пакет в секунду… вас вообще не интересует обработка 100 Мбит/с, но каким-то образом тот же объем, разделенный на 69905 кадров, является проблема?   -  person deceze♦    schedule 28.10.2020
comment
@deceze да, разделение одного и того же тома - проблема. И меня больше всего беспокоит, действительно ли ресивер обрабатывает 69905 кадров каждую секунду, если да, то как он вообще может этого добиться?! Я просто хочу убедиться, что это то, что происходит в Интернете, или я что-то упустил.   -  person DUDE_MXP    schedule 28.10.2020
comment
Почему не должно добиться этого? 69 тысяч вещей в секунду на самом деле не так уж и много. Вы знаете, насколько безумно быстры современные компьютеры? Особенно, когда вы бросаете специальное оборудование для решения проблемы? en.wikipedia.org/wiki/   -  person deceze♦    schedule 28.10.2020
comment
Что заставляет вас думать, что шаг, определяющий скорость, — это частота кадров, а не общая пропускная способность?   -  person user207421    schedule 29.10.2020
comment
Мбит/с - это мегабиты, а не мегабайты в секунду. Таким образом, для соединения со скоростью 100 Мбит/с необходимо обработать всего 8378 кадров в секунду.   -  person gudok    schedule 31.10.2020
comment
В общем, вас не должно волновать количество кадров. Любые данные отправляются не просто так, а значит должны обрабатываться на уровне приложения: храниться на диске, отображаться и т.д. Если только ваш MTU не является какой-то смехотворно малой величиной (пара байтов), узким местом будет прикладной уровень.   -  person gudok    schedule 31.10.2020
comment
Проблема с маленькими фреймами бывает обычно только на высоконагруженных серверах. В этом случае существует ряд методов для уменьшения накладных расходов: большие кадры, объединение кадров, большая разгрузка при отправке/получении.   -  person gudok    schedule 31.10.2020
comment
Кстати, я нашел вопрос и ответ (мой ответ), который объясняет как сегментацию TCP, так и фрагментацию IP.   -  person Ron Maupin    schedule 05.11.2020
comment
@RonMaupin Не могли бы вы поделиться ссылкой?   -  person DUDE_MXP    schedule 05.11.2020
comment
Извините, это он.   -  person Ron Maupin    schedule 05.11.2020


Ответы (1)


Если уровень данных передает кадры размером 1500 байт, я хочу знать, как верхний уровень на приемнике может обрабатывать такие огромные входящие кадры данных.

1500 октетов — это разумный MTU (Максимальная единица передачи), который представляет собой размер полезной нагрузки протокола канала передачи данных. Помните, что не все кадры имеют такой размер, это просто максимальный размер полезной нагрузки кадра. Есть много, много вещей с гораздо меньшими полезными нагрузками. Например, VoIP имеет очень небольшую полезную нагрузку, часто меньшую, чем накладные расходы различных протоколов.

Кадры и пакеты постоянно теряются или отбрасываются, часто намеренно (см. RED, Случайное раннее обнаружение). Чем больше блок данных, тем больше данных теряется при потере кадра или пакета, а при использовании надежных протоколов, таких как TCP, тем больше данных необходимо отправить повторно.

Кроме того, наличие разумного ограничения на размер кадра или пакета не позволяет одному хосту монополизировать сеть. Хозяева должны по очереди.

Например: при скорости интернета 100 Мбит/с верхние уровни должны будут обрабатывать 104857600 байт/сек или 104857600/1500 = 69905 кадров/сек. Сетевому уровню также необходимо повторно собрать эти кадры. Как сетевой уровень справляется с такими масштабами.

В вашем заявлении есть несколько проблем.

Во-первых, 100 Мбит/с — это 12 500 000 байт в секунду. Чтобы рассчитать количество кадров в секунду, вы должны принять во внимание накладные расходы канала передачи данных. Для Ethernet у вас есть 7 октетов Preabmle, 1 октета SoF, 14 октетов заголовка кадра, полезной нагрузки (от 46 до 1500 октетов), четырех октетов CRC, затем 12 октетов Inter-Packet Gap. Накладные расходы Ethernet составляют 38 октетов, не считая полезной нагрузки. Чтобы узнать, сколько кадров в секунду, вам нужно знать размер полезной нагрузки каждого кадра, но вы, похоже, ошибочно предполагаете, что полезная нагрузка каждого кадра составляет максимум 1500 октетов, и это неверно. Вы получаете чуть более 8000 кадров в секунду для максимального размера кадра.

Затем сетевой уровень не собирает повторно полезные нагрузки кадров. Полезная нагрузка кадра — один пакет сетевого уровня. Полезной нагрузкой сетевого пакета является блок данных транспортного уровня (сегмент TCP, дейтаграмма UDP и т. д.). Полезной нагрузкой транспортного протокола являются данные приложения (помните, что модель OSI — это всего лишь модель, и операционные системы не реализуют отдельные уровни сеанса и представления, а только прикладной уровень). Полезная нагрузка транспортного протокола предоставляется процессу приложения, и это могут быть данные приложения или протокол прикладного уровня, например. HTTP.

Полоса пропускания, 100 Мбит/с в вашем примере, показывает, насколько быстро хост может сериализовать биты в сеть. Это функция аппаратного обеспечения сетевого адаптера и используемого им физического протокола/канала передачи данных.

что означало бы много-много-много фрагментации и повторной сборки в приемнике.

Фрагментация пакетов в основном устарела. Он по-прежнему является частью IPv4, но в IPv6 устранена фрагментация пути, а умные предприятия не допускают фрагментации пакетов IPv4 из-за атак фрагментации. Пакеты IPv4 могут быть фрагментированы, если бит DF не установлен в заголовке пакета, а MTU в пути становится меньше исходного MTU. Например, туннель будет иметь меньший MTU из-за служебных данных туннеля. Если бит DF установлен, то пакет слишком велик для MTU на следующем канале, пакет отбрасывается. Фрагментация пакетов очень требовательна к ресурсам маршрутизатора, и для фрагментации пакета необходимо выполнить ряд шагов.

Возможно, вы путаете фрагментацию и повторную сборку пакетов IPv4 с сегментацией TCP, что является чем-то совершенно другим.

person Ron Maupin    schedule 31.10.2020