当前位置: 首页 > news >正文

应用层——电子邮件、MIME、简单网络管理协议SNMP

电子邮件

        电子邮件系统采用三个主要构件组成:用户代理、邮件服务器、电子邮件所需的协议


        我们可以简单的认为邮件服务器中有很多邮箱,还有用来缓存再转发邮件的缓存,发送方使用用户代理通过邮件发送协议。例如SMTP将邮件发送给发送方。

        邮件服务器发送方邮件服务器同样通过邮件发送协议,将该邮件发送送给接收方。邮件服务器接收方在方便的时候,需要用户代理通过邮件读取协议。

电子邮件发送与接收的过程 

        1、发送方的用户代理作为SMTP客户与发送方邮件服务器中的SMTP服务器进行TCP连接,然后基于这条连接是由SMTP协议来发送邮件给发送方邮件服务器,

        2、发送方邮件服务器中的SMTP客户与接收方邮件服务器中的SMTP服务器进行TCP连接,然后基于这条连接使用SMTP协议来发送已收到的待转发邮件给接收方

        3、邮件服务器接收方的用户代理作为pop 3客户与接收方邮件服务器中的pop 3服务器进行TCP连接。

        4、然后基于这条连接使用pop 3协议,从接收方邮件服务器读取邮件

Q1:可不可以让邮件服务器程序就在发送方和接受方的计算机中运行。

A1:不行,并非所有计算机都可以运行邮件服务器程序——没有足够存储空间,或是没有足够CPU能力来运行邮件服务器程序。

        其次,邮件服务器程序必须不间断地运行。 

简单邮件传送协议SMTP 

        我们以发送方邮件服务器使用SMTP协议给接收方,邮件服务器发送待转发的邮件为例。

建立连接

        1、发送方邮件服务器周期性的扫描邮件缓存的。如果发现有待转发的邮件,则发送方邮件服务器中的SMTP客户会与接收方邮件服务器中的SMTP服务器进行TCP连接, 端口号为25,

        2、SMTP客户就可以基于这条TCP连接给SMTP服务器发送SMTP命令共14条,SMTP服务器也会给SMTP客户发送相应的应答共21种,SMTP客户与服务器之间通过命令与应答的交互方式,最终实现SMTP客户发送邮件给SMTP服务器。

传输电子邮件

SMTP服务器未能准备的代码解释

(其他的后续在整理)

连接释放

        

电子邮件的信息格式 

        首部中包含有一些关键字,后面加上冒号,例如关键字From后面填入发件人的电子邮件地址,一般由邮件系统自动填入关键字To,后面填入一个或多个收件人的电子邮件。

        关键字CC后面填入一个或多个收件人以外的抄送人的电子邮件地址,抄送人收到邮件后可看可不看,邮件可回可不回。

        邮件关键字Subject后面填入邮件的主题,它反映了邮件的主要内容。

        最重要的关键字是To和Subject,它们往往是必填选项。

        用户写好首部后,邮件系统将自动地将信封所需的信息提取出来,并写在信封上。所以用户不需要填写电子邮件信封上的信息。

        在填写完首部各关键字的内容后,用户还需要撰写邮件的主体部分,这才是用户想传递给收件人的核心信息。

通用互联网邮件扩充MIME 

        所以,提出了多用途因特网邮件扩展MIME

        MIME依旧使用原来的邮件格式,且增加了邮件主体结构,并定义了传送非ASCLL码的编码规则。


        MIME主要包括以下三部分内容:



        首部字段的内容及意义

 内容传送编码Content-Transfer-Encoding

        内容传送编码用于将非ASCII字符的数据转换为可通过电子邮件传输的ASCII字符格式。

        由于传统的SMTP协议只能传输7位ASCII码字符,因此需要对包含非ASCII字符的数据进行编码,以确保其在传输过程中不被损坏。

Quoted-printable  

        这种编码方法的要点就是对于所有可打印的ASCII码,除特殊字符等号“=”外,都不改变。

        首位是1的说明需要被改写内容,将每个字节的二进制代码拆成2个十六进制数字来表示,并且加上一个“=”。相当于将1个字节变成了3个字节。

Base-64编码 

        将二进制代码划分为24位长的单元,在将24位长单元划分为4个6位组,6位组转化ASCLL码的方式如下:

        6位的二进制代码共有64种不同的值,从0到63——用A表示0,B表示1,直到26个大写字母排完后再是26个小写字母,再后面是10个数字,最后“+”表示62,“/”表示63。

        再用两个连在一起的等号“==”和一个等号“=”,分别表示最后一组的代码只有8位或16位。回车和换行都忽略,它们可以插入任何地方。        

内容类型 

        mixed子类型:允许单个报文含有多个相互独立的子报文,每个子报文可有自己的类型和编码。

        alternative子类型:允许单个报文含有同一数据的多种表示。给多个使用不同硬件和软件系统的收件人发送备忘录这类报文就很有用。

        parallel子类型:允许单个报文含有可同时显示的各个子部分。

        digest子类型:允许单个报文含有一组其他报文。

MIME的举例 

简单网络管理协议SNMP 

网络管理基本概念 

        网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求,如实时运行性能、服务质量等。网络管理常简称为网管。

        管理站又称为管理器,是整个网络管理系统的核心它通常是个有着良好图形界面的高性能的工作站,并由网络管理员直接操作和控制。所有向被管设备发送的命令都是从管理站发出的。

        管理站中的关键构件是管理程序管理程序在运行时就成为管理进程。管理站或管理程序都可称为管理者或管理器

        在被管网络中有很多被管设备,被管设备可以是主机、路由器、打印机或调制解调器等。 被管设备有时可称为网络元素或网元,且在被管设备中也有一些不能被管的对象

        在每一个被管设备中都要运行一个程序以便和管理站中的管理程序进行通信。这些运行着的程序叫作网络管理代理程序,或简称为代理。代理程序在管理程序的命令控制下,在被管设备上采取本地行动。

        其中还有一个重要构件式网络管理协议,简称为网管协议。之后讨论它的作用。

        

        简单网络管理协议SNMP中的管理程序和代理程序按客户服务器方式工作管理程序运行SNMP客户程序,而代理程序运行SNMP服务器程序

        在被管对象上运行的SNMP服务器程序不停地监听来自管理站的SNMP客户程序的请求,一旦发现了,就立即返回管理站所需的信息,或执行某个动作。

        在网管系统中往往是一个客户程序与很多的服务器进行交互。

        网络管理有个基本原理:必然会给该对象添加一些软件或硬件,但这种“添加”对原有对象的影响必须尽量小些。 

        若网络元素使用的不是SNMP协议而是另一种网络管理协议,那么SNMP协议就无法控制该网络元素。这时可使用委托代理。委托代理能提供如协议转换和过滤操作等功能对被管对象进行管理。

        SNMP的网络管理由三个部分组成,即SNMP本身、管理信息结构SMI和管理信息库MIB。

        SNMP定义了管理站和代理之间所交换的分组格式,所交换的分组包含各代理中对象(变量)名。SNMP负责读取和改变这些数值。

        SMI定义了命名对象和定义对象类型(包括范围和长度)的通用规则,以及把对象和对象的值进行编码的规则。这样做是为了确保网络管理数据的语法和语义无二义性。

        MIB在被管理的实体中创建了命名对象,并规定了其类型。

        总之,SMI建立规则,MIB对变量进行说明,而SNMP完成网管动作

SNMPV3的安全特性 

        只有被授权的人员才有资格执行网络管理的功能(如关闭某一条链路 ),和读取有关网络管理的信息(如读取一个配置文件的内容)。

管理信息结构SMI 

        SMI的功能有三个:

被管对象的命名 

        SMI规定,所有被管对象都必须处在对象命名树。

        这棵树形结构为每个被管理对象提供了一个唯一的位置,从而确保了在整个网络中对象的标识是唯一的。对象命名树的根节点没有名字,其下分为多个分支,每个分支代表不同的组织或标准机构。

        在mib-2下面包含了所有被SNMP管理的对象

被管对象的数据类型 

        SMI使用基本的抽象语法记法1来定义数据类型,但又增加了一些新的定义。

        任何数据都有两种重要的属性,即“值”与“类型”

        SMI把数据类型分为两大类:简单类型和结构化类型

简单类型:


结构化类型:

相关文章:

应用层——电子邮件、MIME、简单网络管理协议SNMP

电子邮件 电子邮件系统采用三个主要构件组成:用户代理、邮件服务器、电子邮件所需的协议 我们可以简单的认为邮件服务器中有很多邮箱,还有用来缓存再转发邮件的缓存,发送方使用用户代理通过邮件发送协议。例如SMTP将邮件发送给发送方。 邮件服…...

我与C语言二周目邂逅vlog——8.编译和链接

C语言中的编译和链接过程详细总结 1. 概述 C 语言是一种经典的系统级编程语言,其开发过程包括多个阶段,其中最关键的就是编译和链接过程。编译和链接的理解对于掌握 C 语言程序的构建至关重要。在本篇文章中,我们将深入讲解 C 语言的编译和…...

Views Page 视图页面

下图中显示的 Views 页面允许自定义网格级别及其相应的 View。 Views (视图) 页面包含两个主要部分: 关卡设计师;请注意,其他设计器页面为在关卡设计器中选择的 View 提供设置;Properties (属性) 窗口&…...

Win10 IDEA远程连接HBase

Win10 IDEA远程连接HBase Win10 IDEA连接虚拟机中的Hadoop(HDFS) 关闭Hadoop和Hbase 如果已经关闭不需要走这一步 cd /usr/local/hbase bin/stop-hbase.sh cd /usr/local/hadoop ./sbin/stop-dfs.sh获取虚拟机的ip 虚拟机终端输入 ip a关闭虚拟机…...

1.centos 镜像

