Half duplex и full duplex отличия ethernet

Обновлено: 04.07.2024

Конфигурация вашей сетевой карты напрямую влияет, насколько эффективно взаимодействуют ваши сервера.

Необходимо понимать, как настройки автосогласования, скорости и дуплекса влияют на передачу данных, чтобы успешно поддерживать сетевое соединение. А также расскажем про дополнительные фичи, которые помогут находить и устранять сетевые неполадки.

Ethtool: как изменить скорость, дуплекс и находить неполадки сетевой карты в Linux Ethtool: как изменить скорость, дуплекс и находить неполадки сетевой карты в Linux

В этой статье вы узнаете, как изменить настройки скорости, дуплекса и автосогласования в Linux с помощью команд ethtool.

Что такое полудуплекс, полный дуплекс и автосогласование?

Полудуплексный режим (Half-duplex) позволяет устройству отправлять или получать пакеты по очереди. Устройство, установленное в этот режим, не может выполнять оба действия одновременно.

Когда режим устройства находится в полнодуплексном режиме (Full-duplex) , он также может отправлять и получать пакеты одновременно.

Автосогласование (Auto-Negotiation) - это механизм, с помощью которого устройство автоматически выбирает наиболее эффективный режим передачи на основе характеристик своих аналогов. Рекомендуется оставить автосогласование включенным, поскольку оно позволяет устройствам выбирать наиболее эффективные средства для передачи данных.

Что такое дуплексное несоответствие?

Такое происходит когда устройство с включенным автосогласованием подключается к устройству, которое не использует автосогласование. Конец соединения с активным автосогласованием все еще может определить скорость другого конца, но не может правильно определить дуплексный режим. Как правило, конец соединения с автоматическим согласованием будет использовать полудуплекс, тогда как другой конец может быть в дуплексном режиме. Эта ситуация считается дуплексным несоответствием (duplex mismatch) .

Несоответствие дуплекса не прекращает связь полностью. Передача отдельных пакетов и небольших объемов данных не вызывают больших проблем. Однако при отправке большого объема данных с любого конца скорость значительно падает. Соединение работает, но производительность снижается, поскольку скорость передачи данных асимметрична и может привести к потере пакетов.

Как использовать команду Ethtool для настройки параметров сетевого адаптера

Ethtool - это команда конфигурации платы сетевого интерфейса, которая позволяет вам получать информацию и изменять настройки сетевого адаптера. Эти настройки включают скорость, дуплекс, автосогласование и многие другие параметры.

Помимо этого, ethtool используется для:

  • Получения идентификационной и диагностической информации
  • Получения расширенной статистики устройства
  • Контроля контрольной суммы
  • Контроля размеров кольца DMA и модерации прерываний
  • Контроля выбора очереди приема для устройств с несколькими очередями
  • Обновления прошивки во флеш-памяти

Для установки ethtool используйте следующие команды:

yum install ethtool [в Fedora, CentOS, RHEL]
sudo apt-get install ethtool [в Ubuntu, Debian]

Чтобы продолжить, вам нужно знать имя вашей сетевой карты.

Чтобы найти имя вашей сетевой карты, введите в командном терминале следующую команду:

Вывод покажет нам имя сетевой карты устройства.

enp0s3 Link encap:Ethernet HWaddr 00:1A:2B:3C:4D:5E

Теперь, когда вы определили имя устройства, проверьте текущие настройки скорости, автосогласования и дуплексного режима с помощью команды: ethtool имя_устройства.

В нашем конкретном примере команда выглядит так:

Выходные данные показывают, что текущая скорость равна 1000 Мбит/с, что дуплекс находится в режиме «Full», и что автосогласование включено.

Изменение настроек сетевого адаптера

Команда ethtool –s может использоваться для изменения текущих настроек путем определения значений скорости speed, дуплекса duplex и автосогласования autoneg в следующем формате:

sudo ethtool –s [device_name] speed [10/100/1000] duplex [half/full] autoneg [on/off]

Например, чтобы установить скорость 1000 Мбит/с, дуплексный режим - «полный», а автоматическое согласование - «включено», команда будет выглядеть так:

sudo ethtool –s enp0s3 speed 1000 duplex full autoneg on

Команда ethtool [имя_устройства] необходима для подтверждения того, что изменения были применены.

Сохранение настроек

Изменения, сделанные с помощью Ethtool, по умолчанию отменяются после перезагрузки системы.

Чтобы применить пользовательские настройки при каждой загрузке системы, отредактируйте файл для интерфейса устройства:

Добавьте нужные значения в виде строки в конце файла, используя следующий синтаксис:

ETHTOOL_OPTS="speed [100|1000|10000] duplex [half|full] autoneg [on|off]”

ETHTOOL_OPTS="speed 1000 duplex full autoneg on”

Сохраните изменения и выйдите из файла.

Теперь изменения применяются после каждой перезагрузки и являются постоянными, если файл не будет изменен снова.

Просмотр статистики интерфейса

Если вы хотите получить статистику о вашей сетевой карте, введите команду:

sudo ethtool -S имя_устройства

Вывод этой команды будет выглядеть так:

NIC statistics:
rx_packets: 108048475
tx_packets: 125002612
rx_bytes: 17446338197
tx_bytes: 113281003056
rx_broadcast: 83067
tx_broadcast: 1329
rx_multicast: 3
tx_multicast: 9
rx_errors: 0
tx_errors: 0
tx_dropped: 0
multicast: 3
collisions: 0
rx_length_errors: 0
rx_over_errors: 0
rx_crc_errors: 0
rx_frame_errors: 0
rx_no_buffer_count: 0
rx_missed_errors: 0
tx_aborted_errors: 0
tx_carrier_errors: 0
tx_fifo_errors: 0
tx_heartbeat_errors: 0
tx_window_errors: 0
tx_abort_late_coll: 0
tx_deferred_ok: 0
tx_single_coll_ok: 0
tx_multi_coll_ok: 0
tx_timeout_count: 0
tx_restart_queue: 2367
rx_long_length_errors: 0
rx_short_length_errors: 0
rx_align_errors: 0
tx_tcp_seg_good: 0
tx_tcp_seg_failed: 0
rx_flow_control_xon: 0
rx_flow_control_xoff: 0
tx_flow_control_xon: 0
tx_flow_control_xoff: 0
rx_long_byte_count: 17446338197
rx_csum_offload_good: 107876452
rx_csum_offload_errors: 2386
rx_header_split: 0
alloc_rx_buff_failed: 0
tx_smbus: 0
rx_smbus: 0
dropped_smbus: 0
rx_dma_failed: 0
tx_dma_failed: 0

Использование приведенной выше команды - отличный способ устранения проблем с конкретной сетевой картой.

Физическое расположение конкретного сетевого адаптера

Вот действительно полезный трюк, который предлагает ethtool: допустим у вас есть сервер с несколькими сетевыми картами, и одна из них работает со сбоями, но вы не уверены, какая именно это карта. Вы можете использовать ethtool, чтобы заставить мигать индикатор сетевого адаптера, чтобы определить, какой сетевой адаптер вам нужен. Скажем, если вы хотите мигать светодиодом устройства Ethernet enp0s3 в течение 15 секунд - команда для этого будет выглядеть так:

sudo ethtool -p enp0s3 15

Светодиод начнет мигать, чтобы вы знали, с какой картой вы имеете дело.

Тестирование сетевой карты

Команда ethtool предлагает пару удобных тестов, которые вы можете запустить на сетевой карте:

  • Online - тесты nvram и тест ссылок
  • Offline - тестирует регистр, память, loopback, прерывание

Давайте запустим онлайн-тест на нашей сетевой карте. Эта команда выглядит так:

Данная статья когда-то разрабатывалась, как пособие по основам работы с коммутаторами для «самых начинающих» инженеров. Постараемся в нём рассмотреть практические аспекты работы, не закапываясь особенно в теорию коммутации. В качестве подопытной зверушки у нас будут выступать коммутатор L3 серии Cisco Catalyst 3560 – достаточно универсальная железка, позиционируемая производителем как коммутатор корпоративного класса с фиксированной конфигурацией. Может применяться, как на уровне доступа, так и на уровне распределения.
При написании статьи предполагается, что читающий уже знаком с основами работы в Cisco IOS, или способен разобраться с встроенной системой помощи, благо, что она достаточно информативна и дружелюбна. Также предполагается само собой разумеющимся хотя бы базовое знание технологий TCP/IP и модели OSI.

Базовая конфигурация режимов работы портов.

Поскольку в построении сети практически невозможно обойтись без использования VLAN, то первое, на что мы обратим внимание – это два основных режима работы портов для передачи тегированного и нетегированного трафика, или, в терминологии Cisco – trunk & access соответственно.
К access порту подключаются, как правило, оконечные устройства, не умеющие работать с тегированным трафиком, а к trunk – каналы для передачи данных по различным VLAN в сети.

Конфигурация access-порта предельно проста, и выглядит примерно так:

interface FastEthernet0/4
description –simple access port--
switchport access vlan 100
switchport mode access

Настраивается, соответственно, так:

Базовая конфигурация транковых портов тоже элементарна:

interface FastEthernet0/21
description –simple trunk port--
switchport trunk encapsulation dot1q
switchport trunk allowed vlan 952, 953
switchport mode trunk

Как мы видим – добавляется только список разрешенных к прохождению VLAN (не обязательно, но в целях безопасности лучше применить) и применяемый стандарт энкапсуляции – dot1q, пропиетарный Cisco ISL, или автосогласование.

Транковый порт сам по себе не умеет работать с нетегированным трафиком, поэтому такой трафик будет просто отброшен. Для его обработки можно настроить на портах native vlan. Любой пакет, не принадлежащий к определенному VLAN будет помечаться меткой native vlan, а трафик из данного vlan будет передаваться в транковый порт нетегированным.

Стоит заметить, что конфигурация порта при переключении его из одного режима в другой не изменяется, в отличие от режима его работы. Поэтому порт, сконфигурированный, как показано ниже, будет работать в trunk. Стоит ориентироваться только на switchport mode или, на вывод информации, как будет изложено далее.

interface FastEthernet0/21
description — port — switchport access vlan 2
switchport trunk encapsulation dot1q
switchport mode trunk

Конфигурация скорости и дуплекса.

Несмотря на повсеместное распространение автосогласования работы портов, зачастую встречаются проблемы, связанные с некорректной работой автосогласования, в результате чего порт может постоянно «прыгать» из рабочего состояние в нерабочее и генерировать ошибки. Поэтому самым надежным путем решения данной проблемы является ручной перевод портов на обои концах линка в одинаковый режим работы.
Конфигурируется элементарно, следующими командами:

Просмотр информации о созданных VLAN – show vlan

Catalyst 3560 поддерживает до 1005 созданных VLAN. Возникает вопрос – что делать, если число созданных VLAN подходит к концу, а нужно подключить скажем, новый сегмент сети? Или же, до новой БС присоединяющий оператор выделил 1 VLAN, а нам нужно пробрасывать свой VLAN. В таком случае можно использовать dot1q tunneling, или Q-in-Q – двойное тегирование VLAN. В таком случае на входе транспорта внуть одного VLAN упаковываются остальные VLAN, и распаковываются на выходе. Сражу стоит отметить что 29хх серия Catalyst, в отличие от 35xx, 37xx такой режим работы не поддерживает.
Настраивается тоже достаточно элементарно:

interface FastEthernet0/17
switchport access vlan 77
switchport mode dot1q-tunnel
end

Таким образом настроенный порт все приходящие пакеты будет энкапсулировать в VLAN 77, который и будет виден для всех устройств, находящихся далее. Достаточно передать данный VLAN до того узла, на котором необходимо развернуть обратно, и там распаковать, используя аналогичные настройки порта.
При этом, возможно, нужно будет увеличить MTU по данному пути на 4 байта, для обеспечения дополнительной метки vlan tag.

Адресация и маршрутизация.

Catalyst 3560 может работать как на третьем уровне сетевой модели, так и на втором. В любом случае для доступа к нему необходимо присвоить ему IP адрес в требуемом VLAN (как правило, для управления устройствами выделяется отдельный VLAN) и настроить маршрутизацию.

interface Vlan100
ip address 192.168.10.254 255.255.255.0

ip default-gateway 192.168.10.1

Тем самым мы назначили коммутатору IP-адрес 192.168.10.254/24 в 100м VLAN и установили шлюзом по умолчанию 192.168.10.1. При такой схеме коммутатор используется как L2. Включить L3 маршрутизацию можно командой ip routing. При этом становится возможным задавать множество маршрутов, и просматривать, соответственно, таблицу маршрутизации (show ip route). Естественно, перед переключение необходимо сначала указать маршруты, чтобы не потерять управление коммутатором из другой сети.

conf t
ip route 0.0.0.0 0.0.0.0 192.168.10.1

Получение и обработка информации.

Думаю, тут стоит рассмотреть практические примеры с пояснениями:

show interfaces status – выводит общую информацию по всем портам.

Здесь мы можем видеть:
Собственно, сам порт, его имя (задаваемое description).
Status – порта – подключен и поднят (connected)/не подключен физически (notconnect) либо административно отключен (disabled).
Vlan – режим работы порта – trunk, или соответствующий access vlan.
Дуплекс и скорость порта – авто, или же жестко заданные установки (Fa0/6 – принудительно в режиме 100 Mb, full duplex.), Обратите внимание что на нерабочих интерфейсах прописано auto.

sh interfaces – просмотр подробной информации об указанном интерфейсе.

5 minute input rate 1056000 bits/sec, 203 packets/sec
5 minute output rate 551000 bits/sec, 269 packets/sec

1015031190 packets input, 556493190204 bytes, 0 no buffer
Received 8800603 broadcasts (0 multicasts)
0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
0 watchdog, 5337282 multicast, 0 pause input
0 input packets with dribble condition detected
1761812043 packets output, 340685749958 bytes, 0 underruns
0 output errors, 0 collisions, 0 interface resets
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier, 0 PAUSE output
0 output buffer failures, 0 output buffers swapped out

Далее показаны текущие счетчики ошибок, являющиеся важнейшим инструментом в диагностике возникающих проблем.
Счетчики ошибок на самом деле разбросаны по разным местам IOS, но для примера можно рассмотреть следующее:

Align-Err
Количество ошибок выравнивания.
Как правило, увеличение данного счетчика свидетельствует о проблемах согласования дуплексных режимов, либо о наличии проблемы на физическом уровне.

collisions
Число коллизий произошедших до окончания передачи пакета. Нормальное явление для полудуплексного интерфейса. Быстрый рост счетчика может быть вызван высокой загрузкой интерфейса, либо несоответствием режимов дуплекса.

CRC
Несовпадение контрольной суммы кадра.
Обычно является результатом конфликтов, но может указывать и на физическую неполадку. В некоторых случаях возможны наводки на физику ЛВС, либо помехи.

pause input
Подключенное устройство запрашивает приостановку передачи трафика при переполнении его буфера.
Excess-ColПодобно коллизиям не должно наблюдаться на полнодуплексном интерфейсе.

FCS-Err
Ошибки в контрольной последовательности кадров.
Как правило, увеличение данного счетчика свидетельствует о проблемах согласования дуплексных режимов, либо о наличии проблемы на физическом уровне.

ignored
Может быть признаком широковещательного шторма в сети.

Late-Col
Коллизии на последних этапах передачи кадра. Не должны наблюдаться на полнодуплексном порту.

lost carrier
Потеря несущей. Проблемы на физическом уровне.

Underruns
Скорость передатчика превышает возможности коммутатора.

Undersize
Полученные кадры с размером меньше минимума. Необходимо проверить устройство, посылающее такие кадры.

Transmit FastEthernet0/1 Receive
665578020 Bytes 662563391 Bytes
3057832162 Unicast frames 2887447872 Unicast frames
2443399319 Multicast frames 100518228 Multicast frames
132541948 Broadcast frames 90307083 Broadcast frames
0 Too old frames 533536518 Unicast bytes
0 Deferred frames 3228404572 Multicast bytes
0 MTU exceeded frames 1010212552 Broadcast bytes
0 1 collision frames 0 Alignment errors
0 2 collision frames 0 FCS errors
0 3 collision frames 0 Oversize frames
0 4 collision frames 145990113 Undersize frames
0 5 collision frames 0 Collision fragments
0 6 collision frames
0 7 collision frames 735750877 Minimum size frames
0 8 collision frames 1557036200 65 to 127 byte frames
0 9 collision frames 305275380 128 to 255 byte frames
0 10 collision frames 95908725 256 to 511 byte frames
0 11 collision frames 126755638 512 to 1023 byte frames
0 12 collision frames 257546363 1024 to 1518 byte frames
0 13 collision frames 0 Overrun frames
0 14 collision frames 0 Pause frames
0 15 collision frames
0 Excessive collisions 0 Symbol error frames
0 Late collisions 0 Invalid frames, too large
0 VLAN discard frames 64 Valid frames, too large
0 Excess defer frames 0 Invalid frames, too small
521536351 64 byte frames 145990113 Valid frames, too small
3679829207 127 byte frames
317941784 255 byte frames 0 Too old frames
197523329 511 byte frames 64 Valid oversize frames
114203781 1023 byte frames 0 System FCS error frames
802738977 1518 byte frames 0 RxPortFifoFull drop frame
0 Too large frames
0 Good (1 coll) frames
0 Good (>1 coll) frames

