SMTP_in_ApplicationLayer

电子邮件大家再熟悉不过,业务分发或者是节日祝贺大家都使用过电子邮件的业务,那么电子邮件的分发是基于什么可能关注的人并没这么多,亦或者思考它和实时通信的QQ或者WeChat有什么区别呢?鉴于此来介绍一下计算机网络中基于应用层的SMTP协议。

首先要说的是电子右键是一种“异步通信媒介”,就是说当你空闲时候可以收发邮件,而不需要与他人的计划协调。也就是说双方不需要指定相同实际才能通信。

我们来看一下这张图:

它是由用户代理、邮件服务器、简单邮件传输(SMTP)组成。用户代理主要作用就是允许用户阅读、回复、转发和保存邮件。邮件服务器为电子邮件体系结构的核心。大致意思就是,当我给你发一封邮件的时候,我的邮件代理给你的邮件服务器发送邮件,邮件就放在外出队列中,如果你要看邮件了,你的用户代理只需要在你的邮件服务器获取即可。当然了,SMTP就是我们传输时候要遵循的协议。它是基于TCP可靠传输的。

现在专门来介绍一下SMTP协议:

SMTP是电子邮件的核心,它是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输。它要传输数据主要把文件转变为ASCII码的二进制数据,不同于HTTP的传输,所以一般我们子啊使用邮件的时候很少会传输大型图片视频音频之类也是基于这个原因。传输的过程主要为:

这种传输协议即使两个邮件服务器在地球两端也不会使用中间邮件服务器停留,就好像我在美国你在中国,传输过程也是单一的从你位置到我位置,不会在任何地区停下缓存数据。而且SMTP是一个“推”的协议,它不允许根据需要从远程服务器上“拉”来消息。即只能发送不能要求获取。

然而要说的就是SMTP的传输其实和我们人与人之间交流类似。客户SMTP在25端口建立一个到服务器SMTP的TCP连接,如果服务器没有开机,客户会等待一段时间,一旦连接建立了,服务器和客户执行类似于三次握手的机制,就好像说,你和我打电话你会先说“喂,听到了吗,我说XXX”。SMTP客户只是发送方的邮件地址和解说对方的邮件,都是在介绍的时候说明。(确认信息后)客户开始发送报文信息。同时,SMTP用的是持续连接,就是说邮件服务器如果携带几个报文,可以发往同一个邮件服务器而且是通过同一个TCP连接。

我们之前也提过了,SMTP是一个推协议,而HTTP是一个拉协议。虽然我们都是从一台主机向另一台主机传文件,但是我们在使用HTTP的时候都是获取Web上的我们需要的内容,简称拉,而SMTP不同于此,它是将自己的信息给推送出去,推送到另一台需要的主机。而且HTTP把每个对象封装到自己的HTTP响应报文中,而SMTP则是把所有报文对象放在一个报文里。

我们根据这张图可以看到,在客户发送给邮箱服务器是基于SMTP的,并且邮箱服务器之间的传输也是基于SMTP的,不同的是接收方在获取的时候可以基于三种方式POP3、IMAP或者是HTTP。我们这里只说一下基于HTTP的,因为现在web浏览器发展迅速,用户代理就是普通的浏览器,所以用户和他远程邮箱之间都是基于HTTP的了,这样的好处也有很多,快速以及发方便,同时基于HTTPs的发展,安全性有了更进一步的提升。不过之前的两步仍是基于SMTP的传输。

鉴于此,我们大致介绍了SMTP的一些概念。如有深入学习则会再加入其中。

感谢您的鼓励.如果喜欢可以送我一包辣条。