notion image

会话层

💡
主要任务: 主机间会话维持, 上下文维护
同步表示层实体之间的对话
会话层(Session Layer)是OSI(Open Systems Interconnection)模型中的第5层,位于表示层之下,传输层之上。它的主要功能是管理和维护应用程序之间的会话,以确保数据传输的可靠性和有序性。会话层的作用可以简单概括为“建立、维护和终止会话”(即保持通信状态 / 上下文)。
会话层的主要功能:
  1. 会话管理
  • 负责在两个设备或应用程序之间建立、管理和终止通信会话。
  • 会话的建立包括协商会话的参数,例如协议和数据传输规则。
  1. 同步
  • 提供检查点(Checkpoints)或同步点,用于对话分离,以允许长时间运行的数据传输在中断后能够从最近的同步点恢复,而无需重新开始。例如,大型文件传输中断后,可以从中断位置继续传输。
    • notion image
    • 对话分离: 指将不同通信会话明确区分开,使得多个通信活动可以同时进行且互不干扰。会话层通过创建独立的会话上下文来实现这一点。
    • 对话分离是有序的开始, 终止和通信管理
  1. 对话控制
  • 控制通信双方在会话期间的交互方式,如半双工或全双工通信。
  • 管理通信中的优先级和权限。
  1. 错误处理
  • 提供机制来检测和恢复因网络问题或应用层错误导致的会话中断。
会话层的典型应用:
  • 远程登录:如SSH、Telnet等,建立安全的会话。
  • 文件传输:如FTP协议中的数据传输会话。
  • 视频会议和语音通话:需要会话管理以确保通信的连续性和质量。
会话层协议的例子:
会话层协议并不是单独运行的,许多现代网络应用将会话功能集成在应用层中。常见的有:
  • RPC(Remote Procedure Call)
  • NetBIOS
  • PPTP(Point-to-Point Tunneling Protocol)
总的来说,会话层在提供稳定的应用间通信中扮演了关键角色。随着技术发展,许多会话层功能已被合并到传输层或应用层协议中,如HTTP和TLS。

表示层(数据处理)

💡
主要职责: 协调数据格式, 数据结构, 数据传输语法, 压缩和加密
表示层(Presentation Layer)是OSI模型中的第6层,位于会话层之上,应用层之下。它的主要作用是数据的转换、加密/解密、压缩/解压缩,使不同系统或应用之间能够以统一的方式理解和处理数据。
表示层的核心功能:
  1. 数据格式化(Data Formatting)
  • 将数据转换为发送方和接收方都能够理解的格式。例如,在不同操作系统之间传输文件时,表示层会处理文件格式的差异。
  • 支持的格式包括文本(如ASCII、EBCDIC)、图片(如JPEG、PNG)、视频(如MP4)、音频(如MP3)等。
    • notion image
      notion image
  1. 数据加密和解密(Encryption and Decryption)
  • 在传输前对数据进行加密,保证数据的安全性。
  • 在接收后对数据进行解密,使其恢复到原始格式。
  1. 数据压缩和解压缩(Compression and Decompression)
  • 压缩数据以减少传输所需的带宽。
  • 解压缩数据以恢复其原始形式。
  1. 数据语法和语义的转换
  • 确保应用程序之间的语法规则(如数据结构)和语义规则(如数据意义)一致。
表示层的典型应用:
  • 文件传输:在FTP中,表示层确保文件格式在传输前后不变。
  • 数据加密:如HTTPS中使用TLS协议加密和解密数据。
  • 多媒体数据处理:如视频会议中的音频/视频压缩和解码。
表示层的实际协议和技术:
尽管OSI模型明确定义了表示层的功能,在实际应用中,许多功能已被合并到应用层或其他协议中。典型技术包括:
  • SSL/TLS:用于加密和解密数据。
  • JPEG、PNG:图像格式化协议。
  • MPEG、MP3:视频和音频压缩格式。
  • ASCII、Unicode:字符编码标准。
小结:
表示层的核心任务是“使数据变得可用和可理解”。它处理数据的格式、语义和结构,确保通信双方的应用程序能够无缝地交换信息,无需关心彼此的数据表达方式是否一致。

应用层

