Modifier

Partager via


Set-NetTCPSetting

Modifies a TCP setting.

Syntax

ByName (Default)

Set-NetTCPSetting
    [[-SettingName] <String[]>]
    [-MinRtoMs <UInt32>]
    [-InitialCongestionWindowMss <UInt32>]
    [-CongestionProvider <CongestionProvider>]
    [-CwndRestart <CwndRestart>]
    [-DelayedAckTimeoutMs <UInt32>]
    [-DelayedAckFrequency <Byte>]
    [-MemoryPressureProtection <MemoryPressureProtection>]
    [-AutoTuningLevelLocal <AutoTuningLevelLocal>]
    [-EcnCapability <EcnCapability>]
    [-Timestamps <Timestamps>]
    [-InitialRtoMs <UInt32>]
    [-ScalingHeuristics <ScalingHeuristics>]
    [-DynamicPortRangeStartPort <UInt16>]
    [-DynamicPortRangeNumberOfPorts <UInt16>]
    [-AutomaticUseCustom <AutomaticUseCustom>]
    [-NonSackRttResiliency <NonSackRttResiliency>]
    [-ForceWS <ForceWS>]
    [-MaxSynRetransmissions <Byte>]
    [-AutoReusePortRangeStartPort <UInt16>]
    [-AutoReusePortRangeNumberOfPorts <UInt16>]
    [-CimSession <CimSession[]>]
    [-ThrottleLimit <Int32>]
    [-AsJob]
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

InputObject (cdxml)

Set-NetTCPSetting
    -InputObject <CimInstance[]>
    [-MinRtoMs <UInt32>]
    [-InitialCongestionWindowMss <UInt32>]
    [-CongestionProvider <CongestionProvider>]
    [-CwndRestart <CwndRestart>]
    [-DelayedAckTimeoutMs <UInt32>]
    [-DelayedAckFrequency <Byte>]
    [-MemoryPressureProtection <MemoryPressureProtection>]
    [-AutoTuningLevelLocal <AutoTuningLevelLocal>]
    [-EcnCapability <EcnCapability>]
    [-Timestamps <Timestamps>]
    [-InitialRtoMs <UInt32>]
    [-ScalingHeuristics <ScalingHeuristics>]
    [-DynamicPortRangeStartPort <UInt16>]
    [-DynamicPortRangeNumberOfPorts <UInt16>]
    [-AutomaticUseCustom <AutomaticUseCustom>]
    [-NonSackRttResiliency <NonSackRttResiliency>]
    [-ForceWS <ForceWS>]
    [-MaxSynRetransmissions <Byte>]
    [-AutoReusePortRangeStartPort <UInt16>]
    [-AutoReusePortRangeNumberOfPorts <UInt16>]
    [-CimSession <CimSession[]>]
    [-ThrottleLimit <Int32>]
    [-AsJob]
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

The Set-NetTCPSetting cmdlet modifies a TCP setting. TCP settings are optimized for different network conditions including latency and congestion. To apply a TCP setting to a port number or destination IP address range, create a transport filter by using the New-NetTransportFilter cmdlet.

Note:

  1. You can modify custom and non-custom settings on Windows server 2016 and 2019.
  2. You can modify only custom settings. Internet and Datacenter settings cannot be modified on Windows 2012 or earlier versions.
  3. On Windows 10, the following parameters are read-only and cannot be modified:
  • MinRtoMs
  • InitialCongestionWindowMss
  • AutomaticUseCustom
  • CongestionProvider
  • CwndRestart
  • DelayedAckTimeoutMs

Examples

Example 1: Change the custom TCP setting

PS C:\>Set-NetTCPSetting -SettingName "InternetCustom" -CongestionProvider CTCP -InitialCongestionWindowMss 6

This command changes the custom TCP setting to have a value of 6 for the initial congestion window and use compound TCP.

Parameters

-AsJob

Runs the cmdlet as a background job. Use this parameter to run commands that take a long time to complete.

Parameter properties

Type:SwitchParameter
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-AutomaticUseCustom

Specifies whether the automatic profile assigns a custom template, either Datacenter Custom or Internet Custom, to a connection. The acceptable values for this parameter are:

  • Enabled
  • Disabled

Parameter properties

Type:AutomaticUseCustom
Default value:None
Accepted values:Disabled, Enabled
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-AutoReusePortRangeNumberOfPorts

Specifies the number of ports for the auto-reuse port range, which is a port range used for local ephemeral port selection by outbound TCP connections for which either SO_REUSE_UNICASTPORT has been set on the socket, or for which connect() has been called without calling bind() on the socket.

