该文章为阅读笔记,原地址
https://time.geekbang.org/column/article/7581
我把这样的网络协议学习过程总结为:一看觉得懂,一问就打鼓,一用就糊涂。
第一,我会从身边经常见到的事情出发,用故事来讲解各种网络协议,然后慢慢扩展到不熟悉的领域。
第二,我会用贴近场景的方式来讲解网络协议,将各个层次的关系串起来,而非孤立地讲解某个概念。
第三,我会在讲解完各个层次的网络协议之后,着重剖析如何在当下热门领域使用这些协议,比如云计算、容器和微服务。
第1讲 | 为什么要学习网络协议?
这里要记住一点:只要是在网络上跑的包,都是完整的。可以有下层没上层,绝对不可能有上层没下层。所以,对 TCP 协议来说,三次握手也好,重试也好,只要想发出去包,就要有 IP 层和 MAC 层,不然是发不出去的。
很多朋友都有疑惑为什么有ip还需要mac地址,其实在老师第一篇文章中已经有了一定的解释,第一篇底下的留言也有不错的说明,个人理解是ip可以保证要发送的包在网络中传输,到达目标服务器所在的局域网的网关,但是到了网关后,ip就没有用了,因为局域网中的ip对应的机器是不确定的,可能今天对应A机器,明天对应B机器。所以在局域网中使用ip寻址是不严谨的,这时就需要mac地址来唯一对应一台机器,这样网络包就可以准确的传输到需要的主机上了。