LINUX.ORG.RU

Потоки буферов в сетевой карте.

 ,


0

2

А вот скажите пожалуйста. Есть сетевуха и у нее буфферы Rx/Tx разбиты по 4/8 потоков, по 16/32 буферов.

Зачем так? Пакеты приходят в хронологическом порядке, рассыпаются на 16 потоков, а потом снова собираются в цепочку? Это как? Почему бы не завести по одному ринг-буферу на Rx/Tx. Никаких timestamp-ов и порядковых номеров у фреймов нет. Для сетевой карты это просто фреймы, без IP, без номеров. Ну http там соберет свое как-то, а остальные?

Зачем так?

Для облегчения параллельной обработки на разных ядрах/процессорах. Да, можно без аппаратных очередей(Linux умеет распараллеливать и такие сетевухи), но накладных расходов гораздо больше чем с ними.

Pinkbyte ★★★★★
()

Зачем так?

8 медленных ядер дешевле чем одно быстрое с восьмикратной скоростью работы.

а потом снова собираются в цепочку

Не собираются. ОС эти потоки оттуда так и забирает параллельно, и рассортировывает по потребителям (открытым сокетам) т.е. много цепочек но уже других и без сохранения порядка.

Ну http там соберет свое как-то, а остальные?

Протокол IP не требует того, чтобы отправленные пакеты приходили в том же порядке как их отправляли. Ну и не гарантирует этого же самого своим потребителям. В нужном порядке пересобирает TCP, если ты им пользуешься. Если пользуешься UDP - то на твой усмотрение - нужно ли тебе вообще тратить силы на сохранение порядка, и если нужно, то какие таймстампы или индексы вставлять в пакеты своего протокола.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Если пользуешься UDP - то на твой усмотрение - нужно ли тебе вообще тратить силы на сохранение порядка

Из чистого любопытства - Вы на практике out of order UDP delivery наблюдали? Потери - да, это скорее обыденность, но вот out of order на статистике что я вижу - раз в пятилетку (if ever).

bugfixer ★★★★
()

порядок прихода пакетов tcp никак не фиксирован. они идут по произвольным маршрутам, по злой воле всяких там маршрутизаторов и даже операторов из АНБ. потому tcp служба их собирает в нужном порядке.

alysnix ★★★
()
Ответ на: комментарий от alysnix

они идут по произвольным маршрутам

Кто в своём уме будет route’ить пакеты с данным hash от квартета IP+ports по разному? Вы отдаёте себе отчёт сколько проблем это создаёт на пустом месте? Этого даже при bonding не происходит. Исключение - fragmentation (там полный IP заголовок теряется).

bugfixer ★★★★
()
Последнее исправление: bugfixer (всего исправлений: 1)
Ответ на: комментарий от bugfixer

Кто в своём уме…

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

alysnix ★★★
()
Ответ на: комментарий от bugfixer

Out of order наблюдал, но деталей не помню, может там и не udp был. И причину тоже не помню. Да, это очень редко, но софт должен быть рассчитан на то что оно может так прийти.

Теоретически предположу, что например кто-то балансирует трафик между двумя магистралями, и одна из них идёт напрямую а вторая через другую страну.

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

firkax ★★★★★
()
Ответ на: комментарий от alysnix

вы оспариваете общеизвестный факт, что пакеты не обязаны приходить в правильном порядке

Это совсем не то что я сказал. Я утверждал что на практике вероятность такого события ничтожно мала. И понятно почему.

bugfixer ★★★★
()
Ответ на: комментарий от bugfixer

маршрутизатор вообще не понимает какие пакеты он пересылает. и почему он должен этим заниматься? каждый пакет шлется по маршруту который логика маршрутизатора считает оптимальной на данный момент. протокол tcp учитывает ошибки и неверного порядка и потери пакетов. «ничтожная вероятность» это уровень блондинки, в протоколе эти вероятности никак не фиксированы. маршрутизаторы делают люди, и делают с разными целями, и они могут закладывать в алгоритмы маршрутизации собственные, порой весьма специфичные идеи.

alysnix ★★★
()
Ответ на: комментарий от alysnix

маршрутизатор вообще не понимает какие пакеты он пересылает

Твою ж ты мать… Вы с этой планеты??

и почему он должен этим заниматься?

Работа у него такая.

ПыСы.

«ничтожная вероятность» это уровень блондинки

Именно поэтому вы занимаетесь тем чем вы занимаетесь, и я - симметрично.

bugfixer ★★★★
()
Ответ на: комментарий от bugfixer

Именно поэтому вы занимаетесь тем чем вы занимаетесь, и я - симметрично.

мне строго пох. чем вы там занимаетесь.

так и не понятно, что вы хотите. вы утверждаете что все пакеты между двумя точками идут строго по одному маршруту что ли?

а если он сломался… то что? а если данный маршрут оказался перегруженным, и есть более оптимальный?

длительность тсп соединения никак не фиксирована. оно может длиться 10 лет.. и все пакеты должны идти по одному маршруту все 10 лет?

а если там динамическая маршрутизация или еще какая-то с наворотами.

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

alysnix ★★★
()
Ответ на: комментарий от alysnix

дальше читаем - dynamic routing

То что Вы называете «dynamic routing» - довольно медленная вещь. В пределах одного соединения очень много усилий тратится на использование одного и того же PHY (на данном устройстве), для всех пакетов. Если Вы не понимаете зачем и почему это делается - пожалуйста, перестаньте нести свои «академические» идеи в массы.

bugfixer ★★★★
()
Ответ на: комментарий от bugfixer

это не мое:

Static routing is best used in smaller networks with fewer routers and is ideal for networks with unchanging network architecture.

Dynamic routing is well suited for larger, more complex networks that have multiple routers, and its flexibility makes it ideal for network architectures that frequently change.

зы. вот неужто не понятно, что для больших сетей с динамически подключаемыим и отключаемыми узлами, статические маршруты не существуют в принципе?

alysnix ★★★
()
Последнее исправление: alysnix (всего исправлений: 1)
Ответ на: комментарий от bugfixer

вот возьмем нашего любимого илона маска и его спутники. коннект там идет через ближащий спутник, который через несколько минут становится неближашим(это я гадаю как устроена маршрутизация у него). то есть соединение идет через разные спутники и в момент переключения между ними, будет неопределенность, какие придут раньше. остатки с первого спутника, или новые через второй. почему нет? и кто «в своем уме» будет гарантировать тут порядок?

alysnix ★★★
()
Ответ на: комментарий от alysnix

вот неужто не понятно, что для больших сетей с динамически подключаемыим и отключаемыми узлами, статические маршруты не существуют в принципе?

Не обижайтесь, но как любил поговаривать один из моих преподавателей много дцать лет назад - «да Вы батенька - дурачёк. Ду-ра-чёк».

bugfixer ★★★★
()
Ответ на: комментарий от bugfixer

Не обижайтесь, но как любил поговаривать один из моих преподавателей много дцать лет назад - «да Вы батенька - дурачёк. Ду-ра-чёк».

это он вам поговаривал? вместо того чтобы вырастить из вас специалиста, он на вас поставил крест??? безобразие.

alysnix ★★★
()
Ответ на: комментарий от alysnix

спиртные напитки?

Сложно отрицать. Расслабляться надо же как то. Но меньше чем 12 year old single malt меня не устаивает. Бюджет пугает на самом деле… Озвучивать не буду.

bugfixer ★★★★
()

Всем спасибо! Теперь понятно, что волноваться об очередности не стоит. Только при передаче надо балансировать нагрузку на Tx очереди.

bugs-bunny
() автор топика
Ответ на: комментарий от bugfixer

вы всё верно говорите, а ваш оппонент спорит со своими собственными утверждениями, не удосуживаясь договориться о предмете спора.

Да, out-of-order редкий и скорее всего из-за стабильности хеширования.

max_lapshin ★★★★★
()
Ответ на: комментарий от max_lapshin

ваш оппонент спорит со своими собственными утверждениями

Оппонент, вот наконец-то удалось правильно сформулировать - за деревьями леса не видит.

Да, out-of-order редкий и скорее всего из-за стабильности хеширования.

Стабильность хеширования не при чём (если уж на то пошло - оно стабильно донельзя). Просто даже в multi-path route для данного соединения выбирается один раз, и re-route крайне редкое событие (требует каких-то failures на изначально выбранном пути). А при фиксированном path получить out-of-order ну очень сложно. Во всяком случае это то что я вижу в очень загруженном network с несколькими тысячами машинок.

