當前位置:首頁 » 操作系統 » linuxtcp關閉

linuxtcp關閉

發布時間: 2022-10-02 07:28:04

linux 如何開放埠和關閉埠

1、查看哪些埠被打開netstat -anp。

(1)linuxtcp關閉擴展閱讀:

liunx常見埠詳細說明 :

1、埠:7

服務:Echo

說明:能看到許多人搜索Fraggle放大器時,發送到X.X.X.0和X.X.X.255的信息。

2、埠:21

服務:ftp

說明:FTP伺服器所開放的埠,用於上傳、下載。最常見的攻擊者用於尋找打開anonymous的FTP伺服器的方法。這些伺服器帶有可讀寫的目錄。木馬Doly
Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所開放的埠。

3、埠:22

服務:Ssh

說明:PcAnywhere建立的TCP和這一埠的連接可能是為了尋找ssh。這一服務有許多弱點,如果配置成特定的模式,許多使用RSAREF庫的版本就會有不少的漏洞

存在。

4、埠:23

服務:Telnet

說明:遠程登錄,入侵者在搜索遠程登錄UNIX的服務。大多數情況下掃描這一埠是為了找到機器運行的操作系統。還有使用其他技術,入侵者也會找到密碼。木馬Tiny
Telnet Server就開放這個埠。

5、埠:25

服務:SMTP

說明:SMTP伺服器所開放的埠,用於發送郵件。入侵者尋找SMTP伺服器是為了傳遞他們的SPAM。入侵者的帳戶被關閉,他們需要連接到高帶寬的E-MAIL伺服器上,將簡單的信息傳遞到不同的地址。木馬Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都開放這個埠。

6、埠:53

服務:Domain Name Server(DNS)

說明:DNS伺服器所開放的埠,入侵者可能是試圖進行區域傳遞(TCP),欺騙DNS(UDP)或隱藏其他的通信。因此防火牆常常過濾或記錄此埠。

7、埠:80

服務:HTTP

說明:用於網頁瀏覽。木馬Executor開放此埠。

8、埠:102

服務:Message transfer agent(MTA)-X.400 over TCP/IP

說明:消息傳輸代理。

9、埠:110

服務:pop3

說明:POP3(Post Office Protocol

伺服器開放此埠,用於接收郵件,客戶端訪問伺服器端的郵件服務。POP3服務有許多公認的弱點。關於用戶名和密碼交換緩沖區溢出的弱點至少有20個,這意味著入侵者可以在真正登陸前進入系統。成功登陸後還有其他緩沖區溢出錯誤。

10、埠:137、138、139

服務:NETBIOS Name Service

說明:其中137、138是UDP埠,當通過網上鄰居傳輸文件時用這個埠。而139埠:通過這個埠進入的連接試圖獲得NetBIOS/SMB服務。這個協議被用於windows文件和列印機共享和SAMBA。還有WINS Regisrtation也用它。

11、埠:143

服務:Interim Mail Access Protocol v2

說明:和POP3的安全問題一樣,許多IMAP伺服器存在有緩沖區溢出漏洞。

記住:一種LINUX蠕蟲(admv0rm)會通過這個埠繁殖,因此許多這個埠的掃描來自不知情的已經被感染的用戶。當REDHAT在他們的LINUX發布版本中默認允許IMAP後,這些漏洞變的很流行。這一埠還被用於IMAP2,但並不流行。

12、埠:161

服務:SNMP

說明:SNMP允許遠程管理設備。所有配置和運行信息的儲存在資料庫中,通過SNMP可獲得這些信息。許多管理員的錯誤配置將被暴露在Internet。Cackers將試圖使用默認的密碼public、private訪問系統。他們可能會試驗所有可能的組合。

SNMP包可能會被錯誤的指向用戶的網路。

13、埠:389

服務:LDAP、ILS

說明:輕型目錄訪問協議和NetMeeting Internet Locator Server共用這一埠 。

14、埠:443

服務:Https

說明:網頁瀏覽埠,能提供加密和通過安全埠傳輸的另一種HTTP。

15、埠:993

服務:IMAP

說明:SSL(Secure Sockets layer)

16、埠:1433

服務:SQL

說明:Microsoft的SQL服務開放的埠。

17、埠:1503

服務:NetMeeting T.120

說明:NetMeeting T.120

18、埠:1720

服務:NetMeeting

說明:NetMeeting H.233 call Setup。

19、埠:1731

服務:NetMeeting Audio Call Control

說明:NetMeeting音頻調用控制。

20、埠:3389

服務:超級終端

說明:WINDOWS 2000終端開放此埠。

21、埠:4000

服務:QQ客戶端

說明:騰訊QQ客戶端開放此埠。

22、埠:5631

服務:pcAnywere

說明:有時會看到很多這個埠的掃描,這依賴於用戶所在的位置。當用戶打開pcAnywere時,它會自動掃描區域網C類網以尋找可能的代理(這里的代理是指agent而不是proxy)。入侵者也會尋找開放這種服務的計算機。所以應該查看這種掃描的源地址。一些搜尋pcAnywere的掃描包常含埠22的UDP數據包。

23、埠:6970

服務:RealAudio

說明:RealAudio客戶將從伺服器的6970-7170的UDP埠接收音頻數據流。這是由TCP-7070埠外向控制連接設置的。

24、埠:7323

服務:[NULL]

說明:Sygate伺服器端。

25、埠:8000

服務:OICQ

說明:騰訊QQ伺服器端開放此埠。

26、埠:8010

服務:Wingate

說明:Wingate代理開放此埠。

27、埠:8080

服務:代理埠

說明:WWW代理開放此埠。

Ⅱ linux中的一個特殊文件: /dev/tcp

linux中的一個特殊文件: /dev/tcp ,打開這個文件就類似於發出了一個socket調用,建立一個socket連接,讀寫這個文件就相當於在這個socket連接中傳輸數據。

/dev/[tcp|upd]/host/port 只要讀取或者寫入這個文件,相當於系統會嘗試連接:host 這台機器,對應port埠。如果主機以及埠存在,就建立一個socket 連接。將在,/proc/self/fd目錄下面,有對應的文件出現。

以讀寫方式打開/dev/tcp,並指定伺服器名為: www.csdn.net ,埠號為:80,指定描述符為8。

要注意的是:/dev/tcp本身是不存在的。

向文件中隨便寫一些數據:

GET請求發送給socket連接。

讀取返回的信息:

從socket讀取返回信息,顯示為標准輸出

關閉socket的輸入,輸出

https://blog.csdn.net/zhjutao/article/details/8622751
https://www.cnblogs.com/chengmo/archive/2010/10/22/1858302.html

Ⅲ LINUX下Tcp埠如何釋放

埠只能打開或者關閉,需要釋放的是連接到這個埠的鏈接,一般關閉這個埠等一段時間鏈接自動會被釋放。打開或者關閉埠只能依靠各種服務,比如ssh服務,會默認打開22埠,只有關閉ssh服務,22埠才會被關閉,連接22埠的鏈接才會被逐漸釋放。

Ⅳ 如何禁止Linux組合TCP小包

如何禁止Linux組合TCP小包,關於這個問題有以下解釋:注冊賬號,與客服交流
killcx可以關閉一個linux上的tcp連接,而不管連接的狀態是怎麼樣的(半開,已建立,等待或關閉狀態)。
它是一個Perl的腳本程序,在linux上使用需要安裝一下它的依賴的包。
它依賴三個包:Net::RawIP,Net::Pcap和Net::Pcap。
安裝命令如下:
apt-getinstalllibnet-rawip-perl
apt-getinstalllibnet-pcap-perl
cpanNetPacket::Ethernet
安裝完成就可以使用了,使用語法為:killcxip:port
注意如果關閉半開狀態的連接(即只有一端有連接,另外一端沒有連接),killcx需要運行在還有連接存在的主機上才可以關閉連接。
killcx官方文檔
如何幹掉一條tcp連接(活躍/非活躍)

Ⅳ linux下crt遠程開啟tcpmp抓包後,關掉crt後還在抓嗎

通過你的描述,你把crt遠程關閉了,
抓包
一段時間後,就會自動結束,如果要繼續在後台運行,你在執行抓包命令時,在命令後面加上一個字元
&
,這樣在你關閉遠程crt後,抓包命令就會轉入後台
繼續執行
,直到你輸入結束命令。
希望能幫到你,,,,,,

Ⅵ linux111/tcp怎麼關閉

用netstat -antp |grep ':111' 找到這個進程,再kill掉。
比如
killall rpcbind

Ⅶ linux編程中,哪個tcp的套接字選項與nagle演算法的開啟和關閉有關

從函數調用上來分析(msdn):一旦完成了套接字的連接,應當將套接字關閉,並且釋放其套接字句柄所佔用的所有資源。真正釋放一個已經打開的套接字句柄的資源直接調用closesocket即可,但要明白closesocket的調用可能會帶來負面影響,具體的影響和...

Ⅷ 查看linux中的TCP連接數

1)統計80埠連接數

2)統計httpd協議連接數

3)、統計已連接上的,狀態為「established

4)、查出哪個IP地址連接最多,將其封了.

1、查看apache當前並發訪問數:

對比httpd.conf中MaxClients的數字差距多少。

2、查看有多少個進程數:

3、可以使用如下參數查看數據

統計httpd進程數,連個請求會啟動一個進程,使用於Apache伺服器。
表示Apache能夠處理1388個並發請求,這個值Apache可根據負載情況自動調整。

4341
netstat -an會列印系統當前網路鏈接狀態,而grep -i "80"是用來提取與80埠有關的連接的,wc -l進行連接數統計。
最終返回的數字就是當前所有80埠的請求總數。

netstat -an會列印系統當前網路鏈接狀態,而grep ESTABLISHED 提取出已建立連接的信息。 然後wc -l統計。
最終返回的數字就是當前所有80埠的已建立連接的總數。

查看Apache的並發請求數及其TCP連接狀態:

TIME_WAIT 8947 等待足夠的時間以確保遠程TCP接收到連接中斷請求的確認
FIN_WAIT1 15 等待遠程TCP連接中斷請求,或先前的連接中斷請求的確認
FIN_WAIT2 1 從遠程TCP等待連接中斷請求
ESTABLISHED 55 代表一個打開的連接
SYN_RECV 21 再收到和發送一個連接請求後等待對方對連接請求的確認
CLOSING 2 沒有任何連接狀態
LAST_ACK 4 等待原來的發向遠程TCP的連接中斷請求的確認

TCP連接狀態詳解
LISTEN: 偵聽來自遠方的TCP埠的連接請求
SYN-SENT: 再發送連接請求後等待匹配的連接請求
SYN-RECEIVED:再收到和發送一個連接請求後等待對方對連接請求的確認
ESTABLISHED: 代表一個打開的連接
FIN-WAIT-1: 等待遠程TCP連接中斷請求,或先前的連接中斷請求的確認
FIN-WAIT-2: 從遠程TCP等待連接中斷請求
CLOSE-WAIT: 等待從本地用戶發來的連接中斷請求
CLOSING: 等待遠程TCP對連接中斷的確認
LAST-ACK: 等待原來的發向遠程TCP的連接中斷請求的確認
TIME-WAIT: 等待足夠的時間以確保遠程TCP接收到連接中斷請求的確認
CLOSED: 沒有任何連接狀態

LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
其中的
SYN_RECV表示正在等待處理的請求數;
ESTABLISHED表示正常數據傳輸狀態;
TIME_WAIT表示處理完畢,等待超時結束的請求數。