notion image
notion image
应用层(Application Layer)是OSI模型的第七层,也是最高层。它直接与用户的应用程序交互,为用户提供访问网络服务的接口。应用层是用户与网络之间的桥梁,负责为应用程序提供通信和数据交换的功能。
应用层的核心功能:
  1. 提供用户接口(User Interface)
  • 为用户和应用程序提供直接与网络交互的接口。例如,Web浏览器(如Chrome、Firefox)通过HTTP协议访问网页。
  1. 网络服务(Network Services)
  • 提供诸如文件传输、电子邮件、远程登录、数据库访问等网络服务。
  1. 数据识别(Data Identification)
  • 识别数据的目标应用程序或服务。例如,分辨一个文件传输请求与电子邮件发送请求。
  1. 错误检测和恢复
  • 应用层可以检测传输中的逻辑错误,并提供恢复机制。例如,电子邮件服务器检测附件是否完整。
  1. 协议实现(Protocol Implementation)
  • 应用层实现多个网络协议,用于不同类型的网络任务。
应用层的典型协议:
应用层包含许多常见的网络协议,每种协议负责不同的任务:
  • HTTP/HTTPS(超文本传输协议):用于网页浏览。
  • FTP(文件传输协议):用于文件上传和下载。
  • SMTP(简单邮件传输协议)IMAPPOP3:用于发送和接收电子邮件。
  • DNS(域名系统):将域名解析为IP地址。
  • Telnet、SSH:提供远程登录服务。
  • SNMP(简单网络管理协议):用于网络设备的管理。
应用层的实际应用:
  • Web浏览器:通过HTTP访问网页。
  • 电子邮件客户端:通过SMTP发送邮件,通过IMAP/POP3接收邮件。
  • 文件传输工具:通过FTP上传或下载文件。
  • 即时通讯:如WhatsApp、微信,通过应用层协议进行消息交换。
总结:
应用层是OSI模型中最接近用户的一层,直接支持各种用户任务。它通过多种协议和服务,为用户和应用程序提供访问网络资源的能力,确保不同设备和应用程序之间的无缝通信。

URL(Uniform Resource Locator,统一资源定位符)

URL是指互联网中用来标识和定位资源的标准化地址,它指向一个网络上的具体资源(如网页、图片、文件等)。URL是万维网中最重要的概念之一,通过它,用户可以访问资源。

URL的基本组成

一个完整的URL通常由以下几部分构成:
<协议>://<用户名:密码>@<主机>:<端口>/<路径>?<查询参数>#<片段标识符>
以下是各部分的详细解释:
notion image

URL的示例

一个实际的URL如下:
https://www.example.com:8080/articles/view?id=123&sort=asc#comments
按部分解析:
  • 协议:https
  • 主机:www.example.com
  • 端口:8080
  • 路径:/articles/view
  • 查询参数:id=123 和 sort=asc
  • 片段标识符:#comments

