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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Ограничение скорости Ethernet
Михаил_K
сообщение Jun 17 2014, 12:24
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Всем доброго времени суток. Есть такая задача. В устройство приходит Ethernet поток 1 Гбит/с. Далее этот поток по другой среде передается в другое устройство. Максимальная пропускная способность среды ограничена. Как правильно убивать пакеты, когда их скорость превышает скорость передачи среды? Может кто-нибудь может поделиться алгоритмом прихлапывания?
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Jun 17 2014, 12:33
Сообщение #2


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



..я может глупость скажу, но если соединение TCP/IP то повторная передача пакетов - проблема этого протокола, а если соединение по UDP то как пакеты не прибивай всё равно жалко и навсегда.
А резать пакеты можно как угодно - они , по идее, с точки зрения информационного содержимого равнозначны, кроме arp запросов.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jun 17 2014, 12:38
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Михаил_K @ Jun 17 2014, 16:24) *
Всем доброго времени суток. Есть такая задача. В устройство приходит Ethernet поток 1 Гбит/с. Далее этот поток по другой среде передается в другое устройство. Максимальная пропускная способность среды ограничена. Как правильно убивать пакеты, когда их скорость превышает скорость передачи среды? Может кто-нибудь может поделиться алгоритмом прихлапывания?

Есть способ "противодавления". Это когда приемник сам начинает что-то передавать и забивает передатчик.. Потом передатчик после столкновения пакетов берет тайм-аут и снова пытается передавать...



--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Jun 17 2014, 12:43
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Способ, как вы его назвали "противодавления", уже давно не используют. Да и передача полнодуплексная.

По поводу простого прибивания, тоже вроде как так думали. Но получается такая картина: Если скорость среды до 200 мбит/с то вроде все гут. Если же она выше, то при работе одной задачи (например копирования), максимальная скорость оказывается 200 мбит/с. Но вот если запустить например два потока, то суммарная скорость соответствует скорости передачи среды. Вот такая вот фигня получается.
Go to the top of the page
 
+Quote Post
vadimp61
сообщение Jun 17 2014, 13:30
Сообщение #5


Знающий
****

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



Цитата(Михаил_K @ Jun 17 2014, 16:24) *
Всем доброго времени суток. Есть такая задача. В устройство приходит Ethernet поток 1 Гбит/с. Далее этот поток по другой среде передается в другое устройство. Максимальная пропускная способность среды ограничена. Как правильно убивать пакеты, когда их скорость превышает скорость передачи среды? Может кто-нибудь может поделиться алгоритмом прихлапывания?

"Прихлапывать" вы хотите аппаратно на уровне управления микросхемой коммутатора или программно?
Go to the top of the page
 
+Quote Post
blackfin
сообщение Jun 17 2014, 14:19
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(Михаил_K @ Jun 17 2014, 16:24) *
Максимальная пропускная способность среды ограничена. Как правильно убивать пакеты, когда их скорость превышает скорость передачи среды?

Если есть IP, то можно попробовать уменьшить MTU.
Если есть ICMP, то можно попробовать отправлять Source_quench.
Если есть TCP, то можно попробовать уменьшить Window size.

Go to the top of the page
 
+Quote Post
shurey
сообщение Jun 17 2014, 16:31
Сообщение #7





Группа: Участник
Сообщений: 12
Регистрация: 28-09-05
Из: Москва
Пользователь №: 9 056



Наверное стоит использовать Ethernet flow control в частности Pause frame. Позволяет остановить передачу на заданное время.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Jun 17 2014, 19:45
Сообщение #8


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Михаил_K @ Jun 17 2014, 16:24) *
...Может кто-нибудь может поделиться алгоритмом прихлапывания?


тут уже прозвучало, что нужно стремиться управлять потоком а не только тупо терминировать.
Но строго по вопросу =
грохать можно без оглядки любые пакеты на IP уровне. Если что то теряется - проблемы верхних уровней, которые должны
выпрямлять ситуацию.
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Jun 18 2014, 06:08
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(vadimp61 @ Jun 17 2014, 17:30) *
"Прихлапывать" вы хотите аппаратно на уровне управления микросхемой коммутатора или программно?


Убивать пакеты мы должны аппаратно в плисе, без разбора и определения типа протокола. Т.е. с микросхемы коммутатора в ПЛИС идет полный поток, а из него уже должен выходить ограниченный. Управлять коммутатором - не вариант, т.к. его возможности ограничения скорости трафика весьма ограничены. В частности максимальная скорость при ограничени по документации 225 Мбит/с.
Go to the top of the page
 
+Quote Post
Alien85
сообщение Jun 18 2014, 06:11
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 8-04-13
Пользователь №: 76 409



Цитата(Михаил_K @ Jun 17 2014, 18:43) *
Если скорость среды до 200 мбит/с то вроде все гут. Если же она выше, то при работе одной задачи (например копирования), максимальная скорость оказывается 200 мбит/с. Но вот если запустить например два потока, то суммарная скорость соответствует скорости передачи среды. Вот такая вот фигня получается.


Скорость среды: 200 мбит/с
Скорость 1 потока: 200 мбит/с
Суммарная скорость 2-х потоков по этой среде: 200 мбит/с

Какая фигня? Что вам не нравится?

Протокол TCP/IP имеет контрольные суммы и сам определяет достоверность пакетов.
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Jun 18 2014, 06:13
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(kolobok0 @ Jun 17 2014, 23:45) *
грохать можно без оглядки любые пакеты на IP уровне. Если что то теряется - проблемы верхних уровней, которые должны
выпрямлять ситуацию.

Может быть это и проблемы верхних уровней. Но мы на них повлиять не можем. Наше устройство представляет собой прозрачный мост. С одной стороны подключили компьютер, с другой сеть (или другой комп). Все настройки на компе - стандартные. Заставлять пользователя их как-то менять - не самый лучший вариант. Я бы даже сказал - плохой вариант.

Цитата(Alien85 @ Jun 18 2014, 10:11) *
Скорость среды: 200 мбит/с
Скорость 1 потока: 200 мбит/с
Суммарная скорость 2-х потоков по этой среде: 200 мбит/с

Какая фигня? Что вам не нравится?

Протокол TCP/IP имеет контрольные суммы и сам определяет достоверность пакетов.


Не так. Скорость среды 300 Мбит/с. Суммарная скорость 2х потоков - 300. А вот если я использую только один поток - то 200. А 100 - пропали. Вот это и не нравится
Go to the top of the page
 
+Quote Post
Alien85
сообщение Jun 18 2014, 06:25
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 8-04-13
Пользователь №: 76 409



Почитайте: http://ru.wikipedia.org/wiki/TCP/IP

Цитата(Михаил_K @ Jun 18 2014, 12:13) *
Не так. Скорость среды 300 Мбит/с. Суммарная скорость 2х потоков - 300. А вот если я использую только один поток - то 200. А 100 - пропали. Вот это и не нравится

А без вашего устройства 1 поток может дать больше 200 мбит?
Go to the top of the page
 
+Quote Post
ZASADA
сообщение Jun 18 2014, 06:37
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 738
Регистрация: 13-01-11
Из: Минск
Пользователь №: 62 210



убивал любые, не помещающиеся в буфер ПЛИС. все работает как часы, протоколы верхних уровней сами повторяют потерянные кадры. с flow control не заморачивался. MTU никак не влияет.
Go to the top of the page
 
+Quote Post
vadimp61
сообщение Jun 18 2014, 06:53
Сообщение #14


Знающий
****

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



Цитата(Михаил_K @ Jun 18 2014, 10:08) *
Убивать пакеты мы должны аппаратно в плисе, без разбора и определения типа протокола. Т.е. с микросхемы коммутатора в ПЛИС идет полный поток, а из него уже должен выходить ограниченный. Управлять коммутатором - не вариант, т.к. его возможности ограничения скорости трафика весьма ограничены. В частности максимальная скорость при ограничени по документации 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

Сообщение отредактировал vadimp61 - Jun 18 2014, 06:54
Go to the top of the page
 
+Quote Post
blackfin
сообщение Jun 18 2014, 07:07
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(ZASADA @ Jun 18 2014, 10:37) *
MTU никак не влияет.

Влияет, просто Вы этого не видите..
А вот Intel (ap453) видит:
[attachment=85476:IntelAP453.jpg]
Go to the top of the page
 
+Quote Post

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

 


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


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