|
|
  |
Как быстро передавать данные через Ethernet, Поток данных порядка 100+ мбайт/сек |
|
|
|
Nov 5 2015, 17:44
|
Гуру
     
Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261

|
Цитата(jur @ Nov 5 2015, 20:26)  Просто под рукой кросс-кабеля не нашлось :-) Но я его или найду, или сделаю сам. Вообще-то, современные сетевые карты умеют менять функции каналов приема/передачи автоматически. Так что можете попробовать соединить компьютеры обычным патч-кордом. Цитата(jur @ Nov 5 2015, 20:26)  Ведь, насколько я понял, клиенту MAC-адрес вынь да положь? MAC-адрес обычно аппаратно прописан в каждой сетевой карте. Цитата(jur @ Nov 5 2015, 20:26)  А как насчет ARP-пакетов? Они ведь останутся? ARP-пакеты в сети закончатся, как только оба клиента узнают MAC-адрес своего партнера.
|
|
|
|
|
Nov 5 2015, 17:45
|
Местный
  
Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704

|
Цитата(blackfin @ Nov 5 2015, 19:40)  Вообще-то, современные сетевые карты умеют менять функции каналов приема/передачи автоматически. Так что можете попробовать соединить компьютеры обычным патч-кордом. У меня плата не "молодая", не поддерживает, пробовал. Цитата(blackfin @ Nov 5 2015, 19:40)  MAC-адрес обычно аппаратно прописан в каждой сетевой карте. Да, источника - прописан, но ведь сетевому уровню для Ethernet-фрейма нужен и адрес приемника? Насколько я понял, именно для этого и применяются отдельные запросы. Цитата(blackfin @ Nov 5 2015, 19:44)  ARP-пакеты в сети закончатся, как только оба клиента узнают MAC-адрес своего партнера. Они постоянно валят, заразы... А как вообще организовать связь двух изолированных компьютеров? Нет DHCP, нет роутера - вообще никого больше.
--------------------
MPEG-4 - в массы!
|
|
|
|
|
Nov 5 2015, 18:18
|
Местный
  
Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704

|
Цитата(blackfin @ Nov 5 2015, 20:02)  Может, для начала почитать какой-нить букварь по TCP/IP? Да читал я... В "букварях" не описываются тонкости взаимодействия интерфейсов. К тому же, я хотел бы использовать UDP протокол. Он намного "легче" TCP. И я совсем не встречал ситуации соединения двух компьютеров без всей остальной тяжеловесной инфраструктуры. Меня как раз и интересует, как по-проще это сделать. Т.е. без Интернета, без всего остального громоздкого и сложного для понимания. Просто компьютер-компьютер и все.
--------------------
MPEG-4 - в массы!
|
|
|
|
|
Nov 5 2015, 19:21
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643

|
Приветствую! Цитата(jur @ Nov 5 2015, 19:26)  Да, я именно об этом и подумал. В общем-то мне именно это и нужно. Просто под рукой кросс-кабеля не нашлось :-) Но я его или найду, или сделаю сам.
А как насчет ARP-пакетов? Они ведь останутся? Ведь, насколько я понял, клиенту MAC-адрес вынь да положь? Спускаться на уровень Ethernet-фреймов или как-то иначе? Для начала смотрите команды с ничего не значащими именами  - route и arp. При точка-точка паразитного трафика в канале будет немного - изредка ARP - иногда ICMP это если Вы вдруг не туда что-то слать начнете - в общем - мешать не должно. Успехов! Rob.
|
|
|
|
|
Nov 5 2015, 20:13
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(jur @ Nov 5 2015, 20:26)  А как насчет ARP-пакетов? Они ведь останутся? Ведь, насколько я понял, клиенту MAC-адрес вынь да положь? Спускаться на уровень Ethernet-фреймов или как-то иначе? Реализуйте в устройстве поддержку ARP и ICMP и оно будет нормально определятся в сети. На основании ARP система заполняет ARP-таблицу, где IP-адресу ставится в соответствие MAC-адрес, т.е. для передачи сообщений система должна знать какой MAC-адрес соответствует IP-адресу. Даже если посылается UDP пакет с правильными полями MAC и IP, система будет отправлять вашему устройству (и остальным) ARP запрос пока не получит соответствующий ARP ответ, чтобы заполнить ARP-таблицу. Цитата(jur @ Nov 5 2015, 20:45)  Они постоянно валят, заразы... После ARP-ответа такого не будет, реализуйте поддержку ARP! Выше советовали пример от альтера с железным udp_offloader, если его используете, то там ещё должна быть софтварная поддержка минимального IP-стека (ARP, ICMP) на Nios II.
|
|
|
|
|
Nov 9 2015, 16:06
|
Местный
  
Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704

|
Продолжаю продираться через препоны к назначенной цели :-)
Сначала столкнулся с проблемой, что при включении моего отдельного сегмента вырубается основная сеть. В смысле, сеть есть, а связи с Интернетом нет. Потом допетрил ("Семен Семеныч!" (С)) и сделал этот отдельный сегмент другой подсетью (основная 192.168.1.1, отдельная - 192.168.147.1(2)). Все стало работать нормально: Кесарю - кесарево, слесарю - слесарево.
Спасибо, друзья, за подсказку! Позадавал и там, и там IP<->MAC с помощью команды arp. Запускаю мою пару клиент-сервер. Работает, передает, но все-равно остаются паузы между посылкой данных клиентом и их приемом сервером. Почитал еще раз про winsock и узнал, что данные командой sendto() не передаются, а буферируются системой. То же относится и к recvfrom(). Это убедило меня в необходимости дальнейшего углубления в winsock. Не знаю, поможет ли команда select(), но подозреваю, что должна быть возможность задать немедленную посылку данных. Что-то вроде флага "send immediately".
В общем, продолжаю погружение...
P.S. Для этих двух Ethernet-карт позапрещал все, кроме TCP/IP. Думал, что можно доустановить протокол UDP/IP, но система сказала: "Давай диск". Отказался...
--------------------
MPEG-4 - в массы!
|
|
|
|
|
Nov 10 2015, 08:33
|
Местный
  
Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704

|
Цитата(krux @ Nov 9 2015, 18:25)  гуглите функцию setsockopt и опции сокетов, например SO_SNDBUF, SO_SNDLOWAT, SO_SNDTIMEO и т.д. Спасибо за подсказку! Мне как раз всякие дополнительные моменты понадобятся, т.к. я приступаю к разработке тестовой пары передатчик-приемник. Тут мне понадобятся всякие прибамбасы с ивентами и т.п. А паузы я поборол! :-) Спасибо за помощь! "Собака порылась" в очень простой вещи: в NetBIOS-се. Я эту штуку на карте отдельного сегмента сети вырубил, а на основной карте она осталась. И получалось, что после приема пакета от клиента Wireshark показывал еще 5-6 пакетов NBNS от основной карты, и только потом отправляемый обратно мой пакет. P.S. Еще небольшая непонятка. Основной интерфейс (192.168.1.50) каждые ~35 секунд посылает широковещательный пакет. Это выглядит так: Код No. Time Source Destination Protocol Length Info 111 896.507917000 192.168.1.50 255.255.255.255 UDP 82 Source port: 1025 Destination port: 1947 112 930.686786000 192.168.1.50 255.255.255.255 UDP 82 Source port: 1025 Destination port: 1947 113 965.080060000 192.168.1.50 255.255.255.255 UDP 82 Source port: 1025 Destination port: 1947 Если я что-то передаю по тестовому сегменту, то широковещательные пакеты все равно вклиниваются: Код No. Time Source Destination Protocol Length Info 266 1275.393877000 192.168.147.2 192.168.147.1 UDP 142 Source port: 1666 Destination port: 1666 <- От клиента 267 1275.394245000 192.168.147.1 192.168.147.2 UDP 142 Source port: 1666 Destination port: 1666 -> Эхо клиенту 268 1275.489097000 192.168.1.50 255.255.255.255 UDP 82 Source port: 1025 Destination port: 1947 269 1275.719379000 192.168.147.2 192.168.147.1 UDP 142 Source port: 1666 Destination port: 1666 270 1275.719754000 192.168.147.1 192.168.147.2 UDP 142 Source port: 1666 Destination port: 1666 Погуглил насчет порта UDP/1025 - какой-то WIN-RPC (Windows RPC) (к чему он тут?), про порт UDP/1947 - вообще что-то невразумительное ("1947/TCP HASP SRM Работа и с сетевым, и с локальным ключами HASP происходит через локальный демон или службу по TCP/1947", но я-то вижу пакет UDP). Как это понимать? Наплевать и забыть?
--------------------
MPEG-4 - в массы!
|
|
|
|
|
Sep 20 2016, 20:14
|
Профессионал
    
Группа: Свой
Сообщений: 1 687
Регистрация: 11-01-05
Из: Москва
Пользователь №: 1 884

|
Цитата(jur @ Nov 9 2015, 19:06)  Продолжаю продираться через препоны к назначенной цели :-) Парень. Главная препона в том, что о поставленной задаче ты не знаешь абсолютно ничего, а она довольно велика... В твоей теме сидят уже 2 или 3 человека, которые имеют готовые решения, и терпеливо терпят всю твою пионерскую чушь, в надежде что ты все-таки поймешь в итоге, что нужно правильное делать. Тебе уже даже намекнули, что надо на самом деле сделать: банка варенья и коробка печенья. Как показывает опыт, в электрониксе полно отзывчивых людей, которые всего-лишь за одну-две сотни тысяч деревянных печенек (а иногда и гораздо дешевле) решат твою задачу в лучшем виде и очень быстро. При этом ты все равно будешь главным, не сорвешь все сроки, прослывешь очень большим техническим экспертом, и опытным руководителем, и получишь потом целую гору шоколада от руководства. Альтернатива в твоем состоянии - потратить на все ето дело год-другой, и завалить дело целиком.
--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|