centos 它有官网的下载地址:https://vault.centos.org/ 选择想要的版本,我选择 centos7.8 进入到镜像目录 isos 选择 x86_64 选择想要的版本,我选择 CentOS-7-x86_64-DVD-2003.iso 安装就正常安装就行。我选择虚拟机安装。这个参考&…...

electron 操作 cookie

前言:在 Electron 中操作 Cookie 可以使用electron模块提供的session对象来实现。 一、获取 Cookie 通过defaultSession获取默认会话对象,然后调用cookies.get方法并传入要获取 Cookie 的 URL 地址,以获取该 URL 对应的 Cookie。 const el…...

黑马软件测试第一篇_Linux

Linux 操作系统 说明: 所有硬件设备组装完成后的第⼀一层软件, 能够使⽤用户使⽤用硬件设备的软件 即为操作系统 常见分类 桌⾯面操作系统: Windows/macOS/Linux移动端操作系统: Android(安卓)/iOS(苹果)服务器器操作系统: Linux/Windows Server嵌⼊入式操作系统: Android(底…...

npm run dev 启动前端项目的原理

在一个使用 Vite 构建工具的 Vue 项目中,当你运行 npm run dev 时,实际执行的命令是 vite。为了理解这一过程,我们需要了解几个关键点: package.json 文件中的 scripts 字段: "scripts": {"dev": "vite&…...

【2024年SCI一区新算法:黑翅鸢优化算法 】分布式电网故障定位

1 场景介绍 使用10节点网络 2 故障设置 分为单重故障和两重故障 %% 2 故障设置 %% 1)单重故障 I[1,-1,0,0,-1,-1,0,0,-1,-1]; % 区段1故障 节点状态实际编码(是否流过故障电流) % I[1,1,0,0,-1,-1,0,0,-1,-1]; % 区段2故障 % I[…...

PyTorch 中 12 种张量操作详解

创作不易,还请各位同学三连点赞!!收藏!!转发!!! 对于刚入门学习Python还找不到方向的小伙伴可以试试我的这份学习方法和籽料,免费自取!! PyTorc…...

雷池WAF自动化实现安全运营实操案例终极篇

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...

微信小程序实现canvas电子签名

一、先看效果 小程序canvas电子签名 二、文档 微信小程序canvas 组件文档 微信小程序canvas API文档 H5Canvas文档 三、分析 1、初始话Canvas容器 2、Canvas触摸事件,bindtouchstart(手指触摸动作开始)、bindtouchmove(手指触摸…...

【SpringCloud】Seata微服务事务

Seata微服务事务 分布式事务问题:本地事务分布式事务演示分布式事务问题:示例1 分布式事务理论CAP定理一致性可用性分区容错矛盾 Base理论解决分布式事务的思路 初识SeataSeata的架构部署TC服务微服务集成Seata引入依赖配置TC地址 其他服务 动手实践XA模…...

重新阅读《马说》,感悟“伯乐相马”背后的被选择与选择的大智慧

“初闻不识曲中意,再听已是曲终人”。世有伯乐,然后有千里马。千里马常有,而伯乐不常有。无论你是考研考公等考试大军中的一员,还是已步入社会的打工人或者领导,当你面临被人选择或者选择人时,皆可从《马说…...

深入拆解TomcatJetty(三)

深入拆解Tomcat&Jetty(三) 专栏地址:https://time.geekbang.org/column/intro/100027701 1 Tomcat组件生命周期 Tomcat如何如何实现一键式启停 Tomcat 架构图和请求处理流程如图所示: 对组件之间的关系进行分析,…...

MySQL 实现简单的性能优化

一:硬件优化 更高的网络带宽:在处理大规模的远程请求时可以提高MySQL服务器的响应速度; 更大的内存空间:有助于缓存更多的数据库数据,减少磁盘I/O操作,提高整体性能; 换用企业级SSD&#xff1…...

AB包资源管理器

简介 ABMgr(Asset Bundle Manager)类是一个用于管理 Unity 中 AssetBundle 资源加载的管理器。它通过字典缓存和管理加载的 AB 包,同时支持同步和异步加载。还包含了卸载和清理 AB 包的方法。 功能解析: 主包加载与依赖管理&…...

Centos7源报错问题

原因:是因为centos7在024年6月份停止维护,导致默认镜像不能使用,更改镜像即可mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/…...

Openlayers高级交互(2/20):清除所有图层的有效方法

Openlayers项目中,经常会放置很多的图层,在业务操作的时候,会做出删除所有图层的行为。这里面给出了一个详细的方法,能够有效的解决 清除所有图层的问题。 效果图 专栏名称内容介绍Openlayers基础实战 (72篇&#xff…...

黑马JavaWeb-day02

什么是JavaScript? JavaScript:简称Js,是一门跨平台、面向对象的脚本语言。是用来控制网页行为的,它能使网页可交互 JavaScript和Java是完全不同的语言,无论是概念还是设计。但是基础语法类似。 JavaScript JavaScript引入方式…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...

python/java环境配置

环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

LLMs 系列实操科普(1)

写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...