RCray 0 1 ноября, 2005 Опубликовано 1 ноября, 2005 · Жалоба Такой вопрос: Многие тут делали свои проекты с прикрученным чипом 10 Mbit Ethernet CS8900A. Так вот там FIFO буферы на приём и передачу соответсвуют максимальному размеру Ethernet-пакета. А что будет, если придут последовательно два пакета с максимально большим размером? Я не успею скопировать один целиком, прежде чем второй начнёт записываться в память. Получу потерю пакета=( Как разрулить? Или как выход использовать чипы с большей SRAM на борту? Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
raider 0 1 ноября, 2005 Опубликовано 1 ноября, 2005 · Жалоба Никто и не гарантирует 100%-ую доставку Ethernet пакетов. А разруливается это протоколом транспортного уровня - tcp; который, в случае, потери пакета его перезапрашивает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 2 ноября, 2005 Опубликовано 2 ноября, 2005 · Жалоба Такой вопрос: Многие тут делали свои проекты с прикрученным чипом 10 Mbit Ethernet CS8900A. Так вот там FIFO буферы на приём и передачу соответсвуют максимальному размеру Ethernet-пакета. А что будет, если придут последовательно два пакета с максимально большим размером? Я не успею скопировать один целиком, прежде чем второй начнёт записываться в память. Получу потерю пакета=( Как разрулить? Или как выход использовать чипы с большей SRAM на борту? Спасибо. <{POST_SNAPBACK}> А тогда модуль-приемник начинает "противодавление". Т.Е. начинает передачу, вызывает в линии коллизию и этим затыкает передатчик. Метод абсолютно легальный, но не прописанный в спецификации. Кстати посмотрите на продукцию micrel. KS8842 и KS8695 Удачи! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexdsp 0 8 ноября, 2005 Опубликовано 8 ноября, 2005 · Жалоба А тогда модуль-приемник начинает "противодавление". Т.Е. начинает передачу, вызывает в линии коллизию и этим затыкает передатчик. Метод абсолютно легальный, но не прописанный в спецификации. Я бы не сказал что метод легальный. Например в сетях 100base-TX такой способ не пройдёт, так как там вообще нет никаких коллизий. Правильно будет послать прямо на MAC передающей стороны "PAUSE control frame" либо по зарезервированному мультикасту 01-80-с2-00-00-01. В поле Length/Type должно быть 8808, далее следует 16-бит opcode 0001, а затем 16-бит поле таймера, в который вписывается число слотов на которое следует притормозить передатчик. (Слот - это время на передачу минимального 64 байтного фрэйма) Ещё один способ, если используется UDP. При помощи ICMP сообщения "source quench" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться