zhukov Posted January 26, 2006 Posted January 26, 2006 Что такое коллизия при использовании витой пары - ведь передача и прием идут по разным физическим каналам? Вопрос наболел от общения с EMAC-PHY контроллера at91rm9200. Ежели установить loopback на выходном разъеме и полудуплекс 100 Мбод, то постоянно возникает ошибка Excessive Collision - хотя никаких абонентов кроме контроллера нет. (Конечно, есть какая-то хилость в самом контроллере, потому что внешний loopback работает ЭПИЗОДИЧЕСКИ и только на 100 Мбод full-duplex; при двухточечном соединении пакеты ни в какую сторону не доходят - то, что успевает попасть в буфер приема, изуродовано донельзя). Пусть контроллер виноват, но, все-таки, что за коллизии такие при разделенных каналах Tx/Rx? У RS-232 нет ведь "коллизий". Вставить ник Quote
grama Posted January 26, 2006 Posted January 26, 2006 Витая паратут не причем. коллизии возникают когда несколько устройств начинают одновременную передачу в одной среде. И с другой стороны уже будет RX-TX. У 232 принцип насколько мне известно другой фактически это прямое соединение для телеметрии. Хотя могу ошибаться. Вот тут почитай про коллизии http://www.citforum.ru/nets/protocols2/2_04_01.shtml . Вставить ник Quote
zhukov Posted January 26, 2006 Author Posted January 26, 2006 Увы, по этой ссылке - то же самое, что переписывается из учебника в учебник с времен коаксиала. Там все понятно было - среда общая. А в витой паре (простите, четверке) среды РАЗДЕЛЕНЫ. Какой канал мне слушать, когда я говорю. Говорю по Tx, а "слушать" что - свой же Tx? Хорошо, можно представить-предположить, что "коллизии" оставлены для совместимости. Tо есть, будем считать, что это прием по Rx на фоне передачи по Tx - вот это "коллизия". Тогда получается, что внешний loopback всегда должен приводить к коллизии в полудуплексе. Не тут то было! С тем же loopback'ом на PC в полудуплексе передаю пакет - и он тут же попадает в приемник. Нет никакой "коллизии". Что же такое Ethernet-коллизия с учетом нынешних сред? Вставить ник Quote
grama Posted January 26, 2006 Posted January 26, 2006 Ethernet (Fast Ethernet) основан на "методе коллективного доступа с опознаванием несущей и обнаружением коллизий (carrier-sense-multiply-access with collision detection, CSMA/CD)" В любом коммутаторе Fast Ethernet используется CSMA/CD и в нормальныз свичах, например, Cisco 2950T есть функция "loopback detection" которая предотвращает несанкционированную закольцовку (спанинг три) или другие сбои в сети. С учетм нынешних сред наверно имеется ввиду не 10 а 100 и более Мбит уменьшено время отработки коллизий, в этой же статье написано : "Все времена передачи кадров Fast Ethernet в 10 раз меньше соответствующих времен технологии 10-Мегабитного Ethernet'а: межбитовый интервал составляет 10 нс вместо 100 нс, а межкадровый интервал - 0.96 мкс вместо 9.6 мкс соответственно." Вы наверно по ссылке не до конца дочитали, там это подробно описано, а вести свои ОКР в этом направлении ИМХО глупо. Вставить ник Quote
zhukov Posted January 26, 2006 Author Posted January 26, 2006 Я читал Олифера. На эту тему у него всего лишь один абзац в разделе "Стандарт 10Base-T": "Повторитель обнаруживает коллизию в сегменте в случае одновременной передачи сигналов по нескольким своим Rx входам и посылает jam-последовательность на все свои Tx выходы." У меня нет хаба, у меня Loopback - то есть адаптер передает ТАКОЕ, что кажется ему коллизией. Как он ее обнаруживает - по искаженным (запрещенным) кодам в канале Rx в момент передачи по Tx? Об этом у Олифера не сказано. Спасибо за ссылку. Вставить ник Quote
grama Posted January 26, 2006 Posted January 26, 2006 Вот это рекомендую еще почитать http://www.citforum.ru/nets/switche/osi.shtml . Вставить ник Quote
SergeiK Posted January 26, 2006 Posted January 26, 2006 Что не понятен исходный вопрос. При full duplex нет колиизий. В half-duplex - вполне возможны, прием-передача там, наверно пересекаются. А если ставишь loopback и half duplex - вполне разумно получить несколькими пакетами персональный сетевой шторм. Ну, и коллизии, разумется. Вставить ник Quote
grama Posted January 26, 2006 Posted January 26, 2006 Читаем исходный вопрос: Что такое коллизия при использовании витой пары - ведь передача и прием идут по разным физическим каналам? P.S. В правильно сформулированном вопросе содержится 90% ответа на данный вопрос. Хотя вы безусловно правы в отсутствии коллизий (один порт один домен коллизий)при использовании коммутаторов, в у нага есть в его книге на эту тему :"Разделяемая среда передачи данных Ethernet была и остается причиной обвинений этой технологии в недостаточной стабильности и надежности. Отчасти это действительно так - алгоритм CSMA/CD не обманешь никакими программными решениями. И для преодоления этих недостатков фирма Kalpana (впоследствии купленная Cisco) в 1990 предложила технологию коммутации сегментов Ethernet. Таким образом, разделяемая среда (домен коллизий) не ограничивалась (с помощью мостов или маршрутизаторов), а полностью исчезала." http://nag.ru/goodies/book/ch10-4.html Вставить ник Quote
yurski Posted January 27, 2006 Posted January 27, 2006 У Олиферов все довольно подробно написано. В режиме Full duplex разделения среды нет - приемник напрямую соединен с передатчиком. В режиме Half duplex, при использовании концентратора, вся сеть представляет собой разделяемую среду. Там и "правило 4-х хабов" и т.п. Если меняем концентратор на коммутатор - он ограничивает домен коллизий. То есть на современном оборудовании по умолчанию включается Full duplex, а если например сетевая карта или коммутатор не поддерживают его или принудительно переведены на Half duplex - образуется домен коллизий в куске кабеля между портом коммутатора и сетевой картой. Вставить ник Quote
Sirco Posted January 27, 2006 Posted January 27, 2006 То есть на современном оборудовании по умолчанию включается Full duplex, а если например сетевая карта или коммутатор не поддерживают его или принудительно переведены на Half duplex - образуется домен коллизий в куске кабеля между портом коммутатора и сетевой картой. Вот тут немного не точно написано коллизия создаеться не в кабеле а именно в контроллере этого порта который принудительно переключен на халф дуплекс - так как контроллеру запрещено передавать если есть что-то на приеме , ... Вставить ник Quote
zhukov Posted January 31, 2006 Author Posted January 31, 2006 If the RTL8139C(L) is not in full-duplex mode, a collision event occurs when the receive input is not idle while the RTL8139C(L) transmits. If the collision was detected during the preamble transmission, the jam pattern is transmitted after completing the preamble (including the JK symbol pair). Вставить ник Quote
yurski Posted January 31, 2006 Posted January 31, 2006 То есть на современном оборудовании по умолчанию включается Full duplex, а если например сетевая карта или коммутатор не поддерживают его или принудительно переведены на Half duplex - образуется домен коллизий в куске кабеля между портом коммутатора и сетевой картой. Вот тут немного не точно написано коллизия создаеться не в кабеле а именно в контроллере этого порта который принудительно переключен на халф дуплекс - так как контроллеру запрещено передавать если есть что-то на приеме , ... Хорошо, тогда будем последовательны: 1. коллизия - искажение сигнала при попытке одновременной передачи в разделяемой среде несколькими узлами. 2. разделяемой средой передачи в случае подключения сетевой карты к коммутатору на half duplex является собственно кабель и аналоговые цепи портов (поправьте, если ошибаюсь). 3. соответственно доменом коллизий является совокупность куска кабеля, соедииняющего порты и немного аналоговой электроники. С точки зрения [топологии] сети существенным является наличие домена коллизий на этом участке (который на понятийном уровне отождествляется с кабелем). Контроллер может только определять наличие коллизии. Хотя, если некоторые люди считают, что все происходящее во вселенной - происходит в их голове, то почему бы и контроллеру не принять аналогичную точку зрения? ;-) Вставить ник Quote
GluckMaker Posted January 31, 2006 Posted January 31, 2006 У меня нет хаба, у меня Loopback - то есть адаптер передает ТАКОЕ, что кажется ему коллизией. Как он ее обнаруживает - по искаженным (запрещенным) кодам в канале Rx в момент передачи по Tx? Как я понял, ты просто замкнул RX на TX. Передатчик пытается отправить пакет, и тут же ловит некую активность в приёмнике (преамбулу своего же пакета). Эта активность распознаётся как коллизия, т.к. в half duplex во время передачи на приёмник ничего приходить не должно (при подключении к честному хабу свой собственный сигнал мы не слышим). Вывод: либо half-duplex, либо лупбэк. И ни в коем случае не то и другое вместе. Вставить ник Quote
GluckMaker Posted January 31, 2006 Posted January 31, 2006 Кстати, забыл спросить: что используешь в качестве PHY? RTL8201? А рекомендации по разводке платы соблюдены? У меня, помнится, на макетке (с длинными МГТФными соплями) его завести так и не удалось. В результате плюнул и в качестве PHY взял огрызок от 5-портового свитча (там 5 порт был отдельно). Вставить ник Quote
Sirco Posted January 31, 2006 Posted January 31, 2006 То есть на современном оборудовании по умолчанию включается Full duplex, а если например сетевая карта или коммутатор не поддерживают его или принудительно переведены на Half duplex - образуется домен коллизий в куске кабеля между портом коммутатора и сетевой картой. Вот тут немного не точно написано коллизия создаеться не в кабеле а именно в контроллере этого порта который принудительно переключен на халф дуплекс - так как контроллеру запрещено передавать если есть что-то на приеме , ... Хорошо, тогда будем последовательны: 1. коллизия - искажение сигнала при попытке одновременной передачи в разделяемой среде несколькими узлами. Очень правильное определение 2. разделяемой средой передачи в случае подключения сетевой карты к коммутатору на half duplex является собственно кабель и аналоговые цепи портов (поправьте, если ошибаюсь). Не правильно - чисто схематически при изменении халф фулл дуплекс ничего не происходит - какая была схема такая и остаеться просто меняеться логика работы контроллера 3. соответственно доменом коллизий является совокупность куска кабеля, соедииняющего порты и немного аналоговой электроники. С точки зрения [топологии] сети существенным является наличие домена коллизий на этом участке (который на понятийном уровне отождествляется с кабелем).Контроллер может только определять наличие коллизии. Хотя, если некоторые люди считают, что все происходящее во вселенной - происходит в их голове, то почему бы и контроллеру не принять аналогичную точку зрения? ;-) Ну вот ето последнее утверждение как раз правильное описание что происходит в контроллере . Другими словами , как правило все люди разгаваривают халф дуплекс , но припустим что для двух человек сделали трубки от рта к уху собеседника - тойсь сделали своего рода "фулл дуплекс" и как ты думаеш что они будут одновременно говорить??? Так я об это -же - коллизия в витой паре - это пережиток оставленый для совместимости старыми системами налф дуплекс - когда карточка вдруг бы не смогла правильно определить свой режим работы . И "коллизия" происходит именно как раз в контроллере - тойсь он думает что произошла коллизия и индицирует ее - а в действительности колиизии в среде передачи нет - так как она строго разделена на прием и передачу . На что могу согласиться - что коллизии на заре витой пары присутствовали в хабах именно в контроллерах хабов , но при появлении свичей - о коллизиях можно забыть , если не называть коллизиями перегрузку сети трафиком - когда 2и больше портов заливают в один порт максимальный трафик Вставить ник Quote
Sirco Posted January 31, 2006 Posted January 31, 2006 Давай разберемся что ты пишеш : Вопрос наболел от общения с EMAC-PHY контроллера at91rm9200. Ежели установить loopback на выходном разъеме и полудуплекс 100 Мбод, то постоянно возникает ошибка Excessive Collision - хотя никаких абонентов кроме контроллера нет. Как я понял ты в выходном разьеме закольцовываеш прием на передачу при етом контроллер выставляеш на халф дуплекс и ругаешся на то что контроллер обьявил об возникновении коллизиии ? А что ты хочеш от него ? Другими словами: - ты включил данный порт в хаб и начинаеш передачу при этом на приеме что-то появлеться - это как раз есть коллизия , от он и кричит об этом ... так как с хабом нельзя одновременно передавать и принимать . (Конечно, есть какая-то хилость в самом контроллере, потому что внешний loopback работает ЭПИЗОДИЧЕСКИ и только на 100 Мбод full-duplex; при двухточечном соединении пакеты ни в какую сторону не доходят - то, что успевает попасть в буфер приема, изуродовано донельзя). а вот тут я не понял - а теперь говориш что ты включил фулл дуплекс , так какое утверждение правильное ??? Пусть контроллер виноват, но, все-таки, что за коллизии такие при разделенных каналах Tx/Rx? У RS-232 нет ведь "коллизий". Вставить ник Quote
yurski Posted February 1, 2006 Posted February 1, 2006 коллизия создаеться не в кабеле а именно в контроллере этого порта который принудительно переключен на халф дуплекс - так как контроллеру запрещено передавать если есть что-то на приеме , ... ОК. На разделяемой среде - перекрестке городских улиц произошла коллизия - столкновение двух машин. Контроллер :) перекрестка - ГАИшник определяет коллизию и приостанавливает трафик на некоторое время. ГАИшник может считать, что коллизия произошла в нем, но лично мне от такого отождествления с объектом управления было бы некомфортно. Коллизия - искажение сигнала при попытке одновременной передачи в разделяемой среде несколькими узлами. Т.е. когда складываются два несинхронизированных цифровых сигнала (манчестерский код) получаем не удвоение пропускной способности, а кашу. Процессы - аналоговые, первого уровня модели OSI. "Столкновение" сигналов происходит во всей разделяемой среде. 2. разделяемой средой передачи в случае подключения сетевой карты к коммутатору на half duplex является собственно кабель и аналоговые цепи портов (поправьте, если ошибаюсь). Не правильно - чисто схематически при изменении халф фулл дуплекс ничего не происходит - какая была схема такая и остаеться просто меняеться логика работы контроллера Правильно, на односторонней улице ПДД не отменяют. Просто не надо учитывать встречную полосу - ее нет :) Так я об это -же - коллизия в витой паре - это пережиток оставленый для совместимости старыми системами налф дуплекс - когда карточка вдруг бы не смогла правильно определить свой режим работы . И "коллизия" происходит именно как раз в контроллере - тойсь он думает что произошла коллизия и индицирует ее - а в действительности колиизии в среде передачи нет - так как она строго разделена на прием и передачу . На что могу согласиться - что коллизии на заре витой пары присутствовали в хабах именно в контроллерах хабов , но при появлении свичей - о коллизиях можно забыть , если не называть коллизиями перегрузку сети трафиком - когда 2и больше портов заливают в один порт максимальный трафик Аварии на перекрестках прогрессивных прибалтийских стран - это пережиток, оставшийся в наследство от СССР, с переходом на новые европейские автомобили о них можно будет забыть... Блин, Sirco, нельзя же так издеваться над физикой, стандартами и здравым смыслом! 1. режим передачи у обоих устройств 10/100Base-TX, соединенных витой парой, ОДИН. Или полудуплекс, или поднодуплексный. 2. если режим полнодуплексный - разделения среды НЕТ. 3. если режим полудуплексный - разделение среды ЕСТЬ. 4. я могу захотеть (по объективным причинам) выставить полудуплексный режим на полнодуплексном оборудовании. Более того, на гигабитном - 10 Мбит. Если кабель плохой, длинный и т.п. 5. далее см. начало поста. Вставить ник Quote
yurski Posted February 1, 2006 Posted February 1, 2006 ... потому что внешний loopback работает ЭПИЗОДИЧЕСКИ и только на 100 Мбод full-duplex Хм... может длину петли надо побольше сделать?.. Какова минимальная длина витой пары между приемником и передатчиком? Вставить ник Quote
zhukov Posted February 2, 2006 Author Posted February 2, 2006 Кстати, забыл спросить: что используешь в качестве PHY? RTL8201? А рекомендации по разводке платы соблюдены? У меня, помнится, на макетке (с длинными МГТФными соплями) его завести так и не удалось. В результате плюнул и в качестве PHY взял огрызок от 5-портового свитча (там 5 порт был отдельно). LXT971a. Запустили, убедились, что Tx с выходов камня (at91rm9200) проходит через PHY и по loopback приходит обратно на вход Rx камня... Локальный loopback в EMAC (на борту) работает всегда. Похоже, что у at91rm9200 входы дохлые - при программном опросе во время передачи никаких изменений не наблюдается... Этим, правда, не объяснить пару фантастических фактов: - Excessive Collision при half-duplex без loopback и при оторванном кабеле - Отправленные пакеты (в full-duplex) никогда не доходили до соседней PC (Point-to-Point), хотя Tx на цифровом анализаторе выглядит шикарно. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.