应用层(三): 远程登录服务与电子邮件服务
1、远程登录服务与TELNET协议
远程登录服务采用典型的客户/服务模型。
TELNET协议的工作原理示意图:
用户的实终端(real terminal)采用用户终端的格式与本地TELNET客户通信;远程计算机采用主机系统格式与TELNET服务器通信。
在TELNET客户进程与TELNET服务器进程之间,通过网络虚拟终端(NVT)标准来进行通信。NVT是一种统一的数据表示方式,以保证不同硬件、软件与数据格式的终端与主机之间通信的兼容性。
TELNET客户端进程将用户终端发出的本地数据格式转换成标准的NVT格式,再通过网络传输到TELNET服务器端。TELNET服务器将接收到的NVT格式数据转换成主机内部数据格式,再传输给主机。
Internet上传输的数据都是标准的NVT格式,不同的用户终端与服务器进程将与各种不同的本地终端格式无关。TELNET客户与服务器进程完成用户终端格式、主机系统内部格式与标准NVT格式之间的转换。
TELNET已成为TCP/IP协议集中一个最基本的协议。
2、电子邮件服务与STMP协议
Internet邮件服务最大的优先在于:不管用户使用任何一种计算机、操作系统、邮件客户端或网络硬件,用户之间都可方便的实现电子邮件的交换。
2.1、电子邮件服务的工作过程
2.1.1、电子邮件基本工作原理
电子邮件系统分为两个部分:邮件服务器端与邮件客户端。
在邮件服务器端,包括用来发送邮件的SMTP服务器,用来接收邮件的POPS服务器或IMAP服务器,以及用来存储电子邮件的电子邮箱;在邮件客户端,包括用来发送邮件的SMTP代理,用来接收邮件的POP3代理,以及为用户提供管理界面的用户接口程序。
邮件客户端使用简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)向邮件服务器发送邮件;邮件客户端使用邮局协议(Post Office Protocol,POP)的第三版POP3协议或交互式邮件存取协议(Interactive Mail Access Protocol,IMAP),从邮件服务器中接收邮件。使用哪种协议接收邮件,取决于邮件服务器与邮件客户端支持的协议类型,一般邮件服务器与客户端应用程序都支持POP3协议。
邮件报文结构示意图:
SMTP协议可将邮件报文封装在邮件对象中。SMTP协议的邮件对象是信封和内容两个部分组成的。信封实际上是一种SMTP命令,邮件报文是封装在信封中的邮件内容,报文本身包括报文头和邮件主题两个部分。
2.1.2、SMTP邮件传输过程
SMTP命令和应答分别是由一系列字符,以及一个表示报文结束的回车换行符(CRLF)组成。客户在向SMTP邮件服务器发送邮件之前需要首先建立TCP连接。在完成TCP连接建立之后,开始进入SMTP会话建立、发送邮件与释放SMTP会话。然后再进行释放TCP连接,结束SMTP工作过程。
SMTP邮件传输过程示意图:
1、TCP连接建立
报文1~3是客户(192.168.1.20:7180)与邮件服务器(192.168.1.50:25)建立TCP连接的三次握手的报文
2、SMTP会话连接建立
报文4~6是客户与邮件服务器建立SMTP会话连接的报文。在TCP连接建立之后,邮件服务器用报文4(代码220)通知客户"服务器准备好"。报文5是客户用HELLO命令告知服务器自己的客户主机域名。报文6用代码250应答客户命令,表示:客户主机域名正确,服务器同一进入会话阶段。这样,客户与邮件服务器的SMTP会话连接建立。
3、邮件发送
报文7~17是邮件发送会话报文。SMTP将邮件的发送分为两个部分,首先发送邮件的发送邮箱地址与接收邮箱地址,然后再发送邮件体。
报文7是客户发送邮件发送邮箱地址。邮件服务器在报文8中返回代码250,表示请求命令完成,继续发送。
报文9是客户发送邮件接收者RCPT的邮箱地址。邮件服务器在报文10中返回代码250,表示请求命令完成,继续发送。
报文11是客户发送DATA命令的报文,表示要开始传输邮件主体。邮件服务器用含有代码354报文12应答。代码为354是在传输过程中间对命令DATA的应答,表示邮件主体开始传输,以结束。
客户用报文13发送邮件主体。邮件服务器用报文14的ACK应答。
客户用报文15通知邮件服务器"邮件发送完毕",邮件服务器用报文16的ACK应答。
报文17是邮件服务器用含有代码250的报文表示:接收完毕,准备投递。
4、SMTP会话连接释放
报文18是客户发送QUIT命令,请求释放SMTP会话连接。报文19是邮件服务器用代码221应答,表示同意释放SMTP会话连接。
5、TCP连接释放
报文20~23表示了释放TCP连接四次握手过程。释放TCP连接之后,客户与邮件服务器会话完全结束,客户发出的邮件将通过邮件服务器转发到下一个邮件服务器,直到到达目的邮件服务器为止。邮件服务器之间的通信也使用SMTP,因此服务器与服务器的转发过程与客户-邮件服务器发送过程基本相同。
2.1.3、MIME协议的基本内容
SMTP的局限性表现在只能发送ASCII码格式的报文。
通用Internet邮件拓展(MUltipurpose Internet Mail Extension,MIME)是一种辅助性的协议,本身并不是一个邮件传输协议,只是对SMTP的补充。MIME使用网络虚拟终端(NVT)标准,允许非ASCII码数据通过SMTP传输。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)