xinetd是否保持数据完整性?

时间:2014-12-03 20:10:58

标签: php networking xinetd

背景资料:

我有一个用PHP编写的页面,它将数据发送到另一台服务器,如下所示:

$url = "example=data&to=show&the=format&im=using";
$client = stream_socket_client("<IP address and port>", $errno, $errorMessage);
fwrite($client, $url . "\n");

接收端的服务器使用xinetd启动执行实际处理的脚本。它的配置是这样的:

service b2b
{
    socket_type = stream
    protocol = tcp
    wait = no
    user = root
    server = /bbj/bin/bbj
    server_args = -c/samuel/config.daemon -q SS0B2R - system /tmp
    groups = yes
    disable = no
    per_source = UNLIMITED
    instances = UNLIMITED
    flags = NODELAY KEEPALIVE
}

问题:让我们说有一些灾难,就像有人拔出以太网线一样,脚本是否有可能只收到一部分字符串?即:example=data&to=sh

1 个答案:

答案 0 :(得分:0)

这不是关于xinetd,而是关于协议。

如果您使用类似stream_socket_client("tcp://www.example.com:80", $errno, ... everything is OK.

的TCP

TCP是一种可靠的流传输服务,可确保收到的所有字节与发送的字节数相同且顺序正确。由于通过许多网络的分组传输不可靠,因此使用称为具有重传的肯定确认的技术来保证分组传输的可靠性。这种基本技术要求接收器在接收数据时用确认消息进行响应。发件人保留其发送的每个数据包的记录。发送方还从发送数据包时维护一个定时器,如果定时器在消息被确认之前到期,则重新发送数据包。如果数据包丢失或损坏,则需要定时器