URL与URI的关系

  • URI(Uniform Resource Identifier,统一资源标识符) 是更广义的概念,用于标识资源的字符串。
  • URL是URI的一种,用于指定资源的位置,并提供访问资源的方法。
  • URI包括两种类型:
    • URL:标识资源位置(如https://example.com)。
    • URN(Uniform Resource Name):标识资源的名称(如urn:isbn:0451450523)。

URL的用途

  • 网页访问:用户通过URL访问网站,如https://www.google.com。
  • 文件下载:通过URL定位文件资源并下载。
  • API请求:开发者通过URL访问API接口并获取数据,如https://api.example.com/users?id=10。
  • 资源引用:HTML页面中通过URL引用外部资源(图片、CSS、JS文件等)。

URL编码(URL Encoding)

  • URL中的特殊字符(如空格、中文等)需要进行编码,以便能够在网络中传输。
  • 例如:
  • 空格编码为%20
  • 中文字符你好编码为%E4%BD%A0%E5%A5%BD
编码是基于ASCII字符集的,因此非ASCII字符需要转换为符合URL规范的格式。

常见协议和示例

notion image
总结
URL是定位互联网资源的标准工具。通过URL,用户可以指定资源的协议、位置、路径以及其他参数,从而实现灵活的资源访问。它在网络通信中扮演着不可或缺的角色。

HTTP(HyperText Transfer Protocol,超文本传输协议)

notion image
HTTP是一种应用层协议,用于在客户端(如浏览器)和服务器之间传输超文本(如HTML文件)及其他资源。它是万维网(World Wide Web)的基础协议,定义了客户端与服务器如何请求和传递信息。

HTTP的主要特点

1.1 无状态(HTTP1.0)
  • 含义: HTTP协议面向事务, 本身不保留客户端和服务器之间的通信状态, 本身也是无连接的, 即使使用了面向连接的TCP向上提供的服务.
  • 优点: 简化了服务器的设计,使其能够更高效地处理大量并发请求。
  • 缺点: 需要额外机制(如Cookie、Session)来维持会话状态。
1.2 基于请求-响应模式
  • 客户端发送请求(Request)。
  • 服务器根据请求返回响应(Response)。
  • 每次通信完成后连接即关闭(在HTTP/1.0中,HTTP/1.1及以后的版本引入了持久连接)。
1.3 灵活性
  • HTTP支持多种数据格式传输,例如HTML、JSON、XML、图片、视频等。
  • 通过MIME类型(Content-Type),HTTP可以处理和标识多种媒体类型。
1.4 可扩展性
  • HTTP协议支持多种方法(如GET、POST),并可以扩展自定义方法。
  • 支持HTTP头部(Header)的扩展,为应用层提供更多功能。

HTTP的工作原理

2.1 请求-响应模型
HTTP的通信基于以下步骤:
  1. 客户端发送请求
  • 客户端(如浏览器)构建一个HTTP请求,发送到服务器。
  • 请求包括方法(如GET/POST)、URL、协议版本和头部信息。
  1. 服务器处理请求并返回响应
  • 服务器接收请求后,处理并生成响应。
  • 响应包括状态码、头部信息和可选的响应体。
2.2 持久连接
  • HTTP/1.1默认启用持久连接(Keep-Alive),允许在同一连接上传输多个请求和响应,减少连接建立的开销。

HTTP的主要组成

notion image
3.1 HTTP请求
一个典型的HTTP请求由以下部分组成:
  • 请求行
    • 格式:方法 请求路径 协议版本
    • 示例:GET /index.html HTTP/1.1
  • 请求首部(Header)
    • 描述客户端和请求的附加信息,如Host、User-Agent、Accept等。
    • 格式 → 首部字段名 : 值
  • 请求体(Body)
    • 包含发送到服务器的数据(通常用于POST或PUT方法)。
3.2 HTTP响应
一个HTTP响应包括以下部分:
  • 状态行
    • 格式:协议版本 状态码 状态描述
    • 示例:HTTP/1.1 200 OK
  • 响应头部(Header)
    • 描述服务器和响应的附加信息,如Content-Type、Content-Length等。
  • 响应体(Body)
    • 包含服务器返回的数据(如HTML文档、JSON数据等)。

HTTP方法

HTTP定义了一组方法,用于指定客户端希望如何处理资源:
  • GET:请求从服务器获取资源。
  • POST:向服务器提交数据。
  • PUT:更新服务器上的资源。
  • DELETE:删除服务器上的资源。
  • HEAD:仅请求资源的头部信息,不返回正文。
  • OPTIONS:查询服务器支持的HTTP方法。
  • PATCH:部分更新服务器上的资源。

HTTP状态码

HTTP状态码是服务器响应的组成部分,用于指示请求的处理结果。常见状态码包括:
5.1 1xx(信息响应)
  • 100 Continue:继续请求。
5.2 2xx(成功)
  • 200 OK:请求成功。
  • 201 Created:资源已创建。
5.3 3xx(重定向)
  • 301 Moved Permanently:资源永久移动。
  • 302 Found:资源临时移动。
5.4 4xx(客户端错误)
  • 400 Bad Request:请求有误。
  • 401 Unauthorized:未授权。
  • 404 Not Found:资源未找到。
5.5 5xx(服务器错误)
  • 500 Internal Server Error:服务器内部错误。
  • 503 Service Unavailable:服务不可用。

HTTP的版本

6.1 HTTP/1.0
  • 每个请求-响应对建立一个新的TCP连接。
  • 不支持持久连接。
6.2 HTTP/1.1
  • 默认启用持久连接(Keep-Alive)。
  • 支持分块传输编码和请求管道化。
6.3 HTTP/2
  • 使用二进制格式传输数据,提高效率。
  • 支持多路复用(一个连接内并发多个请求)。
  • 支持头部压缩。
6.4 HTTP/3
  • 基于QUIC协议,使用UDP而非TCP,降低连接建立延迟。
7. HTTP的应用场景
  • 网页浏览:通过GET请求获取HTML页面和相关资源。
    • notion image
  • 文件上传与下载:通过POST或GET请求实现。
  • API通信:通过JSON或XML格式进行数据交换。
  • 流媒体服务:基于HTTP协议传输视频和音频流。
总结
HTTP是互联网通信的基础协议,通过其无状态、灵活和高效的特性,为客户端和服务器提供了可靠的通信机制。随着版本的不断演进,HTTP的性能和安全性也在持续提升,例如HTTP/2和HTTP/3的多路复用和低延迟特点。

FTP(File Transfer Protocol,文件传输协议)

notion image
FTP是一种标准的应用层协议,用于在客户端和服务器之间传输文件。它允许用户在远程服务器上上传、下载、删除、重命名、移动文件,适用于文件的批量传输和共享。

FTP的主要特点

1.1 基于客户端-服务器模型
  • 客户端:请求访问远程服务器并传输文件的用户端设备或软件。
  • 服务器:存储文件并处理客户端的文件操作请求。
1.2 使用双通道通信
FTP的独特之处在于采用了 控制通道数据通道 两种通信方式:
  • 控制通道:首先建立, 用于传输FTP命令和服务器响应(建立后始终存在)。
  • 数据通道:后于控制通道建立, 用于传输文件数据或目录信息(在需要时建立,任务完成后关闭)。
1.3 支持多种传输模式
  • 主动模式(Active Mode):
    • 服务器主动连接客户端的数据端口。
    • 对防火墙设置较为敏感,可能需要额外配置。
  • 被动模式(Passive Mode):
    • 客户端连接服务器指定的数据端口。
    • 更适合穿越防火墙和NAT的场景。
1.4 不同的文件传输类型
  • ASCII模式: 用于传输文本文件,自动处理换行符。
  • 二进制模式: 用于传输图像、音频、视频等二进制文件,确保数据不被修改。
1.5 可靠传输
  • FTP面向连接, 使用TCP提供可靠文件传输

FTP的工作原理

notion image
FTP的文件传输过程包括以下步骤:
  1. 建立连接:
      • 客户端与服务器通过控制通道(默认端口21)建立连接。
      • 客户端发送用户认证信息(用户名和密码)。
  1. 命令与响应:
      • 客户端通过控制通道向服务器发送FTP命令(如上传、下载等)。
      • 服务器根据命令返回响应信息。
  1. 传输数据:
      • 客户端与服务器通过数据通道(默认端口20或随机分配)传输文件或目录列表。
  1. 关闭连接:
      • 文件传输完成后,关闭数据通道。
      • 操作结束时,关闭控制通道。

FTP常见命令

notion image

FTP的优缺点

优点
  1. 跨平台支持:
  • 可在多种操作系统上使用,支持常见客户端工具(如FileZilla)。
  1. 批量传输:
  • 支持大文件和多个文件的上传和下载。
  1. 简单易用:
  • 提供丰富的命令,易于使用。
缺点
  1. 安全性较低:
  • 默认情况下,FTP以明文传输用户名、密码和数据,容易被窃听。
  1. 对防火墙敏感:
  • 特别是主动模式,可能需要额外的网络配置。
  1. 协议较旧:
  • 与现代协议(如SFTP、FTPS)相比,功能较少,安全性不足。

FTP的安全扩展

为弥补FTP的安全性不足,衍生出以下安全协议:
  • FTPS(FTP Secure):
    • 在FTP基础上通过SSL/TLS加密传输数据,增强安全性。
  • SFTP(SSH File Transfer Protocol):
    • 基于SSH协议的文件传输协议,具有更高的安全性和简洁性。
    • 与FTP完全不同,但常用于替代FTP。

FTP的常见应用场景

  1. 网站维护:
      • 上传和管理网站文件。
  1. 文件共享:
      • 在企业或团队内部共享大文件。
  1. 备份与存储:
      • 将重要数据定期上传到远程服务器。
  1. 批量下载:
      • 下载公开资源(如开源软件、数据集等)。

示例:使用FTP上传文件

假设您要使用FTP上传一个文件到服务器:
  1. 打开FTP客户端(如命令行、FileZilla等)。
  1. 连接服务器:ftp ftp.example.com
  1. 登录:输入用户名和密码。
  1. 切换到目标目录:cd /target/directory
  1. 上传文件:put localfile.txt
  1. 退出:bye
总结
FTP是早期互联网文件传输的主要协议,具有简单、易用、跨平台的特点。然而,由于其安全性较低,现代应用场景中更多使用FTPS或SFTP来替代FTP,以满足数据保护的需求。

TELNET(Teletype Network,远程登录协议)

TELNET是一种标准的网络协议,用于通过命令行界面实现远程登录到另一台计算机或网络设备。它允许用户在本地计算机上操作远程计算机,就像直接使用远程计算机一样。

TELNET的主要特点

1.1 基于客户端-服务器模型
  • 客户端: 用户本地设备,通过TELNET程序发起远程会话。
  • 服务器: 远程主机或设备,响应客户端的请求并提供远程操作功能。
1.2 命令行接口
  • 提供字符界面的远程登录功能,用户可以在远程主机上执行命令和管理系统。
1.3 明文传输
  • TELNET在通信过程中以明文传输数据,包括用户名和密码。
  • 安全性较低,容易被窃听,因此在现代应用中逐渐被更安全的协议(如SSH)取代。
1.4 标准化协议
  • 使用TCP作为传输协议,默认端口号为23
  • 支持跨平台操作,可用于不同类型的操作系统之间的远程连接。

TELNET的工作流程

  1. 建立连接:
      • 客户端通过TCP连接到远程主机的TELNET服务(默认端口23)。
  1. 用户认证:
      • 用户输入用户名和密码进行认证。
  1. 远程控制:
      • 登录成功后,客户端会获得一个远程命令行界面,可以直接对远程主机进行操作。
  1. 断开连接:
      • 用户退出会话或客户端主动关闭连接。

TELNET的使用方法

3.1 命令格式
在终端或命令行界面输入以下命令:
telnet <主机名或IP地址> [端口号]
例如:
telnet 192.168.1.1
3.2 常见操作
  • 远程登录: 使用TELNET连接到网络设备(如路由器、交换机)进行配置。
  • 测试端口连接: 检查某个端口是否对外开放:
telnet example.com 80

TELNET的优缺点

优点
  1. 简单易用: 命令行界面轻量级,适合基础远程管理任务。
  1. 跨平台支持: 可在多种操作系统之间使用。
  1. 适合局域网: 在受控环境下(如内部网络),TELNET仍然有效。
缺点
  1. 明文传输: 用户名、密码和通信内容未加密,存在安全隐患。
  1. 功能有限: 仅提供基本的远程登录功能,不支持现代安全和加密要求。
  1. 安全性不足: 容易被中间人攻击(MITM),不适合在互联网上使用。

TELNET的应用场景

尽管TELNET逐渐被SSH取代,但它在某些特定环境中仍有应用:
  1. 网络设备配置:
  • 配置路由器、交换机、防火墙等设备。
  1. 系统维护:
  • 在局域网中远程登录和维护服务器。
  1. 端口测试:
  • 用于检查远程主机的特定端口是否开放。
  1. 嵌入式设备调试:
  • 在嵌入式系统中调试和控制设备。

TELNET与SSH的比较

notion image
总结
TELNET是早期用于远程登录和管理的基础协议,因其简单性和跨平台支持,曾被广泛使用。然而,由于其明文传输的安全性问题,在现代网络中已逐渐被SSH替代。
尽管如此,TELNET仍然在某些受控网络或特定环境中发挥作用,例如网络设备配置和端口测试。如果需要更高的安全性,应优先使用SSH。

*SSH

SSH(Secure Shell)是一种网络协议,用于在不安全的网络上安全地访问远程计算机。它通过加密确保通信的保密性和完整性,从而防止数据在传输过程中被窃取或篡改。SSH通常用于登录远程服务器、执行命令、传输文件以及进行远程管理。

SSH 的主要特性

  1. 安全性
  • 通过公钥加密和对称加密确保数据在传输过程中安全。
  • 保护通信免受中间人攻击和窃听。
  1. 认证机制
  • 用户可以通过密码认证或更安全的公钥认证方式进行登录。
  • 公钥认证通过生成一对密钥(公钥和私钥),私钥保存在客户端,公钥保存在服务器端。
  1. 功能强大
  • 提供远程命令行访问。
  • 支持文件传输(如 scp 和 sftp)。
  • 可以设置端口转发(如隧道)以加密其他服务的通信。
  1. 跨平台
  • 可用于多种操作系统,如Linux、macOS 和 Windows。

常见使用场景

  1. 远程登录
  • 通过命令 ssh user@hostname 远程访问服务器。
  1. 文件传输
  • 使用 scp 或 sftp 安全地上传或下载文件。
  • 示例:scp file.txt user@hostname:/path/to/destination
  1. 端口转发
  • 将本地或远程端口通过 SSH 加密隧道转发。
  • 示例:ssh -L local_port:remote_host:remote_port user@hostname
  1. 自动化管理
  • 利用 SSH 在脚本中执行远程命令,方便运维和自动化。

SSH 的常用工具

  • OpenSSH:一种流行的开源实现,默认包含在许多Linux和macOS系统中。
  • PuTTY:适用于Windows的SSH客户端。
  • WinSCP:用于SSH文件传输的图形化工具。

SMTP, POP和MIME

notion image
SMTP、POP和MIME是电子邮件通信中的三种核心技术和协议。它们分别负责邮件的发送接收格式扩展

SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)

