簡體   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