繁体   English   中英

libuv:src响应端口与正在侦听进程的端口不同

[英]libuv : src port of response not same as port on which process is listening

我有一个用python扭曲编写的客户端,该客户端将UDP数据包发送到IP aaa.bbb.ccc.ddd的端口1234,然后等待响应。 我还有用C-libuv编写的UDP服务器,它侦听端口1234并响应客户端。

现在,当它们都在同一台机器上运行时,我可以从UDP服务器的日志中看到它已接收到数据并且它已发送回一个响应。 但是客户端的日志没有显示任何收到的UDP数据包的迹象。

当我使用wire-shark进行调查时,发现以下内容:

  1. 客户端发送的UDP数据包的源端口为58963(keeps不断变化),到达目标端口1234

  2. UDP响应(来自UDP服务器)也从58845发送回58963

  3. 随后是ICMP目标不可达(端口不可达)消息。

发生这种现象的原因可能是什么?

原因是服务器使用新的UDP套接字发送答复,而不是使用接收请求的套接字。 从经济的角度来看,这是一种糟糕的做法,并且也使得不可能进行任何必需的UDP打孔。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM