реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Размер буфера для Ethernet
_Anatoliy
сообщение Jan 16 2012, 19:22
Сообщение #1


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Ethernet раньше не занимался.
Коллеги,а вот такой вопрос.Встала задача передавать по Ethernet (радиоканал,TCP/IP)небольшой поток информации,порядка 2Мбит при 100 Мбит сети. Девайс сделал на Циклоне-3, всё работает при 25Мбит. Но как только начинаю ограничивать пропускную способность канала связи до нужных 2Мбит - всё валится. Подозреваю что чем меньше пропускная способность канала связи тем большего размера нужен входной буфер. У меня сейчас 256 Кбайт - мало или нет?Если мало то как определить нужный размер?

p.s.
Если это важно, IP никак не обрабатывается,что пришло то и отправляется(требование заказчика).
Go to the top of the page
 
+Quote Post
vadimp61
сообщение Jan 16 2012, 19:50
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 599
Регистрация: 28-08-08
Из: Ростов папа
Пользователь №: 39 872



Цитата(_Anatoliy @ Jan 16 2012, 23:22) *
Ethernet раньше не занимался.
Коллеги,а вот такой вопрос.Встала задача передавать по Ethernet (радиоканал,TCP/IP)небольшой поток информации,порядка 2Мбит при 100 Мбит сети. Девайс сделал на Циклоне-3, всё работает при 25Мбит. Но как только начинаю ограничивать пропускную способность канала связи до нужных 2Мбит - всё валится. Подозреваю что чем меньше пропускная способность канала связи тем большего размера нужен входной буфер. У меня сейчас 256 Кбайт - мало или нет?Если мало то как определить нужный размер?

p.s.
Если это важно, IP никак не обрабатывается,что пришло то и отправляется(требование заказчика).

Делали мост Ethernet , то есть не обрабатывали. Хватило 128 кбайт для скоростей 64-2048 кбит. Циклон1.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jan 16 2012, 20:00
Сообщение #3


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(vadimp61 @ Jan 16 2012, 21:50) *
Делали мост Ethernet , то есть не обрабатывали. Хватило 128 кбайт для скоростей 64-2048 кбит. Циклон1.

Интересно,а в чём же тогда проблема может быть?
Go to the top of the page
 
+Quote Post
Alex11
сообщение Jan 16 2012, 20:14
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



А у Вас источник с какой скоростью данные отправляет? Если 25 МБит, а Вы ограничили выход на 2, то буфера не хватит никакого и никогда.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jan 16 2012, 20:22
Сообщение #5


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Alex11 @ Jan 16 2012, 22:14) *
А у Вас источник с какой скоростью данные отправляет? Если 25 МБит, а Вы ограничили выход на 2, то буфера не хватит никакого и никогда.

А разве протокол TCP не ограничит скорость передачи при потерях пакетов?
Источник - сеть с десятком компьютеров,в том числе и компьютер посылающий/принимающий данные.
Go to the top of the page
 
+Quote Post
Timmy
сообщение Jan 16 2012, 21:37
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(_Anatoliy @ Jan 17 2012, 00:22) *
А разве протокол TCP не ограничит скорость передачи при потерях пакетов?
Источник - сеть с десятком компьютеров,в том числе и компьютер посылающий/принимающий данные.

Для управления скоростью передачи в Ethernet предусмотрены специальные пакеты pause. Странно, а как жили до 1997 года? Всё современное сетевое оборудование вроде бы поддерживает паузу. Надо заметить, что раньше в TCP максимальный размер окна был 64К, и при буфере в 256К можно было держать до 3 TCP линков без потерь пакетов. А сейчас винда с ходу выдаёт окно около мегабайта, и никаких буферов на него не напасешься.
Go to the top of the page
 
+Quote Post
vadimp61
сообщение Jan 17 2012, 04:05
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 599
Регистрация: 28-08-08
Из: Ростов папа
Пользователь №: 39 872



Цитата(_Anatoliy @ Jan 17 2012, 00:00) *
Интересно,а в чём же тогда проблема может быть?

Фильтрацию пакетов по МАС адресам делать надо, зачем пихать все пакеты на другую сторону через узкий канал, если этот пакет предназначен локальной стороне? Стройте в памяти Циклона таблицу МАКов и фильтруйте, а пакет храните во внешней памяти, причем со временем выборки не более 12нс для скорости 10BASE-T, для 100BASE-T надо быстрее или 16 битную
Что за PHY?
Go to the top of the page
 
+Quote Post
Postoroniy_V
сообщение Jan 17 2012, 04:38
Сообщение #8


МедвеД Инженер I
****

Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951



Цитата(_Anatoliy @ Jan 17 2012, 04:22) *
Ethernet раньше не занимался.
Коллеги,а вот такой вопрос.Встала задача передавать по Ethernet (радиоканал,TCP/IP)небольшой поток информации,порядка 2Мбит при 100 Мбит сети. Девайс сделал на Циклоне-3, всё работает при 25Мбит. Но как только начинаю ограничивать пропускную способность канала связи до нужных 2Мбит - всё валится. Подозреваю что чем меньше пропускная способность канала связи тем большего размера нужен входной буфер. У меня сейчас 256 Кбайт - мало или нет?Если мало то как определить нужный размер?

p.s.
Если это важно, IP никак не обрабатывается,что пришло то и отправляется(требование заказчика).

