網(wǎng)絡(luò)交互過程中的丟包

在客戶端與服務(wù)端之間的交互過程中蜕衡,客戶端向服務(wù)端發(fā)送一個(gè)syn的請求建立連接包壤短,但是服務(wù)端收到后不返回syn+ack確認(rèn)包:

1、

在客戶端與服務(wù)端tcpdump進(jìn)行端口對抓慨仿,使用wireshark分析

看到服務(wù)端收到了客戶端發(fā)送的syn包久脯,但是并沒有返回客戶端syn+ack包屈尼,客戶端等待了1s設(shè)置的超時(shí)時(shí)間后重發(fā)蹦玫,才建立了連接

2淡喜、

netstat -s查看網(wǎng)絡(luò)情況

netstat -s | grep reject

13126873 packets rejects in established connections because of timestamp


由于時(shí)間戳導(dǎo)致包被拒絕的情況一直在增長

cat /proc/net/netstat

查看機(jī)器的計(jì)數(shù)器文件

TcpExt: SyncookiesSent SyncookiesRecv SyncookiesFailed EmbryonicRsts PruneCalled RcvPruned OfoPruned OutOfWindowIcmps LockDroppedIcmps ArpFilter TW TWRecycled TWKilled PAWSPassive ? PAWSActive PAWSEstab DelayedACKs DelayedACKLocked DelayedACKLost ListenOverflows ListenDrops TCPPrequeued TCPDirectCopyFromBacklog TCPDirectCopyFromPrequeue TCPPrequeueDropped TCPHPHits TCPHPHitsToUser TCPPureAcks TCPHPAcks TCPRenoRecovery TCPSackRecovery TCPSACKReneging TCPFACKReorder TCPSACKReorder TCPRenoReorder TCPTSReorder TCPFullUndo TCPPartialUndo TCPDSACKUndo TCPLossUndo TCPLoss TCPLostRetransmit TCPRenoFailures TCPSackFailures TCPLossFailures TCPFastRetrans TCPForwardRetrans TCPSlowStartRetrans TCPTimeouts TCPRenoRecoveryFail TCPSackRecoveryFail TCPSchedulerFailed TCPRcvCollapsed TCPDSACKOldSent TCPDSACKOfoSent TCPDSACKRecv TCPDSACKOfoRecv TCPAbortOnData TCPAbortOnClose TCPAbortOnMemory TCPAbortOnTimeout TCPAbortOnLinger TCPAbortFailed TCPMemoryPressures TCPSACKDiscard TCPDSACKIgnoredOld TCPDSACKIgnoredNoUndo TCPSpuriousRTOs TCPMD5NotFound TCPMD5Unexpected TCPSackShifted TCPSackMerged TCPSackShiftFallback TCPBacklogDrop TCPMinTTLDrop TCPChallengeACK TCPSYNChallenge BusyPollRxPackets TCPFromZeroWindowAdv TCPToZeroWindowAdv TCPWantZeroWindowAdv

TcpExt: 0 0 28417247 273595 0 0 0 0 0 0 8920817876 886076087 0 0 0 13126873 5837834196 10352662 19315573 128 128 134035850356 3564537962116 77185674789917 335133 153000568912 172198514916 99782109633 204994309264 0 150637 0 8436 455406 0 335321 78327 1591607 50432 11755659 173769 3833 0 29057 579 1551569 449839 80637 78679662 0 170 6 0 19315343 5 1899979 1163 1461621 184288 0 72304 0 309 0 0 19123 544588 209 0 0 10513441 5094638 7108594 82227 0 309118 139877 0 1239 1239 45114

IpExt: InNoRoutes InTruncatedPkts InMcastPkts OutMcastPkts InBcastPkts OutBcastPkts InOctets OutOctets InMcastOctets OutMcastOctets InBcastOctets OutBcastOctets

IpExt: 0 0 2 0 0 0 649370286806505 597235907092484 72 0 0 0

找到對應(yīng)錯(cuò)誤原因關(guān)鍵字為PAWSEstab问裕,查看原代碼,

static bool tcp_validate_incoming(struct sock *sk, struct sk_buff *skb, const struct tcphdr *th, int syn_inerr)

{

? ? struct tcp_sock *tp = tcp_sk(sk);

? ? /* RFC1323: H1. Apply PAWS check first. */

? ? if (tcp_fast_parse_options(sock_net(sk), skb, th, tp) &&

? ? ? ? tp->rx_opt.saw_tstamp &&

? ? ? ? tcp_paws_discard(sk, skb)) {

? ? ? ? if (!th->rst) {

? ? ? ? ? ? NET_INC_STATS(sock_net(sk), LINUX_MIB_PAWSESTABREJECTED);

? ? ? ? ? ? if (!tcp_oow_rate_limited(sock_net(sk), skb,

? ? ? ? ? ? ? ? ? ? ? ? ? LINUX_MIB_TCPACKSKIPPEDPAWS, &tp->last_oow_ack_time))

? ? ? ? ? ? ? ? tcp_send_dupack(sk, skb);

? ? ? ? ? ? goto discard;

? ? ? ? }

? ? ? ? /* Reset is accepted even if it did not pass PAWS. */

? ? }


可以知道到達(dá)時(shí)間戳晚導(dǎo)致reject织中。

然后查看linux的環(huán)境配置

cat /etc/sysctl.conf

kernel.printk = 5

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 0

net.ipv4.tcp_fin_timeout = 5

net.ipv4.tcp_timestamps = 1

net.core.somaxconn = 4096

net.ipv4.tcp_max_tw_buckets = 30000

net.netfilter.nf_conntrack_max = 524288

net.netfilter.nf_conntrack_tcp_timeout_established = 300

net.netfilter.nf_conntrack_max = 524288

看到net.ipv4.tcp_timestamps設(shè)置值為1苗缩,開啟了時(shí)間戳選項(xiàng)崭参,如果開啟recycle為1則會(huì)進(jìn)行強(qiáng)校驗(yàn)相寇,一分鐘內(nèi)同ip主機(jī)的timestamp必須是遞增,否則丟棄钮科,但是我們這里并沒有開啟recycle唤衫。

現(xiàn)在場景缺失因?yàn)闀r(shí)間戳造成paws,所以進(jìn)一步分析需要手動(dòng)更新本機(jī)時(shí)間戳绵脯,時(shí)間要同步

同步后執(zhí)行netstat -s | grep reject不再增長

3佳励、

觀察服務(wù)的tcp iotimeout仍然在增加,問題還存在蛆挫,只是解決了時(shí)間戳paws的問題

進(jìn)一步懷疑是否為網(wǎng)卡隊(duì)列處理能力有問題導(dǎo)致在網(wǎng)卡丟列時(shí)候就丟棄了syn包

? netstat -s|grep drop

? 10021478 outgoing packets dropped


在持續(xù)增長赃承,果然,查看網(wǎng)卡是單隊(duì)列悴侵,處理能力不足瞧剖,解決辦法換成了多隊(duì)列,或者調(diào)大buffer

ethtool -G eth1

如果看完覺得有所收獲的話可免,記得點(diǎn)贊關(guān)注哦

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末抓于,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子浇借,更是在濱河造成了極大的恐慌捉撮,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妇垢,死亡現(xiàn)場離奇詭異巾遭,居然都是意外死亡肉康,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門灼舍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吼和,“玉大人,你說我怎么就攤上這事片仿∥瓢玻” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵砂豌,是天一觀的道長厢岂。 經(jīng)常有香客問我,道長阳距,這世上最難降的妖魔是什么塔粒? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮筐摘,結(jié)果婚禮上卒茬,老公的妹妹穿的比我還像新娘。我一直安慰自己咖熟,他們只是感情好圃酵,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著馍管,像睡著了一般郭赐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上确沸,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天捌锭,我揣著相機(jī)與錄音,去河邊找鬼罗捎。 笑死观谦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的桨菜。 我是一名探鬼主播豁状,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼雷激!你這毒婦竟也來了替蔬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤屎暇,失蹤者是張志新(化名)和其女友劉穎承桥,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體根悼,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凶异,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年蜀撑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剩彬。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡酷麦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出喉恋,到底是詐尸還是另有隱情沃饶,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布轻黑,位于F島的核電站糊肤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏氓鄙。R本人自食惡果不足惜馆揉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望抖拦。 院中可真熱鬧升酣,春花似錦、人聲如沸态罪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽复颈。三九已至巢墅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間券膀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工驯遇, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留芹彬,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓叉庐,卻偏偏與公主長得像舒帮,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子陡叠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容