Если уровень данных передает кадры размером 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