CH392作为TCP服务器,建立TCP连接之后,仍向不同端口发送握手请求

将CH392设置为TCP服务器模式,端口设置为502,通过wireshark抓包发现CH392的631端口一直向电脑的不同端口发送握手请求,虽然电脑端仍能与CH392的502端口正常建立TCP连接,但是建立连接之后仍会出现不断发送握手请求的情况。CH392只使用了socket0作为监听,socket1作为连接,且两个socket的端口都设为502,不知为何会出现这种情况?是正常现象吗?


屏幕截图 2023-12-20 095105.png

您好,因为socket0和1的源端口为502,所以当电脑客户端以631端口向392发起SYN请求时,392这边会发出RST包(表示复位,用来关闭异常的连接),只有用设定的502端口去连接392才能正常建立连接。


392手册8.3.4章节对此机制的也有说明。

1703040304018.png


我确实是用的502端口去连接CH392,且能正常建立连接,图片中CH392设定的IP为192.168.0.100,电脑端的ip为192.168.0.104,是CH392的631端口不断向电脑客户端发送SYN请求的


您好,CH392一直发的是RST包,不是SYN握手包。这个是因为您电脑客户端用了631端口和CH392建立连接,此时392查找631这个端口发现并没有这个端口,所以会发出RST包来释放这个异常连接。

在您的抓包中可以看到,第一包100向104发起SYN,但是目的端口是631,所以之后会有出现CH392发给电脑的RST包;在之后100向104发起SYN,目的端口是502,能够正常三次握手;再后面又出现了100向104发起SYN,但是目的端口是631,所以又出现了RST复位包。

在实际应用中,目的端口设置为502即可。后续有其他问题可以邮箱交流(lq@wch.cn)


只有登录才能回复,可以选择微信账号登录