返回頂部
關閉軟件導航
位置:首頁 > 資訊 > 電商資訊>深度好文TCP碰到故障怎么辦阿里技術總監細細道來
深度好文TCP碰到故障怎么辦阿里技術總監細細道來

我們通過了解TCP各個狀態,可以排除和定位網絡或系統故障時大有幫助。

1)netstat-nat

#查看TCP各個狀態的數量

2)lsof-i:port

#可以檢測到打開套接字的狀況

3)sar-nSOCK

#查看tcp創建的連接數

4)tcpdump-ianytcpport9000

#對tcp端口為9000的進行抓包

網絡測試常用命令;

1.ping:檢測網絡連接的正常與否,主要是測試延時、抖動、丟包率。

但是很多服務器為了防止攻擊,一般會關閉對ping的響應。所以ping一般作為測試連通性使用。

ping命令后,會接收到對方發送的回饋信息,其中記錄著對方的IP地址和TTL。TTL是該字段指定IP包被路由器丟棄之前答應通過的很大網段數量。

TTL是IPv4包頭的一個8bit字段。例如IP包在服務器中發送前設置的TTL是64,你使用ping命令后,得到服務器反饋的信息,其中的TTL為56,說明途中一共經過了8道路由器的轉發,每經過一個路由,TTL減1。

2.traceroute:raceroute跟蹤數據包到達網絡主機所經過的路由工具

traceroutehostname

3.pathping:是一個路由跟蹤工具,它將ping和tracert命令的功能與這兩個工具所不提供的其他信息結合起來,綜合了二者的功能

pathpingwww.baidu.com

有提供某種服務才會處于LISTENING狀態,TCP狀態變化就是某個端口的狀態變化,提供一個服務就打開一個端口。

例如:提供www服務默認開的是80端口,提供ftp服務默認的端口為21,當提供的服務沒有被連接時就處于LISTENING狀態。

FTP服務啟動后首先處于偵聽(LISTENING)狀態。處于偵聽LISTENING狀態時,該端口是開放的,等待連接,但還沒有被連接。就像你房子的門已經敞開的,但還沒有人進來。

SYN-SENT:客戶端SYN_SENT狀態:

再發送連接請求后等待匹配的連接請求:客戶端通過應用程序調用connect進行activeopen.

于是客戶端tcp發送一個SYN以請求建立一個連接.之后狀態置為SYN_SENT.

Thesocketisactivelyattemptingtoestablishaconnection.在發送連接請求后等待匹配的連接請求

當請求連接時客戶端首先要發送同步信號給要訪問的機器,此時狀態為SYN_SENT,假如連接成功了就變為ESTABLISHED,正常情況下SYN_SENT狀態非常短暫。

例如要訪問網站www.baidu.com,假如是正常連接的話,用TCPView觀察IEXPLORE.EXE(IE)建立的連接會發現很快從SYN_SENT變為ESTABLISHED,表示連接成功。SYN_SENT狀態快的也許看不到。

Connectionisclosed,andthesocketiswaitingforashutdownfromtheremoteend.從遠程TCP等待連接中斷請求

Theremoteendhasshutdown,waitingforthesockettoclose.等待從本地用戶發來的連接中斷請求

Bothsocketsareshutdownbutwestilldon’thaveallourdatasent.等待遠程TCP對連接中斷的確認

Theremoteendhasshutdown,andthesocketisclosed.Waitingforacknowledgement.等待原來發向遠程TCP的連接中斷請求的確認

Thesocketiswaitingafterclosetohandlepacketsstillinthenetwork.等待足夠的時間以確保遠程TCP接收到連接中斷請求的確認

Thesocketisnotbeingused.沒有任何連接狀態

(1)第一次握手:Client端又調用connect函數調用,系統為Client隨機分配一個端口,連同傳入connect中的參數(Server的IP和端口),這就形成了一個連接四元組,客戶端發送一個帶SYN標志的TCP報文到服務器。

這是三次握手過程中的報文1。connect調用讓Client端的socket處于SYN_SENT狀態,等待服務器確認;SYN:同步序列編號(SynchronizeSequenceNumbers)。

(2)第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;

(3)第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶器和客務器進入ESTABLISHED狀態,完成三次握手。連接已經可以進行讀寫操作。

tcpdump-ianytcpport9502

深度好文TCP碰到故障怎么辦阿里技術總監細細道來1

14:12:45.104687IPlocalhost.39870>localhost.9502:Flags[S],seq

#客戶端IPlocalhost.39870(客戶端的端口一般是自動分配的)向服務器localhost.9502發送syn包(syn=j)到服務器》

syn的seq=

14:12:45.104701IPlocalhost.9502>localhost.39870:Flags[S.],seq,ack,

14:12:45.104711IPlocalhost.39870>localhost.9502:Flags[.],ack1,

IPlocalhost.39870>localhost.9502:Flags[P.],seq1:8,ack1,win4099,options[nop,nop,TSvalecr],length7客戶端向服務器發送長度為7個字節的數據,

IPlocalhost.9502>localhost.39870:Flags[.],ack8,win4096,options[nop,nop,TSvalecr],length0服務器向客戶確認已經收到數據

IPlocalhost.9502>localhost.39870:Flags[P.],seq1:19,ack8,win4096,options[nop,nop,TSvalecr],length18然后服務器同時向客戶端寫入數據。

IPlocalhost.39870>localhost.9502:Flags[.],ack19,win4097,options[nop,nop,TSvalecr],length0客戶端向服務器確認已經收到數據

全局設置可更改/etc/sysctl.conf,加上:

net.ipv4.tcp_keepalive_intvl=20

net.ipv4.tcp_keepalive_probes=3

net.ipv4.tcp_keepalive_time=60

如果您覺得 深度好文TCP碰到故障怎么辦阿里技術總監細細道來 這篇文章對您有用,請分享給您的好友,謝謝
文章地址:http://m.meyanliao.com/article/online/12167.html
解放雙手無盡可能,有問題添加天線貓微信
主站蜘蛛池模板: 国产v亚洲v天堂无码网站| 无码精品人妻一区| 欧洲成人午夜精品无码区久久 | 狠狠久久精品中文字幕无码| 日本精品无码一区二区三区久久久| 国产高清无码视频| 久久AV无码精品人妻糸列| 久久午夜无码鲁丝片午夜精品| 精品国精品无码自拍自在线| 国产aⅴ无码专区亚洲av麻豆| 一本色道无码道DVD在线观看| 亚洲精品无码Av人在线观看国产| 亚洲av中文无码字幕色不卡| 久久精品无码精品免费专区| 亚洲av中文无码| 无码日韩精品一区二区免费| 亚洲av无码无在线观看红杏| heyzo专区无码综合| 无码毛片内射白浆视频| 亚洲av午夜精品无码专区 | 亚洲AV无码成人专区片在线观看| 亚洲日韩精品无码专区加勒比| 日韩av无码一区二区三区| 亚洲色偷拍另类无码专区| av无码aV天天aV天天爽| 人妻丰满熟妇AV无码区| 伊人久久大香线蕉无码| 日韩精品人妻系列无码专区 | 日韩人妻无码一区二区三区久久99 | 亚洲a∨无码精品色午夜| 无码视频在线观看| 国产Av激情久久无码天堂| 国产在线无码一区二区三区视频| 东京无码熟妇人妻AV在线网址| 人妻无码久久久久久久久久久| 性色av无码不卡中文字幕 | 免费无码午夜福利片 | 国产精品无码无卡无需播放器 | 国产免费AV片无码永久免费| 国产成人无码a区在线观看视频免费| 在线精品免费视频无码的|