封面
《支持实时认证的S MTP网关》Word格式可编辑含目录
内容含搞要关键字正文等。
精心整理放心阅读质优价廉欢迎下载
文档信息
支持实时认证的SMTP网关目录
1. 引言
2. 邮件网关体系结构
3.异步socket处理在实时处理
1 接收外部连接请求
2 读A缓冲
3 进程阻塞等待后台邮件服务器接收并响应
4 读B缓冲写到A
5 进程阻塞
6 断开连接
1 从待读socket队列中取出socket指针
2 则建立一对socket
3 读该socket
4 回收该socket返回1
1 从待写socket队列中取出socket指针
2 执行SMTP状态检查
3 回收该socket返回1
4. 邮件网关测试
5. 结论
正文
针对目前的S MTP网关无法进行身份验证 以及对邮件处理时延较大的问题提出了一种实时处理的SMTP邮件网关可以在邮件接收时把交互命令发送到后台邮件服务器进行身份验证并实时处理邮件内容与非实时系统相比减小了网关对邮件处理的时延。通过把socket读写队列用异步I/O方式并行化处理避免了进程因网络时延而阻塞对比结果显示异步方式比同步方式的系统吞吐量有显著提高。
关键字 SMTP网关;实时认证;异步socket
1. 引言
随着邮件的应用越来越广泛垃圾邮件的威胁越来越大 邮件过滤处理在组织结构中起着越来越重要的作用。邮件过滤一般采用以下几种方式在邮件服务器端客户端或者[1]基于其两者的邮件过滤系统对于大型局域网内的多个邮件服务器 [2]一般采用S NMP协议及其MIB模型设计管理系统对于本地没有邮件服务器的机构往往采用P OP3网关方式 [3]给出了一种用P OP3网关传输PGP加密邮件的架
构对一些机构 出于保护本地邮件服务器一般采用S MTP网关方式。
目前采用的S MTP网关一般用于接收邮件然后把邮件转发给后台邮件服务器。 网关在接收的过程中无法对本地用户发送的邮件进行有效验证只能在发送至邮件服务器时进行用户验证。因此大量假冒本地用户发送的邮件将使邮件网关负担沉重邮件队列加大。并且网关一般采用非实时方式把邮件转储在磁盘上然后进行过滤处理处理完之后转发给邮件服务器。一旦邮件队列增大 邮件的处理有可能被无限推迟而此时发送者并没有得到及时通知不会重发邮件。本文提出的SMTP网关采用实时处理方式在接收邮件的同时进行验证并发送邮件发送不成功及时通知发送者。
文章的组织如下第一章提出系统网络部署体系结构及SMTP协议在网关中的传输流程及用户验证的实现第二章介绍异步I/O队列处理并与同步方式做比较第三章介绍网关测试并显示实验数据第四章给出结论。
2. 邮件网关体系结构
图1整体为网关的网络部署。现行的邮件过滤系统大多并行接入网络 即邮件网关处于传输路径的旁路其只对违规的电子邮件实行监听和后期截断并且不支持前台认证本邮件网关选择串行接入的紧耦合方式 即将网关置于邮件传输的实际路径中。这种方式在减轻邮件服务器压力的同时保护后台用户信息支持前台验证。
该图方框内为邮件网关底层的传输结构。系统在其启动阶段对25端口进行侦听当有MT A或者用户与之连接时则建立客户端与网关之间及网关与服务器之间的socket通道进行SMTP协议的交互及邮件内容的传输待传输完毕后放弃两个socket连接。在此过程中本网关采用异步socket并发处理多个连接 降低网络延迟对网关性能的影响减少因超时等待而造成连接断开的可能性。该部分内容在本文的第三章进行详细的阐述。
由于SM TP协议在双向通道上传输并且对于MTA进行最后的投递处理服务器接收邮件或是普通的客户发信处理不进行区分 因此图中两个接收socket和两个发送socket在实现中为同一个。
以客户端和后台邮件服务器的角度来说 网关是透明的 即透传S MTP协议中大部分命令和响应。同时 网关根据不同的用户需求及网络环境根据传输的信息进行实时处理。
上图为正确流程的邮件网关状态机实线部分是客户端命令和服务器端响应在网关上的实际交互流程为了图示清晰忽略大部分接受服务器响应的流程用虚线代替实线的状态转换。 同时每个状态上的子环代表网关接收错误信息的处理。
这里以EHLO命令为例进一步说明网关对于SMTP协议的处理流程当网关接收到由客户端发来的EHLO命令首先将命令转发给后台邮件服务器并且进入等待状态Waiting State 当网关收到服务器的正确响应则进入下一个命令的准备接收状态EHLO State 。这里为了
图示简洁没有详细给出若服务器响应其为错误信息的状态在实现中 网关将返回到上一个状态本例中为初始状态Initial
State 直到错误数达到一个最大值断开连接。若顺利的达到下一个状态 由于只接收验证命令任何其它命令Anything but AUTH 都最终导致返回相同的接收状态EHLO State直到网关接收正确命令AUTH 。这里任何其它命令Anything but AUTH 流程同样用虚线表示说明要经过等待状态接收服务器响应然后再返回该状态。
由于邮件网关采用实时处理连接透传命令及响应的方式 因此可以及时进行用户的后台认证防止伪造本地用户发信给邮件网关带来的处理负担。
3.异步socket处理在实时处理
的过程中一般使用同步方式处理每个邮件。以接收邮件为例 同步socket的处理流程为
1 接收外部连接请求建立接收socket A和发送socket
B两个连接
2 读A缓冲执行SMTP状态机检查确定处理函数调用处理将信息写到B
3 进程阻塞等待后台邮件服务器接收并响应
4 读B缓冲写到A
5 进程阻塞等待外部邮件服务器接收并响应如果是221 bye则转到6 否则返回到2
6 断开连接。
从过程可以看出 同步处理时进程需要等待响应而造成阻塞等待时间取决于网络时延和服务器的响应时间。 [4]研究指出 当有大量用户连接时 网络延迟将占到整个邮件处理及转发时间的的40-55%。而在同步结构下一个进程需要全程等待一个邮件的处理 因此性能较低。
下面说明采用异步方式处理。建立两个队列分别保存等待读和等待写的socket指针两个哈希表表A保存待读socket的处理函数表B保存待写socket的buffer内容。如图3。
读线程的处理过程为
1 从待读socket队列中取出socket指针如果是监听socket则转到2 不是则转到3
2 则建立一对socket将发送socket放入待读队列将初始处理函数写入哈希表A返回1
3 读该socket查找哈希表A得到处理函数处理后将待写内容写入哈希表B socket指针写入待写socket队列如果接收到221 bye信息转到4 否则返回1
4 回收该socket返回1
写线程的处理过程为
1 从待写socket队列中取出socket指针查找哈希表B取出待写内容写入socket缓冲
2 执行SMTP状态检查如果该内容为QU I T则转到3 否则确定下一次的处理函数把函数指针写入哈希表A并把该socket指针写入待读队列返回1
3 回收该socket返回1
这样就屏蔽了网络的时延避免了进程因等待响应而阻塞可以很大的提高系统的吞吐量使系统具有较强的并行处理能力。
4. 邮件网关测试
本测试在图4的网络环境下对网关进行测试。该环境下 邮件服务器的接收能力要大于邮件网关并假定相同大小的邮件发送时间相同。
在网络延迟测试中 SmartBi tsD600B网络测试仪通过Avalanche测试软件顺序发送大小不同的邮件各一封 即每次发完一封收到后台服务器端发来的断开信息221 bye后再发下一封邮件记录每封邮件的处理时间。
在每分钟最大收件数的测试中利用SmartBitsD600B网络测试仪和Avalanche测试软件分别测试系统一分钟内可以接收大小不同的邮件的最大量。为确保测试的合理性每次测试中每秒增加的S MTP连接相同。
在同步方式下 网关的处理方式就是完全处理一个连接后才能处理下一个连接 因此将发送一封邮件的时间与发送数量相乘即为发送该数量邮件所需时间 图5为在发送相同数量邮件的情况下 同步与异步方式的时间对比。
由于邮件的处理时延等于两端的网络时延网关处理时延而邮件的大小直接决定了网关对邮件的处理时间 因此从图5中可以看出邮件越小同步结构下所需延迟时间占总体处理时间越大在异步结构下效果越明显。
5. 结论
本文采用了实时处理方式建立了S MTP网关使网关可以进行认证。在相同的硬件平台上假定非实时处理的邮件队列长度为零实时邮件处理与非实时邮件处理的对比表明实时处理邮件比非实时处理的时延明显缩短避免了因邮件队列过长而导致邮件长期得不到处理的情况。在使用异步socket读写之后实验表明与同步方式相比异步socket读写方式有明显的性能优势并且邮件越小异步方式的吞吐量优势越明显。
最近AS9929线路比较火,联通A网,对标电信CN2,HostYun也推出了走联通AS9929线路的VPS主机,基于KVM架构,开设在洛杉矶机房,采用SSD硬盘,分为入门和高带宽型,最高提供500Mbps带宽,可使用9折优惠码,最低每月仅18元起。这是一家成立于2008年的VPS主机品牌,原主机分享组织(hostshare.cn),商家以提供低端廉价VPS产品而广为人知,是小成本投入学习练手首选。...
GigsGigsCloud新上了洛杉矶机房国际版线路VPS,基于KVM架构,采用SSD硬盘,年付最低26美元起。这是一家成立于2015年的马来西亚主机商,提供VPS主机和独立服务器租用,数据中心包括美国洛杉矶、中国香港、新加坡、马来西亚和日本等。商家VPS主机基于KVM架构,所选均为国内直连或者优化线路,比如洛杉矶机房有CN2 GIA、AS9929或者高防线路等。下面列出这款年付VPS主机配置信息...
vinahost怎么样?vinahost是一家越南的主机商家,至今已经成13年了,企业运营,老牌商家,销售VPS、虚拟主机、域名、邮箱、独立服务器等,机房全部在越南,有Viettle和VNPT两个机房,其中VNPT机房中三网直连国内的机房,他家的产品优势就是100Mbps不限流量。目前,VinaHost商家发布了新的优惠,购买虚拟主机、邮箱、云服务器、VPS超过三个月都有赠送相应的时长,最高送半年...