<socket> 元素 (網路設定)
指定通訊端作業是否使用完成連接埠。
<configuration>
<system.net>
<settings>
<socket>
Syntax
<socket
alwaysUseCompletionPortsForConnect="true|false"
alwaysUseCompletionPortsForAccept="true|false"
ipProtectionLevel="EdgeRestricted|Restricted|Unrestricted|Unspecified"
/>
屬性和項目
下列章節說明屬性、子元素和父元素。
屬性
Attribute | 說明 |
---|---|
alwaysUseCompletionPortsForAccept |
指出通訊端是否一律使用完成連接埠來進行 Accept 方法呼叫。 預設值是 false 。 |
alwaysUseCompletionPortsForConnect |
指出通訊端是否一律使用完成連接埠來進行 Connect 方法呼叫。 預設值是 false 。 |
ipProtectionLevel |
指定要用於通訊端的預設 System.Net.Sockets.IPProtectionLevel。 預設值取決於所用的 Windows 版本。 |
子元素
無。
父項目
Element | 說明 |
---|---|
設定 | 為 System.Net 命名空間設定基本的網路選項。 |
備註
alwaysUseCompletionPortsForAccept
和 alwaysUseCompletionPortsForConnect
屬性用來指定與 System.Net.Sockets 命名空間中的類別使用完成通訊埠有關的預設行為。 建議針對高效能伺服器應用程式使用完成連接埠。
alwaysUseCompletionPortsForAccept
和 alwaysUseCompletionPortsForConnect
屬性的預設值為 false。
AlwaysUseCompletionPortsForAccept 可用於從適用的組態檔取得 alwaysUseCompletionPortsForAccept
屬性的目前值。 AlwaysUseCompletionPortsForConnect 可用於從適用的組態檔取得 alwaysUseCompletionPortsForConnect
屬性的目前值。
ipProtectionLevel
屬性指定要用於通訊端的預設 System.Net.Sockets.IPProtectionLevel。 IPProtectionLevel 屬性讓 IPv6 通訊端的組態限制在指定範圍,例如具有相同連結本機或網站本機前置詞的位址。 此選項可讓應用程式在 IPv6 通訊端上設置存取限制。 這類限制可以讓應用程式在私人 LAN 上執行,簡便又穩當地強化應用程式對外部攻擊的抵禦。 此選項可放大或縮小接聽通訊端的範圍,根據需要啟用公用和私用使用者的無限制存取,或視需要限制成僅可存取相同的站台。
此 ipProtectionLevel
屬性設定只會影響初始傳入流量:
接聽通訊端上連入連線的 TCP 伺服器。
在通訊端上接收封包的 UDP 應用程式。
此組態設定不會影響已建立的 TCP 連線 (流量在兩個方向皆不受限制),且不會影響傳送 UDP 封包的應用程式。
ipProtectionLevel
屬性設定的可能值會對應至 System.Net.Sockets.IPProtectionLevel 列舉中指定的已定義保護層級,如下所示:
屬性值 | 說明 |
---|---|
EdgeRestricted | IP 保護層級有臨界限制。 這個值將由設計在整個網際網路上操作的應用程式所使用。 此項設定不允許使用 Windows Teredo 實作來進行網路位址轉譯 (NAT) 周遊。 這些應用程式可能會略過 IPv4 防火牆,因此必須加強應用程式,以抵禦在開啟的通訊埠位置遭受的直接網路攻擊。 在 Windows Server 2003 和 Windows XP 環境下,通訊端 IP 保護層級的預設值有臨界限制。 |
Restricted | IP 保護層級有限制。 這個值將由未實作網際網路案例的內部網路應用程式所使用。 這些應用程式通常不會就網路攻擊測試進行測試或是採取強化。 這個設定會將接收傳輸限制於僅連結和本機之間。 |
不受限制 | IP 保護層級不受限制。 這個值將由設計在整個網際網路上操作的應用程式使用,包括發揮已內建在 Windows 之 IPv6 NAT 周遊功能的應用程式 (例如 Teredo)。 這些應用程式可能會略過 IPv4 防火牆,因此必須加強應用程式,以抵禦在開啟的通訊埠位置遭受的直接網路攻擊。 在 Windows Server 2008 R2 和 Windows Vista 環境下,通訊端 IP 保護層級的預設值不受任何限制。 |
[未指定] | IP 保護層級尚未指定。 在 Windows 7 和 Windows Server 2008 R2 環境下,通訊端 IP 保護層級的預設值尚未指定。 |
ipProtectionLevel
屬性的預設值為 Unspecified。
IPProtectionLevel 屬性可用於從適用的組態檔取得 ipProtectionLevel
屬性的目前值。
組態檔
此項目可以用於應用程式組態檔或電腦組態檔 (Machine.config)。
範例
下列範例示範如何指定應該使用完成連接埠,以及預設 System.Net.Sockets.IPProtectionLevel 應不受限制。
<configuration>
<system.net>
<settings>
<socket
alwaysUseCompletionPortsForAccept="true"
alwaysUseCompletionPortsForConnect="true"
ipProtectionLevel="Unrestricted"
/>
</settings>
</system.net>
</configuration>