phptcp长连接,tcp长连接可以保持多久?

用户投稿 133 0

关于“php_tcp_长连接”的问题,小编就整理了【5】个相关介绍“php_tcp_长连接”的解答:

tcp长连接可以保持多久?

TCP连接本身没有限制的.理论上,客户端和服务器可以在不交换任何数据且没有任何数据包流的情况下保持连接多年.

TCP长连接与短连接有什么区别?

一般俗说的长连接是指一直连着,短连接就是请求一次,连接一次,断开一次,都指的tcp。

比如http 1.0一般就指短连接,smtp,pop3,telnet这种就可以认为是长连接。

tcp长连接网络要求?

需要。 TCP协议中有长连接和短连接之分。短连接在数据包发送完成后就会自己断开,长连接在发包完毕后,会在一定的时间内保持连接,即我们通常所说的Keepalive(存活定时器)功能。

www.2cto.com 默认的Keepalive超时需要7,200,000 milliseconds,即2小时,探测次数为5次。它的功效和用户自己实现的心跳机制是一样的。

开启Keepalive功能需要消耗额外的宽带和流量,尽管这微不足道,但在按流量计费的环境下增加了费用,另一方面,Keepalive设置不合理时可能会因为短暂的网络波动而断开健康的TCP连接。

对于TCP长连接保持是十分必要的,原因如下:

1、系统多在OA网和外网间有防火墙隔离,很多防火墙对一段时间内没有报文活动的socket会自动关闭。

2、对于非正常断开的连接系统并不能侦测到,比如防火墙关闭端口、网线被拔掉、电脑突然奔掉、未关闭应用程序直接关机(服务端无法释放资源)。

(调用close(fd)为正常断开,连接对端可以侦测到)

TCP长连接保持的两种办法:

1) 应用层面的心跳机制

自定义心跳消息头.,一般客户端主动发送到服务端,服务器接收后进行回应(也可以不回应),以便能够侦测连接是否异常断开。

2) TCP协议自带的保活功能

通过设置TCP keepalive的属性,打开socket的keepalive属性,并设置发送底层心跳包的时间间隔。TCP/IP五层网络模型,我们调用socket等接口是应用层的函数,TCP keepalive是在底层定时发送心跳报文,服务器端接收到底层的心跳报文直接丢弃,不关心其内容。

使用TCP keepalive来保持长连接状态显然要舒服一些,直接调用系统的API即可实现,对于系统而言负担也更轻(相对第一种办法)。

以下是windows下TCP keepalive设置的函数

tcp长连接的本质?

所谓的长连接通俗的将就是建立TCP连接及端口TCP连接太消耗资源及时间(TCP建立连接需要三次握手,断开需要四次挥手),一旦连接建立之后就不断开了。

tcp长连接怎么设置 Windows7?

1、选择“控制面板”命令;

  2、单击“开始”按钮,在弹出的菜单中选择“控制面板”命令;

  3、查看网络状态和任务,在打开的窗口中单击“网络和Internet”下的“查看网络状态和任务”超链接;

  4、更改适配器设置,在打开的“网络共享中心”窗口中单击左窗口的“更改适配器设置”超链接;

  5、双击“本地连接”图标,在打开的“网络连接”窗口中双击“本地连接”“属性”图标;

  6、选择连接项目,在弹出的对话框中选择“Intrnet协议版本4(TCP/IPv4)”选项,然后选择单击“属性”;

  7、设置IP地址,在弹出的对话框中选择“Intrnet协议版本4(TCP/IPv4)属性”对话框,设置IP地址,单击“确定”按钮就完成了。

到此,以上就是小编对于“php_tcp_长连接”的问题就介绍到这了,希望介绍关于“php_tcp_长连接”的【5】点解答对大家有用。

抱歉,评论功能暂时关闭!