TCP通讯重试机制

TCP通讯重试机制
1、Linux下重试机制
Linux下重试机制由net.ipv4.tcp_syn_retries配置确定,net.ipv4.tcp_syn_retries 的设置,表示客户端进行connect()服务端时,在对方不返回SYN + ACK的情况下(也就是超时的情况下),第一次发送之后,内核最多重试几次发送SYN包。
例如net.ipv4.tcp_syn_retries=5
第 1 次发送 SYN 报文后等待 1s(2 的 0 次幂),如果超时,则重试;
第 2 次发送后等待 2s(2 的 1 次幂),如果超时,则重试;
第 3 次发送后等待 4s(2 的 2 次幂),如果超时,则重试;
第 4 次发送后等待 8s(2 的 3 次幂),如果超时,则重试;
第 5 次发送后等待 16s(2 的 4 次幂),如果超时,则重试;
第 6 次发送后等待 32s(2 的 5 次幂),如果超时,则超时失败。
2、Windows下重试机制
Windows下重试机制由TcpMaxConnectRetransmissions(重试次数)和TcpInitialRTT(超时时间)控制,TcpMaxConnectRetransmissions默认值一般为2,TcpInitialRTT默认是3秒。
TcpMaxConnectRetransmisstions的值表示TCP连接重发,TCP退出前重发非确认连接请求(SYN)的次数。对于每次尝试,重发超时是成功重发的两倍。
TCPInitialRTT值表示超时时间。
第 1 次连接后等待 3s,如果超时,则重试;
第 2 次连接后等待 6s(3*2),如果超时,则重试;
第 3 次连接后等待 12s((3*2)*2),如果超时,则失败。

netsh interface tcp show global查看tcp配置信息

注:
开发过程中,建议程序设置连接超时时间,不建议使用操作系统的超时时间。
超时时间分创建连接超时时间、数据传输超时时间、从连接池中获取到连接的超时时间。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在200smart PLC中,TCP功能块通讯是指通过TCP/IP协议实现PLC与其他设备之间的通信。而C是一种高级编程语言,用于开发各种应用程序。 通过200smart PLC的TCP功能块通讯,可以实现PLC与其他设备之间的数据交换和远程控制。例如,可以通过TCP通讯将PLC和上位机连接,实现对PLC的监控和参数配置。同时,通过TCP通讯还可以实现PLC与其他网络设备(例如传感器、执行器等)之间的数据传输,实现智能化控制。 在进行TCP通讯时,首先需要在PLC中配置网络参数,如IP地址和端口号。然后,可以使用PLC编程软件(如200smart Studio)中提供的TCP功能块,通过编写相应的程序来实现通讯功能。TCP功能块提供了通信连接建立、数据发送和接收等功能,可以方便地实现与其他设备之间的数据交互。 与此同时,C语言作为一种高级编程语言,也可以用于开发PLC的控制程序。通过使用C语言,可以实现更加复杂的功能和算法,提高PLC的控制精度和运行效率。在使用C语言进行PLC编程时,可以利用TCP功能块通讯实现与其他设备的数据交换,以实现更加智能化的控制策略。 总之,200smart PLC的TCP功能块通讯可以实现PLC与其他设备之间的数据交换和远程控制,而C语言则可以用于开发更加复杂的PLC控制程序。这两者相互结合,可以实现更加智能化和高效的PLC控制系统。 ### 回答2: 在智能建筑系统中,200smart TCP功能块通讯与C(控制器)之间的交互非常重要。200smart是一个集成了各种智能化功能的设备,在控制建筑物的各个系统方面具有很大的能力。而TCP功能块通讯是一种网络通讯协议,用于在不同设备之间传输数据。 200smart TCP功能块通讯与C之间的交互主要涉及以下几个方面: 首先是数据传输。通过TCP功能块通讯,200smart可以与C进行数据交换。它可以向C发送各种指令或请求,如控制某个设备的开关状态、调整设备的参数设置等。C接收到这些指令后,可以对相应的设备进行相应的控制操作。同时,C也可以向200smart发送数据,如传送某个设备的状态信息、传感器的数据等。这种双向传输可以实现实时的数据交换和共享。 其次是设备管理。通过TCP功能块通讯,200smart可以与C进行设备的管理和配置。它可以向C发送设备的注册请求,将自己添加到C的设备列表中,并获取设备的唯一标识符。通过这种方式,C可以管理和监控200smart设备的状态和性能,并对其进行相应的配置和管理。 最后是故障诊断和远程控制。通过TCP功能块通讯,200smart可以向C发送故障信息,并请求C进行诊断和处理。C可以根据收到的故障信息,分析问题的原因,并给出相应的解决方案。同时,C还可以通过TCP通讯将指令发送给200smart,进行远程控制,以修复故障或更改设备的状态。 总之,200smart TCP功能块通讯与C之间的交互对于智能建筑系统的正常运行和管理非常重要。它实现了数据的传输、设备的管理和配置,以及故障的诊断和远程控制等功能,为智能建筑系统的运行提供了强有力的支持。 ### 回答3: 200smart tcp功能块通信与C具体是指使用C语言编程来实现与200smart tcp功能块进行通信的方式。 首先,200smart tcp功能块是一种智能控制模块,通常与其他设备进行数据交互和通信。为了与该功能块进行通信,我们可以使用C语言编程来实现以下步骤: 1. 建立连接:使用C语言提供的网络编程库(如socket库),创建一个Socket套接字,并指定连接的目标IP地址和端口号。 2. 发送数据:使用C语言的库函数,将需要发送给200smart tcp功能块的数据进行封装,然后通过Socket套接字发送给目标设备。 3. 接收数据:使用C语言的库函数,通过Socket套接字接收由200smart tcp功能块发送的数据。 4. 解析数据:在接收到的数据中提取有用的信息,根据200smart tcp功能块的通信协议(通常是自定义的协议)进行解析和处理。 5. 与其他模块交互:根据解析的数据,进行相应的数据处理和逻辑判断,然后与其他模块进行交互,如控制其他设备或更新本地数据等。 需要注意的是,在使用C语言编程与200smart tcp功能模块通信时,我们需要了解功能块的通信协议和数据格式,以便正确解析数据并进行相应处理。此外,网络通信涉及到网络延迟、数据包丢失等问题,需要在编程中进行错误处理和重试机制,以确保通信的稳定性和可靠性。 总结而言,使用C语言编程实现与200smart tcp功能块通信需要掌握网络编程和数据解析等相关知识,以及理解200smart tcp功能块的通信协议。通过合理的编程实现,可以实现与功能块的数据交互和控制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值