1、tcp ip並發連接數是?
看完下面的敘述你就會明白了:眾所周知,為了防範蠕蟲病毒的傳播和攻擊,Windows XP SP2將並發線程最多**為10個。SP2利用Messages動態鏈接庫,來實時監控每個進程的並發線程數目,一旦它發現某進程的線程數超過10個,就會屏蔽掉部分線程。SP2這樣做,雖然可以防範震盪波類型的蠕蟲病毒,加強系統安全,但是也帶了一些負面影響,例如當你使用BT、P2P或FlashGet軟體下載時,部分線程將被屏蔽掉,因此下載速度會變得很慢。為此,你可以採取以下對策,來突破TCP並發連接數,從而提高SP2的多線程訪問速度。
一、注冊表修改法的誤區
為了突破SP2對TCP並發連接數的**,網上曾經流傳過一種修改注冊表的方法,操作步驟如下:
單擊「開始」/運行,輸入Regedit打開注冊表,定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters下,修改的「TcpNumConnections」的鍵值,將之由10改為150,即設置TCP最大並發連接數為150。
經過實際測試,我們發現該方法看起來有效,但實質上並不能突破並發連接數**,提高SP2的多線程訪問速度。因為SP2對線程數目的控制,是通過「Tcpip.sys」這個系統文件來實現的,並不是通過注冊表實現的,因此,該方法不能增加SP2的TCP並發連接數。
二、使用工具來替換Tcpip.sys
為了突破SP2的TCP並發連接數**,正確地方法是修改Windows XP SP2的系統文件Tcpip.sys。Tcpip.sys是Windows XP SP2重要的系統文件,位於「C:\Windows\system32\drivers目錄下。該文件由於平時受到系統保護,所以正常情況下你是無法替換它的,必須在安全模式或純DOS模式下才能替換,建議你使用以下專門工具、來替換「Tcpip.sys」文件,操作步驟如下:
從網上http://www.lvllord.de/download.p ... 226Patch211a-en.zip下載替換工具(僅為30KB),用它來修改系統文件Tcpip.sys最大安全並發連接**;然後備份一下C:\Windows\system32\drivers\Tcpip.sys文件。
接下來,雙擊打開下載文件ZIP壓縮包,運行其中的替換工具EvID4226Patch.exe,隨之將彈出一個命令行提示符窗口,首先顯示Windows當前的Tcpip.sys文件版本,以及並發連接的**數值(默認為10);接著詢問你是否將連接數**在50(如下圖1),你可以選擇「Yes/No/Change」,如果你輸入「Y」,則會將並發連接數改為「50」,如果想改為其他數(例如150),可以在提示符後輸入「c」,然後輸入最大的並發連接數(例如150)回車,最後在提示符下輸入「Y」並回車,這樣就替換了Tcpip.sys文件;Tcpip.sys文件被替換後,隨之會彈出系統文件保護對話框,你可以點擊「取消」按鈕,然後點擊「是」按鈕,重新啟動後,Tcpip.sys文件的替換就大功告成了!
現在你的最大並發連接數已超過10個,達到了150個,因此Windows XP SP2的多線程訪問速度得到了提升,當你用FlashGet、BT等多線程下載時,就不會感到網路帶寬的**了。
三、DOS下修改Tcpip.sys文件
以上替換程序EvID4226Patch.exe也可以在DOS下使用,方法是:首先把EvID4226Patch.exe拷貝到C盤根目錄下;然後再進入DOS模式,進入C盤根目錄,輸入命令EvID4226Patch/L=$n$/w=C:\WINDOWS\system32\drivers/L=tcpip.sys即可修改Tcpip.sys文件。
注意:以上$n$為你要設置的最大安全連接數,假如要把最大並發連接數設置為150個線程,那麼輸入命令EvID4226Patch/L=150/w=C:\WINDOWS\system32\drivers/L=tcpip.sys即可。
2、tcp並發伺服器實現eth0功能
大家都知道各類網路伺服器程序的編寫步驟,並且都知道網路伺服器就兩大類:循環服務和並發服務。這里附上源代碼來個小結吧。
一、 循環服務
循環網路伺服器編程實現的步驟是這樣的:
建立socket(這里用到socket()函數及函數setsockopt())
|
|
\|/
把socket和IP地址及埠綁定(這里用到bind函數)
|
|
\|/
開始監聽(這里用到listen()函數)
|
|
/\
/ \
\ / \
----------------------- | 有連接|
| / \ /
| \ /
| \ /
| |
| 接受新的連接(這里用到accept()函數)
| | /___________________________________________________
| | \ |
| \|/ |
| 從連接里讀取數據(這里用到recv()系統函數,當然也可以是read()函數) |
| | |
| | |
| \|/ |
| 返回信息給連接(這里用到send()系統函數,當然也可以是write()函數) |
| | |
| | |
| /\ |
| / \ |
| / \ |
| | 還有數據 |-Y-------------------------------------------------------
| \ /
| \ /
| \ /
|_______________________________|
這種伺服器模型是典型循環服務,如果不加上多進程/線程技術,此種服務吞吐量有限,大家都可以看到,如果前一個連接服務數據沒有收發完畢後面的連接沒辦法處理。所以一般有多進程技術,對一個新連接啟用一個新進程去處理,而監聽socket繼續監聽。
/
3、win7 tcp ip 並發連接數是多少
TCPIP並發連接數就是同時可以訪問計算機的ip數量 。
1、一台電腦一個ip ,為了緩解服務回器壓力,XP默認限制答為10 所以很多BT下載軟體通過破解來連接更多的伺服器
2、因此現在很過下載軟體如迅雷中為了提高下載速度就提供了破解程序在裡面。
3、具體連接數適不同情況而定,過大對機子有影響,太小速度慢,在用迅雷時迅雷會提示連接數,這是選擇自動修改即可,這樣是根據網速和機子本身而定的,比較穩定。
4、更改為512或更高的數值 ,512差不多了下載速度超快,不可能的除非加錢給運營商把兆數加大,其實寬頻就像水管一樣給多大就多大的水,在怎麼在水龍頭上搞花頭都怎麼大,
下載速度一樣,運營商要保證那些大客戶的利益如果有在電腦上就可以控制速度。
那不要光纖不要千兆百兆了。
4、怎樣修改windows伺服器中最大的tcp連接數?
在做性能測試測試時候,如果被測試的系統頁面很簡單,並且性能很好,這樣會導致壓力機得tcp鏈接數不夠而導致如下錯誤:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\TcpTimedWaitDelay to 30
and HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\MaxUserPort to 65534
and rebooting the machine
See the readme.doc file for more information
通過百度搜索介紹最多的還是讓修改TimedWaitDelay 和MaxUserPort這2個值,其中是將TimedWaitDelay修改的相對小點,可以根據實際情況來定,
同時將MaxUserPort這個值修改大些,但是修改完並重啟機器後,該問題仍然存在,通過多方查資料,然後對一些注冊表進行修改:
[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]
TcpNumConnections = 0x00fffffe (Default = 16,777,214)
以上注冊表信息配置單機的最大允許的TCP連接數,默認為 16M。這個數值看似很大,這個並不是限制最大連接數的唯一條件,還有其他條件會限制到TCP 連接的最大連接數。
最大動態埠數
TCP客戶端和伺服器連接時,客戶端必須分配一個動態埠,默認情況下這個動態埠的分配范圍為 1024-5000 ,也就是說默認情況下,客戶端最多可以同時發起3977 個Socket 連接。我們可以修改如下注冊表來調整這個動態埠的范圍
[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]
MaxUserPort = 5000 (Default = 5000, Max = 65534)
最大TCB 數量
系統為每個TCP 連接分配一個TCP 控制塊(TCP control block or TCB),這個控制塊用於緩存TCP連接的一些參數,每個TCB需要分配 0.5 KB的pagepool 和 0.5KB 的Non-pagepool,也就說,每個TCP連接會佔用 1KB 的系統內存。
系統的最大TCB數量由如下注冊表設置決定
[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]
MaxFreeTcbs = 2000 (Default = RAM dependent, but usual Pro = 1000, Srv=2000)
非Server版本,MaxFreeTcbs 的默認值為1000 (64M 以上物理內存)
Server 版本,這個的默認值為 2000。
也就是說,默認情況下,Server 版本最多同時可以建立並保持2000個TCP 連接。
最大TCB Hash table 數量
TCB 是通過Hash table 來管理的,下面注冊表設置決定了這個Hash table 的大小
HKEY_LOCAL_MACHINE \System \CurrentControlSet \services \Tcpip \Parameters]
MaxHashTableSize = 512 (Default = 512, Range = 64-65536)
這個值指明分配 pagepool 內存的數量,也就是說,如果MaxFreeTcbs = 1000 , 則 pagepool 的內存數量為 500KB
那麼 MaxHashTableSize 應大於 500 才行。這個數量越大,則Hash table 的冗餘度就越高,每次分配和查找 TCP 連接用時就越少。這個值必須是2的冪,且最大為65536.
MaxUserPort = 65534 (Decimal)
MaxHashTableSize = 65536 (Decimal)
MaxFreeTcbs = 16000 (Decimal)
這里我們可以看到 MaxHashTableSize 被配置為比MaxFreeTcbs 大4倍,這樣可以大大增加TCP建立的速度。
5、TCP/IP並發連接數應該是多少為最好?
並發數指的是同時連接25台,你還用XP2,還是03吧
6、socket跟TCP/IP 的關系,單台伺服器上的並發TCP連接數可以有多少
socket是軟體開發使用的概念,是實現tcp/ip的模塊處理的機制,tcpip本身沒這個概念,並發tcp連接數是設備的能力,不同的設備的最大連接數不同
7、一台伺服器支持多少TCP並發鏈接
這個和伺服器配置,應用技術,系統等相關,影響因素很多!
舉個例子,200M空間虛擬主機,並發鏈接一般為200
--...
8、linux下如何測試TCP並發數量
查看httpd進程數:
Linux命令:
ps
-ef
|
grep
httpd
|
wc
-l
返回結果示例:1388
表示伺服器能夠處理1388個並發內請求,這個值服容務器可根據負載情況自動調整。
查看伺服器的並發請求數及其TCP連接狀態:
Linux命令:
netstat
-n
|
awk
'/^tcp/
{++S[$NF]}
END
{for(a
in
S)
print
a,
S[a]}'
返回結果示例:
LAST_ACK
5
SYN_RECV
30
ESTABLISHED
1597
FIN_WAIT1
51
FIN_WAIT2
504
TIME_WAIT
1057
其中的SYN_RECV表示正在等待處理的請求數;ESTABLISHED表示正常數據傳輸狀態;TIME_WAIT表示處理完畢,等待超時結束的請求數。
9、linux下如何測試TCP並發數量
查看httpd進程數:
Linux命令:
ps -ef | grep httpd | wc -l
返回結果示例:1388
表示伺服器能夠處理1388個並發請求,這個值專伺服器可根據負載情屬況自動調整。
查看伺服器的並發請求數及其TCP連接狀態:
Linux命令:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
返回結果示例:
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
其中的SYN_RECV表示正在等待處理的請求數;ESTABLISHED表示正常數據傳輸狀態;TIME_WAIT表示處理完畢,等待超時結束的請求數。