返回頂部
關閉軟件導航
位置:首頁 > 資訊 > 電商資訊>深度好文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://www.meyanliao.com/article/online/12167.html
解放雙手無盡可能,有問題添加天線貓微信
主站蜘蛛池模板: 西西4444www大胆无码| 国产丰满乱子伦无码专| 最新无码A∨在线观看| 在线播放无码后入内射少妇| 色综合久久中文字幕无码| 影音先锋无码a∨男人资源站| 无码人妻精品一区二区三区在线 | 亚洲国产精品无码久久一线| 无码专区人妻系列日韩精品少妇| 中文字幕av无码不卡免费| 免费A级毛片无码无遮挡内射| 日韩人妻无码精品专区| 日韩精品无码永久免费网站| 亚洲精品中文字幕无码A片老| 国产AV无码专区亚汌A√| av无码a在线观看| 日韩精品无码永久免费网站| 日韩av无码成人无码免费| 直接看的成人无码视频网站| 亚洲ⅴ国产v天堂a无码二区| AV无码精品一区二区三区宅噜噜| 激情无码亚洲一区二区三区| 久久久久久精品无码人妻| 无码一区二区三区| 国产精品ⅴ无码大片在线看| 一区二区三区人妻无码 | 人妻系列无码专区无码中出| 亚洲国产一二三精品无码| 国产精品热久久无码av| 性色AV无码中文AV有码VR| 精品无码国产一区二区三区麻豆| 精品人无码一区二区三区| 久久久久久人妻无码| 精品人无码一区二区三区| 亚洲中文字幕无码av| 无码人妻久久一区二区三区免费丨 | 激情无码人妻又粗又大| 影院无码人妻精品一区二区| 国产AV无码专区亚洲AV麻豆丫| 久久久无码精品午夜| 亚洲AV无码不卡在线观看下载|