bugfixer ★★★★
()
Ответ на: комментарий от max_lapshin

Да, out-of-order редкий и скорее всего из-за стабильности хеширования.

https://osqa-ask.wireshark.org/questions/1698/tcp-out-of-order-what-does-it-means/

It simply means that particular frame was received in a different order from which it was sent (after a later packet in the sequence). It is not generally a problem. It probably indicates there are multiple paths between source and destination - and one travels a through a longer path. It means TCP has slightly more work to reassemble segments in the correct order.
alysnix ★★★
()
Ответ на: комментарий от bugfixer

https://en.wikipedia.org/wiki/Out-of-order_delivery

In computer networking, out-of-order delivery is the delivery of data packets in a different order from which they were sent. Out-of-order delivery can be caused by packets following multiple paths through a network, by lower-layer retransmission procedures (such as automatic repeat request), or via parallel processing paths within network equipment that are not designed to ensure that packet ordering is preserved. One of the functions of TCP is to prevent the out-of-order delivery of data, either by reassembling packets in order or requesting retransmission of out-of-order packets.

alysnix ★★★
()
Ответ на: комментарий от alysnix

И к чему вы всё это написали? Я хоть раз сказал что это не надо обрабатывать?? Надо. Но имея в виду что это случается крайне редко. Если вы пишете код не понимая что происходит часто а что нет - ну что ж, да рассудит нас работодатель.

bugfixer ★★★★
()
Ответ на: комментарий от bugfixer

вчитайтесь уже. это ровно то о чем я говорю.

Out-of-order delivery can be caused by packets following multiple paths through a network,

это одна из причин. поскольку явление существует(по разным причинам), его надо обрабатывать. о «частоте встречаемости» речь не идет, если явление имеет место. какая разница, редко явление или часто, если система ДОЛЖНА быть так разработана, чтобы этот случай обрабатывать.

alysnix ★★★
()
Ответ на: комментарий от bugfixer

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

это любой электрический инженегр вам скажет.

alysnix ★★★
()
Ответ на: комментарий от bugfixer

Вы точно программируете?

вы точно не блондинко? вы в чем измеряете тут свое редко/часто? предлагаю дать ваши «редко» хотя бы в виде отношения «один переставленный пакет на миллион, миллиард».. или сколько там у вас?

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

короче - давайте числа, а не эмоции.

alysnix ★★★
()
Ответ на: комментарий от alysnix

вы точно не блондинко?

Грешон. Завидуйте.

вы в чем измеряете тут свое редко/часто?

Есть у меня подсистемка в проде берущая примерно 10Gbit on avg (порядка 30Gbit в пике)…

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

Всё то вам расскажи да покажи. Я же злобный пропраетарщик (чего и не скрываю).

ваши «редко» хотя бы в виде отношения «один переставленный пакет на миллион, миллиард»

Ни разу за последнюю неделю (при нагрузке см выше). Так достаточно?

bugfixer ★★★★
()
Последнее исправление: bugfixer (всего исправлений: 1)
Ответ на: комментарий от bugfixer

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

ваши выводы - сугубо локальны, и относятся строго к вашим конфигурациям. но вы претендуете на всеобщность и яростно оспариваете тот общеизвестный факт(написанный даже в википедии), что у пакетов могут быть разные маршруты.

alysnix ★★★
()
Ответ на: комментарий от alysnix

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

Например потому что оно кормит несколько тысяч людей. На икорку хватает (спасибо). И не я тут давеча работу искал.

но вы претендуете на всеобщность

Ни в одном глазу.

и яростно оспариваете тот общеизвестный факт(написанный даже в википедии), что у пакетов могут быть разные маршруты.

Хде? Ткните носом. Как я говорил - вы за деревьями леса не видите. Очнитесь.

bugfixer ★★★★
()
Ответ на: комментарий от bugfixer

Хде? Ткните носом. Как я говорил - вы за деревьями леса не видите. Очнитесь.

да пожалста, на мой пост (привожу целиком)

порядок прихода пакетов tcp никак не фиксирован. они идут по произвольным маршрутам, по злой воле всяких там маршрутизаторов и даже операторов из АНБ. потому tcp служба их собирает в нужном порядке.

вы немедленно среагировали -

Кто в своём уме будет route’ить пакеты с данным hash от квартета IP+ports по разному? Вы отдаёте себе отчёт сколько проблем это создаёт на пустом месте? 

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

