惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cloudbric
Cloudbric
有赞技术团队
有赞技术团队
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
Threat Research - Cisco Blogs
L
LangChain Blog
Simon Willison's Weblog
Simon Willison's Weblog
Project Zero
Project Zero
Latest news
Latest news
S
Schneier on Security
Cisco Talos Blog
Cisco Talos Blog
MyScale Blog
MyScale Blog
C
Check Point Blog
IT之家
IT之家
P
Palo Alto Networks Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
CERT Recently Published Vulnerability Notes
Scott Helme
Scott Helme
The Hacker News
The Hacker News
C
CXSECURITY Database RSS Feed - CXSecurity.com
G
Google Developers Blog
T
Tor Project blog
T
Threatpost
D
DataBreaches.Net
博客园 - 【当耐特】
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Troy Hunt's Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Vercel News
Vercel News
云风的 BLOG
云风的 BLOG
NISL@THU
NISL@THU
P
Privacy & Cybersecurity Law Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
Cisco Blogs
博客园_首页
S
Securelist
T
The Exploit Database - CXSecurity.com
Last Week in AI
Last Week in AI
量子位
U
Unit 42
Know Your Adversary
Know Your Adversary
Hugging Face - Blog
Hugging Face - Blog
S
Security Affairs
Google Online Security Blog
Google Online Security Blog
Hacker News: Ask HN
Hacker News: Ask HN
Webroot Blog
Webroot Blog
S
SegmentFault 最新的问题
Engineering at Meta
Engineering at Meta
N
News and Events Feed by Topic
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志

卡瓦邦噶!

服务器高性能网络调优 | 卡瓦邦噶! 为何写作 | 卡瓦邦噶! 读《金阁寺》 | 卡瓦邦噶! 雨季又来 | 卡瓦邦噶! MTU Probe 引起的初始延迟 | 卡瓦邦噶! 3.5 秒的固定延迟问题 | 卡瓦邦噶! 学习网络的一点经验 | 卡瓦邦噶! ARP 问题诊断 | 卡瓦邦噶! 网络断断续续…… | 卡瓦邦噶! Piccolo P2P 镜像分发 | 卡瓦邦噶! 一起看电影 | 卡瓦邦噶! 《征服C指针》 | 卡瓦邦噶! 我的姥姥 | 卡瓦邦噶! Python的哲学 Python 3.5的新特性 学校不教的计算机课 垃圾回收(GC)的三种基本方式 在编程中体验纯粹的快乐 从《美丽新世界》谈自由 在快钱实习 迷人的嗓音和迷人的故事——《Sleepyhead》 Python 的十个自然语言处理工具 记一个愚蠢的bug 一年炉石传说的游戏体验 《以撒的结合:重生》网页版图鉴 分清 C++的指针、引用和数组 笑话三则 自由比皇帝更伟大——《悲惨世界》笔记 Git 10 周年访谈:Linus 讲述背后故事 用 0x3f3f3f3f 设定最大int值的优点 Joel给计算机系学生的建议 一个词法分析器的简单实现 怎样才算健康的生活方式 MacVim 配置攻略 学习培训课程的视频效果好吗? 语言的控制 可悲的大多数 CSS样式思维导图 2014年终总结 奥巴马成为首位写程序的美国总统 青岛老城区的下水道好在哪里? 做优秀 UI 的七个建议(第二部分) 选择爱情的骑士 Git简明教程 Java集合总览 读 《1984》 java问答:终极父类(六)——等待/唤醒和接口 Java 问答:终极父类(五)——toString() Hyperlapse快速视频背后的技术细节 平庸之恶 Java程序员须知的七个日志管理工具 苏州 逛书摊随想 关于考试作弊 你的工作不仅仅是编程 推荐在线学习Java的英文资源 关注女性命运——《千禧年三部曲》 用好你的幻灯片——《演说之禅》 使用ReentrantLock和Lambda表达式让同步更纯净 新手学编程,从哪里开始? 程序员都是工程师吗? 不要学习代码,要学会思考 Java 问答:终极父类(四)——hashCode() Java 问答:终极父类(三)——finalize()和 getClass() 程序员职业之路的选择 我是一名摄影家 写给何小树的城市指南 为什么一些语言会比别的快? Java的常见误区与细节 跟朋友在一起玩游戏 死神永生——读《三体》 五种类型的程序员 创业圣经——读《黑客与画家》 纪念加西亚·马尔克斯 Junit中处理异常的另一种方式:catch-exception Java8采用Martin Fowler的方法创建内部DSL Linux HotSopt虚拟机GC线程的CPU占用率 J2EE概念介绍 如何成为一名黑客 Java 问答:终极父类(二)——equals()方法 为什么我喜欢Java Java 问答:终极父类(一)——clone()方法 七个改变世界的Java项目 java中默认类型转换的小问题 传统与创新 欢迎来到互联网 莫言和马尔克斯——读《生死疲劳》 位运算的妙用 读《人为什么活着》 写博客教会我的事情 中国特色操作系统 2013年总结 《永不妥协》影评 恨不相逢未嫁时——《廊桥遗梦》影评 如何优雅地使用PPT 给明年依然年轻的我们 天才与柱子 黑客守则和黑客精神 Looking for Freedom——《被解救的姜戈》 简洁之道
抓包破案录:序章
laixintao · 2024-06-05 · via 卡瓦邦噶!

