自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

TCP重傳問題的排查思路與實(shí)踐

網(wǎng)絡(luò) 通信技術(shù)
本文總結(jié)自己工作過程中遇到的TCP重傳問題的解決過程 ,側(cè)重于大致的解決問題的思路與具體的實(shí)踐,理論知識(shí)偏少,大家有興趣的可以多查閱相關(guān)文章以便深入了解tcp的工作機(jī)制。

1、關(guān)于TCP重傳

TCP有重傳是正常的機(jī)制,為了保障數(shù)據(jù)傳輸可靠性。只是局域網(wǎng)環(huán)境,網(wǎng)絡(luò)質(zhì)量有保障,因?yàn)榫W(wǎng)絡(luò)問題出現(xiàn)重傳應(yīng)該極低;互聯(lián)網(wǎng)或城域網(wǎng)環(huán)境,線路復(fù)雜(可以想象下城市地下管網(wǎng),錯(cuò)綜復(fù)雜的電線桿等),網(wǎng)絡(luò)質(zhì)量不好保障,重傳出現(xiàn)概率較高。

[[285498]]

TCP有重傳,也不一定是網(wǎng)絡(luò)層面的問題。也可能是接收端不存在,接收端receive buffer滿了,應(yīng)用程序有異常鏈接未正常關(guān)閉等等等。

2、TCP/IP相關(guān)

排查網(wǎng)絡(luò)問題,要掌握TCP/IP原理,真相都在一個(gè)一個(gè)的數(shù)據(jù)包里。以下是和TCP重傳比較關(guān)鍵的幾個(gè)參數(shù)。

2.1 建立TCP鏈接時(shí)的參數(shù) 

TCP重傳問題的排查思路與實(shí)踐,有點(diǎn)干貨

2.2 TCP重傳類型

超時(shí)重傳

在請(qǐng)求包發(fā)出去的時(shí)候,開啟一個(gè)計(jì)時(shí)器,當(dāng)計(jì)時(shí)器達(dá)到時(shí)間之后,沒有收到ACK,則就進(jìn)行重發(fā)請(qǐng)求的操作,一直重發(fā)直到達(dá)到重發(fā)上限次數(shù)或者收到ACK。

快速重傳

當(dāng)接收方收到的數(shù)據(jù)包是不正常的序列號(hào),那么接收方會(huì)重復(fù)把應(yīng)該收到的那一條ACK重復(fù)發(fā)送,這個(gè)時(shí)候,如果發(fā)送方收到連續(xù)3條的同一個(gè)序列號(hào)的ACK,那么就會(huì)啟動(dòng)快速重傳機(jī)制,把這個(gè)ACK對(duì)應(yīng)的發(fā)送包重新發(fā)送一次。具體可以參考: 

TCP重傳問題的排查思路與實(shí)踐,有點(diǎn)干貨

3、常見問題與措施

3.1單臺(tái)機(jī)器或單個(gè)應(yīng)用機(jī)器tcp重傳

可能是鏈接的服務(wù)器或端口無法訪問

排查思路 

TCP重傳問題的排查思路與實(shí)踐,有點(diǎn)干貨

3.2 多臺(tái)機(jī)器或多個(gè)應(yīng)用同時(shí)tcp重傳

可能是網(wǎng)絡(luò)抖動(dòng)

排查思路

1查看網(wǎng)絡(luò)區(qū)域埋點(diǎn),查看網(wǎng)絡(luò)設(shè)備報(bào)警,看是否有區(qū)域網(wǎng)絡(luò)抖動(dòng)2區(qū)域網(wǎng)絡(luò)沒問題的話??梢杂贸R妴栴}:的方法縮小排查范圍

3.3 帶寬跑滿

排查思路

1、查看主機(jī)監(jiān)控

3.4 不常見問題

1 網(wǎng)絡(luò)設(shè)備端口或光模塊異常等導(dǎo)致包c(diǎn)hecksum失敗 2 網(wǎng)絡(luò)路由收斂抖動(dòng) 3 主機(jī)網(wǎng)絡(luò)驅(qū)動(dòng)有bug,網(wǎng)絡(luò)設(shè)備有bug等