💡
负责传输
作用
  • SMTP是用来发送电子邮件的协议,主要用于从邮件客户端将邮件发送到邮件服务器,或从一个邮件服务器转发到另一个邮件服务器。
特点
  1. 基于文本: SMTP通过文本命令控制邮件的传输。
  1. 面向连接: 使用TCP协议,默认端口为25,现代安全邮件通信通常使用587465(加密)。
  1. 仅用于发送: 不支持接收邮件,接收邮件需要使用POP或IMAP协议。
工作过程
  1. 客户端使用SMTP连接邮件服务器。
  1. 通过SMTP命令发送邮件(如MAIL FROM、RCPT TO)。
  1. 服务器确认接收并将邮件存储或转发给目标服务器。
SMTP的命令示例
  • HELO:启动SMTP会话。
  • MAIL FROM:指定发送者地址。
  • RCPT TO:指定接收者地址。
  • DATA:发送邮件内容。
SMTP的应用场景
  • 用户通过邮件客户端(如Outlook或Thunderbird)发送邮件。
  • 邮件服务器之间的邮件中继和转发。

POP(Post Office Protocol,邮局协议)

💡
负责下载
作用
  • POP是一种用于 接收 电子邮件的协议,允许用户从邮件服务器下载邮件到本地计算机,并可以离线访问。
