亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 3556 | 回復(fù): 13
打印 上一主題 下一主題

tcp 協(xié)議高端問題?你認(rèn)為不高端,回復(fù)BS我吧,不勝感激。 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-03-05 16:40 |只看該作者 |倒序瀏覽
關(guān)于tcp協(xié)議socket 通信問題。

最近,在訪問量較大的服務(wù)器上,使用netstat -atnp 查看到,同一個socket 同一時刻有多個TIME_WAIT 的狀態(tài),請問有高手能幫我解釋下這是為什么嗎?
我的理解:按道理來說,系統(tǒng)不應(yīng)該存在相同的Socket。一個Socket也不應(yīng)該出現(xiàn)兩個不一樣的狀態(tài),同時,同一個Socket 不應(yīng)該同時出現(xiàn)多個相同的狀態(tài)。
如果出現(xiàn)兩個相同的SOCKET,那數(shù)據(jù)傳輸不就出問題了嗎?
附: 該服務(wù)器確定關(guān)閉了tcp 套接字重用機(jī)制。

同一個套接字TIME_WAIT重復(fù)狀態(tài)如下:
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -  

論壇徽章:
5
IT運維版塊每日發(fā)帖之星
日期:2015-08-06 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-10 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-23 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-24 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-11-12 06:20:00
2 [報告]
發(fā)表于 2012-03-05 18:05 |只看該作者
耶。

正常啊。

縮短timewait時間會改善,但不能根除。也不能縮成0 。

論壇徽章:
0
3 [報告]
發(fā)表于 2012-03-06 15:22 |只看該作者
勞駕解釋下正常的理由么?

論壇徽章:
0
4 [報告]
發(fā)表于 2012-03-07 11:09 |只看該作者
期待斑竹回復(fù)。

你說的正常,是說存在TIME_WAIT 的狀態(tài)是正常,還是說“同一個socket 同一時刻 有多個TIME_WAIT的狀態(tài)”是正常的?

如果是正常的,你能解釋清楚,同一個socket 的多個TIME_WAIT 的是如何同時產(chǎn)生的,同樣的socket ,是如何進(jìn)行數(shù)據(jù)傳輸?shù),又如何正常關(guān)閉的?

論壇徽章:
5
IT運維版塊每日發(fā)帖之星
日期:2015-08-06 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-10 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-23 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-24 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-11-12 06:20:00
5 [報告]
發(fā)表于 2012-03-07 16:50 |只看該作者
都正常。

你自己先試圖解釋一下你服務(wù)器只開了一個80端口,為什么大家可以同時訪問呢??? 然后推翻你先前的認(rèn)識。就可以了。

有疑問參考TCP/IP協(xié)議詳解,卷1  ,擴(kuò)展參考卷3 。

論壇徽章:
0
6 [報告]
發(fā)表于 2012-03-08 10:45 |只看該作者
回復(fù) 5# ssffzz1
多謝回復(fù)!
我解釋下你提的問題,不對的地方,還請指正,謝謝。

Q:服務(wù)器只開了一個80端口,為什么大家可以同時訪問呢???
A:應(yīng)用程序使用TCP協(xié)議, 三次握手建立連接,建立的socket 是流套接字(基于TCP協(xié)議),使用Internet域。
先說明應(yīng)用程序上的操作:
服務(wù)器端:服務(wù)器應(yīng)用程序開放80端口,并處于LISTEN狀態(tài)的過程:服務(wù)器應(yīng)用程序(nginx,apache等)調(diào)用socket函數(shù)創(chuàng)建socket,使用bind函數(shù)bind綁定地址和套接字名(即包含IP地址和端口號的Internet套接字),使用listen函數(shù)創(chuàng)建服務(wù)器端socket隊列,使用accept函數(shù)等待客戶端的請求。
客戶端:客戶端應(yīng)用程序(瀏覽器)調(diào)用socket函數(shù)創(chuàng)建客戶端套接字,接下來調(diào)用connect 函數(shù)發(fā)送請求到服務(wù)器端,服務(wù)器端的accept 函數(shù)接受客戶端請求,建立連接。
只開一個80端口,為什么大家都可以同時訪問呢?原因在:accept函數(shù)接受到A客戶端請求后,使用原來的套接字(即服務(wù)器端socket函數(shù)創(chuàng)建的套接字)相同的屬性打開新的套接字文件句柄,并將它附加給A客戶端的套接字(即由監(jiān)聽套接字產(chǎn)生連接套接字),這個連接套接字可以與A客戶端進(jìn)行通信,此時TCP連接建立。原來的套接字(即服務(wù)器端socket函數(shù)創(chuàng)建的套接字)已經(jīng)解放出來了,如果有新的客戶端B請求80端口服務(wù),原來的套接字又可以進(jìn)行處理了。

關(guān)于TCP的三次握手過程,我的理解如下:

客戶端發(fā)送tcp報文,包含了源端口,目的端口,flag位為S 即 SYN 包給服務(wù)器端
服務(wù)器收到后,發(fā)送 ACK+SYN 包到客戶端
客戶端收到后,發(fā)送 ACK 包 給服務(wù)器端,從而建立三次握手。
例如:我的問題實例:
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               

客戶端IP:124.65.82.194 發(fā)起請求,本地創(chuàng)建socket,包含:源ip:124.65.82.194 源端口:2922
目標(biāo)IP:58.248.171.* ,目標(biāo)端口80
服務(wù)器端IP:58.248.171.* ,接受到客戶端請求后,建立三次握手。此時服務(wù)器端套接字狀態(tài)為“ESTABLISHED”
當(dāng)服務(wù)器和客戶端之間數(shù)據(jù)傳輸完畢后,接下來關(guān)閉TCP連接。