查看Apache並發請求數及其TCP連接狀態

查看httpd進程數(即prefork模式下Apache能夠處理的並發請求數):

返回結果示例:
1388
表示Apache能夠處理1388個並發請求,這個值Apache可根據負載情況自動調整,我這組伺服器中每台的峰值曾達到過2002。

查看Apache的並發請求數及其TCP連接狀態:

返回結果示例:
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
其中的SYN_RECV表示正在等待處理的請求數;ESTABLISHED表示正常數據傳輸狀態;TIME_WAIT表示處理完畢,等待超時結束的請求數。
狀態:描述

CLOSED:無連接是活動 的或正在進行

LISTEN:伺服器在等待進入呼叫

SYN_RECV:一個連接請求已經到達,等待確認

SYN_SENT:應用已經開始,打開一個連接

ESTABLISHED:正常數據傳輸狀態

FIN_WAIT1:應用說它已經完成

FIN_WAIT2:另一邊已同意釋放

ITMED_WAIT:等待所有分組死掉

CLOSING:兩邊同時嘗試關閉

TIME_WAIT:另一邊已初始化一個釋放

LAST_ACK:等待所有分組死掉

vim /etc/sysctl.conf
編輯文件,加入以下內容:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
然後執行 /sbin/sysctl -p 讓參數生效。

net.ipv4.tcp_syncookies = 1 表示開啟SYN cookies。當出現SYN等待隊列溢出時,啟用cookies來處理,可防範少量SYN攻擊,默認為0,表示關閉;
net.ipv4.tcp_tw_reuse = 1 表示開啟重用。允許將TIME-WAIT sockets重新用於新的TCP連接,默認為0,表示關閉;
net.ipv4.tcp_tw_recycle = 1 表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認為0,表示關閉。
net.ipv4.tcp_fin_timeout 修改系統默認的 TIMEOUT 時間

客戶端與伺服器端建立TCP/IP連接後關閉SOCKET後,伺服器端連接的埠
狀態為TIME_WAIT

是不是所有執行主動關閉的socket都會進入TIME_WAIT狀態呢?
有沒有什麼情況使主動關閉的socket直接進入CLOSED狀態呢?

主動關閉的一方在發送最後一個 ack 後
就會進入 TIME_WAIT 狀態 停留2MSL(max segment lifetime)時間
這個是TCP/IP必不可少的,也就是「解決」不了的。

也就是TCP/IP設計者本來是這么設計的
主要有兩個原因
1。防止上一次連接中的包,迷路後重新出現,影響新連接
(經過2MSL,上一次連接中所有的重復包都會消失)
2。可靠的關閉TCP連接
在主動關閉方發送的最後一個 ack(fin) ,有可能丟失,這時被動方會重新發
fin, 如果這時主動方處於 CLOSED 狀態 ,就會響應 rst 而不是 ack。所以
主動方要處於 TIME_WAIT 狀態,而不能是 CLOSED 。

TIME_WAIT 並不會佔用很大資源的,除非受到攻擊。

還有,如果一方 send 或 recv 超時,就會直接進入 CLOSED 狀態

如何合理設置apache httpd的最大連接數?

手頭有一個網站在線人數增多,訪問時很慢。初步認為是伺服器資源不足了,但經反復測試,一旦連接上,不斷點擊同一個頁面上不同的鏈接,都能迅速打開,這種現象就是說明apache最大連接數已經滿了,新的訪客只能排隊等待有空閑的鏈接,而如果一旦連接上,在keeyalive 的存活時間內(KeepAliveTimeout,默認5秒)都不用重新打開連接,因此解決的方法就是加大apache的最大連接數。

1.在哪裡設置?
apache 2.24,使用默認配置(FreeBSD 默認不載入自定義MPM配置),默認最大連接數是250

在/usr/local/etc/apache22/httpd.conf中載入MPM配置(去掉前面的注釋):

Include etc/apache22/extra/httpd-mpm.conf

可見的MPM配置在/usr/local/etc/apache22/extra/httpd-mpm.conf,但裡面根據httpd的工作模式分了很多塊,哪一部才是當前httpd的工作模式呢?可通過執行 apachectl -l 來查看:
Compiled in moles:
core.c
prefork.c
http_core.c
mod_so.c

看到prefork 字眼,因此可見當前httpd應該是工作在prefork模式,prefork模式的默認配置是:
<IfMole mpm_prefork_mole>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfMole>

2.要加到多少?

連接數理論上當然是支持越大越好,但要在伺服器的能力范圍內,這跟伺服器的CPU、內存、帶寬等都有關系。

查看當前的連接數可以用:
ps aux | grep httpd | wc -l

或:
pgrep httpd|wc -l

計算httpd佔用內存的平均數:
ps aux|grep -v grep|awk '/httpd/{sum+=$6;n++};END{print sum/n}'

由於基本都是靜態頁面,CPU消耗很低,每進程佔用內存也不算多,大約200K。

伺服器內存有2G,除去常規啟動的服務大約需要500M(保守估計),還剩1.5G可用,那麼理論上可以支持1.5 1024 1024*1024/200000 = 8053.06368

約8K個進程,支持2W人同時訪問應該是沒有問題的(能保證其中8K的人訪問很快,其他的可能需要等待1、2秒才能連上,而一旦連上就會很流暢)

控制最大連接數的MaxClients ,因此可以嘗試配置為:
<IfMole mpm_prefork_mole>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 5500
MaxClients 5000
MaxRequestsPerChild 100
</IfMole>

注意,MaxClients默認最大為250,若要超過這個值就要顯式設置ServerLimit,且ServerLimit要放在MaxClients之前,值要不小於MaxClients,不然重啟httpd時會有提示。

重啟httpd後,通過反復執行pgrep httpd|wc -l 來觀察連接數,可以看到連接數在達到MaxClients的設值後不再增加,但此時訪問網站也很流暢,那就不用貪心再設置更高的值了,不然以後如果網站訪問突增不小心就會耗光伺服器內存,可根據以後訪問壓力趨勢及內存的佔用變化再逐漸調整,直到找到一個最優的設置值。

(MaxRequestsPerChild不能設置為0,可能會因內存泄露導致伺服器崩潰)

更佳最大值計算的公式:

apache_max_process_with_good_perfermance < (total_hardware_memory / apache_memory_per_process ) * 2
apache_max_process = apache_max_process_with_good_perfermance * 1.5

附:

實時檢測HTTPD連接數:
watch -n 1 -d "pgrep httpd|wc -l"

Ⅸ 我想關閉LINUX系統上的某個埠,請問相關命令是什麼詳細一點的,謝謝。

前提:首先你必須知道,埠不是獨立存在的,它是依附於進程的。某個進程開啟,那麼它對應的埠就開啟了,進程關閉,則該埠也就關閉了。下次若某個進程再次開啟,則相應的埠也再次開啟。而不要純粹的理解為關閉掉某個埠,不過可以禁用某個埠。

1. 可以通過"~$ netstat -anp" 來查看哪些埠被打開。
(註:加參數'-n'會將應用程序轉為埠顯示,即數字格式的地址,如:nfs->2049, ftp->21,因此可以開啟兩個終端,一一對應一下程序所對應的埠號)
2. 然後可以通過"~$ lsof -i:$PORT"查看應用該埠的程序($PORT指對應的埠號)。或者你也可以查看文件/etc/services,從裡面可以找出埠所對應的服務。
(註:有些埠通過netstat查不出來,更可靠的方法是"~$ sudo nmap -sT -O localhost")
3. 若要關閉某個埠,則可以:
1)通過iptables工具將該埠禁掉,如:
"~$ sudo iptables -A INPUT -p tcp --dport $PORT -j DROP"
"~$ sudo iptables -A OUTPUT -p tcp --dport $PORT -j DROP"
2)或者關掉對應的應用程序,則埠就自然關閉了,如:
"~$ kill -9 PID" (PID:進程號)
如: 通過"~$ netstat -anp | grep ssh"
有顯示: tcp 0 127.0.0.1:2121 0.0.0.0:* LISTEN 7546/ssh
則: "~$ kill -9 7546"

(可通過"~$ chkconfig"查看系統服務的開啟狀態)

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/yjier/archive/2011/05/25/6444198.aspx

Ⅹ 暢談linux下TCP(上)

tcp 協議 是互聯網中最常用的協議 , 開發人員基本上天天和它打交道,對它進行深入了解。 可以幫助我們排查定位bug和進行程序優化。下面我將就TCP幾個點做深入的探討

客戶端:收到 ack 後 分配連接資源。 發送數據
伺服器 : 收到 syn 後立即 分配連接資源

客戶端:收到ACK, 立即分配資源
伺服器:收到ACK, 立即分配資源

既然三次握手也不是100%可靠, 那四次,五次,六次。。。呢? 其實都一樣,不管多少次都有丟包問題。

client 只發送一個 SYN, server 分配一個tcb, 放入syn隊列中。 這時候連接叫 半連接 狀態;如果server 收不到 client 的ACK, 會不停重試 發送 ACK-SYN 給client 。重試間隔 為 2 的 N 次方 疊加(2^0 , 2^1, 2^2 ....);直至超時才釋放syn隊列中的這個 TCB;
在半連接狀態下, 一方面會佔用隊列配額資源,另一方面佔用內存資源。我們應該讓半連接狀態存在時間盡可能的小

當client 向一個未打開的埠發起連接請求時,會收到一個RST回復包

當listen 的 backlog 和 somaxconn 都設置了得時候, 取兩者min值

Recv-Q 是accept 隊列當前個數, Send-Q 設置最大值

這種SYN洪水攻擊是一種常見攻擊方式,就是利用半連接隊列特性,占滿syn 隊列的 資源,導致 client無法連接上。
解決方案:

為什麼不像握手那樣合並成三次揮手? 因為和剛開始連接情況,連接是大家都從0開始, 關閉時有歷史包袱的。server(被動關閉方) 收到 client(主動關閉方) 的關閉請求FIN包。 這時候可能還有未發送完的數據,不能丟棄。 所以需要分開。事實可能是這樣

當然,在沒有待發數據,並且允許 Delay ACK 情況下, FIN-ACK合並還是非常常見的事情,這是三次揮手是可以的。

同上

CLOSE_WAIT 是被動關閉方才有的狀態

被動關閉方 [收到 FIN 包 發送 ACK 應答] 到 [發送FIN, 收到ACK ] 期間的狀態為 CLOSE_WAIT, 這個狀態仍然能發送數據。 我們叫做 半關閉 , 下面用個例子來分析:

這個是我實際生產環境碰到的一個問題,長連接會話場景,server端收到client的rpc call 請求1,處理發現請求包有問題,就強制關閉結束這次會話, 但是 因為client 發送 第二次請求之前,並沒有去調用recv,所以並不知道 這個連接被server關閉, 繼續發送 請求2 , 此時是半連接,能夠成功發送到對端機器,但是recv結果後,遇到連接已經關閉錯誤。

如果 client 和 server 恰好同時發起關閉連接。這種情況下,兩邊都是主動連接,都會進入 TIME_WAIT狀態

1、 被動關閉方在LAST_ACK狀態(已經發送FIN),等待主動關閉方的ACK應答,但是 ACK丟掉, 主動方並不知道,以為成功關閉。因為沒有TIME_WAIT等待時間,可以立即創建新的連接, 新的連接發送SYN到前面那個未關閉的被動方,被動方認為是收到錯誤指令,會發送RST。導致創建連接失敗。

