整个暑假,我参加了多次面试,涉及了各种规模的公司(从小厂到大型企业)。面试中常常会问到网络原理的相关问题,尽管在实际项目中我很少有机会去深入实践它。了解其原理可以让我在面试中展示出我的基础是否扎实,也能为将来深入学习网络部分打下更坚实的基础。
在准备面试时,很多同学会选择去背诵网络原理的知识点。我认为最好的学习方法并不是死记硬背,而是真正理解其背后的逻辑并能够融会贯通。虽然一开始学习起来可能会有些吃力,但只要我们理清逻辑,多看几遍,多问自己几个为什么,把自己当做是开发者去思考,面试前的准备也就足够了。
面试官在提问时,常常会以多种方式来提问同一个知识点,比如经常被问到的“输入URL后页面呈现的过程”这个问题,背后就涉及了很多网络原理的知识。我们不必把所有知识点都详尽地分享出来,而是先理清网络层次的划分和网络由来的逻辑,这样就能完成这篇文章的目的。
第一部分:为什么要进行网络层次划分?
当我重新审视网络层次的时候,我意识到要真正理解它,就必须了解它的由来和为什么需要进行层次划分。起初可能会觉得困惑,但当我们深入理解后,会发现这其实是网络通信的基础。
第二部分:网络是如何分层的?
网络分层主要遵循OSI七层模型或TCP/IP四层模型/五层模型。这些模型都是为了更方便地理解和设计网络通信而制定的标准体系。
第三部分:每一层的作用是什么?
从物理层到应用层,每一层都有其特定的功能和作用。我们不需要深入每一层的每个协议和知识点,但我们需要了解每层的基本功能和它们之间的关系。
例如,物理层主要负责传输0、1信号;数据链路层则规定不同的0、1组合代表什么意义;网络层负责判断两台计算机是否在同一子网络中;传输层则实现了“端口到端口”的通信;而应用层则规定了应用程序的数据格式。
通过这样的分层和逻辑梳理,我们可以更清晰地理解网络通信的原理和过程。虽然网络原理涉及的知识点很多,但只要我们掌握了基本的分层结构和每层的作用,就已经足够应对面试和未来的学习了。
本文中提到的子网掩码、MAC地址、IP协议、UDP协议、TCP协议等都是为了帮助大家更好地理解和记忆而提及的关键词和概念。具体的细节和实现方式可能需要进一步的学习和研究,但希望这篇文章能为大家提供一个入门级的理解和认识。