делал подобное, но у меня был 1 PC подключенный через через 2 Мбит.с канал к 100Мбит.с сети.
на начальном этапе работало как-то странно, например сообщения в icq появлялись с обалденной задержкой, если вообще появлялись.
оказалось что была проблема в циркулярном буфере(данные от pc хранились во внешней рам, оттуда потом доставались и передавлись в 2мб канал)
начало встречалось с концом и пошло поехало.
когда исправил работу с буфером - заработало как и ожидалось(проверял с ftp, http )
размер буфера был 256Kб


--------------------
Cogito ergo sum
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jan 17 2012, 06:57
Сообщение #9


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Timmy @ Jan 16 2012, 23:37) *
Для управления скоростью передачи в Ethernet предусмотрены специальные пакеты pause. Странно, а как жили до 1997 года? Всё современное сетевое оборудование вроде бы поддерживает паузу. Надо заметить, что раньше в TCP максимальный размер окна был 64К, и при буфере в 256К можно было держать до 3 TCP линков без потерь пакетов. А сейчас винда с ходу выдаёт окно около мегабайта, и никаких буферов на него не напасешься.

Проверяли,на некотором оборудовании pause срабатывает,на некотором нет.Хочется универсальности.
Т.е. чтобы работать без проблем нужно сохранять сразу всё окно?А если компьютеров 10 то буфер нужен 10 Мбайт?

Цитата(Postoroniy_V @ Jan 17 2012, 06:38) *
размер буфера был 256Kб

Странно,и у меня такой же.Я проверяю так - копирую через мост файл большого размера и параллельно пингую свой сервер.При скорости 25Мбит всё идёт совсем без проблем.На 10 Мбит редко идут потери пингов,но файл копируется,а при 5 потери пингов очень часто идут,а копирование совсем обрывается.

Цитата(vadimp61 @ Jan 17 2012, 06:05) *
Фильтрацию пакетов по МАС адресам делать надо, зачем пихать все пакеты на другую сторону через узкий канал, если этот пакет предназначен локальной стороне? Стройте в памяти Циклона таблицу МАКов и фильтруйте, а пакет храните во внешней памяти, причем со временем выборки не более 12нс для скорости 10BASE-T, для 100BASE-T надо быстрее или 16 битную
Что за PHY?

dp83848cvv,память 16-ти битная,10нс
Go to the top of the page
 
+Quote Post
petrov
сообщение Jan 17 2012, 07:39
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Надо брать другой контроллер Ethernet, которому на MII интерфейс можно любой клок подавать, он сам делает flow control, нет никаких дополнительных буферов в FPGA и потерь пакетов.
Go to the top of the page
 
+Quote Post
Postoroniy_V
сообщение Jan 17 2012, 07:46
Сообщение #11


МедвеД Инженер I
****

Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951



Цитата(_Anatoliy @ Jan 17 2012, 15:57) *
....


Странно,и у меня такой же.Я проверяю так - копирую через мост файл большого размера и параллельно пингую свой сервер.При скорости 25Мбит всё идёт совсем без проблем.На 10 Мбит редко идут потери пингов,но файл копируется,а при 5 потери пингов очень часто идут,а копирование совсем обрывается.
....

вообщем страный случай у меня работало и при 64 кб.с ... возможно в вашем случае 256Кб и мало и х.з. как определить "мало"/"номано"/"много". cranky.gif
хм ...и проверял примерно так же как и вы - копирование 2 гигового файла, сидение в тырнете(ася, веб-шмеб )..


--------------------
Cogito ergo sum
Go to the top of the page
 
+Quote Post
vadimp61
сообщение Jan 17 2012, 08:18
Сообщение #12


Знающий
****

Группа: Участник
Сообщений: 599
Регистрация: 28-08-08
Из: Ростов папа
Пользователь №: 39 872



Цитата(petrov @ Jan 17 2012, 11:39) *
Надо брать другой контроллер Ethernet, которому на MII интерфейс можно любой клок подавать, он сам делает flow control, нет никаких дополнительных буферов в FPGA и потерь пакетов.

Этот вариант будет потреблять больше минимиум в 2 раза. Если к энергопотреблению нет претензий то этот вариант лучший.
А еще есть контроллеры не с MII, а с 1 битной шиной HDLC, там вообще делать ничего не надо)))
Go to the top of the page
 
+Quote Post
petrov
сообщение Jan 17 2012, 08:30
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(vadimp61 @ Jan 17 2012, 12:18) *
Этот вариант будет потреблять больше минимиум в 2 раза.


Реализация flow control своими силами на FPGA меньше потреблять будет что ли?
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jan 17 2012, 11:03
Сообщение #14


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(petrov @ Jan 17 2012, 10:30) *
Реализация flow control своими силами на FPGA меньше потреблять будет что ли?

Добавил в проект flow control,полёт нормальный и потерь нет вообще.Хоть 1мбит хоть 50мбит. rolleyes.gif
Go to the top of the page
 
+Quote Post
XVR
сообщение Jan 17 2012, 11:13
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(_Anatoliy @ Jan 17 2012, 00:22) *
А разве протокол TCP не ограничит скорость передачи при потерях пакетов?
ТСР может и ограничит, а может и нет, но в любом случае будет продолжать работать. А вот UDP (и ICMP, т.е. ping) работать перестанут, т.к. не следят за доставкой пакетов crying.gif
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th June 2025 - 07:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.01515 секунд с 7
ELECTRONIX ©2004-2016