2、 主動關閉方斷開連接,如果沒有TIME_WAIT等待時間,可以馬上建立一個新的連接,但是前一個已經斷開連接的,延遲到達的數據包。 被新建的連接接收,如果剛好seq 和 ack欄位 都正確, seq在滑動窗口范圍內(只能說機率非常小,但是還是有可能會發生),會被當成正確數據包接收,導致數據串包。 如果不在window范圍內,則沒有影響( 發送一個確認報文(ack 欄位為期望ack的序列號,seq為當前發送序列號),狀態變保持原樣)

TIME_WAIT 問題比較比較常見,特別是CGI機器,並發量高,大量連接後段服務的tcp短連接。因此也衍生出了多種手段解決。雖然每種方法解決不是那麼完美,但是帶來的好處一般多於壞處。還是在日常工作中會使用。
1、改短TIME_WAIT 等待時間

這個是第一個想到的解決辦法,既然等待時間太長,就改成時間短,快速回收埠。但是實際情況往往不樂觀,對於並發的機器,你改多短才能保證回收速度呢,有時候幾秒鍾就幾萬個連接。太短的話,就會有前面兩種問題小概率發生。

2、禁止Socket lingering

這種情況下關閉連接,會直接拋棄緩沖區中待發送的數據,會發送一個RST給對端,相當於直接拋棄TIME_WAIT, 進入CLOSE狀態。同樣因為取消了 TIME_WAIT 狀態,會有前面兩種問題小概率發生。

3、tcp_tw_reuse
net.ipv4.tcp_tw_reuse選項是 從 TIME_WAIT 狀態的隊列中,選取條件:1、remote 的 ip 和埠相同, 2、選取一個時間戳小於當前時間戳; 用來解決埠不足的尷尬。

現在埠可以復用了,看看如何面對前面TIME_WAIT 那兩種問題。 我們仔細回顧用一下前面兩種問題。 都是在新建連接中收到老連接的包導致的問題 , 那麼如果我能在新連接中識別出此包為非法包,是不是就可以丟掉這些無用包,解決問題呢。

需要實現這些功能,需要擴展一下tcp 包頭。 增加 時間戳欄位。 發送者 在每次發送的時候。 在tcp包頭裡面帶上發送時候的時間戳。 當接收者接收的時候,在ACK應答中除了TCP包頭中帶自己此時發送的時間戳,並且把收到的時間戳附加在後面。也就是說ACK包中有兩個時間戳欄位。結構如下:

那我們接下來一個個分析tcp_tw_reuse是如何解決TIME_WAIT的兩個問題的

4、tcp_tw_recycle

tcp_tw_recycle 也是藉助 timestamp機制。顧名思義, tcp_tw_reuse 是復用 埠,並不會減少 TIME-WAIT 數量。你去查詢機器上TIME-WAIT 數量,還是 幾千幾萬個,這點對有強迫症的同學感覺很不舒服。tcp_tw_recycle 是 提前 回收 TIME-WAIT資源。會減少 機器上 TIME-WAIT 數量。

tcp_tw_recycle 工作原理是。

熱點內容
androidwear表盤 發布:2024-03-29 23:09:46 瀏覽:832
19萬的紅旗有哪些配置 發布:2024-03-29 23:09:44 瀏覽:984
裝修公司網站源碼 發布:2024-03-29 23:01:45 瀏覽:453
安卓手機哪個有nfc功能 發布:2024-03-29 22:59:25 瀏覽:553
newifi搭建伺服器 發布:2024-03-29 22:56:43 瀏覽:956
神演算法 發布:2024-03-29 22:38:54 瀏覽:105
教學視頻文字腳本 發布:2024-03-29 22:29:49 瀏覽:137
java心跳檢測 發布:2024-03-29 22:28:53 瀏覽:981
玩戰地5配置不行怎麼辦 發布:2024-03-29 22:10:28 瀏覽:981
javaice 發布:2024-03-29 21:56:37 瀏覽:355