Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
出了问题不要靠猜
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
LI Daobing
September 14, 2013
Programming
4.1k
40
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
出了问题不要靠猜
LI Daobing
September 14, 2013
More Decks by LI Daobing
See All by LI Daobing
How to attack TLS in PQC decade, part I
lidaobing
0
47
HTTP协议相关的若干安全问题
lidaobing
9
1.2k
Debian & Packaging
lidaobing
1
580
Java 质量保障
lidaobing
3
300
OAuth: How and Why?
lidaobing
1
160
从 Struts 迁移到 Spring MVC,以及为什么?
lidaobing
2
670
glusterfs 文件系统
lidaobing
2
210
如何学习 Shell
lidaobing
3
340
Other Decks in Programming
See All in Programming
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
160
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
4.1k
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
6.7k
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
6
1.2k
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
340
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
540
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
140
Contextとはなにか
chiroruxx
1
330
Oxcを導入して開発体験が向上した話
yug1224
4
320
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
690
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.4k
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
640
Featured
See All Featured
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
250
Building Adaptive Systems
keathley
44
3.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
840
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
300
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
230
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
The Pragmatic Product Professional
lauravandoore
37
7.3k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Documentation Writing (for coders)
carmenintech
77
5.4k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
320
Transcript
ग़ྃ问题ෆཁᯪᘃ LI Daobing <
[email protected]
> ࣣڇӠଘ储 2013-09-14 Saturday, September 14, 13
• ཥಓฌ <
[email protected]
> • Debian Developer • 2004 䇖࢝৮ Debian
• qterm, ibus, scim 软݅แಘ维护ਓ员 • 䇖ݯ爱ऀ • தจ维جඦՊલཧ员 • ࢀ༩维护 iso-codes, translationproject.org • python-lunardate, capistrano-scm-jenkins ࡞ऀ • manpages-zh, douban-ruby, iptux 现维护ਓ员 • զ对䇖ݯత๏ • ࢀ༩Ұ项ɼ贡ݙզత时间ੋҼ为认ಉଞతཧ೦ɼࣕෆੋվଞతཧ೦ • Github: http://github.com/lidaobing https://speakerdeck.com/lidaobing Saturday, September 14, 13
录 • ဓҰ Bug 讲ى • զ౸తཚ • զਪᣑతղႊํҊ Saturday,
September 14, 13
Ұحոత Bug • ᠓盘త্传务 • Windows Լ IE, Chrome 浏览ثԼਖ਼ৗ
• Linux Լ Firefox, Chrome 浏览ثԼਖ਼ৗ • Windows Լత Firefox ෆਖ਼ৗ, ্传ࣦ 败ɻ Saturday, September 14, 13
ԿఆҐBug Saturday, September 14, 13
ԿఆҐBug • टઌ查浏览ثత߇੍ɼ观ੋ൱༗错误(༗) Saturday, September 14, 13
ԿఆҐBug • टઌ查浏览ثత߇੍ɼ观ੋ൱༗错误(༗) • ༻ Wireshark ፊ获请ٻแɼ发现ࣦ败తҊྫ务ฦ ճ412(௨ৗ为200) Saturday, September
14, 13
ԿఆҐBug • टઌ查浏览ثత߇੍ɼ观ੋ൱༗错误(༗) • ༻ Wireshark ፊ获请ٻแɼ发现ࣦ败తҊྫ务ฦ ճ412(௨ৗ为200) • 对ൺ
HTTP Requestɼ发现ࣦ败Ҋྫత HTTP 头༗ “Content-length”ɼࣕଖଞႎԼ为 “Content- Length” Saturday, September 14, 13
ԿఆҐBug • टઌ查浏览ثత߇੍ɼ观ੋ൱༗错误(༗) • ༻ Wireshark ፊ获请ٻแɼ发现ࣦ败తҊྫ务ฦ ճ412(௨ৗ为200) • 对ൺ
HTTP Requestɼ发现ࣦ败Ҋྫత HTTP 头༗ “Content-length”ɼࣕଖଞႎԼ为 “Content- Length” • ༻ telnet 发ૹෆಉత请ٻདྷ验证结论 Saturday, September 14, 13
ԿఆҐBug Saturday, September 14, 13
ԿఆҐBug • 䉯认ݪҼੋ务对 Content-Length త େখࣸහײɼ༩标।ෆූɼྃ这 Bug Saturday, September 14,
13
ԿఆҐBug • 䉯认ݪҼੋ务对 Content-Length త େখࣸහײɼ༩标।ෆූɼྃ这 Bug • ௨务䇖发ਓ员ਚշम䐾 Saturday,
September 14, 13
Bug/ᆀBug Saturday, September 14, 13
Bug/ᆀBug • ೳ࠶现త Bug बੋ Bug Saturday, September 14, 13
Bug/ᆀBug • ೳ࠶现త Bug बੋ Bug • Ռෆೳ࠶现ɼೳ፤౸䇗ৗ栈҃ऀ详细 ࢤతੋBug Saturday,
September 14, 13
Bug/ᆀBug • ೳ࠶现త Bug बੋ Bug • Ռෆೳ࠶现ɼೳ፤౸䇗ৗ栈҃ऀ详细 ࢤతੋBug •
对ဋᆀ Bug, ଞత࠷େ༻处बੋಜଅ㟬补 ॆࢤ Saturday, September 14, 13
㠥ҰحոతBug • ဓެ࢘访问᠓༗12sԆ迟 • ping 㠳应շ • ဓଖଞ᠓络དྷݯ访问༗问题 •
监߇༗问题, ༗٬户དྷ๊ԇࠑࣄ Saturday, September 14, 13
ઌᘃᘃ Saturday, September 14, 13
ઌᘃᘃ • ެ࢘࿏༝ग़问题ྃʁ • ॏ启ҰԼ࿏༝试试ʁ • ୠ为ॄ㜮༗访问զ们ࣗݾ᠓ձग़ࣄʁ Saturday, September 14,
13
ઌᘃᘃ • ެ࢘࿏༝ग़问题ྃʁ • ॏ启ҰԼ࿏༝试试ʁ • ୠ为ॄ㜮༗访问զ们ࣗݾ᠓ձग़ࣄʁ • ਓ问题ʁ •
၏ఔং员还ੋ།Ұൺ较 Saturday, September 14, 13
ઌᘃᘃ • ެ࢘࿏༝ग़问题ྃʁ • ॏ启ҰԼ࿏༝试试ʁ • ୠ为ॄ㜮༗访问զ们ࣗݾ᠓ձग़ࣄʁ • ਓ问题ʁ •
၏ఔং员还ੋ།Ұൺ较 • ෆɼਖ਼ਓ๊ԇ这ࣄ • 99% త༻户ձ۰౸问题时ෆձ报ࠂ Saturday, September 14, 13
ੳ Saturday, September 14, 13
ੳ • tcpdumpแ • ٬户: 发ྃ6 SYN แɼ౸࠷Ұ࠽Ꮕ౸ SYN/ACK •
务: 䉯实Ꮕ౸ྃ6 SYN แ, ࣕ䉯实લ໘5 SYN แ༗ճ䐾 • ဓଖଞ᠓络访问ɼ䉯实ࡏट SYN แ೭ฦճ Saturday, September 14, 13
ੳ • tcpdumpแ • ٬户: 发ྃ6 SYN แɼ౸࠷Ұ࠽Ꮕ౸ SYN/ACK •
务: 䉯实Ꮕ౸ྃ6 SYN แ, ࣕ䉯实લ໘5 SYN แ༗ճ䐾 • ဓଖଞ᠓络访问ɼ䉯实ࡏट SYN แ೭ฦճ • 结论: 问题᪑࿏༝/线࿏Ꮰ䎔ɼ䉯实ੋ务త问题 Saturday, September 14, 13
ੳ Saturday, September 14, 13
ੳ • ࠶ॏ৽ੳ tcpdump త记录ɼ发现લ5 SYN แ带ྃ timestamp, ୈ6带 •
尝试䎔ᎃ٬户 TCP timestamp, ॠ间㠳应 • 尝试䎔ᎃ务 TCP timestamp, ॠ间㠳应 Saturday, September 14, 13
ੳ • ࠶ॏ৽ੳ tcpdump త记录ɼ发现લ5 SYN แ带ྃ timestamp, ୈ6带 •
尝试䎔ᎃ٬户 TCP timestamp, ॠ间㠳应 • 尝试䎔ᎃ务 TCP timestamp, ॠ间㠳应 • 结论: Bug ༩ timestamp ૬䎔ɼୠနવᏠ๏ ղ释为ॄ㜮ଖଞ᠓络问题 Saturday, September 14, 13
ղႊํҊA Saturday, September 14, 13
ղႊํҊA • 䎔ᎃ务త TCP timestamp • TCP timestamp ձӨ㠳传输ɼୠӨ 㠳ෆେ
Saturday, September 14, 13
ղႊํҊA • 䎔ᎃ务త TCP timestamp • TCP timestamp ձӨ㠳传输ɼୠӨ 㠳ෆେ
• ٙ问နવଘࡏɼ为ॄ㜮务ثෆ㠳应 ࠣ timestamp แ, ༗时ީຢೳਖ਼ৗ㠳应 Saturday, September 14, 13
ੳ Saturday, September 14, 13
ੳ • ֩ݯ码 (CTO 亲ࣗૢ) • ೖޱصث༗େྔతཧɼޱ经ৗෆ䭧༻ɼॴҎ䇖 启ྃTIME_WAIT ޱॏ༻ •
䇖启ྃ TIME_WAIT ޱॏ༻ɼ务ཁٻಉҰIPత SYN แ timestamp ඞ须ੋ顺ংత • 办ެ᠓络ੋ᠓, ኂ对զ们᠓访问频ൟɼ导கނো 发ੜ Saturday, September 14, 13
ੳ • ֩ݯ码 (CTO 亲ࣗૢ) • ೖޱصث༗େྔతཧɼޱ经ৗෆ䭧༻ɼॴҎ䇖 启ྃTIME_WAIT ޱॏ༻ •
䇖启ྃ TIME_WAIT ޱॏ༻ɼ务ཁٻಉҰIPత SYN แ timestamp ඞ须ੋ顺ংత • 办ެ᠓络ੋ᠓, ኂ对զ们᠓访问频ൟɼ导கނো 发ੜ • དྷፙ౸ਅ实తݪҼྃ, ༗༗ߋղႊํҊʁ Saturday, September 14, 13
ղႊํҊB • nginx ߴ൛ຊቮ经ࢧ࣋ keep-alive • ঋ级 nginx, 启༻ keep-alive,
߱ޱ༻ • 䎔闭ޱॏ༻ɼኂՃ㖘ޱత监߇ 报ܯ Saturday, September 14, 13
զॴ౸తཚ • ༻寻ፙ workaround ସղႊ问题 Saturday, September 14, 13
զॴ౸తཚ • ༻寻ፙ workaround ସղႊ问题 • 换浏览ث㠧 Saturday, September 14,
13
զॴ౸తཚ • ༻寻ፙ workaround ସղႊ问题 • 换浏览ث㠧 • ॏ启, ਗ਼
cookie, ਗ਼ cache, ॏ৽ొ录 Saturday, September 14, 13
զॴ౸తཚ • ༻寻ፙ workaround ସղႊ问题 • 换浏览ث㠧 • ॏ启, ਗ਼
cookie, ਗ਼ cache, ॏ৽ొ录 • 现场ඃഁᆀಘׯׯ净净 Saturday, September 14, 13
զॴ౸తཚ • ༻寻ፙ workaround ସղႊ问题 • 换浏览ث㠧 • ॏ启, ਗ਼
cookie, ਗ਼ cache, ॏ৽ొ录 • 现场ඃഁᆀಘׯׯ净净 • 对ဋಹࠣෆқ࠶现త Bug, ब损ࣦྃҰ࣍म 䐾తصձ Saturday, September 14, 13
զॴ౸తཚ • 尝试༻试错๏ղႊॴ༗问题 Saturday, September 14, 13
զॴ౸తཚ • 尝试༻试错๏ղႊॴ༗问题 • ঋ级ґ赖แ, ঋ级ᎎ݅, ... Saturday, September 14,
13
զॴ౸తཚ • 尝试༻试错๏ղႊॴ༗问题 • ঋ级ґ赖แ, ঋ级ᎎ݅, ... • ਵศᘃҰݪҼɼվ䫆۟码ɼવ ॏ৽测试
Saturday, September 14, 13
զॴ౸తཚ • ᠍গল Saturday, September 14, 13
զॴ౸తཚ • ᠍গল • 寻ፙ౸ workaround ศ认为问题ղႊྃ Saturday, September 14,
13
զॴ౸తཚ • ᠍গল • 寻ፙ౸ workaround ศ认为问题ղႊྃ • ༗༻测试ݻԽ Bug,
༰қ产ੜճ归Bug Saturday, September 14, 13
զॴ౸తཚ • ᠍গল • 寻ፙ౸ workaround ศ认为问题ղႊྃ • ༗༻测试ݻԽ Bug,
༰қ产ੜճ归Bug • Ұ Bug Մೳࡏଟ处ग़现ɼ༗尝试፺ࡧଖଞ༗ Bug తํ Saturday, September 14, 13
զॴ౸తཚ • ᠍গল • 寻ፙ౸ workaround ศ认为问题ղႊྃ • ༗༻测试ݻԽ Bug,
༰қ产ੜճ归Bug • Ұ Bug Մೳࡏଟ处ग़现ɼ༗尝试፺ࡧଖଞ༗ Bug తํ • ༗௨过补ॆࢤखஈདྷ߱ఆҐBugత难 Saturday, September 14, 13
զॴ౸తཚ • ւԸ๏则: 㑌Ұى严ॏࣄނతഎɼඞવ ༗29࣍轻ඍࣄނ300ىະઌஹҎٴ 1000ىࣄނ隐ױ Saturday, September 14, 13
զ们ਪᣑతํ๏ • ग़ྃ问题ෆཁᯪᘃ • 浏览ث • 务ࢤ • แ۩ Saturday,
September 14, 13
浏览ثॄ㜮ʁ Saturday, September 14, 13
浏览ثॄ㜮ʁ • ੋ൱༗ JS 错误? Saturday, September 14, 13
浏览ثॄ㜮ʁ • ੋ൱༗ JS 错误? • ᠓络请ٻੋ൱发ग़ʁ Saturday, September 14,
13
浏览ثॄ㜮ʁ • ੋ൱༗ JS 错误? • ᠓络请ٻੋ൱发ग़ʁ • 发ग़త请ٻੋ൱ਖ਼䉯ɿ URL,
ํ๏, ࢀ, Accept, Cookie Saturday, September 14, 13
浏览ثॄ㜮ʁ • ੋ൱༗ JS 错误? • ᠓络请ٻੋ൱发ग़ʁ • 发ग़త请ٻੋ൱ਖ਼䉯ɿ URL,
ํ๏, ࢀ, Accept, Cookie • ظతฦճ值ੋॄ㜮ʁ Saturday, September 14, 13
浏览ثॄ㜮ʁ • ੋ൱༗ JS 错误? • ᠓络请ٻੋ൱发ग़ʁ • 发ग़త请ٻੋ൱ਖ਼䉯ɿ URL,
ํ๏, ࢀ, Accept, Cookie • ظతฦճ值ੋॄ㜮ʁ • Request-Id Saturday, September 14, 13
Request-Id • 对㑌࣍请ٻ产ੜҰ།ҰతId Saturday, September 14, 13
Request-Id • 对㑌࣍请ٻ产ੜҰ།ҰతId • 该 Id Ҏ HTTP Response Header
తํࣜ 发ૹ౸٬户 Saturday, September 14, 13
Request-Id • 对㑌࣍请ٻ产ੜҰ།ҰతId • 该 Id Ҏ HTTP Response Header
తํࣜ 发ૹ౸٬户 • ՄҎࡏ nginx 层໘实现҃ऀࡏ业务逻辑层 ໘实现 Saturday, September 14, 13
务ࢤॄ㜮ʁ • ࢛ཁૉ Saturday, September 14, 13
务ࢤॄ㜮ʁ • ࢛ཁૉ • 时间: 䇖࢝时间ɼ总时 Saturday, September 14, 13
务ࢤॄ㜮ʁ • ࢛ཁૉ • 时间: 䇖࢝时间ɼ总时 • 谁: ༻户Id, Session-Id,
Request-Id Saturday, September 14, 13
务ࢤॄ㜮ʁ • ࢛ཁૉ • 时间: 䇖࢝时间ɼ总时 • 谁: ༻户Id, Session-Id,
Request-Id • ၏ॄ㜮: URL, ํ๏ɼXHR?, format, ࢀ(ҙ อ护ີ码) Saturday, September 14, 13
务ࢤॄ㜮ʁ • ࢛ཁૉ • 时间: 䇖࢝时间ɼ总时 • 谁: ༻户Id, Session-Id,
Request-Id • ၏ॄ㜮: URL, ํ๏ɼXHR?, format, ࢀ(ҙ อ护ີ码) • 结Ռੋॄ㜮ʁ Saturday, September 14, 13
务ࢤॄ㜮ʁ • 对ଖଞ务త请ٻ • 邮݅ɼ৴ɼଖଞ务... • 记录请ٻ详时 Saturday, September 14,
13
ୠੋ经ৗ༗䭧తࢤ Saturday, September 14, 13
wireshark tcpdump • แ۩ • wireshark: ༗ք໘ • tcpdump: sudo
tcpdump -n -s 4096 -w 1.log port 80 Saturday, September 14, 13
ଖଞ۩ • strace/dtruss: ܥ统调༻᪑᪨۩ • lsof: ྻग़จ݅ଧ䇖ႎ • valgrind: 查ଘᔔ࿐
• ltrace: 查询库调༻ Saturday, September 14, 13
总结 • զ们ਪਸ௨过Ұ䝅ܥ统తํ๏དྷੳ问题ɼ寻ፙ 问题తࠜݯ • զ们对ᯪ试错๏དྷղႊ问题 • ೳ࠶现త Bug ੋ
Bug, Ռෆೳ࠶现ɼཁ፤౸ 对应త᠓络请ٻࢤ • Ռ这࣍ղႊෆྃ Bug, ಹ㜮बվળ㟬తࢤɼ䉯 อԼ࣍ Bug ग़现త时ީೳղႊଞ Saturday, September 14, 13
զ们团队 Saturday, September 14, 13
Q&A Saturday, September 14, 13