对网络的理解
我们知道计算机中的任何东西似乎都是对现实生活中某些事物的一种抽象,而网络我认为是对现实生活中人与人的交互的抽象。人与人之间是如何交互的,很显然在没有现代的电子设备的基础上,距离近的可以通过语言进行交流,而远距离则可以通过信件之类的方式进行交流亦或交互,人与人近距离的交流类似我们互联网设备之间的数据线交流,而远距离的交流正类似网络。(抽象、抽象、抽象。。。)
网络的分层模型
要想了解网络感觉每一个初学者都绕不开网络的分层模型吧,主要是模型对现实网络的工作方式做了一个很好的抽象,让我们以直观的方式去理解复杂的逻辑。
各分层模型
虽然现在给出了多种网络模型,但实施的却是TCP/IP这样的四层网络模型,而较有学习意义的是五层网络模型。然后就让我们来探讨一下这五层各有什么作用吧。
- 物理层: 我们所知道的是在计算机中信息是以二进制的形式进行解析,所以物理层的作用就是传播二进制信号(比特流),但是是由其他信号(如光、电、无线电波)表示的二进制信号。
- 链路层: 数据链路层的作用是把比特流封装成帧,并要知道我们发送的信息中的发送者与接收者的地址,这指的是MAC地址,同时我们要知道是的它在局域网中是以广播的形式进行传播。(Windows电脑可以通过在终端输入
ipconfig/all,Mac可通过ifconfig/all获取到本电脑的mac地址) - 网络层: 网络层主要是通过ip协议来进行寻址与路由,将我们的信息发送到正确的电脑上
- 传输层: 本层主要是要进行真正的程序间的连接建立了,主要定义了我们的端口号,同时进行控流和校验等操作。有两个协议TCP、UDP。
- 应用层: 我们各程序之间接收到的信息(报文)格式是什么样的。
所以网络为什么要分层呢?
- 模块化设计: 分层允许网络功能被分割成相对独立的模块或层次。每一层专注于特定的功能,如数据传输、错误检测、数据包路由等,各层之间通过定义好的接口进行通信和交互。这种模块化设计使得网络结构更加清晰,易于扩展和维护。
- 简化复杂性: 计算机网络通常涉及多种不同的技术和功能,如物理传输、数据包处理、安全性、应用支持等。通过分层,每一层只需考虑与其功能相关的问题,从而降低了整个系统的复杂性,使得开发、测试和故障排除更加高效。
- 标准化与互操作性: 每一层的功能和接口都可以被标准化,使得不同厂商的设备和软件能够互相兼容和互操作。这种标准化促进了网络设备和应用程序的广泛采用,同时也促进了网络技术的发展和创新。
- 灵活性与可扩展性: 通过分层,可以在不影响整体系统结构的情况下,对网络进行修改和更新。例如,可以在某一层次上引入新的技术或协议,而不必对整个网络进行全面的改动。
- 提高性能: 每一层的专注于特定功能有助于优化性能。例如,数据链路层可以处理物理介质上的传输细节,网络层则负责路由和转发决策,应用层则关注数据的最终处理和用户交互,每一层的优化都能提高整个系统的性能和效率。