TCP 關(guān)閉連接:(這里只說明TCP三向關(guān)閉)
A主動發(fā)送FIN包,A進(jìn)入FIN_WAIT_1 狀態(tài)
B接受到A的FIN包,狀態(tài)轉(zhuǎn)為CLOSE_WAIT,再完成發(fā)送FIN+ACK包,狀態(tài)變?yōu)長AST_ACK
A收到B的FIN+ACK包,狀態(tài)變?yōu)門IME_WAIT,并發(fā)送ACK,等待2MSL后,TIME_WAIT消失
B收到A的ACK后,狀態(tài)LAST_ACK 消失。

主動發(fā)送FIN包的一方,在收到對方發(fā)回的ACK包后進(jìn)入TIME_WAIT狀態(tài)
從本例看,是服務(wù)器:58.248.171.* 主動發(fā)送的FIN包。



我的問題依舊:
同一個socket 的多個TIME_WAIT 的是如何同時產(chǎn)生的,同樣的socket ,是如何進(jìn)行數(shù)據(jù)傳輸?shù),又如何正常關(guān)閉的?

分析:
假設(shè)1、同一socket的多個TIME_WAIT連接是由多個處于ESTABLISHED 狀態(tài)的socket 關(guān)閉產(chǎn)生。       
        如果假設(shè)1成立,這將得出矛盾,即同一個socket ,多個ESTABLISHED 狀態(tài),數(shù)據(jù)傳輸肯定會出問題,TCP協(xié)議中也沒有提及到這個可能出現(xiàn)的情況。
假設(shè)2,同一socket的多個TIME_WAIT連接是由同一個處于ESTABLISHED 狀態(tài)的socket 關(guān)閉產(chǎn)生。
        似乎這個假設(shè)更像問題的本質(zhì),如果是這樣,那么在服務(wù)器端主動發(fā)出FIN包,并收到客戶端的ACK包,進(jìn)入TIME_WAIT狀態(tài)的時候出現(xiàn)了什么問題?
        你說的正常,請問是在哪一步出現(xiàn)的正常現(xiàn)象?還請指出,我要推翻的認(rèn)識在哪?
       

   

論壇徽章:
5
IT運維版塊每日發(fā)帖之星
日期:2015-08-06 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-10 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-23 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-24 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-11-12 06:20:00
7 [報告]
發(fā)表于 2012-03-08 13:57 |只看該作者
這將得出矛盾,即同一個socket ,多個ESTABLISHED 狀態(tài),數(shù)據(jù)傳輸肯定會出問題,TCP協(xié)議中也沒有提及到這個可能出現(xiàn)的情況。


你已經(jīng)自相矛盾了。
多個ESTABLISHED 狀態(tài),數(shù)據(jù)傳輸肯定會出問題。如果真的會出問題的話,你多個客戶端如何訪問服務(wù)器呢?accept函數(shù)收到客戶端請求后  打開新的套接字文件句柄  。這個套接字不還是80端口嗎?????

論壇徽章:
5
IT運維版塊每日發(fā)帖之星
日期:2015-08-06 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-10 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-23 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-24 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-11-12 06:20:00
8 [報告]
發(fā)表于 2012-03-08 13:59 |只看該作者
知道如何寫程序,卻不知道程序如何工作。

論壇徽章:
0
9 [報告]
發(fā)表于 2012-03-08 15:11 |只看該作者
本帖最后由 liuyadan720 于 2012-03-08 15:36 編輯

你還沒看明白問題
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -               
tcp        0      0 58.248.171.*:80         124.65.82.194:2922      TIME_WAIT   -  

兄弟上面的套接字,都是一樣的,你發(fā)現(xiàn)了沒有。
也就是說,服務(wù)器端 80  和 客戶端 端口:2922 有多個連接。
加入80端口 和 A 客戶端 2922 已經(jīng)建立連接,在這個套接字沒有正常關(guān)閉釋放的時候,這個連接套接字是不能分給其他應(yīng)用程序的。
而這里出現(xiàn)的,貌似是分配了多次。

現(xiàn)在的問題:同樣的一個連接套接字(包括服務(wù)器ip,端口,客戶端ip,端口) 出現(xiàn)了多次,

你說80 端口 和多個客戶端建立 ESTABLISHED 狀態(tài) ,出現(xiàn)的連接套接字是不一樣的
比如客戶端A訪問服務(wù)器B 80端口服務(wù)
B服務(wù)器上顯示的套接字如下:
B:80 --- A:24564
同時客戶端C訪問服務(wù)器B 80端口服務(wù)
B服務(wù)器上顯示的套接字如下:
B:80 --- C:24564

現(xiàn)在的問題是:
B:80  ---  A: 24564
B:80  ---  A: 24564
B:80  ---  A: 24564
B:80  ---  A: 24564
B:80  ---  A: 24564
B:80  ---  A: 24564
B:80  ---  A: 24564
B:80  ---  A: 24564
B:80  ---  A: 24564

正常嗎?請你解釋

補(bǔ)充一點:你先搞清楚,什么是同樣的連接socket 這個問題。

論壇徽章:
5
IT運維版塊每日發(fā)帖之星
日期:2015-08-06 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-10 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-23 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-24 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-11-12 06:20:00
10 [報告]
發(fā)表于 2012-03-08 17:22 |只看該作者
哦,這樣啊。

貌似攻擊。

你收到一個124.65.82.194:2922 發(fā)過來的syn報文,然后建立連接,然后客戶端斷開,服務(wù)器進(jìn)入TIME_WAIT。在TIME_WAIT沒有超時之前再次重復(fù)上述過程即可。

你抓個包上來看下吧。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP