kuzis 0 17 июня, 2014 Опубликовано 17 июня, 2014 · Жалоба Всем доброго времени суток. Есть такая задача. В устройство приходит Ethernet поток 1 Гбит/с. Далее этот поток по другой среде передается в другое устройство. Максимальная пропускная способность среды ограничена. Как правильно убивать пакеты, когда их скорость превышает скорость передачи среды? Может кто-нибудь может поделиться алгоритмом прихлапывания? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 2 17 июня, 2014 Опубликовано 17 июня, 2014 · Жалоба ..я может глупость скажу, но если соединение TCP/IP то повторная передача пакетов - проблема этого протокола, а если соединение по UDP то как пакеты не прибивай всё равно жалко и навсегда. А резать пакеты можно как угодно - они , по идее, с точки зрения информационного содержимого равнозначны, кроме arp запросов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 17 июня, 2014 Опубликовано 17 июня, 2014 · Жалоба Всем доброго времени суток. Есть такая задача. В устройство приходит Ethernet поток 1 Гбит/с. Далее этот поток по другой среде передается в другое устройство. Максимальная пропускная способность среды ограничена. Как правильно убивать пакеты, когда их скорость превышает скорость передачи среды? Может кто-нибудь может поделиться алгоритмом прихлапывания? Есть способ "противодавления". Это когда приемник сам начинает что-то передавать и забивает передатчик.. Потом передатчик после столкновения пакетов берет тайм-аут и снова пытается передавать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kuzis 0 17 июня, 2014 Опубликовано 17 июня, 2014 · Жалоба Способ, как вы его назвали "противодавления", уже давно не используют. Да и передача полнодуплексная. По поводу простого прибивания, тоже вроде как так думали. Но получается такая картина: Если скорость среды до 200 мбит/с то вроде все гут. Если же она выше, то при работе одной задачи (например копирования), максимальная скорость оказывается 200 мбит/с. Но вот если запустить например два потока, то суммарная скорость соответствует скорости передачи среды. Вот такая вот фигня получается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimp61 0 17 июня, 2014 Опубликовано 17 июня, 2014 · Жалоба Всем доброго времени суток. Есть такая задача. В устройство приходит Ethernet поток 1 Гбит/с. Далее этот поток по другой среде передается в другое устройство. Максимальная пропускная способность среды ограничена. Как правильно убивать пакеты, когда их скорость превышает скорость передачи среды? Может кто-нибудь может поделиться алгоритмом прихлапывания? "Прихлапывать" вы хотите аппаратно на уровне управления микросхемой коммутатора или программно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 16 17 июня, 2014 Опубликовано 17 июня, 2014 · Жалоба Максимальная пропускная способность среды ограничена. Как правильно убивать пакеты, когда их скорость превышает скорость передачи среды? Если есть IP, то можно попробовать уменьшить MTU. Если есть ICMP, то можно попробовать отправлять Source_quench. Если есть TCP, то можно попробовать уменьшить Window size. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
shurey 0 17 июня, 2014 Опубликовано 17 июня, 2014 · Жалоба Наверное стоит использовать Ethernet flow control в частности Pause frame. Позволяет остановить передачу на заданное время. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kolobok0 0 17 июня, 2014 Опубликовано 17 июня, 2014 · Жалоба ...Может кто-нибудь может поделиться алгоритмом прихлапывания? тут уже прозвучало, что нужно стремиться управлять потоком а не только тупо терминировать. Но строго по вопросу = грохать можно без оглядки любые пакеты на IP уровне. Если что то теряется - проблемы верхних уровней, которые должны выпрямлять ситуацию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kuzis 0 18 июня, 2014 Опубликовано 18 июня, 2014 · Жалоба "Прихлапывать" вы хотите аппаратно на уровне управления микросхемой коммутатора или программно? Убивать пакеты мы должны аппаратно в плисе, без разбора и определения типа протокола. Т.е. с микросхемы коммутатора в ПЛИС идет полный поток, а из него уже должен выходить ограниченный. Управлять коммутатором - не вариант, т.к. его возможности ограничения скорости трафика весьма ограничены. В частности максимальная скорость при ограничени по документации 225 Мбит/с. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alien85 0 18 июня, 2014 Опубликовано 18 июня, 2014 · Жалоба Если скорость среды до 200 мбит/с то вроде все гут. Если же она выше, то при работе одной задачи (например копирования), максимальная скорость оказывается 200 мбит/с. Но вот если запустить например два потока, то суммарная скорость соответствует скорости передачи среды. Вот такая вот фигня получается. Скорость среды: 200 мбит/с Скорость 1 потока: 200 мбит/с Суммарная скорость 2-х потоков по этой среде: 200 мбит/с Какая фигня? Что вам не нравится? Протокол TCP/IP имеет контрольные суммы и сам определяет достоверность пакетов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kuzis 0 18 июня, 2014 Опубликовано 18 июня, 2014 · Жалоба грохать можно без оглядки любые пакеты на IP уровне. Если что то теряется - проблемы верхних уровней, которые должны выпрямлять ситуацию. Может быть это и проблемы верхних уровней. Но мы на них повлиять не можем. Наше устройство представляет собой прозрачный мост. С одной стороны подключили компьютер, с другой сеть (или другой комп). Все настройки на компе - стандартные. Заставлять пользователя их как-то менять - не самый лучший вариант. Я бы даже сказал - плохой вариант. Скорость среды: 200 мбит/с Скорость 1 потока: 200 мбит/с Суммарная скорость 2-х потоков по этой среде: 200 мбит/с Какая фигня? Что вам не нравится? Протокол TCP/IP имеет контрольные суммы и сам определяет достоверность пакетов. Не так. Скорость среды 300 Мбит/с. Суммарная скорость 2х потоков - 300. А вот если я использую только один поток - то 200. А 100 - пропали. Вот это и не нравится Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alien85 0 18 июня, 2014 Опубликовано 18 июня, 2014 · Жалоба Почитайте: http://ru.wikipedia.org/wiki/TCP/IP Не так. Скорость среды 300 Мбит/с. Суммарная скорость 2х потоков - 300. А вот если я использую только один поток - то 200. А 100 - пропали. Вот это и не нравится А без вашего устройства 1 поток может дать больше 200 мбит? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ZASADA 0 18 июня, 2014 Опубликовано 18 июня, 2014 · Жалоба убивал любые, не помещающиеся в буфер ПЛИС. все работает как часы, протоколы верхних уровней сами повторяют потерянные кадры. с flow control не заморачивался. MTU никак не влияет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimp61 0 18 июня, 2014 Опубликовано 18 июня, 2014 (изменено) · Жалоба Убивать пакеты мы должны аппаратно в плисе, без разбора и определения типа протокола. Т.е. с микросхемы коммутатора в ПЛИС идет полный поток, а из него уже должен выходить ограниченный. Управлять коммутатором - не вариант, т.к. его возможности ограничения скорости трафика весьма ограничены. В частности максимальная скорость при ограничени по документации 225 Мбит/с. Ну так делайте как это делается например в DSL модемах у него с одной стороны сеть 100/1000 Mbit а с другой например Е1 со скоростью 2 мбит. Делается так Сеть 1 Г-PHY-GMII коммутатора - MII того же коммутатора тактируемая нужной частотой от ПЛИС - PHY- сеть 10/100 Mbit. Если вам нужна скорость 40 Мbit даете тактовую на MII 10Мгц и пусть там коммутатор сам разбирается, но на выходе 10/100 у него будет не более 40 мбит. Делали так много раз причем скорость на MII занижали до 50 Кгц - работало! Проверено на ADM6993 и 88E6060. С такой схемой вам хватит самого маленького МАХII Изменено 18 июня, 2014 пользователем vadimp61 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 16 18 июня, 2014 Опубликовано 18 июня, 2014 · Жалоба MTU никак не влияет. Влияет, просто Вы этого не видите.. А вот Intel (ap453) видит: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться