Действительно ли можно отправить какие-то данные в удаленный пункт назначения по TCP / IP без сокета?

Я изучаю концепцию сокета. Насколько я узнал, сокет похож на электрическую розетку, которая создается на обоих концах взаимодействующих устройств (или процессов). Сокет может поддерживать себя вечно, чтобы прослушать какой-либо запрос (это может быть ключевой концепцией для создания любой серверной программы).

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

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

Заранее спасибо!

0
задан 12 March 2020 в 14:00
2 ответа

Сокет - это только стандартизованный интерфейс программирования. Теоретически можно работать напрямую с сетевой картой (и библиотеки, подобные DPDK, делают это), но использование API сокетов делает это намного проще и независимым от конкретного оборудования и настроек сети.

1
ответ дан 30 March 2020 в 01:22

Для получения пакетов любым компьютером с картой NIC требуется только адрес назначения Mac уровня 2. Следовательно Действительно ли возможно отправить некоторые данные в удаленный пункт назначения через tcp/ip без какого-либо сокета?

[Ответ] да, отправьте пакет с MAC-адресом назначения в качестве желаемого MAC-адреса компьютера. Пакет будет получен на сетевом адаптере без потери. Это верно, если удаленный пункт назначения является той же локальной сетью или может быть достигнут через группу VLAN или одноранговое соединение.

Примечание: если вопрос был Возможно ли на самом деле отправить некоторые данные в удаленный пункт назначения (не в той же сети LAN) через tcp/ip без какого-либо сокета?

[Ответ] Нет, если пункт назначения (удаленный объект) не находится в вашей сети, вы не сможете связаться с целевым компьютером, используя только MAC-адрес и/или VLAN.

есть 2 варианта

  1. если машины подключены через туннели уровня 2, такие как MPLS, VxLAN, PPoP, вы можете инкапсулировать исходный пакет (Ethernet MAC + полезная нагрузка)
  2. вы можете использовать IP или IP-инкапсуляцию, где маршрутизатор определит преобразование IP-адреса в MAC и перенаправит его через правую часть, чтобы он достиг пункта назначения.

примечание: DPDK, PF_RING, Netmap, XDP — это механизмы обхода стека ядра. Используя обход ядра, вы получаете или передаете пакеты от сетевой карты.Но это будет зависеть от фактического значения L2/L3, где сетевой коммутатор или маршрутизатор будет отправлять или пересылать пакеты в сети

0
ответ дан 14 September 2021 в 02:37

Теги

Похожие вопросы