Hi,我是信涛,喜欢抓包。

我打算写一个以现实应用的网络技术为主题的系列文章,姑且将其称之为「书」吧。(还从没有写过系列长篇,所以这对我来说也是一个挑战。)

这本书面向的读者

大学的网络课程,和很多计算机网络的教材,普遍存在一个问题:内容比较抽象。大部分教材都是适合对网络有所了解的人,去学习新的网络来阅读。如果是刚刚学习网络,会觉得这些抽象的内容比较难理解,会产生多问题,而这些问题大部分来自于不正确的理解。

由于内容抽象,导致阅读枯燥。我经历过这一段时间,比较喜欢学习编程,因为编程学习了就可以实践,能够看到效果;而网络的学习通常不好实践,没有实践的话,学习效果就大打折扣。所以一度认为自己与计算机网络八字不合。

但是当我在工作中遇到网络问题,没有人能够解决(或者愿意花时间去解决),然后我去抓包,分析,最后精准找到问题原因的时候,我发现网络是如此有趣!

之后的工作中,我积累了很多网络问题排查的案例,有一些记录在之前的博客中了,有一些还只存在我的笔记中。

这些案例都和网络协议等基础知识有关,又需要动手,结合实际来分析。我发现去解决实际问题很大程度上加深了我对原来学习的内容的理解。我也发现,有很多人工作多年, 竟然从没用过 Wireshark 来分析网络问题(即使他们的工作和网络相关!)。我认为原因就是,第一次太难,当你从没有用 Wireshark 来解决问题,那么遇到问题的时候,你也不会想到去分析。即使打开,面对五花八门的字段,也会感觉无从下手。我也经过这种时候。但是如果用过几次,就不一样了,在用 Wireshark 解决过一次问题之后,信心会大增,甚至遇到问题会感到兴奋——我倒要看看还能是哪里出了问题!

所以本书以让实际动手分析为主,章节大部分成对出现,第一节抛出问题,描述问题,读者可以进行自己的分析。之后发布第二节,揭晓答案,结合网络协议知识,分析相关的网络设计。

另一个问题是,教科书普遍都在介绍过时的技术。比如谈到数据链路层,必开始介绍 CDMA 如何解决冲突的,这部分内容比较枯燥,也让人困惑:为什么 Frame 要发给不需要它的机器,然后再处理冲突?事实上,这都已经是几十年前的网络了,现代的网络 Ethernet 是全双工的,交换机是只发给指定目的端口的,完全不会遇到冲突然后避让。当然学习这些技术是有用的,但是不建议一上来就讲这么枯燥、现代网络又几乎用不上的内容。

比如谈到 IP 地址,必介绍 IP 分类。然后出个问题考考你:「这个 IP 是 A 类还是 B 类?」后来,工作这么多年从没遇到一个问题需要我判断一个 IP 是几类 IP 的(倒是需要经常判断一个 IP 是不是 Private IP)。因为如今的网络掩码都是可变长度了,Classful network 那是上个世纪的东西了,没有人用这种 IP 分类划分网络了。

网络的世界中存在很多这种「过时」的设计,根本原因是,在设计之初,没有意识到今后的世界会如何发展,比如 IPv4 耗尽问题,近几年的区块链趋势,AI,等等,所以不合时宜的设计是必然会存在的。我们需要学习的是这些设计当初的考虑是什么,为什么这么设计,存在的问题有哪一些,如今的替代方案是什么。这样,才不会让自己都「学了一些没用的东西」。即使学习「过时」的技术,我们也可以从中吸取经验。

所以本书会结合现代的网络技术,介绍网络知识的同时,也介绍一下当前流行的解决方案。

本书适合阅读过一些网络教材但是感觉一身武功无处施展的读者,也适合在工作中没有思路解决实际的网络问题的读者,如果你是网络高手的话,可以拿本书来消遣,看本书抛出的问题是否能够应付自如。

如何阅读?

在问题章节,会描述问题的场景,给出一个抓包文件。读者可以根据对问题的描述,下载抓包文件进行分析,得出自己的答案。推荐重新阅读一遍问题的描述,看一下自己的答案是否能够完全解释的通场景中的问题。(就像做 leetcode 一样,有趣吧?)

读者可以在评论区发布自己的想法,和其他读者交流。我会在文末留白来和评论隔离开,避免剧透。

答案发布之后,如果读者的想法和答案一致,说明我们英雄所见略同。如果不一致,也可以将您的想法贴在评论中,说不定答案并不止一种。

问题的设计会尽量让读者有「哦!原来是这样」的感觉,而不是感觉被耍了。不然我又写成枯燥的计算机网络教材了。欢迎读者在评论中对文章质量作出反馈。

投稿?

如果您也有有意思的网络问题,欢迎通过博客右侧的邮箱联系我。说不定可以设计成一个题目。

用打赏表达您的支持!

由于是一个完整系列,需要耗费很多心血,本想做订阅制,还是觉得不合适,有人读这些东西已经很荣幸了,而且订阅制也会让自己压力变大。我还是觉得自己想写什么就写什么,才会写出让自己满意的东西来。

这里放一个赞赏码吧,如果读者感到本系列内容有所帮助,欢迎打赏。

我会坚持分享自己学到的知识。


==抓包破案录==

这篇文章是抓包破案录系列文章(之前叫做《计算机网络实用技术》,后来改名了)中的一篇,这个系列正在连载中,我计划用这个系列的文章来分享一些网络抓包分析的实用技术。这些文章都是总结了我的工作经历中遇到的问题,经过精心构造和编写,每个文件附带抓包文件,通过实战来学习网络抓包与分析。

如果本文对您有帮助,欢迎扫博客右侧二维码打赏支持,正是订阅者的支持,让我公开写这个系列成为可能,感谢!

如果您正在阅读的是题目类的文章,这个目录内容正好用来隔离其他读者的评论。读完题目可以稍作暂停,进行思考,继续向下滑动,可能会被其他的读者剧透答案。

没有链接的目录还没有写完,敬请期待……

  1. 序章
  2. 抓包技术以及技巧
  3. 理解网络的分层模型
  4. 数据是如何路由的
  5. 网络问题排查的思路和技巧
  6. 不可以用路由器?答案和解析
  7. 网工闯了什么祸?答案和解析阅读加餐!
  8. 重新认识 TCP 的握手和挥手答案和解析
  9. 3.5 秒初始延迟问题答案和解析
  10. 网络断断续续……答案和解析
  11. 延迟增加了多少?答案和解析
  12. 压测的时候 QPS 为什么上不去?答案和解析
  13. TCP 下载速度为什么这么慢?答案和解析
  14. 请求为什么超时了?答案和解析
  15. 0.01% 的概率超时问题答案和解析
  16. 后记:学习网络的一点经验分享
与本博客的其他页面不同,本页面使用 署名-非商业性使用-禁止演绎 4.0 国际 协议。