计算机网络基础——针对实习面试
目录
- 计算机网络基础
- OSI七层模型
- TCP/IP四层模型
- 为什么网络要分层?
- 常见网络协议
计算机网络基础
OSI七层模型
开放系统互连参考模型(Open Systems Interconnection Reference Model,简称OSI模型)是一个概念性模型,用于标准化不同计算机系统间通信过程。这个模型由国际标准化组织(ISO)在1984年提出,旨在为网络通信提供一个共同的理解和设计框架。
OSI模型将网络通信划分为七个层次,每一层都有特定的功能和协议。从下到上,这七个层次分别是:
-
物理层(Physical Layer):负责在物理媒介上传输原始的比特流。这一层涉及到电气信号、光信号等物理传输介质,以及如何将数据编码为这些信号。
-
数据链路层(Data Link Layer):负责在相邻的网络节点之间传输数据帧。它确保物理层传输的数据无误,并进行错误检测和修正。
-
网络层(Network Layer):负责在源节点和目的节点之间选择数据传输路径。这一层定义了数据包的路由和转发。
-
传输层(Transport Layer):负责提供端到端的数据传输服务。它确保数据的完整性和可靠性,包括数据分段、错误检测、流量控制等。
-
会话层(Session Layer):负责建立、管理和终止应用程序之间的会话。这一层确保会话可以在通信过程中正确地建立和结束。
-
表示层(Presentation Layer):负责数据的表示、编码和转换。它确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取,包括数据格式转换、数据加密和压缩等。
-
应用层(Application Layer):为应用软件提供网络服务。这一层涉及到最终用户与网络的交互,如HTTP、FTP、SMTP等协议。
OSI模型是一个理论模型,实际应用中更广泛采用的是TCP/IP模型,它将OSI模型的部分层次合并,通常分为四个层次:链路层、网络层、传输层和应用层。尽管如此,OSI模型仍然是理解网络通信原理的重要工具。
TCP/IP四层模型
TCP/IP模型,也被称为互联网模型,是一种四层的网络通信模型,它被广泛用于实现互联网的通信。这四层分别是:
-
链路层(Link Layer):
- 也被称为网络接口层,负责在两个直接相连的节点之间传输原始比特流。
- 处理与硬件相关的功能,如控制操作系统如何访问网络媒体。
- 包括以太网(Ethernet)、Wi-Fi等技术。
- 链路层协议包括ARP(地址解析协议)和RARP(反向地址解析协议)。
-
网络层(Internet Layer):
- 负责在多个网络之间传输数据包,实现路由选择。
- 使用IP协议(Internet Protocol)来标识主机和路由数据包。
- 网络层协议还包括ICMP(Internet Control Message Protocol,互联网控制消息协议),用于发送错误消息和操作信息。
- 路由协议如OSPF(Open Shortest Path First,开放最短路径优先)和BGP(Border Gateway Protocol,边界网关协议)也在网络层工作。
-
传输层(Transport Layer):
- 提供端到端的数据传输服务。
- 包括TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)两种主要协议。
- TCP提供可靠的、面向连接的服务,而UDP提供不可靠的、无连接的服务。
- 传输层负责数据的分段和重组,以及流量控制和拥塞控制。
-
应用层(Application Layer):
- 提供网络服务给最终用户。
- 包括HTTP(HyperText Transfer Protocol,超文本传输协议)、FTP(File Transfer Protocol,文件传输协议)、SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)等。
- 应用层协议负责处理特定应用程序的数据,并确保数据可以被应用程序正确解析和使用。
TCP/IP模型的每一层都通过下一层提供的服务来实现其功能,并且为上一层提供服务。这种分层的设计使得网络通信更加模块化,易于理解和实现。
为什么网络要分层?
- 各层之间相互独立:各层之间相互独立,各层之间不需要关心其他层是如何实现的,只需要知道自己如何调用下层提供好的功能就可以了(可以简单理解为接口调用)。这个和我们对开发时系统进行分层是一个道理。
- 各层之间相互独立:各层之间相互独立,各层之间不需要关心其他层是如何实现的,只需要知道自己如何调用下层提供好的功能就可以了(可以简单理解为接口调用)。这个和我们对开发时系统进行分层是一个道理。
- 大问题化小:分层可以将复杂的网络问题分解为许多比较小的、界线比较清晰简单的小问题来处理和解决。这样使得复杂的计算机网络系统变得易于设计,实现和标准化。 这个和我们平时开发的时候,一般会将系统功能分解,然后将复杂的问题分解为容易理解的更小的问题是相对应的,这些较小的问题具有更好的边界(目标和接口)定义。
常见网络协议
以下是一些最常见网络协议的详细解释:
-
IP (Internet Protocol)
- 作用:IP协议是网络层的核心协议,负责将数据包从源主机路由到目的主机。
- 版本:IPv4和IPv6,其中IPv4是目前最广泛使用的版本,IPv6是为了解决IPv4地址耗尽问题而设计的。
- 功能:提供数据包的寻址和路由功能,但不保证数据包的顺序或可靠性。
-
TCP (Transmission Control Protocol)
- 作用:传输层协议,提供可靠的、有序的、基于连接的数据传输服务。
- 特点:通过三次握手建立连接,使用序列号和确认应答机制保证数据的顺序和完整性,使用流量控制和拥塞控制机制。
- 应用:适用于需要可靠传输的应用,如Web浏览(HTTP)、文件传输(FTP)和邮件传输(SMTP)。
-
UDP (User Datagram Protocol)
- 作用:传输层协议,提供不可靠的、无连接的数据传输服务。
- 特点:发送数据前不需要建立连接,不保证数据的顺序或完整性,适用于对实时性要求高的应用。
- 应用:适用于实时应用,如VoIP(Voice over IP)、在线游戏和视频流。
-
ICMP (Internet Control Message Protocol)
- 作用:网络层协议,用于发送错误消息和操作信息。
- 功能:如ping命令使用ICMP来测试网络连接,ICMP还用于发送网络不可达、TTL超时等错误消息。
-
ARP (Address Resolution Protocol)
- 作用:链路层协议,用于将网络层的IP地址解析为链路层的MAC地址。
- 功能:当一个设备需要向另一个设备发送数据时,它会使用ARP来查询目标IP地址对应的MAC地址。
-
HTTP (HyperText Transfer Protocol)
- 作用:应用层协议,用于从服务器传输超文本到本地浏览器。
- 特点:基于请求/响应模型,无状态协议,支持多种类型的数据传输,如HTML、图片和视频。
- 版本:HTTP/1.1是最常用的版本,HTTP/2提供了性能改进,HTTP/3是最新的版本,基于UDP和QUIC协议。
-
HTTPS (HTTP Secure)
- 作用:HTTP的安全版本,通过SSL/TLS提供加密的数据传输。
- 功能:确保数据传输的安全性和完整性,防止中间人攻击。
-
FTP (File Transfer Protocol)
- 作用:应用层协议,用于在网络上进行文件传输。
- 特点:支持文件的上传、下载和管理,通常使用端口21。
-
SMTP (Simple Mail Transfer Protocol)
- 作用:应用层协议,用于发送电子邮件。
- 功能:定义了邮件服务器之间传输邮件的规则。
-
DNS (Domain Name System)
- 作用:应用层协议,将域名转换为IP地址。
- 功能:允许用户通过易于记忆的域名访问网站,而不是记住复杂的IP地址。
-
DHCP (Dynamic Host Configuration Protocol)
- 作用:网络层协议,用于自动分配IP地址和其他网络配置。
- 功能:减少网络管理员的工作量,动态管理IP地址池。
-
SSL/TLS (Secure Sockets Layer/Transport Layer Security)
- 作用:提供网络通信的加密和安全。
- 功能:使用密钥交换、数据加密和消息完整性验证来保护数据传输。
这些协议共同构成了互联网的基础架构,使得数据能够在不同的设备和网络之间高效、安全地传输。