gpt4 book ai didi

c - 以太网环回测试

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:03:58 26 4
gpt4 key购买 nike

我正在尝试创建一个测试来验证 PHY 环回是否正常工作。在 linux 上用 c 开发。这基本上就是测试当前正在做的事情:

  1. 调出界面并确保它具有有效的 IP 地址
  2. 创建两个 UDP 模式的套接字 (SOCK_DGRAM)
  3. 将两个套接字绑定(bind)到正在测试的特定接口(interface)
  4. 将传入套接字绑定(bind)到特定端口
  5. 使用 sendto 写入传出套接字,指定端口和 IP 地址
  6. 从传入套接字读取

我遇到的问题是,无论是否启用环回,我总是在读回数据。该接口(interface)未连接到交换机,因此我不希望数据通过物理电缆返回。我怀疑堆栈在数据到达 PHY 之前就将数据路由回去。有什么方法可以确保数据包物理地从接口(interface)发出?

最佳答案

正如您可能已经猜到的那样,这不是错误,而是一项功能(也是一项基本功能)。但是,我怀疑您是否能够在没有第二个接收器的情况下测试 PHY。

案例 #1:NIC 将数据发送到集线器(这些集线器还存在吗?)。集线器只会放大信号。没有人会就信号向 NIC 顶嘴。 NIC 在发送信号时没有兴趣读取自己的信号。

案例 #2:NIC 将数据发送到交换机。交换机将在其路由中自动永远不会将信号发送回源。这样做没有意义,并且在某些情况下(例如广播包)会导致网络出现严重问题。

案例 #3:您有一个复杂的网络设置,其中可能存在环路。要么你的网络出了问题,要么你使用生成树之类的技术来明确阻止你的信号被路由回你。

如您所见,内部数据路由必不可少。您没有机会通过一个物理以太网接口(interface)发送内容并在同一端接收它。

关于c - 以太网环回测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16108118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com