如何通过以太网电缆发送原始位而不使用帧?

问题描述 投票:0回答:1

我正在尝试通过以太网电缆发送原始位,而不使用任何协议,即使没有以太网帧也是如此。我意识到这些数据不会真正到达任何地方,因为它没有接收MAC地址,但这纯粹是出于教育目的。

我知道我可以创建一个套接字,但是它总是将我的数据封装在一个以太网帧中。这是否意味着我将不得不以某种方式将原始数据写入端口本身?

这是我如何通过创建套接字来发送数据的伪示例。

int main()
{
    char *request = "GET / HTTP/1.1";

    socket = socket(AF_INET, SOCK_STREAM, 0);
    bind(server_fd, (struct sockaddr *)&address, sizeof(address));
    write(new_socket , request , strlen(request));
}

c sockets networking ethernet
1个回答
0
投票

您的建议实际上并不可行。处理器无法直接控制或连接到RJ45双绞线信号。以太网比简单的串行通信接口(如UART,SPI或I2C)复杂得多,对于这些接口,可以以低速“位撞击”。

在处理器和RJ45连接器之间,将以MAC和PHY的形式提供大量硬件:enter image description here

[许多处理器结合了MAC,并通过MII(Media Independent Interface)与外部PHY接口。

© www.soinside.com 2019 - 2024. All rights reserved.