本文章使用 php 代码来测试 tcp 传输层的一个通信过程.
TCP/IP 协议
关于该协议的详细内容可自行查阅 >
PHP 的 tcp/udp API 内容是 PHP 手册上的内容
立即学习“PHP免费学习笔记(深入)”;
测试的 PHP 版本
TCP的连接建立与关闭状态及数据传输通信过程
PHP 代码 【就是手册的例子了】
socket 服务类型
TCP/IP 选项文件
然后我们启动服务
服务状态查看命令:
netstat -ntlapc可每隔一秒刷新一次状态tcpdump 工具:
tcpdump -A -XX -i lo客户端我们使用 telent 工具连接测试 即可
测试图如下
连接和关闭图
如果是客户端发起的关闭则状态则是:
客户端先发送一个结束报文 FIN 包,此时处于 FIN_WAIT1 状态,服务器确认应答处于 CLOSE_WAIT 状态
此时客户端处于 FIN_WAIT2 状态,当服务器也发了一次 FIN 结束报文时,服务器处于 LAST_LOCK 状态,客户端确认后处于 TIME_WAIT 状态,服务器则是关闭 CLOSED 了
状态转移图
不管你用的是 PHP 提供的 SOCKET API 还是 SWOOLE 或是 C 写的测试都一样的!



