На этом позвольте закончить, все дополнительное уже мало укладывается в рамки данной статьи.

Дуплекс против Симплекса

В сети термин «дуплекс» означает способность двух точек или устройств взаимодействовать друг с другом, в отличие от «симплекса», который относится к однонаправленной связи. В дуплексной системе связи обе точки (устройства) могут передавать и принимать информацию. Примеры дуплексных систем включают телефоны и рации.

С другой стороны, симплексные системы позволяют только одному устройству передавать информацию, в то время как другое получает. Общий инфракрасный пульт дистанционного управления является ярким примером симплексной системы, где ИК-пульт дистанционного управления передает сигналы, но никогда не получает их взамен.

Полный и полудуплекс

Полнодуплексная связь между двумя компонентами означает, что оба могут передавать и получать информацию между собой одновременно. Телефоны являются полнодуплексными системами, поэтому обе стороны могут разговаривать и слушать одновременно.

Изображение предоставлено: Википедия

Простая иллюстрация полудуплексной системы связи. Изображение предоставлено: Википедия

Как дуплекс влияет на WiFi роутеры

Устройства WiFi подключаются к маршрутизатору по беспроводной сети с использованием радиоволн на частоте 2,4 ГГц или 5 ГГц. Маршрутизатор планирует и обеспечивает правильную передачу информации между каждым подключенным устройством и Интернетом; без столкновений и потерь; вызовом процесса дуплексной передачи с временным разделением (TDD), чтобы вести себя как дуплексная передача.

TDD эмулирует полный дуплекс, устанавливая или разделяя периоды времени, которые чередуются между передачей и приемом. Пакеты данных передаются в обоих направлениях в соответствии с временным разделением. Благодаря точному сокращению этих периодов времени подключенные таким образом устройства, похоже, передают и принимают одновременно.

Почему современные маршрутизаторы не могут работать в полнодуплексном режиме?

Диаграмма, иллюстрирующая самоинтерференцию. Кредит: сеть Kumu

Диаграмма, иллюстрирующая самоинтерференцию. Кредит: сеть Kumu

Практическая полнодуплексная беспроводная связь возможна в исследовательских и научных кругах. Это в значительной степени достигается путем отмены самовмешательства на двух уровнях. Первый заключается в инверсии сигнала самого шумового сигнала, а затем процесс шумоподавления дополнительно усиливается в цифровом виде. Несколько студентов Стэнфордского университета создали рабочие прототипы полнодуплексного радио в 2010 и 2011 годах (см. Технический документ). Некоторые из этих студентов создали коммерческий стартап под названием KUMU Networks, который стремится революционизировать беспроводные сети.

Другие работы, такие как IBFD (In-Band Full-Duplex) Корнельского университета и STAR (Одновременная передача и прием) Photonic Systems Inc., также можно найти.

А как насчет проводной локальной сети?

Проводная часть локальной сети обменивается данными в полнодуплексном режиме с двумя парами витых проводов, образующих кабельное соединение Ethernet. Каждая пара предназначена для передачи и приема информационных пакетов одновременно, следовательно, нет конфликта данных и нет помех.

Вот все, что вам нужно знать о кабелях Ethernet

Прогресс в подключении WiFi

В протоколе IEEE 802.11 были внесены изменения, чтобы обеспечить либо больший диапазон, либо лучшую пропускную способность данных, либо и то и другое. Со времени своего формирования в 1997–2013 годах стандарты WiFi были изменены с 802.11 до 802.11b / a, 802.11g, 802.11n и, наконец, 802.11ac (если вы покупаете беспроводной маршрутизатор переменного тока)

?). Независимо от того, насколько они продвинуты, они все еще принадлежат к семейству 802.11, которое всегда будет работать в полудуплексном режиме. Хотя улучшения были сделаны, особенно с включением MIMO (что такое MIMO

?) работа в полудуплексном режиме снижает общую спектральную эффективность в два раза.

Интересно, что маршрутизаторы с поддержкой MIMO (несколько входов и несколько выходов) обеспечивают гораздо более высокую скорость передачи данных. Эти маршрутизаторы используют несколько антенн для одновременной передачи и приема нескольких потоков данных, что может повысить общую скорость передачи. Это обычно встречается в 802.11n и более новых маршрутизаторах, которые рекламируют скорость от 600 мегабит в секунду и выше. Однако, поскольку они работают в полудуплексном режиме, 50 процентов (300 мегабит в секунду) полосы пропускания зарезервированы для передачи, а остальные 50 процентов используются для приема.

Полный дуплекс WiFi в будущем

Растет коммерческий интерес к полнодуплексной беспроводной связи. Основная причина в том, что достижения в полудуплексном FDD и TDD являются насыщающими. Улучшения программного обеспечения, улучшения модуляции и улучшения MIMO становятся все сложнее и сложнее. По мере беспроводного подключения большего количества устройств потребность в увеличении спектральной эффективности в конечном итоге будет иметь первостепенное значение. Полнодуплексное беспроводное соединение успешно продемонстрировало мгновенное удвоение этой спектральной эффективности.

В тех областях, где минимальное влияние на аппаратное обеспечение, реконфигурацию программного обеспечения, нормативные изменения и денежные вложения, это изменение от полудуплексного к полнодуплексному будет становиться все более заметным. Первоначально обусловленный необходимостью увеличения пропускной способности, мы можем найти полнодуплексный Wi-Fi в ближайшем будущем, первоначально рядом с последними полудуплексными компонентами.

Про разводку я недавно писал, сделай search

Я задавал вопросы в контексте темы про full-duplex и имел ввиду разводку витой пары для соединения full-duplex, может быть она отличается от обычной, т.к. full-duplex соединение - это уход от стандарта.


Full-Duplex это фича железяки, т.е. весь софт, исключая низкоуровневые драйверы, не видит и не знает никакого фула - он прозрачен для протоколов. Далее. Full-Duplex не означает, что принимаемые и передаваемые данные идут по разным парам кабеля (вот ведь когда звонишь по телефону, ведь не удивляешься, что сигнал идет по одной паре, а ведь фул-дуплекс). Далее. Ethernet - это протокол об'единяющий в себе канальный и физический уровни (вроде так), а это означает, что LAN-card, предназначенная для определенного протокола физического уровня - к примеру 100Base-TX или 100VG-anylan - , не может работать по-другому. И тот, и другой протоколы 100Mbps, однако первый работает по 2-м парам, а второй - по 4-м, но первый по Cat-5, а второй - по Cat3 (категории). И по этим двум протоколам уж никак невозможно переплюнуть скорость 100Mbps (если, конечно, под этим понимать отраслевой стандарт). Кстати, и тот и другой могут как half-, так и full-duplex. И только в одном ты несомненно прав - в режиме full-duplex скорость в 2 раза выше (в идеале, т.к. производители дешевых карточек обычно все врут). Т. О. Идешь в магаз. и выбираешь карту по параметрам: известный (в хорошем смысле) производитель; указание, что эта карта поддерживает full-duplex; наличие драйверов под твою OS (у всякой дряни обычно не бывает ничего под . nix); и цена - 100Mbps Ethernet (100Base-TX), PCI, full-duplex + all drivers обычно стоит не ниже $42 us. Да, не забудь, что HUB, к которому будешь подключаться - тоже должен быть full-duplex (иначе карта переключится в режим half-duplex). Note: switch'и почти все поддерживают этот режим. Good Luck!

Разводка не меняется. А если у тебя к карте в Linux'е есть драйвера, то им можно указать форсированно переходить в full-duplex 100Mbit моду. У меня стоит Интеловская карта, у нее при загрузке драйвера это делается.

Читайте также: