草庐IT

以太网帧

全部标签

linux - 如何在 Ubuntu/Debian 上通过以太网(eth0)从另一台电脑读取和写入串口(ttys0)?

好吧,有两台电脑通过Wi-Fi连接,其中一台(我们称之为A)有一个串口打印机(在ttys0)和一个测量器串行端口设备(在ttys1中)也已连接。因此,B需要从连接在A上的测量设备读取一些值,然后使用网络连接写入到连接在A上的打印机。 最佳答案 ser2net是一个很好的解决方案aptitudeinstallser2net然后编辑/etc/ser2net.conf中的配置然后您可以建立到定义端口的tcp连接,并连接到远程计算机上的串行端口-非常有用。 关于linux-如何在Ubuntu/D

linux - 在内核模块中创建以太网数据包并发送

我需要创建一个以太网数据包并将其发送到我的内核模块中。有人可以帮我做这个吗?我想我需要使用dev_alloc_skb创建一个skb,然后我需要编写mac_ethernet,插入数据并使用dev_queu_xmit发送它。但我不确定这是否有效,或者它是否是正确且最简单的方法。最好的问候编辑1:intsendpacket(){unsignedchardest[ETH_ALEN]={0x00,0x25,0x22,0x05,0xF3,0xF0};unsignedcharsrc[ETH_ALEN]={0x90,0xE6,0xBA,0x48,0x7C,0x87};structsk_buff*skb

linux - 通过添加额外的以太网接口(interface)来增加临时端口

有没有办法将临时端口的数量加倍并绕过16位限制?我已经尝试在eth0上创建虚拟以太网接口(interface),并希望这会解除限制。尽管该应用程序在出站流量中使用了新的虚拟IP,但它似乎仍会达到相同的临时端口限制。我假设虚拟端口与物理接口(interface)上的端口具有一对一映射。ifconfigeth0:110.10.10.210网络掩码255.255.255.192ifconfigeht0:210.10.10.211网络掩码255.255.255.192有人可以告诉我如何在不添加额外NIC的情况下将Linux中的临时端口总数加倍吗?(仅供引用,我已经尝试增加ulimit/max打

c - 将 sendmsg/sendmmsg 与原始以太网帧一起使用

我正在尝试使用C通过sendmsg发送原始以太网数据包。此代码成功打开原始数据包套接字,尝试用单个字节数组(charmessage[])填充structiovec,然后用目标地址、地址长度和指向包含以下内容的structiovec的指针填充structmsghdr消息。sendmsg()为每次调用返回EINVAL,但我不知道哪些参数无效。(我删除了一些perror()调用以使这段代码更易于阅读;输出是“无效参数”。)我还没有找到任何关于sendmsg()如何与原始套接字一起工作的示例,但是使用sendto()的类似代码可以按预期工作。在该代码中,我显式地形成了以太网帧,包括header

linux - 如何在 linux 中给予以太网中断最高优先级

我列出了所有中断:cat/proc/interruts它给出了这个:CPU0CPU1CPU2CPU30:126000IO-APIC-edgetimer1:941000IO-APIC-edgekeyboard...(etc.)19:941000IO-APIC-fasteoieth0...(etc.)这张表的第一列是否给出了中断的优先级?我只想学习优先级,因为我想提高我的NIC的中断优先级以获得更好的网络性能。我认为,前两个中断不能更改(我猜是由于intelx86架构)。无论如何,这是我的问题:是否可以提高NIC中断的优先级? 最佳答案

linux - 在树莓派中禁用以太网

我们正在尝试在树莓派上开发一个应用程序。我们计划使用电池运行Pi。所以我们必须降低Pi的功耗。据我们所知,以太网消耗大量电流,那么有没有办法在不干扰树莓派B型上的两个USB端口的情况下禁用以太网?(以太网和USB端口由单芯片LAN8512控制)。如有任何帮助或建议,我们将不胜感激。 最佳答案 我不认为这会停止以太网端口的供电,但值得一试。在终端中输入sudoifconfigeth0down这应该会禁用RaspberryPi上的以太网端口。要重新启用端口,只需键入sudoifconfigeth0up要查看所有适配器的名称,请输入sud

c - 如何在 Linux 中检查以太网?

我需要在Linux中使用C代码的以太网测试用例来检查eth0。如果eth0已关闭,我们启用网络,然后检查是否已启动并通过测试。 最佳答案 要检查链接是否正常,请尝试这样的操作。它在没有root权限的情况下工作。#include//printf#include//strncpy//#include//AF_INET#include//SIOCGIFFLAGS#include//errno#include//IPPROTO_IP#include//IFF_*,ifreq#defineERROR(fmt,...)do{printf(fmt

c - 多个以太网接口(interface) - 如何创建一个单独的网络并从 C 代码访问

我有一个带有两个以太网适配器的Linux设备(实际上是一个用于原型(prototype)的BeagleBoard)。我想要的是:主要以太网接口(interface)(eth0)连接到客户端的网络(可能是DHCP或分配的静态IP)。第二个以太网接口(interface)(eth1)直接连接到另一个Linux板。Beagle上的用户级C程序可以监听来自客户端网络(在eth0上)的传入连接,根据需要做出响应,并可能连接到eth1上的其他设备我们希望第二台设备对网络的其余部分完全隐藏,这样只有Beagle上的程序才能连接到它。我希望这两个接口(interface)可以完全分开,我的代码可以选择

linux - 在弄清楚如何使用 ioctl/SIOCGIFADDR/SIOCGIFCONF 在 Mac OS X 上获取以太网接口(interface)信息时遇到问题?

您是否在弄清楚如何使用ioctl/SIOCGIFADDR/SIOCGIFCONF在MacOSX上获取界面信息时遇到问题?今天,我很难让在Linux上运行良好的代码在MacOSX上运行。 最佳答案 复制粘贴到main.c和gccmain.c&&./a.out应该可以工作(列出所有网络接口(interface)、它们的ipv4/6地址、网络掩码和MAC地址(如果关联):在MacOSX和iOSiPad/iPhone上运行良好:#include#include#include#include#include#include#include#

c++ - 我可以用 C++ 编写基于以太网的网络程序吗?

我想编写一个程序并在两台机器上运行,并通过以太网帧将一些数据从一台机器发送到另一台机器。通常应用程序数据位于OSI模型的第7层,是否存在内核限制或API限制之类的东西,这会阻止我编写一个程序,在该程序中我可以指定目标MAC地址并将一些数据发送到该地址MAC作为以太网负载?然后编写一个程序来监听传入的帧并从指定的源MAC地址抓取帧,从帧中提取数据的有效负载?(所以我不想要任何其他开销,例如IP或TCP/UDPheader,我不想高于第2层)。这可以用C++完成吗,或者所有通信都必须在IP层发生,这可以在Ubuntu上完成吗?特别喜欢指点或提供例子!:D我的问题显然是我是c++网络编程的新