电子邮件
电子邮件系统采用三个主要构件组成:用户代理、邮件服务器、电子邮件所需的协议
我们可以简单的认为邮件服务器中有很多邮箱,还有用来缓存再转发邮件的缓存,发送方使用用户代理通过邮件发送协议。例如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把数据类型分为两大类:简单类型和结构化类型。
简单类型:
结构化类型: