网关支持实时认证的SMTP网关(科技信息范文)

smtp  时间:2021-02-20  阅读:()

封面

《支持实时认证的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读写方式有明显的性能优势并且邮件越小异步方式的吞吐量优势越明显。

Gigsgigscloud($9.8)联通用户优选日本软银VPS

gigsgigsCloud日本东京软银VPS的大带宽配置有100Mbps、150Mbps和200Mbps三种,三网都走软银直连,售价最低9.8美元/月、年付98美元。gigsgigscloud带宽较大延迟低,联通用户的好选择!Gigsgigscloud 日本软银(BBTEC, SoftBank)线路,在速度/延迟/价格方面,是目前联通用户海外VPS的最佳选择,与美国VPS想比,日本软银VPS延迟更...

舍利云30元/月起;美国CERA云服务器,原生ip,低至28元/月起

目前舍利云服务器的主要特色是适合seo和建站,性价比方面非常不错,舍利云的产品以BGP线路速度优质稳定而著称,对于产品的线路和带宽有着极其严格的讲究,这主要表现在其对母鸡的超售有严格的管控,与此同时舍利云也尽心尽力为用户提供完美服务。目前,香港cn2云服务器,5M/10M带宽,价格低至30元/月,可试用1天;;美国cera云服务器,原生ip,低至28元/月起。一、香港CN2云服务器香港CN2精品线...

HostHatch(15美元)大硬盘VPS,香港NVMe,美国、英国、荷兰、印度、挪威、澳大利亚

HostHatch在当地时间7月30日发布了一系列的促销套餐,涉及亚洲和欧美的多个地区机房,最低年付15美元起,一次买2年还能免费升级双倍资源。商家成立于2011年,提供基于KVM架构的VPS主机,数据中心包括中国香港、美国、英国、荷兰、印度、挪威、澳大利亚等国家的十几个地区机房。官方网站:https://hosthatch.com/NVMe VPS(香港/悉尼)1 CPU core (12.5%...

smtp为你推荐
快递打印怎么在电脑上打印快递单google竞价排名哪些搜索引擎没有竞价排名?搜搜?谷歌?yy频道中心YY频道管理中心怎么登录?缓冲区溢出教程适合黑客初级学者使用的黑客工具有那些 、金山杀毒怎么样金山杀毒好吗?拂晓雅阁现在最流行的系统是那个???照片转手绘照片转手绘用什么APP唱吧电脑版官方下载唱吧有没有电脑版的啊?天天酷跑刷金币如何使用八门神器给天天酷跑刷钻刷金币开机滚动条电脑开机启动滚动条时间长怎么办?
日本vps google镜像 国内免备案主机 oneasiahost windows主机 vmsnap3 双12活动 轻量 idc是什么 starry 个人免费邮箱 免费蓝钻 国外网页代理 云服务是什么意思 重庆联通服务器托管 google搜索打不开 碳云 最新优惠 linux服务器系统 iptables 更多