sctpctrl 命令
用途
控制和配置 SCTP。
语法
sctpctrl 统计 [重置 ] [时间间隔]
sctpctrl set {name=value|default [ 名称]}
sctpctrl get [名称 ]
描述
sctpctrl 命令用来控制和配置 SCTP 内核扩展。 此命令可用来装入和卸装 SCTP 内核扩展。 它还可以用来转储 SCTP 数据和集合,或者可以检索各种 SCTP 参数。 另外,sctpctrl 命令可以用来读取和重新设置特定于 SCTP 的网络统计信息。
参数
| 项 | 描述 |
|---|---|
| load | 如果未装入 SCTP 内核扩展,那么执行装入操作。 |
| 转储 | 有关内部 SCTP 结构的转储信息。 |
| 统计 [重置 ] [间隔] | 显示 SCTP 统计信息。 reset 命令(可选)将清除(置零)统计信息。 如果添加了 interval 参数(以秒为单位),那么程序将不退出,但输出每隔 [interval] 秒的统计信息。 |
| set {name=value|缺省值 [name]} | 将 SCTP 可调参数设置为值。 如果指定了 default,那么它会将所有的可调参数设置为其缺省值。 如果在 default 的后面指定了可选 [name],那么它会将 name 描述的可调参数设置为其缺省值。 |
| get [名称] | 获取由可选 name 参数描述的该可调参数的值。 如果未指定 name 参数,那么它将获取所有可调参数的值。 |
可调参数
sctpctrl 命令还用于配置 SCTP 调整参数。 所做更改并不持久,在每次系统重新引导后必须重新设置。 下表中说明了可调参数。
| 项 | 描述 | ||
|---|---|---|---|
| PARAMETER | 用途 | 作用域 | 缺省值 |
| sctp_low_rto | 在非零时,该值将取代 RTO.min(retransmission 超时)。 该值以毫秒为单位指定。 不允许使用小于 200 的值。 可用超时值为 200、250、300、350,依此类推。 | 每次测量新 RTT(往返时间)以及由于数据包丢失而调整 RTO 时,都会检查该值。 | 按照 RFC 4960(请求注释)文档中的指定,这个可调参数的缺省值为 0,这意味着使用了 RTO.Min 的最小值,即 1 秒。 |
| sctp_enable_shutdown_guard | 非零时,此可调参数启用 T5 关闭保护定时器。 它与 RFC 不兼容,因为它在关联进入关闭暂挂状态时开始计时。 | 仅在关联关闭时检查该值。 | 此可调参数的缺省值为 0,这表示不使用 T5 关闭保护定时器。 |
| sctp_最大初始化尝试次数 | 此可调参数指定允许重新传输 INIT 包的最大重新传输尝试次数。 | 此可调参数的缺省值为 8。 |
|
| sctp_最大初始化超时 | 当此可调参数的值非零时,将使用可调值来代替 INIT 包的 RTO.max 参数 (重新传输超时)。 它以毫秒为单位指定。 不允许小于 200 毫秒的值。 可用超时值为 200,250,300,350 等。 | 此可调参数指定重新传输 INIT 包时要使用的最大值。 | 此可调参数的缺省值为零秒。 在这种情况下,sctp_rttmax使用可调参数。 |
| sctp_关闭_守护_定时器 | 当 sctp_enable_shutdown_guard 参数的值为非零时,此可调参数以秒为单位定义关闭超时值。 | 仅在关联关闭时检查该值。 | 缺省值为 300 秒,这是 RFC 为 T5 关闭保护定时器指定的值。 |
| sctp_对等方路径变更 | 非零时,此可调参数根据从不同于当前主路径的路径传入的数据块,导致主路径改变。 | 仅在每个入站数据块上检查该值。 | 此可调参数的缺省值为 1,这时将保持现有行为。 |
| sctp_消除噪声定时器 | 此可调参数以时钟滴答数(1 次滴答 = 50 毫秒)为单位,为 ACK 延迟定时器指定定时器值。 | 对于 ACCEPTCONN 套接字,在安装时确定该值,并对所有共享该套接字的关联使用该值。 对于 ACCEPTCONN 套接字之外的套接字,在创建关联时设置该值。 所以此可调参数的更改不影响已存在的关联。 | 缺省值为 4 次滴答(200 毫秒)。 |
| sctp_丢弃间隙数据包 | 如果设置为 1,它会导致发送方从套接字发送缓冲区中删除所有 GAPACKED 数据包,从而为新数据包腾出一些空间。 注: 这是 RFC 不兼容的可调参数,可能会影响与其他实现的互操作性,可能导致消息丢失。
|
每次处理 GAPACKED 数据包时检查此可调参数。 | 缺省值为 0,表示禁用。 |
| sctp_不延迟ACK | 如果设置为 1,将为每个其他 DATA 数据包发送 SACK 数据包。 否则启动 ACK 延迟定时器。 | 对此可调参数的任何更新都会立即生效。 | 缺省值为 1。 |
| sctp_nagle | 如果设置为 1,它确保至少发送 1 MTU(最大传输单元)的数据。 | 对此可调参数的任何更新都会立即生效。 | 缺省值为 1(启用 nagle)。 |
| sctp_最大突发长度 | 如果非零,会将发送出去的最大数据包数限制为该值。 | 对此可调参数的任何更新都会立即生效。 | 缺省值为 8 个数据包。 |
| sctp_rttmax | 此可调参数指定执行 RTO 计算时要使用的最大值。 | 与 sctp_low_rto 参数类似,该值在每次测量新 RTT(RTO 根据 RTT 进行计算)及因数据包丢失而调整 RTO 时均会进行检查。 | 缺省值为 60 秒。 |
| sctp_rttmin | 此可调参数指定执行 RTO 计算时要使用的最小值。 | 如果 sctp_low_rto 参数为非零,那么将忽略该值。 否则每次测量新 RTT 以及由于数据包丢失而停止 RTO 时,都会检查该值。 | 缺省值为 1 秒,确保最小 RTO 不低于该值。 |
| sctp_关联最大错误数 | 此可调参数设置关联错误总计数。 如果错误计数超过该值,关联将终止。 目前忽略该值。 将根据路径错误计数和 faddrs 的数目计算 assoc_maxerr 参数。 | 对于 ACCEPTCONN 套接字,在安装时确定该值,并对所有共享该套接字的关联使用该值。 对于 ACCEPTCONN 套接字之外的套接字,在创建关联时设置该值。 所以此可调参数的更改不影响已存在的关联。 | 缺省值为 10。 |
| sctp_路径_最大错误数 | 此可调参数设置每个目标的最大错误计数。 如果错误计数超过该值,将记下当前路径并选择备用路径。 | 对于 ACCEPTCONN 套接字,在安装时确定该值,并对所有共享该套接字的关联使用该值。 对于 ACCEPTCONN 套接字之外的套接字,在创建关联时设置该值。 所以此可调参数的更改不影响已存在的关联。 | 缺省值为 5。 |
| sctp_use_checksum | 此可调参数允许管理员使用不同的校验和计算方法。 可能的值如下:
|
将为每个传出和传入数据包检查此参数。 | 缺省值为 0,这是 RFC 指定的 CRC32 校验和。 |
| sctp_发送空间 | 此可调参数为发送数据指定套接字缓冲区大小。 这个最佳缓冲区大小是由介质带宽和包平均来回时间确定。 optimum_window = 带宽 * average_round_trip_time |
创建新关联时访问此参数。 可使用 setsockopt 参数覆盖此参数。 | 缺省值为 65536。 |
| sctp接收空间 | 此可调参数为接收数据指定套接字缓冲区大小。 | 创建新关联时访问此参数。 可使用 setsockopt 参数覆盖此参数。 | 缺省值为 65536。 |
| sctp_发送_少量数据包 | 启用时,此可调参数实现 recv side silly window avoidance。 在接收器可以容纳 1 MTU 的数据前,它一直可以阻止发送窗口更新。 | 每次应用程序读取数据以及发送窗口更新时,访问此参数。 | 缺省值为 0。 |
| sctp_cookie_life | 此可调参数以秒为单位指定 cookie 的有效期。 | 此参数用于在建立连接时确定 cookie 是否有效。 | 缺省值为 60 秒。 |
| sctp_ecn | 此可调参数启用或禁用显式拥塞通知 (RFC 3168)。 | 在建立连接时访问此参数。 | 缺省值为 1。 |
| sctp_临时_高 | 此可调参数指定要为 SCTP(流控制传输协议)临时端口分配的最大端口号。 | 当应用程序尝试绑定到端口时使用此参数。 | 缺省值为 65535。 |
| sctp_临时_低 | 此可调参数指定要为 SCTP 临时端口分配的最小端口号。 | 当应用程序尝试绑定到端口时使用此参数。 | 缺省值为 32768。 |
| sctp_instreams | 此可调参数指定关联所使用的入站流的缺省数目。 | 在建立连接时使用此参数。 | 缺省值为 2048。 |
| sctp_输出流 | 此可调参数指定关联所使用的出站流的缺省数目。 | 在建立连接时使用此参数。 | 缺省值为 10。 |
| sctp_pmtu_发现 | 如果启用了此项,那么在传出数据包的 IP 头中设置不分段位。 | 在发送数据包被发出时访问此参数。 | 缺省值为 1。 |
| sctp_recv_multibuf | 此可调参数控制套接字接收缓冲区计数。 缺省值为 0,表示属于套接字的所有关联共享相同的接收缓冲区空间。 当设置为非零时,每个关联具有自己的接收缓冲区空间,即该值。 setsockopt 函数覆盖该值。 | 在创建关联时访问此参数。 | 缺省值为 0(不使用 multibuf)。 |
| sctp_发送多缓冲区 | 此可调参数控制套接字发送缓冲区计数。 缺省值为 0,表示属于套接字的所有关联共享相同的发送缓冲区空间。 当设置为非零时,每个关联具有自己的发送缓冲区空间,即该值。 setsockopt 函数覆盖该值。 | 在创建关联时访问此参数。 | 缺省值为 0(不使用 multibuf)。 |
| sctp_故障转移类型 | 启用时,它会导致在每次重新发送超时后选择新路径。 否则,仅在路径错误计数值超过最大路径错误计数值后发生故障转移。 | 每次 RTO 启动时(发生数据包删除时)访问此参数。 | 缺省值为 1。 |
| sctp_检查关联标识 | 在发送 ABORT 数据包时管理相关的模式以检查应用程序传递的关联标识。 如果设置为 0,它会忽略关联标识。 使用外部地址查找关联。 如果设置为 1,它会执行严格的关联标识匹配。 如果使用传递的 assoc_id 值找不到关联,那么将会返回 EINVAL 错误。 如果设置为 2,它会执行关联标识匹配,但在使用保留的 assoc_id 值时,它将使用外部地址。 | 每次用户应用程序发出 ABORT 数据包时,都会访问此参数。 | 缺省值为 0。 |
示例
- 要装入 SCTP 内核扩展,请输入以下内容:
sctpctrl load - 要重置 SCTP 统计信息,请输入以下内容:
此命令将使所有的 SCTP 统计信息置零。sctpctrl stats reset - 要获取 SCTP 可调参数值,请输入以下内容:
它将列出所有 SCTP 可调参数以及其值。 以下是样本输出。sctpctrl getsctp_assoc_maxerr = 10 sctp_cookie_life = 60 sctp_delack_timer = 4 sctp_dontdelayack = 1 sctp_ecn = 1 sctp_ephemeral_high = 65535 sctp_ephemeral_low = 32768 sctp_instreams = 2048 sctp_maxburst = 8 sctp_outstreams = 10 sctp_path_maxerr = 5 sctp_pmtu_discover = 1 sctp_rttmax = 60 sctp_rttmin = 1 sctp_recvspace = 65536 sctp_sendspace = 65536 sctp_send_fewsacks = 0 - 要将 sctp_path_maxerr 设置为值
6,请输入以下内容:sctpctrl set sctp_path_maxerr=6
位置
/usr/sbin/sctpctrl
文件
| 项 | 描述 |
|---|---|
| /usr/sbin/sctpctrl | 包含 sctpctrl 命令。 |
| /usr/lib/drivers/sctp | 包含 SCTP 内核扩展。 |