版本
  • POP2: 较早期版本,功能有限。
  • POP3: 当前广泛使用的版本,默认端口为110,加密端口为995
特点
  1. 下载并删除: 默认情况下,POP会从服务器下载邮件到本地并从服务器上删除(除非设置保留)。
  1. 离线访问: 下载后的邮件可以离线查看。
  1. 单向同步: 本地和服务器之间的邮件状态不会保持同步。
工作过程
  1. 用户的邮件客户端与邮件服务器建立连接。
  1. 用户登录服务器(通过用户名和密码)。
  1. 客户端下载邮件并删除服务器上的邮件(可设置保留邮件)。
  1. 断开连接。
POP的应用场景
  • 适用于只需在单台设备上查看邮件的场景,例如个人PC或离线邮件管理。

MIME(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展)

💡
增加附件格式
作用
  • MIME是用于扩展电子邮件功能的一套标准,允许电子邮件支持传输非文本内容(如图片、音频、视频)和多语言文本。
  • 是用户和SMTP的中间层
特点
  1. 扩展文本格式: 支持ASCII之外的字符集,如中文、日语等。
  1. 多部分邮件: 支持邮件包含多种类型的内容(如文本和附件)。
  1. 附件支持: 允许通过Base64编码等方式将二进制文件嵌入到电子邮件中。
