Является ли IEEE 802.2 Logical Link Control Layer (Ethernet) полным дуплексом? - PullRequest
1 голос
/ 04 апреля 2019

У меня есть ситуация, когда я использую pcap_sendpacket() для размещения пакетов на проводе на уровне LLC одновременно с получением пакетов с использованием pcap_dispatch() со связанной функцией обратного вызова. Отправка и получение происходят в разных потоках исполнения.

Я наблюдал, когда скорость входящих пакетов особенно высока, я не вижу, чтобы мои исходящие пакеты появлялись на проводе (используя wireshark). Тем не менее, я также не вижу сбой pcap_sendpacket() (возвращая -1). Возможно ли, что соединение не является дуплексным, т.е. если полоса пропускания сетевого соединения заполнена, то исходящие пакеты могут как-то блокироваться на неопределенный срок?

1 Ответ

1 голос
/ 07 апреля 2019

У меня есть ситуация, когда я использую pcap_sendpacket () для размещения пакетов на проводе на уровне LLC

Это не тот уровень, на котором пакеты помещаются на провод - онивы подключены к канальному уровню, ниже уровня LLC;в Ethernet это уровень 802.3, а не уровень 802.2.

Является ли IEEE 802.2 Logical Link Control Layer (Ethernet) полнодуплексным?

Это не полныйдуплекс или полудуплекс.

Это также не Ethernet;он может работать поверх Ethernet, но он также может работать поверх FDDI или Token Ring или IEEE 802.11 или ....

Возможно, вы думаете о IEEE 802.3, который является Ethernet?Если это так, существуют как полнодуплексные, так и полудуплексные версии Ethernet.

Я наблюдал, когда скорость входящих пакетов особенно высока, я не вижу, чтобы мои исходящие пакеты появлялись в сети (использование wireshark).

Адаптеры Ethernet не получают свои собственные пакеты;если хост отправляет пакет, и код на этом хосте захватывается на адаптере, на котором отправляется пакет, то это потому, что сетевой стек ОС принимает отправляемые пакеты и предоставляет их в качестве входных данных для механизма захвата пакетов, а не потому, что пакетбыл получен сетевым адаптером, который вы захватываете.

Возможно, пакеты приходят слишком быстро, чтобы поток приема пакетов мог их увидеть?Используйте pcap_stats(), чтобы увидеть, отбрасываются ли какие-либо пакеты.

...