最近计划系统性的学习一下Netty,从开始工作不久到现在,Netty一直没有实践过。但是Netty的重要性不言而喻,还是希望能够对其原理能够有深入的了解。在学习的过程中,发现很多原来学习过的计算机网络的知识欠缺,又开始补计算机网络相关的内容。
像是计算机网络模型,TCP协议,HTTP协议等等。
这里汇总一下阅读过比较好的文章,可以快速理解其中的一些知识。
计算机网络
原文链接: 我画了 40 张图就是为了让你搞懂计算机网络层
注意其中有一些小的错误,有疑问的地方可以自己再看看其他的文章。
HTTP协议
原文链接: 一本关于HTTP的恋爱日记
这边文章中,非常生动有趣的解释了HTTP诞生过程,同时对HTTP协议中重要的字段进行了阐述。
比如Accept和Content-type,还有Keep-alive。
TCP协议和UDP协议
原文链接:40 张图带你搞懂 TCP 和 UDP
是的,从名字可以看出来,和计算机网络的作者是同一个人,非常佩服整理这种知识帮助大家的人。
这边文章比较有趣的解释了TCP的三次握手问题:老背题却记不住TCP为什么三次握手?
对于TCP问题,相信大家都会有这个疑问,请阅读该文章 漫画 | 一台Linux服务器最多能支撑多少个TCP连接?
阅读这边文章的前提是对TCP协议有一定的了解。
另外,左耳朵耗子哥的两篇名作,读完一定会让你豁然开朗。
最后
通过阅读以上的一些文章,又捡起来一些计算机网络相关的知识,但是还是远远不够,像TCP协议,其实内容非常多,各种拥塞算法等等,还是需要继续加强。
另外一点就是关于协议的制定,增加了一点认识。比如TCP协议中和HTTP协议中,都包含报文长度+报文内容这种基本的协议格式。在我们开发系统应用的时候,也是类似的。
比如RPC之间要进行序列化和反序列化,就可以序列化先写入基本信息(类型+长度),再写入具体的数据内容。
总之,有些道理确实是相通的,一定要融汇贯通。
网友评论