gpt4 book ai didi

c# - 通过物理环回在 2 个 TCP 应用程序之间发送数据。它会通过网卡吗?

转载 作者:太空狗 更新时间:2023-10-30 01:23:30 28 4
gpt4 key购买 nike

如果我运行 2 个应用程序通过 TCP 环回使用套接字发送/接收数据,数据的实际路径是什么?这些数据会通过 Windows 网络驱动程序和/或 NIC 硬件吗?

编辑。请考虑这不是 Windows“环回”,而是在 NIC 上进行的物理环回,其中 2 个端口通过电缆相互连接,使其成为物理环回。

最佳答案

Loopback 是一个虚拟 接口(interface),没有与之对应的硬件。数据复制发生在内核内部,甚至在驱动程序级别之上。

编辑0:

您混合了两种不同的东西 - TCP/IP 中的 loopback 是一个虚拟网络接口(interface),在子网 127/8 中有一个特殊地址,通常是 127.0.0.1,它默认情况下为您创建,以太网 crossover 电缆在同一台机器上的两张卡之间循环。

我在最初的回答中提到了第一个案例。

第二种情况下 TCP/IP 堆栈的行为取决于实现和传输选项。对于 TCP 连接和单播 UDP,内核可能只是意识到源地址和目标地址都是机器本地的,并且通过内存短路数据传输。您会发现大多数现代网络堆栈都以这种方式运行。对于广播或多播 UDP,除了通过物理卡发送数据包之外别无选择,因为网络上可能还有其他监听器。

关于c# - 通过物理环回在 2 个 TCP 应用程序之间发送数据。它会通过网卡吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11083536/

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