MIME头部示例
  • MIME-Version: 标志 MIME 的版本。 现在的版本号是 1.0。若无此行,则为英文文本。
  • Content-Description: 这是可读字符串,说明此邮件主体是否是图像、音频或视频。
  • Content-Id: 邮件的唯一标识符
  • Content-Transfer-Encoding:指定内容的编码方式,如Base64。
  • Content-Type:指定邮件内容的类型,如text/plain(纯文本)、image/jpeg(图像)。
MIME的应用场景
  • 多媒体邮件:嵌入图片、音频、视频等。
  • 多语言邮件:支持多种字符集和语言。
  • 邮件附件:发送文件(如PDF、图片)作为邮件的附加内容。

SMTP、POP和MIME的关系

notion image
notion image
工作流程示例
  1. 邮件发送(SMTP):
  • 用户通过SMTP将邮件从客户端发送到邮件服务器。
  • 邮件服务器使用SMTP将邮件转发给目标服务器。
  1. 邮件接收(POP):
  • 用户的邮件客户端通过POP从服务器下载邮件到本地。
  1. 邮件内容解析(MIME):
  • 如果邮件包含图片或附件,邮件客户端通过MIME解析邮件内容,并展示或下载附件。
总结
  • SMTP:用于发送和转发邮件。
  • POP:用于接收邮件,将邮件下载到本地。
  • MIME:扩展邮件内容的表现形式,支持多媒体和附件传输。
