我正在尝试创建一个测试来验证PHY环回正常工作。在c中开发linux。这基本上是测试目前正在做的事情:
我遇到的问题是,无论是否启用了环回,我总是会回读数据。接口未连接到交换机,因此我不希望数据通过物理电缆返回。我怀疑堆栈是在它到达PHY之前将数据路由回来的。有没有办法确保数据包物理地从接口发出?
答案 0 :(得分:1)
正如您可能已经猜到的,这不是一个错误,而是一个功能(和一个必不可少的功能)。但是,我怀疑你将能够在没有第二个接收器的情况下测试PHY。
案例#1:NIC将数据发送到集线器(这些仍然存在吗?)。集线器只会放大信号。没有人会回答有关信号的NIC。 NIC在发送时无需读取自己的信号。
案例#2:NIC将数据发送到交换机。交换机将在其路由中自动从不将信号发送回源。这样做是没有意义的,在某些情况下(例如广播包)会导致网络出现严重问题。
案例#3:您有一个复杂的网络设置,可以进行循环。您的网络可能已被启动,或者您使用生成树等技术来明确阻止您的信号被路由回给您。
如您所见,内部数据路由至关重要。您没有机会通过一个物理以太网接口发送内容并在同一端接收它。