JavaGuide (8)
计算机网络基础
《计算机网络基础》是计算机网络专业的基础课教材,也适用于其他计算机信息类、通信类、电子类和机电类等各专业作为计算机网络技术课教材。以下是对计算机网络基础的详细介绍:
一、定义与发展
计算机网络基础是研究计算机网络的基本概念、原理、技术和应用的学科。它随着计算机技术和通信技术的发展而不断发展,经历了从简单到复杂、从低速到高速、从局域网到广域网的发展过程。
二、主要内容
计算机网络基础的主要内容包括以下几个方面:
- 计算机网络概论:介绍计算机网络的基本概念、发展历史、分类、组成和功能等。
- 网络体系结构:讲解网络协议、协议分层结构、协议标准和标准化组织等,以及各层的功能和常用的协议。
- 局域网技术:介绍局域网的特点、分类、介质访问控制方式、协议标准和以太网协议等,以及组网原理和技术。
- 广域网技术:讲解广域网的概念、公用电话网、数字数据网、综合业务数字网、帧中继和宽带网等技术。
- 网络互联技术:介绍网络互联的基本概念、设备(如路由器、交换机等)和工作原理,以及网络互联的实现方法和技术。
- 网络安全:讲解网络安全的基本概念、威胁和攻击类型、安全措施和加密技术等,以及网络安全的管理和维护。
三、应用领域
计算机网络基础广泛应用于各个领域,如:
- 互联网:是计算机网络基础的重要应用领域之一,提供了全球范围内的信息共享和交流平台。
- 企业网络:企业内部建立的网络系统,用于实现信息共享、协同工作和资源管理等。
- 数据中心:是大型企业和组织用于存储、管理和处理数据的中心,依赖于计算机网络基础技术来实现数据的传输和共享。
- 物联网:将各种物体通过传感器、控制器等设备连接到互联网上,实现物体之间的信息共享和交互。
四、发展趋势
随着技术的不断发展,计算机网络基础呈现出以下发展趋势:
- 高速化:网络速度不断提高,从千兆以太网到万兆以太网等高速网络技术不断涌现。
- 智能化:网络设备和服务越来越智能化,能够自动适应网络环境和用户需求的变化。
- 虚拟化:虚拟化技术将物理资源抽象为虚拟资源,提高了资源的利用率和管理效率。
- 安全化:网络安全问题日益突出,网络安全技术和措施不断得到加强和完善。
TCP/IP 四层模型是什么?每一层的作用是什么?
TCP/IP 四层模型 是目前被广泛采用的一种模型,我们可以将 TCP / IP 模型看作是 OSI 七层模型的精简版本,由以下 4 层组成:
- 应用层
- 传输层
- 网络层
- 网络接口层
需要注意的是,我们并不能将 TCP/IP 四层模型 和 OSI 七层模型完全精确地匹配起来,不过可以简单将两者对应起来,如下图所示:
为什么网络要分层?
说到分层,我们先从我们平时使用框架开发一个后台程序来说,我们往往会按照每一层做不同的事情的原则将系统分为三层(复杂的系统分层会更多):
- Repository(数据库操作)
- Service(业务操作)
- Controller(前后端数据交互)
复杂的系统需要分层,因为每一层都需要专注于一类事情。网络分层的原因也是一样,每一层只专注于做一类事情。
好了,再来说回:“为什么网络要分层?”。我觉得主要有 3 方面的原因:
- 各层之间相互独立:各层之间相互独立,各层之间不需要关心其他层是如何实现的,只需要知道自己如何调用下层提供好的功能就可以了(可以简单理解为接口调用)。这个和我们对开发时系统进行分层是一个道理。
- 提高了灵活性和可替换性:每一层都可以使用最适合的技术来实现,你只需要保证你提供的功能以及暴露的接口的规则没有改变就行了。并且,每一层都可以根据需要进行修改或替换,而不会影响到整个网络的结构。这个和我们平时开发系统的时候要求的高内聚、低耦合的原则也是可以对应上的。
- 大问题化小:分层可以将复杂的网络问题分解为许多比较小的、界线比较清晰简单的小问题来处理和解决。这样使得复杂的计算机网络系统变得易于设计,实现和标准化。 这个和我们平时开发的时候,一般会将系统功能分解,然后将复杂的问题分解为容易理解的更小的问题是相对应的,这些较小的问题具有更好的边界(目标和接口)定义。
我想到了计算机世界非常非常有名的一句话,这里分享一下:
计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决,计算机整个体系从上到下都是按照严格的层次结构设计的。
常见网络协议
应用层有哪些常见的协议?
HTTP(Hypertext Transfer Protocol,超文本传输协议)
- 基于:TCP协议
- 用途:用于传输超文本和多媒体内容,是Web浏览器与Web服务器之间通信的协议。当我们使用浏览器浏览网页时,网页就是通过HTTP请求进行加载的。
- 工作方式:HTTP协议采用了“请求/响应模型”。客户端(如Web浏览器)向服务器发送一个请求报文,服务器则返回一个响应报文,其中包含所请求的资源(如HTML文件、图像等)。
SMTP(Simple Mail Transfer Protocol,简单邮件发送协议)
- 基于:TCP协议
- 用途:用于发送电子邮件。
- 特点:SMTP协议只负责邮件的发送,而不是接收。它独立于特定的传输子系统,只需要可靠有序的数据流信道支持。
- 工作方式:SMTP客户请求与服务器的25端口建立一个TCP连接,一旦连接建立,SMTP服务器和客户就开始相互通告自己的域名,同时确认对方的域名。然后,SMTP客户利用命令将邮件的源地址、目的地址和邮件的具体内容传递给SMTP服务器,服务器进行相应的响应并接收邮件。
POP3/IMAP(邮件接收协议)
- 基于:TCP协议
- 用途:两者都是用于从邮件服务器接收邮件的协议。
- 区别:POP3是较旧的协议,而IMAP是更新的协议,具有更多的功能和更好的性能。IMAP支持邮件搜索、标记、分类、归档等高级功能,并可以在多个设备之间同步邮件状态。
FTP(File Transfer Protocol,文件传输协议)
- 基于:TCP协议
- 用途:用于在计算机之间传输文件,可以屏蔽操作系统和文件存储方式。
- 安全性:FTP是一种不安全的协议,因为它在传输过程中不会对数据进行加密。因此,建议在传输敏感数据时使用更安全的协议,如SFTP。
- 工作方式:FTP使用两种连接类型:控制连接和数据连接。控制连接用于传输命令和响应,而数据连接则用于传输文件数据。
Telnet(远程登陆协议)
- 基于:TCP协议
- 用途:用于通过一个终端登陆到其他服务器。
- 安全性:Telnet协议的最大缺点之一是所有数据(包括用户名和密码)均以明文形式发送,这有潜在的安全风险。因此,现在很少使用Telnet,而是使用更安全的SSH协议。
SSH(Secure Shell Protocol,安全的网络传输协议)
- 基于:TCP协议
- 用途:通过加密和认证机制实现安全的访问和文件传输等业务。
- 优势:SSH协议解决了Telnet协议的安全问题,提供了更强的安全性和更简洁的实现方式。它使用加密算法对传输的数据进行加密,并增强了身份验证强度。
RTP(Real-time Transport Protocol,实时传输协议)
- 基于:通常基于UDP协议,但也支持TCP协议。
- 用途:提供了端到端的实时传输数据的功能。
- 特点:RTP不包含资源预留存、不保证实时传输质量。这些功能通常由WebRTC实现。
DNS(Domain Name System,域名管理系统)
- 基于:UDP协议
- 用途:用于解决域名和IP地址的映射问题。
- 工作方式:当用户输入一个域名时,DNS系统会将该域名解析为对应的IP地址,以便计算机能够找到并访问该网站。
- TCP(Transmission Control Protocol,传输控制协议 ):提供 面向连接 的,可靠 的数据传输服务。
- UDP(User Datagram Protocol,用户数据协议):提供 无连接 的,尽最大努力 的数据传输服务(不保证数据传输的可靠性),简单高效。
IP协议
-
定义:IP(Internet Protocol),又称之为网际协议,是TCP/IP协议栈的核心协议之一,属于网络层协议。
-
功能:负责定义数据包的格式,对数据包进行路由和寻址,以便它们可以跨网络传播并到达正确的目的地。具体来说,IP协议为每个连接到互联网上的设备分配一个唯一的IP地址,它用于标识设备的位置,并根据路由表选择最佳的路径将数据包传输到目的地。
-
版本:
- IPv4:过去广泛使用的版本,IP地址由32位二进制数组成,分为A、B、C、D、E五类,其中D类为多播地址,E类为保留地址。IPv4中实现了数据包的分片功能。
- IPv6:较新的版本,旨在解决IPv4地址耗尽的问题。IP地址由128位二进制数组成,提供了更大的地址空间。IPv6中取消了数据包的分片功能,但可以通过其他机制实现类似的功能。
ARP协议
- 定义:ARP(Address Resolution Protocol),即地址解析协议。
- 功能:解决网络层地址(IP地址)和链路层地址(MAC地址)之间的转换问题。当数据报需要在物理网络上传输时,ARP协议将IP地址转换为对应的MAC地址,以便数据报能够正确地发送到下一跳。
ICMP协议
- 定义:ICMP(Internet Control Message Protocol),即互联网控制报文协议。
- 功能:用于传输网络状态和错误消息,常用于网络诊断和故障排除。例如,Ping工具就使用了ICMP协议来测试网络连通性。
NAT协议
-
定义:NAT(Network Address Translation),即网络地址转换协议。
-
功能:将一个IP地址域映射到另一个IP地址域,以实现内部网络访问外部网络的功能。NAT广泛应用于家庭和企业网络中,以便多个设备能够共享一个公共IP地址进行上网访问。
-
类型:
- 静态NAT:一对一的地址转换方式,将一个私有IP地址映射为一个固定的公共IP地址。
- 动态NAT:多对多的地址转换方式,将多个私有IP地址动态映射为多个公共IP地址。
- 端口地址转换(PAT):多对一的地址转换方式,将多个私有IP地址映射为一个公共IP地址,通过不同的端口号进行区分。
OSPF协议
- 定义:OSPF(Open Shortest Path First),即开放式最短路径优先协议。
- 功能:一种内部网关协议(IGP),也是广泛使用的一种动态路由协议。OSPF基于链路状态算法,考虑了链路的带宽、延迟等因素来选择最佳路径。