这些技术共同构成了电子邮件系统的基础,使得现代邮件通信功能丰富且高效。

SNMP(Simple Network Management Protocol,简单网络管理协议)

SNMP是一种用于网络设备管理和监控的协议。它是一种应用层协议,允许网络管理员通过集中管理工具监控和管理网络设备,如路由器、交换机、服务器、打印机等。以下是关于SNMP的关键点:

主要功能

  • 监控:获取设备的运行状态信息,例如 CPU 使用率、内存使用情况、网络流量等。
  • 配置管理:更改设备配置或设置,例如更新网络配置。
  • 故障管理:接收和处理设备发送的故障警报(称为 Trap)。
  • 性能管理:分析网络性能数据,检测瓶颈或异常。

工作原理

SNMP 基于 客户端-服务器模型,主要包括以下组件:
  • 管理站(Manager)
    • 运行 SNMP 管理软件的设备,通常是网络管理员使用的控制中心。
    • 向设备发送请求并接收响应。
  • 被管理设备(Agent)
    • 运行 SNMP Agent 的网络设备(如路由器、交换机、服务器等)。
    • 收集设备的状态信息并响应 SNMP 请求。
  • 管理信息库(MIB)
    • Management Information Base 是一个标准化的数据库,用于存储设备的管理信息。
    • 通过 对象标识符(OID) 访问 MIB 中的具体数据。

通信方式

SNMP 使用 UDP 协议进行通信,默认端口:
  • UDP 161:用于发送和接收 SNMP 请求。
  • UDP 162:用于接收 SNMP Trap(设备主动发送的警报)。

SNMP 的版本

SNMP 共有三个主要版本:
  1. SNMPv1
  • 最早的版本,功能简单,安全性较低(仅使用明文的社区字符串进行身份验证)。
  1. SNMPv2c
  • 增强了性能和数据处理能力,但安全性仍然依赖社区字符串。
  1. SNMPv3
  • 提供了更高的安全性,包括认证和数据加密。
  • 是目前推荐使用的版本。

使用场景

  • 数据中心网络设备的监控。
  • IT 基础设施性能和健康状态的跟踪。
  • 自动化故障报警。
  • 网络流量分析和优化。

示例

使用 SNMP 获取设备 CPU 使用率的流程:
  1. 管理站发送一个 GET 请求,包含目标设备的 CPU OID。
  1. 被管理设备的 Agent 从 MIB 中检索 CPU 使用率数据。
  1. 设备返回包含 CPU 数据的响应。

DNS(Domain Name System,域名系统)

notion image
DNS是互联网的重要基础设施之一,用于域名(如www.example.com)解析为IP地址(如192.0.2.1),从而使人类可读的域名可以被计算机理解并用于通信。简单来说,DNS是互联网的“电话簿”。
💡
点分多级域名: 字段从前到后层级依次升高

为什么需要DNS?

计算机在网络中通过IP地址进行通信,但IP地址不容易记忆。为了解决这一问题,DNS系统应运而生,其主要功能是:
  • 将域名转换为IP地址(正向解析)。
  • 将IP地址转换为域名(反向解析)。
例如:
  • 输入域名www.example.com,DNS将其解析为IP地址192.0.2.1,浏览器即可连接到对应服务器。
    • 补充: 顶级域TLD
      notion image
      notion image
      notion image

DNS的工作原理