If you specify 0, the auto-reuse feature is disabled and ephemeral ports are drawn instead from the dynamic port range as specified by DynamicPortRangeStartPort and DynamicPortRangeNumberOfPorts, even if SO_REUSE_UNICASTPORT is set on a socket.

Parameter properties

Type:UInt16
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-AutoReusePortRangeStartPort

Specifies the starting port for the auto-reuse port range.

This parameter sets the starting port to send and receive TCP traffic, which is a port range used for local ephemeral port selection by outbound TCP connections for which either SO_REUSE_UNICASTPORT has been set on the socket, or for which connect() has been called without calling bind() on the socket.

If you specify 0, the auto-reuse feature is disabled and ephemeral ports are drawn instead from the dynamic port range as specified by DynamicPortRangeStartPort and DynamicPortRangeNumberOfPorts, even if SO_REUSE_UNICASTPORT is set on a socket.

Parameter properties

Type:UInt16
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-AutoTuningLevelLocal

Specifies a TCP auto-tuning level for the host computer. TCP auto-tuning can improve throughput on high throughput, high latency networks. The acceptable values for this parameter are:

  • Disabled. Sets the TCP receive window to the default value.
  • HighlyRestricted. Sets the TCP receive window to grow beyond the default value, but very conservatively.
  • Restricted. Sets the TCP receive window to grow beyond the default value, but less conservatively than HighlyRestricted.
  • Normal. Sets the TCP receive window to grow to accommodate almost all scenarios.
  • Experimental. Sets the TCP receive window to grow to accommodate extreme scenarios.

Parameter properties

Type:AutoTuningLevelLocal
Default value:None
Accepted values:Disabled, HighlyRestricted, Restricted, Normal, Experimental
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-CimSession

Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session object, such as the output of a New-CimSession or Get-CimSession cmdlet. The default is the current session on the local computer.

Parameter properties

Type:

CimSession[]

Default value:None
Supports wildcards:False
DontShow:False
Aliases:Session

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-Confirm

Prompts you for confirmation before running the cmdlet.

Parameter properties

Type:SwitchParameter
Default value:False
Supports wildcards:False
DontShow:False
Aliases:cf

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-CongestionProvider

Specifies the congestion provider property that TCP uses. The acceptable values for this parameter are:

  • CTCP. Compound TCP increases the receive window and amount of data sent. CTCP can improve throughput on higher latency connections.
  • DCTCP. Data Center TCP adjusts the TCP window based on network congestion feedback based on Explicit Congestion Notification (ECN) signaling. DCTCP may improve throughput on low latency links.
  • Default. Servers use DCTCP by default. Client computers use NewReno. For information about NewReno, see RFC 3782.

Parameter properties

Type:CongestionProvider
Default value:None
Accepted values:Default, CTCP, DCTCP
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-CwndRestart

Specifies whether to enable congestion window restart. Congestion window restart can avoid slow start to optimize throughput on low latency networks. For more information about congestion window restart, see RFC 2581. The acceptable values for this parameter are:

  • True. TCP uses congestion window restart.
  • False. TCP uses the default setting of the connection.

Parameter properties

Type:CwndRestart
Default value:None
Accepted values:False, True
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-DelayedAckFrequency

Specifies the number of acknowledgments (ACKs) received before the computer sends a response.

Parameter properties

Type:Byte
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-DelayedAckTimeoutMs

Specifies the time to wait, in milliseconds, before the computer sends an ACK if the computer receives fewer than delayed acknowledgment frequency of packets. Use the DelayedAckFrequency parameter to specify the delayed ACK frequency value. Reducing the time to wait can increase throughput on low latency networks by accelerating growth in TCP window size. The acceptable values for this parameter are: increments of 10, from 10 through 600.

Parameter properties

Type:UInt32
Default value:None
Supports wildcards:False
DontShow:False
Aliases:DelayedAckTimeout

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-DynamicPortRangeNumberOfPorts

Specifies the number of ports for the dynamic port range that starts from the port that you specify for the DynamicPortRangeStartPort parameter.

Parameter properties

Type:UInt16
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-DynamicPortRangeStartPort

Specifies the starting port for the dynamic port range. This parameter sets the starting port to send and receive TCP traffic. The acceptable values for this parameter are: 1 through 65535.

Parameter properties

Type:UInt16
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-EcnCapability

Specifies whether to enable ECN capability. The acceptable values for this parameter are:

  • Enabled. Uses ECN capability.
  • Disabled. Does not use ECN capability.

If you specify a value of Disabled, UseECT0, or UseEct1 for the EcnMarking parameter of the Set-NetIPInterface cmdlet, the current parameter has no effect.

Parameter properties

Type:EcnCapability
Default value:None
Accepted values:Disabled, Enabled
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-ForceWS

Specifies whether to force window scaling for retransmission. The acceptable values for this parameter are:

  • Enabled. Requires window scaling for retransmission.
  • Disabled. Does not require window scaling for retransmission.

The default value is Disabled.

Parameter properties

Type:ForceWS
Default value:None
Accepted values:Disabled, Enabled
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-InitialCongestionWindowMss

Specifies the initial size of the congestion window. Provide a value to multiply by the maximum segment size (MSS). The acceptable values for this parameter are: even numbers from 2 through 64.

Parameter properties

Type:UInt32
Default value:None
Supports wildcards:False
DontShow:False
Aliases:InitialCongestionWindow

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-InitialRtoMs

Specifies the period, in milliseconds, before connect, or SYN, retransmit. The acceptable values for this parameter are: increments of 10, from 300 ms through 3000 ms.

Parameter properties

Type:UInt32
Default value:None
Supports wildcards:False
DontShow:False
Aliases:InitialRto

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-InputObject

Specifies the input object that is used in a pipeline command.

Parameter properties

Type:

CimInstance[]

Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

InputObject (cdxml)
Position:Named
Mandatory:True
Value from pipeline:True
Value from pipeline by property name:False
Value from remaining arguments:False

-MaxSynRetransmissions

Specifies the maximum number of times the computer sends SYN packets without receiving a response.

Parameter properties

Type:Byte
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-MemoryPressureProtection

Specifies whether to use memory pressure protection. TCP memory pressure protection helps ensure that a computer continues normal operation when low on memory due to denial of service attacks. The acceptable values for this parameter are:

  • Enabled. When low on memory, during an attack, close existing TCP connections and drop incoming SYN requests.
  • Disabled. Do not use memory pressure protection.
  • Default. Use the computer default value for memory pressure protection.

Parameter properties

Type:MemoryPressureProtection
Default value:None
Accepted values:Disabled, Enabled, Default
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-MinRtoMs

Specifies a value, in milliseconds, for the TCP retransmission to time out. The acceptable values for this parameter are: increments of 10, from 20 ms through 300 ms.

Parameter properties

Type:UInt32
Default value:None
Supports wildcards:False
DontShow:False
Aliases:MinRto

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-NonSackRttResiliency

Specifies whether to enable round trip time resiliency for clients that do not support selective acknowledgment. The acceptable values for this parameter are:

  • Enabled
  • Disabled

Parameter properties

Type:NonSackRttResiliency
Default value:None
Accepted values:Disabled, Enabled
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-PassThru

Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output.

Parameter properties

Type:SwitchParameter
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-ScalingHeuristics

Specifies whether to enable scaling heuristics. The acceptable values for this parameter are:

  • Enabled
  • Disabled

Parameter properties

Type:ScalingHeuristics
Default value:None
Accepted values:Disabled, Enabled
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-SettingName

Specifies an array of setting names. You can specify only Custom for this parameter.

Parameter properties

Type:

String[]

Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

ByName
Position:0
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-ThrottleLimit

Specifies the maximum number of concurrent operations that can be established to run the cmdlet. If this parameter is omitted or a value of 0 is entered, then Windows PowerShell® calculates an optimum throttle limit for the cmdlet based on the number of CIM cmdlets that are running on the computer. The throttle limit applies only to the current cmdlet, not to the session or to the computer.

Parameter properties

Type:Int32
Default value:None
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-Timestamps

Specifies whether to enable timestamps. Timestamps facilitate round trip measurement, and can help protect against wrapped sequence numbers on high throughput links. For more information about TCP timestamps, see RFC 1323. The acceptable values for this parameter are:

  • Enabled
  • Disabled

Parameter properties

Type:Timestamps
Default value:None
Accepted values:Disabled, Enabled
Supports wildcards:False
DontShow:False

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Parameter properties

Type:SwitchParameter
Default value:False
Supports wildcards:False
DontShow:False
Aliases:wi

Parameter sets

(All)
Position:Named
Mandatory:False
Value from pipeline:False
Value from pipeline by property name:False
Value from remaining arguments:False

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.

Inputs

CimInstance

The Microsoft.Management.Infrastructure.CimInstance object is a wrapper class that displays Windows Management Instrumentation (WMI) objects. The path after the pound sign (#) provides the namespace and class name for the underlying WMI object.

Outputs

None