Set NetTCPSetting - PowerShell
Overview
The Set-NetTCPSetting
command modifies the Transmission Control Protocol (TCP) settings on a network interface. It allows administrators to configure various TCP parameters to optimize network performance and troubleshoot connectivity issues.
Syntax
Set-NetTCPSetting [-AddressFamily AddressFamily] [-InterfaceAlias InterfaceAlias] [-ReceiveSegmentSizeBytes ReceiveSegmentSizeBytes] [-TcpMaxDataRetransmissions TcpMaxDataRetransmissions] [-TcpMaxSynRetransmissions TcpMaxSynRetransmissions] [-TcpTimedWaitDelay TcpTimedWaitDelay] [-TcpWindowSize ReceiveWindowSizeBytes] [-TcpWindowScalingEnabled TcpWindowScalingEnabled] [-TcpDelayedAckEnabled TcpDelayedAckEnabled] [-TcpFastOpenEnabled TcpFastOpenEnabled] [-TcpFastOpenConnectRequests TcpFastOpenConnectRequests] [-TcpFastOpenMaxDataPermitted TcpFastOpenMaxDataPermitted] [-TcpFastOpenMaxDataPermittedTcpFastOpenEnabled] [-TcpLookupTimeout TcpLookupTimeout] [-TcpMaxUserPort TcpMaxUserPort] [-TcpMaxUserPortDynamic TcpMaxUserPortDynamic] [-TcpMeasureThroughputTcpFastOpenEnabled] [-TcpPmtuDiscoveryEnabled TcpPmtuDiscoveryEnabled] [-TcpSynAttackProtectEnabled TcpSynAttackProtectEnabled] [-TcpSndBuf SendWindowSizeBytes] [-TcpSendWindowScalingEnabled TcpSendWindowScalingEnabled] [-Tcp timestampsEnabled TCPtimestampsEnabled] [-TcpUsePMTUDiscovery TcpUsePMTUDiscovery]
Options/Flags
- -AddressFamily: Address family for which to modify TCP settings. Valid values:
IPv4
orIPv6
. - -InterfaceAlias: Name or index of the network interface to modify.
- -ReceiveSegmentSizeBytes: Size of received segments in bytes. Default: 65535.
- -TcpMaxDataRetransmissions: Maximum number of data retransmissions before dropping a connection. Default: 5.
- -TcpMaxSynRetransmissions: Maximum number of SYN retransmissions before dropping a connection. Default: 5.
- -TcpTimedWaitDelay: Idle time for a TCP connection in the
TIME_WAIT
state. Default: 240 seconds. - -TcpWindowSize: Size of the TCP receive window in bytes. Default: 65535.
- -TcpWindowScalingEnabled: Enable or disable TCP window scaling for large windows.
- -TcpDelayedAckEnabled: Enable or disable TCP delayed acknowledgments.
- -TcpFastOpenEnabled: Enable or disable TCP fast open.
- -TcpFastOpenConnectRequests: Number of TCP fast open connect requests. Default: 10.
- -TcpFastOpenMaxDataPermitted: Maximum amount of data allowed for a TCP fast open connection. Default: 1048576 bytes.
- -TcpLookupTimeout: Timeout for TCP hostname lookups. Default: 15 seconds.
- -TcpMaxUserPort: Maximum port number that a user can use. Default: 5000.
- -TcpMaxUserPortDynamic: Enable or disable dynamic assignment of ephemeral ports.
- -TcpMeasureThroughputTcpFastOpenEnabled: Enable or disable TCP throughput measurement.
- -TcpPmtuDiscoveryEnabled: Enable or disable TCP path MTU discovery.
- -TcpSynAttackProtectEnabled: Enable or disable TCP SYN flood protection.
- -TcpSndBuf: Size of the TCP send buffer in bytes. Default: 131072.
- -TcpSendWindowScalingEnabled: Enable or disable TCP send window scaling for large windows.
- -TcpTimestampsEnabled: Enable or disable TCP timestamps.
- -TcpUsePMTUDiscovery: Enable or disable TCP PMTU discovery.
Examples
Example 1: Increase TCP receive window size on IPv4
Set-NetTCPSetting -InterfaceAlias "Ethernet" -AddressFamily IPv4 -TcpWindowSize 131072
Example 2: Disable TCP fast open and enable maximum port range
Set-NetTCPSetting -InterfaceAlias "Wi-Fi" -AddressFamily IPv4 -TcpFastOpenEnabled $false -TcpMaxUserPortDynamic $true
Example 3: Enable TCP path MTU discovery and SYN attack protection
Set-NetTCPSetting -InterfaceAlias "Ethernet 2" -AddressFamily IPv6 -TcpPmtuDiscoveryEnabled $true -TcpSynAttackProtectEnabled $true
Common Issues
- Invalid interface: Ensure that the specified network interface exists and is active.
- Incorrect address family: Verify that the address family matches the IP address assigned to the interface.
- Value outside of range: Make sure that parameter values are within the allowed range.
Integration
Set-NetTCPSetting
can be used in conjunction with other networking commands, such as New-NetTCPConnection
and Get-NetAdapter
. It can be incorporated into scripts to automate network configuration tasks.
Related Commands
New-NetTCPConnection
Get-NetAdapter
Set-NetIPInterface