alysnix ★★★
()
Последнее исправление: alysnix (всего исправлений: 1)
Ответ на: комментарий от alysnix

сеть не гарантирует порядка прихода пакетов

Однозначно. Но вероятность out-of-order довольно мала.

хотя бы в силу того, что их путь может быть разным

Вы даже не слышите что вам говорят. По факту - очень много усилий тратится на то чтобы абс все пакеты данного соединения шли по одному маршруту. Вы это оспариваете? Да или нет?

bugfixer ★★★★
()
Ответ на: комментарий от bugfixer

По факту - очень много усилий тратится на то чтобы абс все пакеты данного соединения шли по одному маршруту. Вы это оспариваете? Да или нет?

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

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

раз узлы сети обеспечивающие передачу траффика могут отваливаться, блоки питания - гореть, злодеи - подсаживать вирусы и захватывать админские права, спутники - улетать и падать, в здании могут быть пожары… то все ваши бесчисленные усилия обеспечить статическую маршрутизацию - тщетны в общем случае.

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

alysnix ★★★
()
Ответ на: комментарий от alysnix

я не могу оспаривать глупости.

я по образованию физик

в науке нет понятия - редко/часто, много усилий - мало усилий.

это все какая-то гуманитарщина.

если вы будете лезть со своей гуманитарщиной к умным людям

Какая прелесть. Забрал в копилочку.

bugfixer ★★★★
()
Ответ на: комментарий от bugfixer

очень много усилий тратится на то чтобы абс все пакеты данного соединения шли по одному маршруту. Вы это оспариваете? Да или нет?

вы хоть понимаете, что это некорректно поставленный вопрос?

«Вы оспариваете тот факт, что тратится много усилий…?»

варианты ответов.

  1. оспариваю, усилий тратится мало, можно потратить больше.
  2. допустим усилий тратится много, но очевидно что не очень. то есть - то есть оспариваю.
  3. оспариваю - усилий не тратится вообще. разве это усилия?

с чего вы взяли что на каждое вопросительное предложение имеется ответ?

если так, то вопрос - что больше - белое или круглое?

короче - не надо задавать дурацкие вопросы, не будете получать дурацкие ответы.

alysnix ★★★
()
Последнее исправление: alysnix (всего исправлений: 1)
Ответ на: комментарий от alysnix

я по образованию физик. в науке нет понятия - редко/часто, много усилий - мало усилий. это все какая-то гуманитарщина

Как хорошо что Вы ушли в ойти! Я прям таки рад за физику… Хотя за ойти можно конечно попереживать.

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

AntonI ★★★★
()
Ответ на: комментарий от AntonI

Как хорошо что Вы ушли в ойти! Я прям таки рад за физику… Хотя за ойти можно конечно попереживать.

еще один рефлексирующий профессор, ну и что такое в физике - редко? это в каких единицах, какая это примерно размерность, что это такое вообще? для одних экспериментов и явлений и раз в год - часто. а других - 1000 раз в секунду - редко.

alysnix ★★★
()
Ответ на: комментарий от alysnix

В физике редко это например применение N-частичнвх уравнений физкенитики для прямого моделирования. А применение уравнений гидродинамики или у-й Максвелла это в физике часто.

Беда не в том что Вы там с чем то не согласны - беда в том что Вы даже не поняли что именно Вам сказали. Но признать ошибку это не Ваш путь, такое тут уже много раз проходили…

AntonI ★★★★
()
Ответ на: комментарий от AntonI

В физике редко это например применение N-частичнвх уравнений физкенитики для прямого моделирования. А применение уравнений гидродинамики или у-й Максвелла это в физике часто.

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

пример катастрофически неудачен. давайте новый и интересный.

alysnix ★★★
()
Последнее исправление: alysnix (всего исправлений: 1)
Ответ на: комментарий от alysnix

Матфизика является подмножеством физики, и таким образом матфизика тоже физика. В частности потому, что эти уравнения на разных уровнях описывают объективные физические явления. Так что пример вполне удачный.

И вообще, как говорил один из великих физиков, «физика - это то о чем говорят физики за чашкой чая» (с)

Вы где на физика то учились?

AntonI ★★★★
()
Последнее исправление: AntonI (всего исправлений: 1)