C# 如何模拟网络延迟/人为增加网络延迟?

C# 如何模拟网络延迟/人为增加网络延迟?,c#,.net,windows,networking,latency,C#,.net,Windows,Networking,Latency,我需要使用.NET、C、C制作一个Windows程序,这会增加网络上通过该计算机的数据移动的延迟。基本上,如果我有一个满是计算机的房间,我想通过这个程序把一台计算机变成一个节点,延迟通过它的信息,就像信息从一台计算机传到500英里以外的另一台计算机一样。这是在实验室中测试程序,就像它们在互联网上使用一样。该程序必须处理udp、tcp、ipv4、ipv6和pim多播连接 我一直在深入研究.NET,试图找出哪些API工具会有所帮助,但我不确定从哪里开始。我是否需要制作客户端程序和服务器程序,并对tc

我需要使用.NET、C、C制作一个Windows程序,这会增加网络上通过该计算机的数据移动的延迟。基本上,如果我有一个满是计算机的房间,我想通过这个程序把一台计算机变成一个节点,延迟通过它的信息,就像信息从一台计算机传到500英里以外的另一台计算机一样。这是在实验室中测试程序,就像它们在互联网上使用一样。该程序必须处理udp、tcp、ipv4、ipv6和pim多播连接

我一直在深入研究.NET,试图找出哪些API工具会有所帮助,但我不确定从哪里开始。我是否需要制作客户端程序和服务器程序,并对tcp和udp连接使用System.Net.Sockets,对ipv4和ipv6使用ip端点

如果可能的话,我想做一个程序,你可以在一台计算机上运行,这会增加运行的延迟。这可能/可行吗


我希望我有更多的内容来获得更具体的答案,但我不知道从哪里开始。有很多产品已经做到了这一点:它们位于堆栈中,允许您调整线路速度、延迟、数据包丢失、数据包复制等


500英里外。。。所以2毫秒延迟?:)当然可以,或者几千英里,或者不管距离有多远,都会造成1000毫秒的延迟。1000毫秒-地球卫星上没有任何地方离得很远。我正在浏览dummynet项目,看看它是如何工作的。我需要制作我自己的程序,类似于dummynet,但只有延迟功能。谢谢你的回复。你能解释一下你指的是什么堆栈吗?它是一个网络堆栈还是与windows网络层有关?另外,我如何使用C或C#访问堆栈(哪些库/类/方法可以帮助我做到这一点)?非常感谢您分享的所有信息。ISO模型第3-5层通常是您可以连接的层。通常,如果您真的想获得所有更详细的信息,您可以通过设备驱动程序或SDK访问这些API。