掘金小册:《深入理解 TCP 协议:从原理到实战》

考试不挂科,就来不挂科网buguakeWang.com
考试不挂科,就来【不挂科网】!

课程清单百度网盘 分享资源(永久有效,不过期)

掘金小册:《深入理解 TCP 协议:从原理到实战》(价值50元)

用实验和图解的方式带你深入理解 TCP 协议,让 TCP 协议不再是拦路虎

掘金小册:《深入理解 TCP 协议:从原理到实战》-【不挂科网】(buguakeWang.com)

小册介绍

TCP 协议是我一直很想写的一个主题,因为 TCP 学起来实在是太痛苦了。刚参加工作时,TCP 协议一直是一个心头痛,知道皮毛,但是始终无法深入。在阅读了大量相关的书籍、做了很多网络编程方面的工作以后觉得掌握的过程太过曲折,这本小册并不是想重复阐述一些书上都能找到的 TCP 的理论,更多的是想跟大家分享一些学习和探究的方法,授之以渔,让大家少走一些弯路,知道从哪些方面下手来学习和分析问题。

写这本小册所花的精力比上一本 JVM 字节码多了很多,越写发现水越深,想说服自己实在是太难了。有时候找一个问题的原因看 RFC 看到想吐,用 keynote 画了 100 多张图,所以看这本小册会发现图特别多。

作者介绍

我是挖坑的张师傅,vim 爱好者。从事 Java 开发六年多,做过安卓、写过 Node,现在深耕后台开发,在 CVTE 担任高级技术经理,带一个 20 多人的开发团队做教育相关的产品。

维护了一个微信公众号「张师傅的博客」,主要写偏底层原理的分布式理论、网络协议、架构设计、Go 语言汇编相关的东西,随缘。

2010 年大三的时候,阴差阳错学习了当时还是 1.5 版本的安卓开发。恰逢 Google 在大陆举办了首届 Android 应用开发中国大学生挑战赛。当时穷学生买不起安卓真机,在模拟器上运行写了一个界面比较炫酷的音乐播放器就去参赛了,结果拿了个三等奖,也是湖北赛区唯一获奖的作品。奖品是一部 HTC G7 手机和几千块的奖金,拿奖以后就应邀去参观了 Google 上海的办公室,安排我们在上海浪了三天。

毕业以后就真的去做了安卓开发,做了大半年的安卓 framework 移植和手写笔记软件,期间大量接触 linux 、vimgit 等工具。

后面的一年多就是我最高速成长的一段时期了,内部转岗去做了后台开发。因为喜欢保持简单,自己花了一些时间造了很多轮子,比如 REST 服务端框架、数据库连接池、SQL 执行框架、类 Dubbo 的 RPC 调用框架、基于 RocksDB 的延时消息队列、Gossip 协议框架等。

那段时间遇到了非常多网络相关的问题,于是对 TCP 协议做了深入的学习,现在条件反射一上来就可以 tcpdump 抓包开始分析问题了。当组员遇到问题,三下五除二帮忙找到根本原因的感觉真不错。

为什么网络协议如此重要?

之前腾讯过来的带我们部门的后端大牛 ernest 就说过一句话我觉得很经典:「我们做的事情说到底无非是给用户交付一个网络包,你有什么理由不学好呢?」。

识别一个码农能力的好坏很大程度上是取决于他解决问题的能力。

我们面对的很多系统都是黑盒系统(MySQL、Nginx 等),几乎每隔一段时间都会遇到网络相关的问题,Redis 连接超时、请求第三方平台连接被重置、系统的吞吐量上不去等。我们没有精力去把每个组件的源码都读通读透,如果不懂网络协议,尤其是 TCP 协议,将无从下手分析。遇到第三方服务有问题时,没有一些抓包现场的分析证据,对方是不会接锅的,只有无休止的扯皮。

如果你想成为技术牛人,网络协议绝对是一道很高的门槛。 随着开发年限的增加,越发觉得计算机底层的原理才是最有价值的。技术浪潮一波接着一波,只有掌握了操作系统、计算机网络、分布式理论等基础知识,才能在浪潮之巅游刃有余。

纸上得来终觉浅,绝知此事要躬行

TCP 协议的学习非常枯燥,尤其大部分资料都是讲原理没有什么实操的东西。如果平时工作只是写写业务代码很少有机会去深入理解 TCP 协议,也不知道学了 TCP 协议以后可以用在什么地方。所以我想写这本小册,大部分理论相关的内容我都尽量会 packetdrill、scapy、防火墙等工具构造实验可以抓包查看实际的效果,真正可以看到超时重传、零窗口探测、Nagle 算法等实际的效果。

这本小册并不是为了单纯介绍一些协议的理论知识,这些《TCP/IP 详解》这本书已经足够好了,更多的是想授之以渔,跟大家一起分享自己一些思路和方法,如何去研究 TCP 中的一些复杂的问题,相信掌握了这些方法和工具,一定可以助力你后续的技术提升。

你会学到什么

  • 为什么握手是三次,挥手要四次,挥手变成三次可以吗
  • 为什么 SYN/FIN 不包含数据却要消耗一个序列号
  • 如何用脚本复现同时关闭
  • TCP 的十一种状态如何模拟以及如何互相转换
  • 半连接、全连接队列是什么,backlog 参数有什么作用
  • 快速打开的原理是什么
  • TCP SYN Flood 攻击背后的原理
  • TCP 最不好理解的 TIME_WAIT 状态是什么
  • SO_REUSEADDR、SO_LINGER 选项对网络编程有什么影响
  • TCP 有 7 个定时器是哪些,分别在什么条件下起作用
  • 发送窗口、接收窗口、拥塞窗口的区别是什么
  • 流量控制、滑动窗口、拥塞控制、快重传、慢启动等概念
  • keepalive 机制
  • Nagle 算法、延迟确认的相爱相杀
  • 网络学习相关的工具介绍:telnet、nc、tcpdump、wireshark、lsof、iptables、scapy 等
  • 协议栈测试工具 packetdrill 的使用
  • RST 复位攻击是什么,如何杀掉一条 TCP 连接
  • 什么是 TCP 的自连接
  • TCP 临时端口号的分配算法是什么
  • 常见网络面试题分析
  • 实际案例分享

我列了一个这本小册的思维导图

掘金小册:《深入理解 TCP 协议:从原理到实战》-【不挂科网】(buguakeWang.com)

适宜人群

  • 学习 TCP 协议多次从入门到放弃的同学
  • 想通过实验方法学习 TCP 协议的同学
  • 对于前端工程师,学完可以快速辨识开发中遇到的问题是前端还是后端的问题,对页面性能优化有更深的理解
  • 对于后端工程师,TCP 协议可以说是必须要掌握的技能,学完能从协议和网络层面快速分析后端诸多分布式组件的问题,对提升接口的性能和分布式系统的可靠性会更有把握
  • 对于测试工程师,对网络协议理解的越深,越能发现隐藏很深的 Bug,对性能测试、压力测试会有更深的理解

阅读这本小册需要哪些必备条件

  • 一台 Linux 虚拟机,最好是 Centos
  • 自己动手抓包而不是只看看文章内容
暂无优惠
掘金小册:《深入理解 TCP 协议:从原理到实战》
文件格式:MP4
不挂科网【buguakeWang.com】:专注提供大学考试期末不挂科网课视频,课程适用期末/补考/重修的大学生们。猴博士爱讲课不挂科、蜂考高斯课堂不挂科、高数叔不挂科、高数帮不挂科、斐多课堂不挂科,学霸戴你飞不挂科全套网课视频课程。
【不挂科网】(buguakeWang.com) » 掘金小册:《深入理解 TCP 协议:从原理到实战》

常见问题FAQ

已经购买的资源,有效期是多久?
账号内已购资源:百度网盘分享,永久有效,不过期。
本站PDF电子教材/电子书版本标注说明
【高清原版 非扫描版】:非扫描,高清原版品质,文字可编辑 。
【高清非扫描版】:非扫描,高清品质,文字不可编辑。
网盘链接地址失效了怎么办?
本站学习资源因防盗链原因,每次生成链接有效期一般为30天,如遇链接地址过期失效, 请联系网站在线QQ客服并提供失效资源链接地址,工作时间内我们看到后将第一时间回复。
遇到付款失败,付款后没有生效怎么办?
理论上来说正常付款后不会出现此类问题,但是也会有部分用户因为网络等原因导致在付款的过程中会有一些小插曲。如果出现类似问题,大可不必惊慌,本站所有支付都会生成订单,不管成功还是失败,所以如果真正遇到网络问题导致付款失败您又不知道是否成功时,请提供 "付款凭证+个人中心用户名" 截图给在线QQ客服处理。