DNS解析的过程通常分为以下几个步骤:
  1. 用户请求解析:
      • 用户在浏览器中输入域名,如www.example.com。
      • 请求发送到用户计算机的本地DNS解析器。
  1. 本地缓存查询:
      • 本地DNS解析器检查是否已缓存了对应的IP地址。
      • 如果缓存中有记录,直接返回IP地址;如果没有,继续查询上级DNS服务器。
  1. 递归查询(发 - 发 - … - 发 - 收 - … - 收 - 收):
      • 本地DNS解析器向上级DNS服务器(如ISP的DNS服务器)发送递归查询请求。
      • 上级服务器可能继续向根DNS服务器、顶级域名服务器(TLD DNS)等查询。
  1. 迭代查询(发 - 收 - 发 - 收 - …):
      • 如果递归查询到达根DNS服务器,根服务器会指向对应的TLD DNS服务器(如.com的DNS服务器)。
      • TLD DNS服务器指向具体域名的权威DNS服务器。
  1. 权威解析:
      • 权威DNS服务器提供目标域名的最终解析结果(IP地址)。
  1. 返回结果:
      • IP地址通过递归链路返回给本地DNS解析器。
      • 用户的浏览器使用该IP地址连接目标服务器。

DNS的结构

DNS是一个分布式、层次化的系统,其结构包括以下几个层级:
3.1 根DNS服务器
  • 位于DNS体系结构的顶端,负责管理顶级域名(TLD)的信息。
  • 当前全球有13组根DNS服务器,分别以字母A到M命名。
3.2 顶级域名服务器(TLD DNS)
  • 管理某一类顶级域名的解析。
  • 常见顶级域名(TLD):
    • 通用顶级域名(gTLD):如.com、.org、.net。
    • 国家顶级域名(ccTLD):如.cn(中国)、.uk(英国)。
3.3 权威DNS服务器
  • 保存某个特定域名的具体解析记录。
  • 例如:管理example.com的权威DNS服务器保存了www.example.com的IP地址信息。
3.4 本地DNS解析器
  • 位于用户网络内,负责接收用户的DNS查询请求并返回结果。
  • 大多数情况下,本地DNS解析器会缓存常用的域名解析结果以提高解析速度。

DNS记录类型

notion image

DNS的查询模式

递归查询
  • 用户请求域名解析时,本地DNS解析器全权负责获取最终结果。
  • 本地DNS解析器会向其他DNS服务器逐层递归查询,直到得到IP地址。
迭代查询
  • 用户请求解析时,DNS服务器提供下一步的查询方向,而不是直接返回结果。
  • 用户逐级查询DNS服务器,最终获取目标IP地址。

DNS的缓存机制

为了提高解析效率和减少服务器负载,DNS实现了缓存机制:
  • 本地缓存: 用户的计算机会缓存最近查询的域名。
  • 服务器缓存: DNS服务器会缓存查询结果,缓存的有效期由TTL(生存时间)值决定。

DNS的安全问题

7.1 常见安全风险
  1. DNS劫持:
  • 攻击者篡改DNS解析结果,将用户引导到恶意网站。
  1. DNS缓存中毒:
  • 攻击者向DNS服务器注入虚假的解析记录,导致用户访问错误的目标地址。
  1. DDoS攻击:
  • 使用DNS服务器作为放大器,向目标发送大量流量。
7.2 解决方法
  1. DNSSEC(DNS安全扩展):
  • 使用数字签名验证DNS记录的真实性。
  1. 加密DNS查询:
  • 使用DoH(DNS over HTTPS)或DoT(DNS over TLS)加密DNS查询过程,防止窃听和篡改。

总结

  • DNS的核心功能: 将人类可读的域名与计算机可读的IP地址相互转换。
  • DNS的结构: 根服务器、顶级域名服务器、权威服务器和本地解析器分层协作。
  • DNS的重要性: 是互联网通信的基础,但需要通过安全机制防范攻击。
通过DNS系统,我们能够方便地访问互联网资源,无需记忆复杂的IP地址,大大提升了互联网的可用性和用户体验。
Loading...
JAY
JAY
Software sprog in NJU
最新发布
为安装在Parallels Desktop上的OpenEuler虚拟机扩容
2025-4-18
胶片里的苏州
2025-4-17
2024 计算机网络 课程笔记
2025-4-15
2024 数据结构与算法 课程笔记
2025-4-15
2023 计算系统基础 课程笔记
2025-4-15