[20260311]sqlnet.ora设置sqlnet.expire_time与tcp_keepalive_time关系.txt

[20260311]sqlnet.ora设置sqlnet.expire_time与tcp_keepalive_time关系.txt

--//以前对netstat的输出不理解,为什么里面显示keepalive达不到设置的时间,总被分成2部分。
--//今天无意中的观察,明白其中的奥秘,希望这次能讲解清楚。

--//一般设置的方法有2种:
--//方法1.修改/etc/sysctl.conf:
# grep "^net.ipv4.tcp" /etc/sysctl.conf
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time =100
net.ipv4.tcp_keepalive_intvl = 10
net.ipv4.tcp_keepalive_probes = 4

--//方法2.修改$ORACLE_HOME/network/admin/sqlnet.ora:
sqlnet.expire_time=N
--//N单位是分钟,注意实际上发包间隔2*N.在以前一些文章有论述.
--//另外一点12cR2开始,设置sqlnet.expire_time实际上开始TCP KEEPALIVE套接字选项来检查连接是否仍然可用。
--//2*N的时间间隔不再有效,变成N时间间隔.

--//换一句话讲12cR2以后的版本,设置sqlnet.expire_time=N与方法1类似。

--//通过测试说明问题:
1.环境:
SCOTT@book01p> @ ver2
==============================
PORT_STRING                   : x86_64/Linux 2.4.xx
VERSION                       : 21.0.0.0.0
BANNER                        : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
BANNER_FULL                   : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
BANNER_LEGACY                 : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
CON_ID                        : 0
PL/SQL procedure successfully completed.

$ egrep -v "^#|^$" /u01/app/oracle/homes/OraDB21Home1/network/admin/sqlnet.ora
DEFAULT_SDU_SIZE = 1048576
ADR_BASE = /u01/app/oracle
SQLNET.EXPIRE_TIME=1

# cat $(which ts.awk)
# /bin/bash
gawk '{ print strftime("[%Y-%m-%d %H:%M:%S]"), $0 }'

2.测试:
--//打开新终端,以root用户登录:
--//建立使用tmux,分成2个pane显示,这样观察更加直接一下。
# seq 1000 | xargs -IQ bash -c "netstat -tnpo | egrep oraclebook | ts.awk;sleep 1"
--//注我测试环境很好控制,当前没有输出。

--//打开新终端,以oracle用户登录:
$ rlsql scott/book@book01p
SQL*Plus: Release 21.0.0.0.0 - Production on Thu Mar 12 08:47:44 2026
Version 21.3.0.0.0
Copyright (c) 1982, 2021, Oracle.  All rights reserved.
Last Successful login time: Thu Mar 12 2026 08:46:42 +08:00
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Connected to:
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
--//执行完成不输入任何sql语句命令,查看前面执行的输出。
# seq 4000 | xargs -IQ bash -c "netstat -tnpo | egrep oraclebook | ts.awk;sleep 1"
[2026-03-12 08:47:45] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (59.35/0/0)
[2026-03-12 08:47:46] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (58.33/0/0)
[2026-03-12 08:47:47] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (57.31/0/0)
[2026-03-12 08:47:48] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (56.29/0/0)
[2026-03-12 08:47:49] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (55.27/0/0)
[2026-03-12 08:47:50] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (54.24/0/0)
[2026-03-12 08:47:51] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (53.22/0/0)
[2026-03-12 08:47:52] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (52.19/0/0)
[2026-03-12 08:47:53] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (51.17/0/0)
[2026-03-12 08:47:54] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (50.15/0/0)
[2026-03-12 08:47:55] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (49.13/0/0)
[2026-03-12 08:47:56] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (48.11/0/0)
[2026-03-12 08:47:57] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (47.08/0/0)
....
[2026-03-12 08:48:42] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (2.00/0/0)
[2026-03-12 08:48:44] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (0.99/0/0)
[2026-03-12 08:48:45] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (0.06/0/0)
[2026-03-12 08:48:46] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (5.04/0/0)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[2026-03-12 08:48:47] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (4.02/0/0)
[2026-03-12 08:48:48] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (3.01/0/0)
[2026-03-12 08:48:49] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (2.00/0/0)
[2026-03-12 08:48:50] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (0.97/0/0)
[2026-03-12 08:48:51] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (53.96/0/0)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[2026-03-12 08:48:52] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (52.94/0/0)
[2026-03-12 08:48:53] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (51.90/0/0)
[2026-03-12 08:48:54] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (50.89/0/0)
[2026-03-12 08:48:55] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (49.86/0/0)
[2026-03-12 08:48:56] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (48.84/0/0)
[2026-03-12 08:48:57] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (47.82/0/0)
--//开始keepalive=60,然后开始递减。接着分成2部分。并不是从60开始,分别6秒,54秒2部分。
--//如果不输入任何sql语句执行,循环往复下去。

SCOTT@book01p> select sysdate from dual ;
SYSDATE
-------------------
2026-03-12 08:53:09

--//执行语句时间是2026-03-12 08:53:09.然后不输入任何sql语句执行.
[2026-03-12 08:53:08] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (37.75/0/0)
[2026-03-12 08:53:09] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (36.73/0/0)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[2026-03-12 08:53:10] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (35.71/0/0)
[2026-03-12 08:53:11] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (34.69/0/0)
[2026-03-12 08:53:12] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (33.68/0/0)
[2026-03-12 08:53:13] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (32.64/0/0)
[2026-03-12 08:53:14] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (31.61/0/0)
....
[2026-03-12 08:53:43] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (2.86/0/0)
[2026-03-12 08:53:44] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (1.84/0/0)
[2026-03-12 08:53:45] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (0.82/0/0)
[2026-03-12 08:53:46] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (22.82/0/0)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[2026-03-12 08:53:47] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (21.80/0/0)
[2026-03-12 08:53:48] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (20.78/0/0)
[2026-03-12 08:53:49] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (19.76/0/0)
.......
--//下次keepalive从60-36.73  = 23.27开始递减。
--//接着分成2部分。并不是从60开始,分别6秒,54秒2部分。
[2026-03-12 08:57:09] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (6.00/0/0)
[2026-03-12 08:57:10] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (4.97/0/0)
[2026-03-12 08:57:11] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (3.96/0/0)
[2026-03-12 08:57:12] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (2.94/0/0)
[2026-03-12 08:57:13] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (1.90/0/0)
[2026-03-12 08:57:14] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (0.88/0/0)
[2026-03-12 08:57:15] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (54.01/0/0)
[2026-03-12 08:57:16] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (53.00/0/0)
[2026-03-12 08:57:17] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (51.99/0/0)
[2026-03-12 08:57:18] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (50.96/0/0)
--//如果在6秒那个时间段执行,下一个54秒的循环,就是相加。

SCOTT@book01p> select sysdate from dual ;

SYSDATE
-------------------
2026-03-12 09:01:32

[2026-03-12 09:01:31] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (3.87/0/0)
[2026-03-12 09:01:32] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (2.85/0/0)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[2026-03-12 09:01:33] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (1.84/0/0)
[2026-03-12 09:01:34] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (0.83/0/0)
[2026-03-12 09:01:35] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (56.96/0/0)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[2026-03-12 09:01:36] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (55.93/0/0)
[2026-03-12 09:01:37] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (54.91/0/0)
[2026-03-12 09:01:39] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (53.89/0/0)
[2026-03-12 09:01:40] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (52.88/0/0)
[2026-03-12 09:01:41] tcp        0      0 127.0.0.1:1521          127.0.0.1:25022         ESTABLISHED 8921/oraclebook      keepalive (51.86/0/0)
--//下次keepalive从  6-2.85+54 = 57.15开始递减。
--// 60-2.85 = 57.15

--//如果设置SQLNET.EXPIRE_TIME=2,昨天做的测试。
[2026-03-11 17:24:00] tcp        0      0 127.0.0.1:1521          127.0.0.1:47947         ESTABLISHED 14034/oraclebook     keepalive (0.56/0/0)
[2026-03-11 17:24:01] tcp        0      0 127.0.0.1:1521          127.0.0.1:47947         ESTABLISHED 14034/oraclebook     keepalive (5.55/0/0)
[2026-03-11 17:24:02] tcp        0      0 127.0.0.1:1521          127.0.0.1:47947         ESTABLISHED 14034/oraclebook     keepalive (4.52/0/0)
[2026-03-11 17:24:03] tcp        0      0 127.0.0.1:1521          127.0.0.1:47947         ESTABLISHED 14034/oraclebook     keepalive (3.50/0/0)
[2026-03-11 17:24:04] tcp        0      0 127.0.0.1:1521          127.0.0.1:47947         ESTABLISHED 14034/oraclebook     keepalive (2.47/0/0)
[2026-03-11 17:24:05] tcp        0      0 127.0.0.1:1521          127.0.0.1:47947         ESTABLISHED 14034/oraclebook     keepalive (1.45/0/0)
[2026-03-11 17:24:06] tcp        0      0 127.0.0.1:1521          127.0.0.1:47947         ESTABLISHED 14034/oraclebook     keepalive (0.42/0/0)
[2026-03-11 17:24:07] tcp        0      0 127.0.0.1:1521          127.0.0.1:47947         ESTABLISHED 14034/oraclebook     keepalive (113.69/0/0)
[2026-03-11 17:24:08] tcp        0      0 127.0.0.1:1521          127.0.0.1:47947         ESTABLISHED 14034/oraclebook     keepalive (112.66/0/0)
[2026-03-11 17:24:09] tcp        0      0 127.0.0.1:1521          127.0.0.1:47947         ESTABLISHED 14034/oraclebook     keepalive (111.63/0/0)
[2026-03-11 17:24:10] tcp        0      0 127.0.0.1:1521          127.0.0.1:47947         ESTABLISHED 14034/oraclebook     keepalive (110.61/0/0)
[2026-03-11 17:24:11] tcp        0      0 127.0.0.1:1521          127.0.0.1:47947         ESTABLISHED 14034/oraclebook     keepalive (109.58/0/0)
--//keepalive的显示总是被拆分为6,剩下部分。

--//设置SQLNET.EXPIRE_TIME=3类似:
[2026-03-11 17:37:56] tcp        0      0 127.0.0.1:1521          127.0.0.1:47949         ESTABLISHED 15664/oraclebook     keepalive (3.08/0/0)
[2026-03-11 17:37:57] tcp        0      0 127.0.0.1:1521          127.0.0.1:47949         ESTABLISHED 15664/oraclebook     keepalive (2.02/0/0)
[2026-03-11 17:37:58] tcp        0      0 127.0.0.1:1521          127.0.0.1:47949         ESTABLISHED 15664/oraclebook     keepalive (0.99/0/0)
[2026-03-11 17:37:59] tcp        0      0 127.0.0.1:1521          127.0.0.1:47949         ESTABLISHED 15664/oraclebook     keepalive (5.98/0/0)
[2026-03-11 17:38:00] tcp        0      0 127.0.0.1:1521          127.0.0.1:47949         ESTABLISHED 15664/oraclebook     keepalive (4.94/0/0)
[2026-03-11 17:38:01] tcp        0      0 127.0.0.1:1521          127.0.0.1:47949         ESTABLISHED 15664/oraclebook     keepalive (3.90/0/0)
[2026-03-11 17:38:02] tcp        0      0 127.0.0.1:1521          127.0.0.1:47949         ESTABLISHED 15664/oraclebook     keepalive (2.87/0/0)
[2026-03-11 17:38:03] tcp        0      0 127.0.0.1:1521          127.0.0.1:47949         ESTABLISHED 15664/oraclebook     keepalive (1.85/0/0)
[2026-03-11 17:38:04] tcp        0      0 127.0.0.1:1521          127.0.0.1:47949         ESTABLISHED 15664/oraclebook     keepalive (0.83/0/0)
[2026-03-11 17:38:05] tcp        0      0 127.0.0.1:1521          127.0.0.1:47949         ESTABLISHED 15664/oraclebook     keepalive (174.01/0/0)
[2026-03-11 17:38:06] tcp        0      0 127.0.0.1:1521          127.0.0.1:47949         ESTABLISHED 15664/oraclebook     keepalive (172.99/0/0)
[2026-03-11 17:38:07] tcp        0      0 127.0.0.1:1521          127.0.0.1:47949         ESTABLISHED 15664/oraclebook     keepalive (171.96/0/0)

--//tcp_keepalive_time为什么这样设计呢?

$ strace -f -o xxx.txt sqlplus scott/book@book01p
quit

$ grep -i TCP_KEEP xxx.txt
14243 setsockopt(9, SOL_TCP, TCP_KEEPIDLE, [60], 4) = 0
14243 setsockopt(9, SOL_TCP, TCP_KEEPINTVL, [6], 4) = 0
14243 setsockopt(9, SOL_TCP, TCP_KEEPCNT, [10], 4) = 0

--//设置TCP_KEEPIDLE=60,TCP_KEEPINTVL=6,TCP_KEEPCNT=10,我以前的理解是在前面探测60秒网络不通的情况下,探测6秒,如此探测
--//10次,不通网络断开。也就是后面2个参数仅仅在网络存在问题时有效。

# cat /etc/sysctl.d/99-sysctl.conf
net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_keepalive_intvl = 10
net.ipv4.tcp_keepalive_probes = 3

--//修改以上参数。注解sqlnet.ora的SQLNET.EXPIRE_TIME=1
# sysctl -p /etc/sysctl.d/99-sysctl.conf
net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_keepalive_intvl = 10
net.ipv4.tcp_keepalive_probes = 3

--//重新测试:
# seq 4000 | xargs -IQ bash -c "netstat -tnpo | egrep oraclebook | ts.awk;sleep 1"
[2026-03-12 09:31:34] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (59.51/0/0)
[2026-03-12 09:31:35] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (58.48/0/0)
[2026-03-12 09:31:36] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (57.46/0/0)
[2026-03-12 09:31:37] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (56.44/0/0)
[2026-03-12 09:31:38] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (55.41/0/0)
[2026-03-12 09:31:39] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (54.37/0/0)
[2026-03-12 09:31:40] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (53.35/0/0)
[2026-03-12 09:31:41] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (52.32/0/0)
[2026-03-12 09:31:42] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (51.31/0/0)
...
[2026-03-12 09:32:26] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (8.06/0/0)
[2026-03-12 09:32:27] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (7.05/0/0)
[2026-03-12 09:32:28] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (6.03/0/0)
[2026-03-12 09:32:29] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (5.02/0/0)
[2026-03-12 09:32:30] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (3.99/0/0)
[2026-03-12 09:32:31] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (2.98/0/0)
[2026-03-12 09:32:32] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (1.95/0/0)
[2026-03-12 09:32:33] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (0.93/0/0)
[2026-03-12 09:32:34] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (10.00/0/0)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[2026-03-12 09:32:35] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (8.99/0/0)
[2026-03-12 09:32:36] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (7.97/0/0)
[2026-03-12 09:32:37] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (6.96/0/0)
[2026-03-12 09:32:38] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (5.95/0/0)
[2026-03-12 09:32:39] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (4.91/0/0)
[2026-03-12 09:32:40] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (3.88/0/0)
[2026-03-12 09:32:41] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (2.87/0/0)
[2026-03-12 09:32:42] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (1.84/0/0)
[2026-03-12 09:32:43] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (0.82/0/0)
[2026-03-12 09:32:44] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (49.91/0/0)
`````````````````````````````````````````````````````````````````
[2026-03-12 09:32:45] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (48.89/0/0)
[2026-03-12 09:32:46] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (47.88/0/0)
--//确实如此,看来我以前的理解存在小小的问题。
--//以后正常的情况下反复循环。

[2026-03-12 09:45:24] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (1.14/0/0)
[2026-03-12 09:45:25] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (0.13/0/0)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[2026-03-12 09:45:26] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (9.15/0/0)
[2026-03-12 09:45:27] tcp        0      0 127.0.0.1:1521          127.0.0.1:25028         ESTABLISHED 14806/oraclebook     keepalive (8.13/0/0)
--//在这个时刻发送探测包。

# tcpdump -i lo port 1521 -nnn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes
09:44:25.807086 IP 127.0.0.1.1521 > 127.0.0.1.25028: Flags [.], ack 1383766704, win 1595, options [nop,nop,TS val 4462342 ecr 4402186], length 0
09:44:25.807096 IP 127.0.0.1.25028 > 127.0.0.1.1521: Flags [.], ack 1, win 1764, options [nop,nop,TS val 4462342 ecr 4342010], length 0
09:45:25.983979 IP 127.0.0.1.1521 > 127.0.0.1.25028: Flags [.], ack 1, win 1595, options [nop,nop,TS val 4522519 ecr 4462342], length 0
09:45:25.983991 IP 127.0.0.1.25028 > 127.0.0.1.1521: Flags [.], ack 1, win 1764, options [nop,nop,TS val 4522519 ecr 4342010], length 0
--//时间间隔60秒。

请使用浏览器的分享功能分享到微信等