4、如何監(jiān)控

使用tsar -tcp -C 可以監(jiān)控到tcp的retran屬性也即是重傳次數(shù)。

  1. tsar --tcp -C | sed 's/:/_/g;s/=/ /g' | xargs -n 2 

TCP重傳問題的排查思路與實(shí)踐,有點(diǎn)干貨 

感興趣的朋友可以直接執(zhí)行以下監(jiān)控腳本獲取tcp相關(guān)的狀態(tài)監(jiān)控?cái)?shù)據(jù),適用于open-falcon。 

TCP重傳問題的排查思路與實(shí)踐,有點(diǎn)干貨

5、案例實(shí)踐

(1)在遇到丟包重傳的機(jī)器上抓包并使用wireshark 分析該包,注意因?yàn)橹貍鞑皇菚r(shí)刻都有的,所以抓包命令是要持續(xù)執(zhí)行以便捕捉到重傳的包。使用wireshark打開tcpdump的結(jié)果,在搜索框里入手tcp.analysis.retransmission 得到如下結(jié)果: 

TCP重傳問題的排查思路與實(shí)踐,有點(diǎn)干貨

圖1 表明服務(wù)端發(fā)生了三次重傳動(dòng)作。

(2)由于包比較多,我們可以使用wireshark的追蹤流功能獲取重傳相關(guān)的tcp流。 

TCP重傳問題的排查思路與實(shí)踐,有點(diǎn)干貨

圖二 追蹤流-->TCP流 可以得到重傳相關(guān)的數(shù)據(jù)包 

TCP重傳問題的排查思路與實(shí)踐,有點(diǎn)干貨

圖三 可以看出客戶端和服務(wù)端的請(qǐng)求與應(yīng)答。

(3)解析重傳 

TCP重傳問題的排查思路與實(shí)踐,有點(diǎn)干貨

特別需要說明的是:

NO 67,68 client端由于某些原因沒有收到正確的包數(shù)據(jù),向server端發(fā)送dup ack,參考基礎(chǔ)知識(shí)提到的快速重傳

NO.68和NO.69之間的時(shí)間差200ms(關(guān)注time那一列,其他都是相差小于1ms),server等待超時(shí),于是重傳。

NO 73-74是client端發(fā)送了一個(gè)fin包并主動(dòng)關(guān)閉連接。

這個(gè)案例僅僅發(fā)生一次,沒有復(fù)現(xiàn),通過抓包解析出來分析沒有得到明確的結(jié)論。

6、小結(jié)

本文總結(jié)自己工作過程中遇到的TCP重傳問題的解決過程 ,側(cè)重于大致的解決問題的思路與具體的實(shí)踐,理論知識(shí)偏少,大家有興趣的可以多查閱相關(guān)文章以便深入了解tcp的工作機(jī)制。

 

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2023-10-08 13:10:00

Redis數(shù)據(jù)庫

2023-10-13 12:05:55

RedisBig Key

2021-10-14 07:28:03

Kubernetes通用排查

2021-05-27 10:57:01

TCP定時(shí)器網(wǎng)絡(luò)協(xié)議

2023-10-17 10:11:50

TCPIP

2009-09-04 10:55:34

2019-07-16 06:43:18

LinuxCPU占用率

2021-04-25 09:25:25

Linux手工排查

2021-09-26 19:39:58

MogDB故障數(shù)據(jù)庫

2021-04-19 08:02:54

Windows手工入侵

2020-01-05 23:06:57

TCP超時(shí)重傳

2024-12-02 09:10:15

Redis性能優(yōu)化

2024-02-20 16:55:14

K8S云計(jì)算

2022-11-16 21:55:51

Redis數(shù)據(jù)庫

2020-04-08 11:12:37

Linux開發(fā)工具

2024-04-09 07:28:05

2009-07-16 17:26:11

WebWork文件上傳

2014-08-22 09:10:46

2020-10-12 17:20:47

CPULoadLinux

2020-07-13 09:05:47

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)