端口转发(Port forwarding)是 SSH 为网络安全通信使用的一种方法。SSH 可以利用端口转发技术来传输其他 TCP/IP 协议的报文,当使用这种方式时,SSH 就为其他服务在客户端和服务器端建立了一条安全的传输管道端口转发是指将特定端口号所收到的消息转发到指定 IP 地址和端口号的一种机制。
FTPFTP(File Transfer Protocol,文件传输协议) 是应用层协议之一。FTP 协议包括两个组成部分,分为 FTP 服务器和 FTP 客户端。其中 FTP 服务器用来存储文件,用户可以使用 FTP 客户端通过 FTP 协议访问位于 FTP 服务器上的资源。
由于 FTP 传输效率非常高,一般用来在网络上传输大的文件。
默认情况下 FTP 协议使用 TCP 端口中的 20 和 21 这两个端口,其中 20 用于传输数据,21 用于传输控制信息。FTP TCP 21 号端口上进行文件传输时,每次都会建立一个用于数据传输的 TCP 连接,数据传输完毕后,传输数据的这条连接也会被断开,在控制用的连接上继续进行命令或应答的处理。
SMTP提供电子邮件服务的协议叫做 SMTP(Simple Mail Transfer Protocol), SMTP 在传输层也是用了 TCP 协议。
早起电子邮件是在发送端主机和接收端主机之间直接建立 TCP 连接。发送方编写好邮件之后会将邮件保存在磁盘中,然后与接受主机建立 TCP 连接,将邮件发送到接受主机的磁盘中。当发送方把邮件发送后,再从本地磁盘中删除邮件。如果接受主机因为特殊情况无法接收,发送端将等待一段时间后重新发送。
这种方法虽然能够保证电子邮件的完整性和有效性,但却不适合当今的互联网,因为早期的电子邮件只能在线发送,这种方式显然不够成熟。
针对于此,提出了邮件服务器的概念。邮件服务器构成了整个邮件系统的核心。每个接收方在其中的邮件服务器上会有一个邮箱(mailbox) 存在。用户的邮箱管理和维护发送给他的报文。
一个典型的邮件发送过程是:从发送方的用户代理开始,传输到发送方的邮件服务器,再传输到接收方的邮件服务器,然后在这里被分发到接收方的邮箱中。用接收方的用户想要从邮箱中读取邮件时,他的邮件服务器会对用户进行认证。如果发送方发送的邮件无法正确交付给接收方的服务器,那么发送方的用户代理会把邮件存储在一个报文队列(message queue)中,并在以后尝试再次发送,通常每 30 分钟发送一次,如果一段时间后还发送不成功,服务器就会删除报文队列中的邮件并以电子邮件的方式通知发送方。
现在你知道了两台邮件服务器邮件发送的大体过程,那么,SMTP 是如何将邮件从 Alice 邮件服务器发送到 Bob 的邮件服务器的呢?主要分为下面三个阶段
建立连接:在这一阶段,SMTP 客户请求与服务器的25端口建立一个 TCP 连接。一旦连接建立,SMTP 服务器和客户就开始相互通告自己的域名,同时确认对方的域名。
邮件传送:一旦连接建立后,就开始邮件传输。SMTP 依靠 TCP 能够将邮件准确无误地传输到接收方的邮件服务器中。SMTP 客户将邮件的源地址、目的地址和邮件的具体内容传递给 SMTP 服务器,SMTP 服务器进行相应的响应并接收邮件。
连接释放:SMTP 客户发出退出命令,服务器在处理命令后进行响应,随后关闭 TCP 连接。
MIME 类型最一开始,互联网中的电子邮件只能处理文本格式,后来也逐渐扩展为 MIME 类型,我们上面也简单提到了一句 MIME 类型,MIME(Multipurpose Internet Mail Extensions) 是用途互联网邮件扩展类型。
它是一个互联网标准,扩展了电子邮件标准,使其能够支持很多格式,这些格式如下
超文本标记语言文本 .html text/html
xml文档 .xml text/xml
普通文本 .txt text/plain
PNG图像 .png image/png
GIF图形 .gif image/gif
JPEG图形 .jpeg,.jpg image/jpeg
AVI 文件 .avi video/x-msvideo 等。
后记文章涵盖了许多应用层协议,包括 HTTP、DNS、SMTP、FTP、TELNET 协议等