1.从网上搜索到一篇高质量的相关课题文章《从输入URL到页面加载完成的过程中都发生了什么事情?》,进行阅读,分解,画图,讲解给自己听。通过阅读,确定第2~5步是需要关注的,了解每一步的原理。
发现自己有以下几个问题不理解。
a. 数据在路由器之间是传输的?
b. TCP工作原理。
对于其他步骤,虽然不了解具体细节,但是了解大概的工作原理。比如第4步服务器的处理,可以类比现有业务的架构;第5步浏览器渲染页面,可以类比现有业务被浏览器请求后的处理。
2.分步骤学习。
要了解网卡是怎么封装数据的,必须了解数据的传输过程,才能明白封装的数据是怎样的,为什么要这么封装。
a)收藏过一篇TCP的文章《TCP的那些事儿(上)》
b)《图解TCP/IP》,了解数据传输的过程,及模型每一层的作用。
c)通过wireshark抓包可视化查看TCP传输过程。
3.确定讲解重点。
经过与汝锋交流,确定了讲解重点为TCP传输过程及状态分析。增加TCP状态分析,以及大量并发请求时,各种状态的影响。
搜索“TCP连接的状态”,查找TCP各状态的详细解释,以及每个状态如果过多会有什么影响。
4.找网维沟通线上Linux有对TCP做哪些优化。
通过与网维交流了解到针对不同业务场景的优化策略。
5.不足之处。
对于TCP重传、滑动窗口、拥塞控制等了解得不够深入,需要继续研究。
学习成果:
2.工程化思维学习方式
a.弄清它的结构。各部分大概的样子,以及怎么连通的。
b.去到每一步时,再深入探索它的样子,要么通过别人的经验,要么自己去探索。什么时候做加法,什么时候做减法,需要自己的判断。
c.要制定计划,规划里程碑时间。但这一点做得不太好。