当前位置:首页 >> 互联网 >>

电子邮件协议浅析


电子邮件协议总结
1. 电子邮件系统的基本概念
电子邮件是一种用电子手段提供信息交换的现代邮政通信方式, 电子邮件让 人们能方便快捷地传递信息,让世界各地的人们之间能够轻松地交流。 电子邮件与传统的信件通信方式相比有着巨大的优势: -传递迅速:在数分钟之内可到达地球上任何一个地方; -信息多样:除文字外,还可包含图片、音乐、动画、视频等多媒体信息, 也可以附带上软件、数据等资料; -方便高效:只要能连接到 Internet,就可以随时随地地收发 E-mail,而且只 需极少的费用。 1972 年 BBN 的 Ray Tomlinson 发明电子邮件系统并采用@符号。电子邮件系 统要求每个用户有一个 email 地址。Internet 上 email 地址的形式是:用户名@主 机域名,这里@念作“at” ,意思为“在” 。@左边是用户名或用户所使用的电子 邮箱名。邮箱所在主机通常称为邮件服务器。@右边是用户使用的邮件服务器所 在域的域名。例如清华大学的域名是 tsinghua.edu.cn,所以 tsg@tsinghua.edu.cn 就是清华的某 email 地址。 电子邮件系统投递邮件时, 首先需要利用域名系统 DNS 将 email 地址中的 主机域名转换成邮件服务器的 IP 地址。为此先调用名字解析器,(1) 从主机域名 查询该域的资源记录 MX。例如:从域 tsinghua.edu.cn 的 DNS 资源记录 MX, 可以得到邮件服务器域名 mail.tsinghua.edu.cn, 再查询邮件服务器的 IP 地址, (2) 有了 IP 地址就知道邮件往哪里送了。 若查不到 MX 记录, 系统就将@后的主机域 名作为邮件服务器域名。@mails.tsinghua.edu.cn。 电子邮件系统的一个非常有用的功能是利用所谓邮寄表 (mailing list) 向多 个用户发送同一邮件。 邮寄表是一组 email 地址并有一个组名, “别名(alias)” 也称 , 发给该组名的邮件会自动分发给它代表的每个 email 地址。一些邮件系统的地址 簿或通讯簿(address book)有类似的功能。 电子邮件与之前介绍的 TELNET 和 FTP 服务不同, 它不是一种 “终端到终端” 的服务,而是使用了“存储转发式”的服务,这是一种异步通信方式。通过存储 转发可以进行非实时通信, 即信件发送者可随时随地发送邮件,不需要接收者同 时在场。邮件服务器是 24 小时连接到网络的高性能、大容量的计算机,在服务 器的硬盘上为用户分配一定的存储空间,作为用户的“邮箱” 。用户可通过用户 名和密码来登录“邮箱” ,并进行发信、收信、编辑、转发、存档等各种操作。 电子邮件通信是点到点, 不受传输网络配置 (如非对称路由) 或通信技术 (如 无线、移动)的影响。电子邮件的传输结构如图 1 所示。

图 1.电子邮件的传输拓扑结构示意

1.1 ISO/OSI 电子邮件系统
MOTIS 电子邮件系统分为两部分: 用户代理 UA: 为用户提供良好的操作界面,并负责生成与处理消息; 信息传输代理 MTA:主要负责消息传输,即所谓的“电子邮局” 。 在电子邮件系统的具体实现中,UA 一般位于个人计算机内,而 MTA 一般位 于邮件服务器中。MOTIS 的电子邮件传输是存储转发型的,其中的 MTA 扮演网 关的角色,邮件经逐个 MTA 传输直至信宿用户所在的 MTA。

图1

MOTIS 电子邮件系统的模型

1.2 TCP/IP 电子邮件系统
TCP/IP 电子邮件系统在概念上也分为用户界面和邮件传输两部分, 但邮件传 输部分并未独立出来,形成一个类似 MOTIS 中 MTA 的组件,这是因为 TCP/IP 自 始至终坚持端到端的思想,TCP/IP 电子邮件系统也采用端到端的传输方式。 TCP/IP 中采用 spooling 假脱机) ( 缓冲技术来解决延迟传递 (delayed delivery) 问题,将用户收发邮件与实际的邮件传输区别开来。

图 2 采用 spooling 技术的电子邮件系统

2.电子邮件协议
收发电子邮件在的过程中, 要遵循一些基本协议和标准,这些协议和标准保 证电子邮件在各种不同的网络与操作系统之间能够正确地进行传输。 常见的电子 邮件传输协议主要有以下三种: -SMTP (简单邮件传输协议):最常用的电子邮件传送协议; -POP3 (邮局协议):最常用的电子邮件接收协议; -IMAP4 (网络邮件访问协议):POP3 的一种替代协议,提供了邮件检索和邮件处 理的新功能。 目前,大多数邮件服务器都安装了 SMTP 和 POP3 这两项协议,即 SMTP 服 务器作为邮件发送服务器,POP3 服务器作为邮件接收服务器。 电子邮件地址的一般格式如下: username@domain-name domain-name 是电子邮件服务器的域名,username 是在该服务器上注册的用户 名,也即用户电子邮箱名称,用户名与域名之间用符号“@” 分隔开。 书写 E-mail 地址时要注意,地址中不能包含空格,无论是用户名、域名还是@ 的两侧都不能包含空格。

3.SMTP 协议
SMTP 协议的作用是:当发送方计算机与支持 SMTP 协议的电子邮件服务器 连接时,将电子邮件由发送方计算机准确无误地传送到接收方的电子邮箱中。 SMTP 的一个重要特点是它能够在传送中接力传送邮件,即邮件可以通过不同网 络上的主机接力式传送。SMTP 一个相对简单的基于文本的协议。通过 SMTP 发

送的所有电子邮件都是普通文本格式的,它不能直接传输图像、声音等非文本信 息,但可以应用 MIME 标准将二进制文件编码后再通过 SMTP 传输。 由于 SMTP 使用客户服务器方式,因此负责发送邮件的 SMTP 进程就是 SMTP 客户,而负责接收邮件的 SMTP 进程就是 SMTP 服务器。SMTP 规定了 14 条命令和 21 种应答信息。 每条命令用 4 个字母组成, 而每一种应答信息一 般只有一行信息,由一个 3 位数字的代码开始,后面附上(也可不附上)很简 单的文字说明。

3.1 SMTP 连接与发送
SMTP 是一种请求响应协议,客户端发送命令,服务器返回响应,两者通过这 种方式进行交互,以完成邮件传输过程的三个阶段:建立连接、传输数据和终止 连接。 -客户端主动连接到服务器的 25 端口,建立 TCP 连接。服务器会发送一个应答 码为 220 的问候报文,表示已经准备就绪。 -客户端向服务器发送 HELO 命令,用以标识发送方的身份,HELO 命令的参数 必须是一个合法的主机名。 如果服务器接受了连接请求,会给客户端返回一个代 码为 250 的应答,表示可以开始报文传输。 -客户端发送 MAIL 命令标识邮件的发送方, 通过 FROM 参数指定发送方的电子 邮件地址。如果服务器准备接收邮件,则返回代码为 250 的 OK 应答。 客户端发送 RCPT 命令标识邮件的接收方,通过 TO 参数指定接收方的电子邮件 地址,如果有多个接收人,可以发送多个 RCPT 命令。如果服务器能够识别接收 人,则会返回代码为 250 的 OK 应答,否则返回代码为 550 的失败应答。 客户端与服务器之间的协商结束, 客户端发送 DATA 命令指示将要发送邮件数据, 服务器端返回应答码为 354 的响应进行确认, 表示可以开始邮件输入。 客户端将 邮件内容按行发送,邮件的末尾由客户端指定,是只有一个小数点(邮件数据结 束指示器)的一行,服务器检测到邮件数据结束指示器后,返回代码为 250 的 OK 应答。 -客户端发送 QUIT 命令终止连接。

3.2 SMTP 命令
SMTP 命令和 FTP 命令一样, 都是使用 NVT ASCII 格式的文本, 以明文传输的。 SMTP 简捷的原因之一是它使用的命令少,SMTP 的最小实现仅需记住 8 种命令 就够了。 常用 SMTP 命令一览表 命令 描述 HELO 用于启动邮件传输过程 MAIL RCPT DATA QUIT 用于初始化邮件传输 用于标识单个邮件接收人,在 MAIL 命令后面可有多个 RCPT 命令 用于将邮件报文发送给服务器 用于终止客户端与服务器之间的连接

RSET VRFY NOOP

用于中止当前的邮件事务并使两端复位 用于验证指定的用户/邮箱是否存在,即验证接收方地址 是否正确 空操作命令

3.3 SMTP 响应
每一条 SMTP 命令都会返回一条 SMTP 响应, SMTP 响应与 FTP 响应很相似, 包含一个 3 位数字的应答码,后面跟着的是描述文本。 SMTP 应答码 代码 描述 代码 描述 211 系统状态或系统帮助响应 500 命令不可识别或语法错 214 帮助信息 501 参数语法错 220 服务准备就绪 502 命令不支持 221 关闭连接 503 命令顺序错 250 请求操作就绪 504 命令参数不支持 251 非 本 地 用 户 , 转 发 到 550 操作未执行:邮箱不可用 <forward-path> 354 开 始 邮 件 输 入 , 以 551 非 本 地 用 户 , 请 尝 试 <forward-path> <CR-LF>.<CR-LF>结束 421 服务不可用 552 操作中止:存储空间不足 450 操作未执行:邮箱忙 553 操作未执行:邮箱名不正确 451 操作中止:本地错误 554 传输失败 452 操作未执行:存储空间不足

3.4 电子邮件的信息格式
报文协议 RFC822: Internet 主机之间传送的报文是 7 位 ASCII 字符流。每个报文分成两部分: 报文头(message header)和报文体(message body),两者以一空行分隔。报文头在 报文体之前,它是一些控制信息,包括收方和发方的地址、日期等。RFC822 对 邮件最大的限制是邮件报文体是 ASCII 字符流,每个 ASCII 字符是 7 位。SMTP 中 又规定传输邮件时将 8 位字节的最高位清 0,这样电子邮件就不能包括多国文字 和多媒体信息。邮件报文格式 RFC822 极需扩充,提出了多用途 Internet 报文扩 展 MIME (Multipurpose Internet Mail Extensions)。报文体是用户邮件内容,RFC 只规定它是 ASCII 字符串。报文头由一系列头字段(header fields)组成,每个头字 段的形式是: 字段名(field-name):字段体(field-body) 一个电子邮件分为信封和内容两大部分。RFC 822 只规定了邮件内容中的首 部(header)格式,而对邮件的主体(body)部分则让用户自由撰写。用户写好首部

后, 邮件系统将自动地将信封所需的信息提取出来并写在信封上。所以用户不需 要填写电子邮件信封上的信息。邮件内容首部包括一些关键字,后面加上冒号。 最重要的关键字是:To 和 Subject。 电子邮件的主要结构有: -邮件头 (Header) -用于分隔邮件头与邮件正文的空行 -邮件正文 (Body) -签名 (Signature) (位于邮件末尾的可选部分) 邮件头的每一行都遵循“标题域:值”的格式,邮件头示例如下: Received: from taurus.zsu.edu.cn (unknown [202.116.64.3]) by bjmx3 (Coremail) with SMTP id tYECALSfOkFDAEAD.1 for <tonny@tom.com>; Sun,05 Sep 2004 13:10:25 +0800 (CST) X-Originating-IP: [202.116.64.3] Received: from RsProxy ([192.168.48.120]) by taurus.zsu.edu.cn (8.11.5/8.11.5) with SMTP id i855ABU27225 for <tonny@tom.com>; Sun,5 Sep 2004 13:10:12 +0800 (CST) Message-ID: <000801c49306$85c53fc0$7830a8c0@zsu.edu.cn> From: "jimmy" <jimmy@taurus.zsu.edu.cn> To: <tonny@tom.com> Subject: =?gb2312?B?z/vPog==?= Date: Sun,5 Sep 2004 13:09:27 +0800 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0005_01C49349.92912D20" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 邮件中常见的标题域: -Received 域:邮件每经过一台主机时,就产生一个 Received 域,用来记录所 经过主机的地址和经过时间,回复的信件可以按原路返回,而不必去选择路由。 此域常拆为多行显示。 -Date 域:记录邮件发送日期(本地主机的日期和时间) 。 -Message-ID 域:邮件惟一的标识号。 -From 域:发信人邮件地址。 -To 域:收信人邮件地址。 -Cc 域:抄送邮件地址,需要将邮件发送给多个收信人时使用。 -Reply-to 域:回复邮件地址,当发信人有几个邮件账号,且要求对方回复的 地址不是发信地址时使用。 -Subject 域:邮件主题。 以“X-”开始的域:这些域是在基本邮件系统的基础上添加的属性,只有在发送

和目的双方邮件服务器都支持这些属性的情况下,使用这些属性才有意义。 SMTP 的一次会话过程示例 会话是在发送方发起并建立了到接收方的 TCP 连接后开始的: R:220 tsinghua.edu.cn ESMTP Sendmail…Thu, 2 Sep ... S:EHLO pku.edu.cn R:250 - tsinghua.edu.cn Hello pku.edu.cn, … R:250 - 8BITMIME R:250 - SIZE S:MAIL FROM:<abc@pku.edu.cn> BODY=8BITMIME R:250 <abc@pku.edu.cn>…Sender and 8BITMIME ok S:RCPT TO:<uvw@tsinghua.edu.cn> R:250 <uvw@tsinghua.edu.cn> … Recipient ok S:DATA R:354 Enter mail, end with “.” on a line by itself S:张三:你好 S:…… S:李四 S:. R:250 KAA20017 Message accepted for delivery S:QUIT R:221 tsinghua.edu.cn closing connection

4.POP3 协议
POP 是一种邮件接收协议,其作用是:当用户计算机与支持 POP 协议的电 子邮件服务器连接时, 把存储在该服务器的电子邮箱中的邮件准确无误地下载到 用户的计算机中。POP3 属于离线式协议,即不能对邮件进行在线操作,必须下 载到本地才能进行处理。 离线工作方式适合于那些从固定计算机上接收邮件的用 户使用,因为邮件必须从服务器上删除。POP 协议已发展到第三版,称作 POP3 POP3 与 SMTP 一样都是请求响应协议,命令与响应也都是用 NVT ASCII 格式 的文本表示。POP3 响应由一个状态码和其后的附加信息组成,只有两种状态码: “+OK” (正确)和“-ERR” (失败) 。 常用 POP3 命令 命令及格式 USER username PASS password STAT LIST [Msg#] RETR [Msg#] DELE [Msg#] 描述 指定用户名 指定密码 询问邮箱状态(如邮件总数和总字节数等) 列出邮件索引(邮件数量和每个邮件的大小) 取回指定的邮件 删除指定的邮件

NOOP RSET QUIT

空操作 重置所有标记为删除的邮件,用于撤消 DELE 命令 提交修改并断开连接

在 POP3 中,客户端与服务器连接时有三种处理状态: -身份验证状态 -事务处理状态 -更新状态 当客户端连接到服务器的 110 端口, 并建立起 TCP 连接后, 即进入身份验证 状态, 需要使用 USER 和 PASS 命令将用户名和密码提供给服务器。 通过身份验证 之后,即转入事务处理状态,这时客户端可以发送 POP3 命令进行相应操作,服 务器会接收命令并做出响应。操作完成之后,客户端发出 QUIT 命令,则进入更 新状态,服务器确认用户的操作,更新邮件存储区,同时关闭客户端与服务器之 间的连接。 POP3 客户和服务器会话例 S:<在 TCP 端口 110 等待连接> C:<打开 TCP 连接> S:+OK oar pop3 server ready C:USER wrongid S:-ERR sorry, wrongid doesn’t get his mail here C:USER your_userid S:+OK your_userid is welcome here C:PASS your_password S:+OK your_userid’s maildrop has 2 messages C:STAT S:+OK 2 320 C:LIST S:+OK 2 messages (320 octets) S:1 120 S:2 220 S:. C:RETR 1 S:+OK 120 octets S:报文 1 的内容 S:. C:DELE 1 S:+OK message 1 deleted C:RETR 2 S:+OK 200 octets S:报文 2 的内容 S:.

(320 octets)

C:DELE 2 S:+OK message 2 deleted C:QUIT S:+OK oar pop3 server signing off (maildrop empty) C:<关闭连接> S:<等待下一连接> 基于万维网的电子邮件 电子邮件从 A 发送到网易邮件服务器是使用 HTTP 协议。两个邮件服务器 之间的传送使用 SMTP。邮件从新浪邮件服务器传送到 B 是使用 HTTP 协议。

5.IMAP 协议 (Internet Message Access Protocol)
IMAP 也是按客户服务器方式工作,现在较新的是版本 4,即 IMAP4。用户 在自己的 PC 机上就可以操纵 ISP 的邮件服务器的邮箱,就像在本地操纵一样。 因此 IMAP 是一个联机协议。当用户 PC 机上的 IMAP 客户程序打开 IMAP 服 务器的邮箱时,用户就可看到邮件的首部。若用户需要打开某个邮件,则该邮件 才传到用户的计算机上。 IMAP 最大的好处就是用户可以在不同的地方使用不同的计算机随时上网阅 读和处理自己的邮件。IMAP 还允许收件人只读取邮件中的某一个部分。例如, 收到了一个带有视像附件(此文件可能很大)的邮件。为了节省时间,可以先下 载邮件的正文部分,待以后有时间再读取或下载这个很长的附件。IMAP 的缺点 是如果用户没有将邮件复制到自己的 PC 机上,则邮件一直是存放在 IMAP 服 务器上。因此用户需要经常与 IMAP 服务器建立连接。 IMAP4 提供了三种邮件访问模式: -离线模式 (Offline Mode) -在线模式 (Online Mode) -断线模式 (Disconnected Mode) IMAP4 提供了相当强大的功能, 非常适合于需要工作在多个不同计算机上的 移动用户,或需要访问和维护多个不同邮箱的用户使用。 由于 IMAP4 比较复杂, 给开发者开发客户端和服务器的软件带来一些难题, 因而目前商用的实现方案还不多, 要像 POP3 那样得到广泛应用还需要一段时间。 IMAP (Internet Message Access Potocol) 是一种用于邮箱访问的协议,使用 IMAP 协议可以在 Client 端管理 Server 上的邮箱,它与 pop 不同,邮件是保留在

服务器上而不是 download 到本地,在这一点上 IMAP 是与 Webmail 相似的。但 IMAP 有比 Webmail 更好的地方,它比 webmail 更高效和安全,可以离线阅读等 等, 如果想试试可以用 Outlook Express, 只要配好一个帐号,将我的邮件接收服务 器设置为 IMAP 服务器就可以了。 IMAP(Internet 消息访问协议)是与 POP3 对应的另一种协议, 为美国斯坦福大 学在 1986 年开始研发的多重邮箱电子邮件系统。它能够从邮件服务器上获取有 关 E-mail 的信息或直接收取邮件,具有高性能和可扩展性的优点。IMAP 为很 多客户端电子邮件软件所采纳,如 OutlookExpress、NetscapeMessenger 等,支 持 IMAP 的服务器端的软件也越来越多, CriticalPath、 Eudora、 如 iPlanet、 Sendmail 等。 读者不禁要问,POP3 也是接收邮件的协议,现在不是用得很好么,为何还要用 IMAP 协议呢? POP3 协议的不足 的确,POP 作为 Internet 上邮件的第一个离线协议标准,允许用户从服务器 上把邮件下载到本地主机上, 同时删除保存在邮件服务器上的邮件,从而使用户 不必长时间地与邮件服务器连接,很大程度上减少了服务器和网络的整体开销。 但 POP3 有其天生的缺陷,即当用户接收电子邮件时,所有的信件都从服务器上 清除并下载到客户机。在整个收信过程中,用户无法知道邮件的具体信息,只有 照单全收入硬盘后, 才能慢慢浏览和删除。这使用户几乎没有对邮件接收的控制 决定权。一旦碰上邮箱被轰炸,或有比较大的邮件,用户不能通过分析邮件的内 容及发信人地址来决定是否下载或删除,从而造成系统资源的浪费。而 IMAP 协 议不但可以克服 POP3 的缺陷,而且还提供了更强大的功能。 对 IMAP 的解析 IMAP 提供操作的三种模式 在线方式:邮件保留在 Mail 服务器端,客户端可以对其进行管理。其使用 方式与 WebMail 相类似。 离线方式:邮件保留在 Mail 服务器端,客户端可以对其进行管理。这与 POP 协 议一样。 分离方式:邮件的一部分在 Mail 服务器端,一部分在客户端。这与一些成熟的 组件包应用(如 LotusNotes/Domino)的方式类似。 IMAP 工作原理及特性 在在线方式下,IMAP 允许用户象访问和操纵本地信息一样来访问和操纵邮 件服务器上的信息。IMAP 软件支持邮件在本地文件夹间和服务器文件夹间的随 意拖动, 以把本地硬盘上的文件存放到服务器上, 或将服务器上的文件取回本地, 所有的功能仅需要一次鼠标拖放的操作来实现。 在用户端可对服务器上的邮箱建立任意层次结构的文件夹, 并可灵活地在文 件夹间移动邮件,标出那些读过或回复过的邮件,删除对你来说无用的文件。 IMAP 提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间、主题、 发件人、大小等信息,同时还可以享受选择性下载附件的服务。比如一封邮件里 含有 3 个附件, 而其中只有 1 个附件是您需要的, 则可以选择只下载这 1 个附件。

你可以充分了解后才作出是否下载,是全部下载还是仅下载一部分等决定,使用 户不会因下载垃圾信息而占用宝贵的空间和浪费网费。 IMAP 还提供基于服务器的邮件处理以及共享邮件信箱等功能。邮件(包括 已下载邮件的副本) 在手动删除前保留在服务器中,这有助于邮件档案的生成和 共享。 用户可在任何客户机上都可查看服务器上的邮件。这让那些漫游用户感到 很方便。 同时 IMAP 也象 POP3 一样, 允许用户从服务器上下载信息到他们的电脑上, 这意味着他们仍然可以在离线方式下阅读邮件。 在分离状态下, 本地系统上的邮件状态和服务器上的邮件状态,可能和以后 再连接时不一样。此时,IMAP 的同步机制解决了这个问题。IMAP 邮件的客户端 软件能够记录用户在本地的操作, 当他们连上网络后会把这些操作传送给服务器, 服务器也会告诉客户端软件, 当用户离线的时候服务器端发生的事件,比如有新 邮件到达等,以保持服务器和客户端的同步。 在 IMAP 下可定义供其他拥有特别访问权利的用户使用的共享文件夹,而使 用 POP 不能实现共享邮件信箱和共享邮件, 仅能通过抄送给或用手工传送邮件。 共享信箱将使以使用 Internet 邮件为主的工作组的工作变得更为容易。 IMAP 还提供许多特别的功能比如建立子目录和通过 IMAP 访问 Usenet。在系统 管理员方面,IMAP 也提供了一整套可用的特性。 IMAP 的监听端口为 143,消息的内在时间和日期是由服务器给出的,而不是在 RFC822 中信头给出的时间和日期,是消息最后到达的真实日期和时间。如果信 息是被 IMAP 的 Copy 命令投递的,这应当是源信息的内在时间和日期;如果信 息是被 IAMP 的 Append 命令投递的, 这应当是由 Append 命令专门描述的时间和 日期。 在 IMAP 协议中定义了很多的命令,可用 telnet 来执行,例如 Authenticate、 List 和 Close 等等,此处不再详述。 实现 IMAP 的不足 在利用服务器磁盘资源方面, IMAP 不如 POP3。 由于使用 POP 时服务器端的 邮件被下载到客户机的同时会删除,因而不占用额外空间用以存放旧的邮件。而 IMAP 服务器将保持旧的邮件,占用了额外空间,而且需要定期地删除旧邮件。 同时,由于用户查阅信息标题和决定下载哪些附件,也需要一定时间,因此链接 时间也比 POP 方式长。 在应用方面,由于 IMAP 比较复杂,给开发者开发服务器和客户机的软件带 来一些难题。对于 ISP 来说,采用 IMAP 意味着要花钱购买相关商业软件,同时 会付出高额技术支撑费用,因而商用的实现方案还不多。 目前有一些国 内 的免费电子邮件站点提供 IMAP4 的服务,如广州的 www.21cn.com,四川的 mail.777.net.cn,北京的 btamail.net.cn 等。只要我们到 对应网址申请账号, 设置好我们的客户端软件后就可体会到不同于 POP3 的 IMAP 新特性。

6.MIME (Multipurpose Internet Mail Extensions)
SMTP 有很多缺点,如 SMTP 不能传送可执行文件或其他的二进制对象。

SMTP 限于传送 7 位的 ASCII 码。 许多其他非英语国家的文字 (如中文、 俄文, 甚至带重音符号的法文或德文)就无法传送。SMTP 服务器会拒绝超过一定长度 的邮件。某些 SMTP 的实现并没有完全按照[RFC 821]的 SMTP 标准。MIME 作 为 RFC822 的扩展, MIME 标准中, 在 RFC822 的报文头、 报文体基本模式不变, RFC822 定义的标准头字段的语法和语义不变。 MIME 扩展了基本的面向文本的 Internet 邮件系统,在不改动现有邮件协议 的情况下,实现了用标准的文本格式邮件传输非文本(二进制)数据的功能。 MIME 的原理是将二进制数据转化为文本格式,然后再进行传输。

图5

MIME 和 SMTP 的关系

MIME 主要包括三个部分,包含 5 个新的邮件首部字段,它们可包含在[RFC 822]首部中。这些字段提供了有关邮件主体的信息。MIME 定义了许多邮件内容 的格式,对多媒体电子邮件的表示方法进行了标准化。还定义了传送编码,可对 任何内容格式进行转换,而不会被邮件系统改变。 MIME 增加 5 个新的邮件首部: -MIME-Version: 标志 MIME 的版本。现在的版本号是 1.0。若无此行,则为英 文文本。 -Content-Description: 这是可读字符串,说明此邮件是什么。和邮件的主题差 不多。 -Content-Id: 邮件的唯一标识符。 -Content-Transfer-Encoding: 在传送时邮件的主体是如何编码的。 -Content-Type: 说明邮件的性质。 其中,内容传送编码(Content-Transfer-Encoding) 说明传输内容的编码方案(常 用 QP(quoted-printable)编码和 BASE64 编码) 。 MIME 传输编码—base64: 即基于 64 编码 ( base64 ),是根据 Radix-64 编码表将 3 个字节的二进制数 据变换为 4 个可打印的 ASCII 字符(7 位)。3 个字节 24 位,分为 4 个 6 位,每个 6

位二进制数是 0~63,按 Radix-64 编码表转换成 ASCII 字符。报文体末尾不足 3 字节,即只有 16 位或 8 位,就分别转换为 3 个或 2 个 ASCII 字符,再分别填充 一个或两个“=”字符。所以当编码后的文本末尾为“=”或“= =”时,分别指 示报文内容最后一组为 16 位或 8 位。 Radix-64 编码表

MIME 报文类型 MIME 着标准规定 Content-Type 说明必须含有两个标识符,即内容类型 (type)和子类型(subtype),中间用“/”分开。 MIME 标准定义了 7 个基本内容 类型和 15 种子类型。 MIME 报文类型: 1. text(文本):表示报文体是文本信息, 子类型有: plain:基本子类型,表示无格式文本。 html:表示报文体是用超文本标记语言写的。 2. message(邮件报文):表明报文体中封装有其它邮件报文。子类型有: rfc822:基本子类型,表明报文体是按 RFC822 封装的报文。 partial:定义部分报文,允许太长的报文分段。 3. image(图象):表示报文体是静止图象, 子类型: jpeg:表示 jpeg 格式的压缩图象。 gif:表示 gif 格式的压缩图象。 4. audio/basic:表示 PCM 编码的音频数据。 5. video/mpeg:表示 mpeg 格式的视频数据。 6. application(应用): 表示二进制数据或需要其它应用程序解释的信息。 子类 型有: octet-stream:表示二进制数据。 msword:表示 Windows 的 Word 文档。 7. multipart(多部):报文体由多个不同的部分组成,每个部分有独立的报文 类型。多部类型有一个重要参数,即封装边界,由它指示各部的分界。每个部分 以一个封装边界开始, 其余从形式上类似于一个 RFC822 报文。 子类型有 mixed;

alternative 等。目前在邮件用户代理上允许用户在报文中附加文件作为附件,而 邮件系统实际上是将报文和此文件做成 multipart,第 1 部分是 Content-Type: text/plain…,第 2 部分可以是 Content-Type:application/msword。

7.Wireshark 图解教程
Wireshark 是世界上最流行的网络分析工具。这个强大的工具可以捕捉网络 中的数据, 并为用户提供关于网络和上层协议的各种信息。与很多其他网络工具 一样,Wireshark 也使用 pcap network library 来进行封包捕捉。可破解局域网内 QQ、邮箱、msn、账号等的密码。 ireshark 的原名是 Ethereal,新名字是 2006 年起用的。当时 Ethereal 的主要 开发者决定离开他原来供职的公司,并继续开发这个软件。但由于 Ethereal 这个 名称的使用权已经被原来那个公司注册, Wireshark 这个新名字也就应运而生了。 在成功运行 Wireshark 之后,我们就可以进入下一步,更进一步了解这个强 大的工具。 基于常规邮件服务器架构的 smtp 协议分析可参照下面拓扑图, 通过分析被 抓取的数据包, 可以加深对 tcp、smtp 等协议的认识 ,及对拓扑中所示邮件服 务器架构的理解 。

图中 bob 和 james 通过电子邮件联系,过程如下: 数据包分析之 SMTP: 1、 因为 MUA 与 DNS 同处一个网段内,所以在这里首先会找 DNS 主机的 MAC 地址, MUA 与 DNS 不在一个网段内, 若 这时, 它会去找网关的 MAC

地址;

2、 根据 MUA 中所填 smtp 服务器域名,到 DNS 中查找相对应的 ip 地址; 因为 MUA 与 DNS 同处一个网段内, 所以在这里首先会找 DNS 主机的 MAC 地 址;

3、 主动与 smtp 服务器建立起 tcp 链接,由于 DNS 与 SMTP 服务器同处于 一台机器中,所以这里没有使用 arp 查询 smtp 服务器的 MAC 地址,因为 该 ip 的 mac 地址已经记录在本机计算机 arp 缓存当中了;

4、 MUA 发送邮件信息到 MTA 上去; a) 建立起 tcp 链接后, smtp 服务器端主动发送邮件服务器的相关信息 (如服 务器软件、支持的传输协议等)到 MUA;

b) MUA 根据提示,做出响应;

c) Smtp 服务器告诉 MUA,其所支持的范围;

d) 查询是否支持本域的转发;

e) 返回通告;

f) 询问是否支持转发至;

g) 返回通告;

h) 通知 smtp 服务器,将要开始传输数据;

i) 通告信息结束控制符是什么;

j) 发送邮件头信息;

k) 服务器回应收到;

l) 发送信件主体内容;

m) 告诉 MUA,信息已经接收到,接着返回该邮件在服务器中的队列号;

n) 告诉 smtp 服务器结束本次传输;

o) 服务器做出回应;

5、 断开本次的 tcp 链接;

6、 MTA 与 MDA 建立 tcp 链接, 在此部分之前, MTA 应向 DNS 查询 bird.jim

域的邮件服务器是谁?即该域中的 MX 记录指向谁。 由于 MTA 和 DNS 同处一 台机器,所以该步骤的数据包没有被显示出来;

7、 DNS 反向查找; 8、 邮件从 MTA 转发至 MDA; a) 开始对话,确认该份邮件可被接收;

b) 传输信件内容;

c) 结束 smtp 传输;

9、 断开 tcp 链接;

7.2 IP 协议
IP(Internet Protocol,互联网协议)协议是 TCP/IP 协议族中最为核心的 协议,所有的 TCP、UDP、ICMP 及 IGMP 数据都以 IP 数据报格式传输。IP 协议把 传输层送来的消息封装成 IP 数据包,并把 IP 数据包传递给数据链路层。IP 协 议制定了统一的 IP 数据报格式,向传输层屏蔽了通信子网的差异,从而为消息 的收发双方提供了一条透明的传输通道。 IP 数据包结构如图 1-1:

图 1-1 IP 包结构

7.21. 版本 IP 数据报的第一个域是版本域,其长度为 4bit,表示所使用的 IP 协议的版 本。通信双方使用的 IP 协议的版本必须一致。版本域值为 4 则表示 IPv4;版本 域值为 6 则表示 IPv6。当前的版本为 IPv4。 7.22. 报头长度 报头长度域长度为 4bit,它以 4 个字节为计算单位表示报头的长度,该长度 不包含数据部分。报头中除了 IP 选项域与填充域之外,其他各项是定长的。因 为很少使用 IP 选项功能,所以,该域的值一般为 5,意味着报头的长度是 5 个 4 字节,也就是 20 个字节。 协议规定:IP 数据报的报头长度必须是 4 字节的整数倍。当 IP 报头长度不是 4 字节的整数倍时,必须利用最后一个填充域“添 0”来加以填充。 7.23. 服务类型 如图 1-2 所示, 该字段占 8bit, 括 3bit 的优先级字段, 的服务类型 包 4bit (type of service,TOS)字段和 1bit 的保留位,保留位必须置 0。该字段用于指示路由 器如何处理该数据报。

图 1-2 服务类型字段结构

3bit 的优先级表示数据报的重要性,共分 8 级,数值越大等级越高,优先 级越高则表示数据报越重要(该字段值现在已被忽略) 。 4bit 的 TOS 字段分别表示:最小时延(D) 、最大吞吐量(T) 、最高可靠性 (R)和最小费用(C) 。每个位都有 0 或 1 两个值,但 4bit 中最多只能有一个位 的值为 1。如果所有 4 bit 均为 0,那么就意味着是一般服务。 1. 总长度 总长度域占 16 bit,它以字节为单位具体说明包括报头在内的整个 IP 数据 包的总长度。利用报头长度字段和总长度字段,就可以知道 I P 数据报中数据内 容的起始位置和长度。因为该字段有 16 bit,所以 IP 数据报最长可达 65535 字

节。尽管可以传送一个长达 65535 字节的 IP 数据报,但是大多数的链路层都要 求对它进行分片,总长度不得超过最大传输单元 MTU。当数据报被分片时,该字 段的值也随着变化。 2. 标识 标识字段占 16 bit,用来唯一地标识主机发送的每一份数据报,通常每发 送一份报文它的值就会加 1。当 IP 数据报必须进行分片时,这个标识域的值将 被复制到所有数据报分片的标识域中。 相同的标识域值使各数据报分片最后能正 确地重装为原来的数据报。 3. 标志 标志字段占 3bit, 一 bit 保留并总设为 0; 二 bit 是禁止分片标志 DF, 第 第 标识报文能否被分片,如果该位为 0,说明数据报可以被分片,如果等于 1,表 示不允许被分片;第三 bit 是分片标志 MF,只有在 DF 为 0 时该字段才有意义, 用以标识此报文是否是这系列分片的最后一个,0 表示接收到的是最后一个分片。 4. 片偏移 片偏移量表示该分片在整个数据报中的原来数据报中的相对位置。 片偏移以 8B 为偏移单位,因此选择的分片长度应该是 8B 的整数倍。 5. 生存时间(TTL) 生存时间 TTL(time-to-live)字段占 8bit,它设置了数据报可以经过的最 多路由器数。TTL 的初始值由源主机设置,一旦经过一个处理它的路由器,它的 值就减去 1。当该字段的值为 0 时,数据报就被丢弃,并发送 ICMP 报文通知源 主机。设置生存时间是为了避免无法发送的数据报永远在互联网上流动。 6. 协议类型 该字段占 8bit,指出此 IP 数据报的高层协议类型,以便目的主机的 IP 层 将数据部分上交给哪个高层协议处理。许多高层协议的数据能够被封装到 IP 数 据报中,如 TCP、UDP 和 ICMP 等。常用的协议号如表 1-1 所示。该字段是本程序 要求输出的信息之一。
表 1-1 常用的高层协议与其协议域值的对应关系 高层协议类型 协议域数值 ICMP 1 IGMP 2 TCP 6 EGP 8 UDP 17 IPv6 41 OSPF 89

7. 头部校验和 IP 头部校验和占 16 bit,它设置的目的是保证数据报头部的数据完整性, 而不包括数据部分。这样做的目的有两个:一是所有将数据封装在 IP 数据报中 的高层协议均含有覆盖整个数据的校验码,因此 IP 数据报没有必要再对其所承 载的数据部分进行校验;二是因为每经过一个路由器,IP 数据报的头部都要发 生改变,而数据部分并不改变,这样,校验和只对发生改变的首部进行校验显然 这不需要花费太多的处理时间。 为了减少计算校验和的开销,IP 数据报头部校验和不采用 CRC 校验码,而 是采用更简单的分段计算方法:发送端先把检验和字段置为 0,然后将头部划分 为长度为 16 bit 的比特序列,对头部中每个 16 bit 进行二进制反码求和,结果 存在检验和字段中;当收到一份 IP 数据报后,同样对头部中每个 16 bit 进行二 进制反码的求和。由于接收方在计算过程中包含了发送方存在头部中的检验和, 因此, 如果头部在传输过程中没有发生任何差错,那么接收方计算的结果应该为 全 1。 8. 源 IP 地址

源 IP 地址是 32bit,表示发送数据报的源主机的 IP 地址。在 IP 数据报从 源主机发送到目的主机的过程中,这个域的值必须保持不变。该字段是本程序要 求输出的信息之一。 9. 目的 IP 地址 目的 IP 地址也是 32bit,表示接收数据报的目的主机的 IP 地址。同样地, 在 IP 数据报从源主机发送到目的主机的过程中,这个域的值也必须保持不变。 该字段也是本程序要求输出的信息之一。 10. 选项域 选项预的长度范围为 0~40B,主要用于支持纠错、测量及安全等措施。在 使用选项字段的过程中,有可能出现报头部分的长度不是 4B 的整数倍。如果出 现这种情况,就需要通过增加全 0 的填充域凑齐。 7.24、UDP 协议 UDP 协议是一种无连接,不可靠的简单通信协议,所以其报头结构也较为 简单。UDP 数据包报头结构如图 1-3 所示。
UDP 头部 0 源端口号 总长度 15 16 目的端口号 校验和 图 1-3 UDP 数据包结构 31

源端口和目的端口分别代表本次 UDP 通信发起主机和目的主机所使用的端 口号, 总长度代表整个 UDP 数据包头和其发送数据的总长度。校验和是针对整个 数据包内容的网际校验值,提供对本数据包正确性的检查功能。 TCP 协议 TCP 协议是一种端对端的协议。使用 TCP 没有任何广播或类似的概念。要用 TCP 协议与另一台计算机通信,两台机之间必须像打电话一样连接在一起,每一 端都为通话做好准备。 “流传输” (Stream delivery)是 TCP 一个常用术语。这个 术语的含义是 TCP 协议主要用来处理数据流,可以正确处理乱序的数据包。TCP 协议甚至还允许存在丢失的或者损坏的数据包, 最终它可以再次得到这些数据包。 程序员也可以在 TCP 流中发送非结构化数据。 协议以它自己的方式缓存数据。 TCP 不过, 其缓存过程对程序员和用户是透明的。 数据包头的结构如图 1-4 所示。 TCP
TCP 头部 0 源端口号 序号 确认号
头长 保留 URG ACK PSH RST SYN FIN

7.25

15 1 6 目的端口号

31

窗口大小 紧急指针

校验和(16 位) 选项及填充

图 1-4 TCP 数据包结构

(1) 源端口号和目的端口号:分别代表本次 TCP 通信发起主机和目的主机 所使用的端口号; (2) 序列号:由于 TCP 协议是面向数据流的,它所传递的报文可以被视为 持续的数据流, 所以可以按照数据流中的先后顺序给每个字节编号,本序列号就 是该数据包中传递的第一个数据字节的编号; (3) 确认号:表示接收端希望接收的下一个 TCP 包第一个字节的编号,与 发送端的序列号对应; (4) 报头长度:TCP 数据包头部长度,其范围在 5-15 之间,所以 TCP 包头 最长可达 60B(长度单位为 ULONG) ; (5) 保留:无实际用途,置为零; (6) 控制字段:包括 SYN、ACK、PSH、RST、URG、FIN,其中 SYN 表示同步 信息,用来建立一个新的 TCP 连接,ACK 表示确认,只有当该位置位时,确认号 有效,PSH 表示希望协议栈尽快向上层传递数据,RST 表示 Reset,即强制切断 连接,URG 表示需要紧急处理的数据存在,FIN 代表连接正常终止,用来结束现 有 TCP 连接; (7) 窗口大小:表示当前滑动窗口大小,具体介绍参见滑动窗口协议模拟 一章。 (8) 校验和:数据报的网际校验值,提供错误发现功能; (9) 紧急指针:代表紧急数据在数据包中的位置,在 URG 置位时有效; TCP/IP 分层体系结构 计算机网络实际上是按照不同的通信功能划分的层次结构, 每一层功能都由 特定的协议来完成。 TCP/IP 协议族是当前最流行也是最成功的一套的网络协议栈, 其结构自底向上分为 4 层,分别为主机-网络层、互联网层、传输层和应用层。 主机至网络层在 TCP/IP 中并没有做具体的规定。通常情况下我们选择 Ethernet 网作为底层网络环境并使用常用的 5 层网络体系结构即物理层、数据链路层、网 络层、传输层和应用层作为分层标准。如图<3>给出了一些常见的协议以及其所 属层次。 7.26

图 1-5

TCP/IP 常见协议及其所在层次

7.27 数据帧的封装与解析 当应用程序通过 IP 网络传送数据时,数据被送入 TCP/IP 协议栈中,然后从 上至下逐一通过每一层, 直到最后被当作一串比特流送入网络。其中每一层收到 的数据都要增加一些首部信息, 这个过程被称作封装。通过以太网传输的比特流 称作帧。在传输的另一端,当目的主机收到一个以太网数据帧时,数据就开始从 协议栈由底向上逐层解析, 去掉各层协议所加上的报文头部。每层协议均要检查 头部中的协议标识字段, 以确定要接收数据的上层协议,最终从报文解析出应用 层数据后交给应用程序处理。封装与解析过程入图<4>所示:

图 1-5 数据的封装与解析

以太网的封包格式如图 1-6:

图 1-6 以太网封包格式 802.3 的封包格式如图 1-7:

图 1-7 802.3 封包格式 尽管 Ethernet II 和 802.3 的封包格式不同,但 Ethereal 在解码时,都是从 “类型” 字段来判断一个包是 IP 数据报还是 ARP 请求/应答或 RARP 请求/应答。 从 Ethernet II 知道了是 ARP 解析以后,我们来看看 Ethereal 是如何判断是 ARP 请求呢还是应答的。 我们先复习一下以太网的 ARP 请求和应答的分组格式,如图 1-8。

图 1-8 分组格式 从上图中我们了解到判断一个 ARP 分组是 ARP 请求还是应答的字段是 “op” , 当其值为 0×0001 时是请求,为 0×0002 时是应答。

下面是一张地址为 192.168.1.2 的计算机正在访问“openmaniak.com”网站 时的截图。

1. MENUS(菜单) 2. SHORTCUTS(快捷方式) 3. DISPLAY FILTER(显示过滤器) 4. PACKET LIST PANE(封包列表) 5. PACKET DETAILS PANE(封包详细信息) 6. DISSECTOR PANE(16 进制数据) 7. MISCELLANOUS(杂项) 1. MENUS(菜单)

程序上方的 8 个菜单项用于对 Wireshark 进行配置: - "File"(文件) - "Edit" (编辑) - "View"(查看) - "Go" (转到) - "Capture"(捕获)

- "Analyze"(分析) - "Statistics" (统计) - "Help" (帮助) 打开或保存捕获的信息。 查找或标记封包。进行全局设置。 设置 Wireshark 的视图。 跳转到捕获的数据。 设置捕捉过滤器并开始捕捉。 设置分析选项。 查看 Wireshark 的统计信息。 查看本地或者在线支持。 2. SHORTCUTS(快捷方式)

在菜单下面, 是一些常用的快捷按钮。您可以将鼠标指针移动到某个图标上 以获得其功能说明。 3. DISPLAY FILTER(显示过滤器)

显示过滤器用于查找捕捉记录中的内容。 请不要将捕捉过滤器和显示过滤器的概念相混淆。请参考 Wireshark 过滤器中的 详细内容。 4. PACKET LIST PANE(封包列表)

封包列表中显示所有已经捕获的封包。在这里您可以看到发送或接收方的 MAC/IP 地址,TCP/UDP 端口号,协议或者封包的内容。 如果捕获的是一个 OSI layer 2 的封包, 您在 Source (来源) Destination 和 (目 的地)列中看到的将是 MAC 地址,当然,此时 Port(端口)列将会为空。 如果捕获的是一个 OSI layer 3 或者更高层的封包,您在 Source(来源)和 Destination(目的地)列中看到的将是 IP 地址。Port(端口)列仅会在这个封包 属于第 4 或者更高层时才会显示。

您可以在这里添加/删除列或者改变各列的颜色: Edit menu -> Preferences 5. PACKET DETAILS PANE(封包详细信息)

这里显示的是在封包列表中被选中项目的详细信息。信息按照不同的 OSI layer 进行了分组,您可以展开每个项目查看。下面截图中展开的是 HTTP 信息。

6. DISSECTOR PANE(16 进制数据)

“解析器”在 Wireshark 中也被叫做“16 进制数据查看面板” 。这里显示的内 容与“封包详细信息”中相同,只是改为以 16 进制的格式表述。 在上面的例子里,我们在“封包详细信息”中选择查看 TCP 端口(80)其 , 对应的 16 进制数据将自动显示在下面的面板中(0050) 。 7. MISCELLANOUS(杂项)

在程序的最下端,您可以获得如下信息:

--------

正在进行捕捉的网络设备。 捕捉是否已经开始或已经停止。 捕捉结果的保存位置。 已捕捉的数据量。 已捕捉封包的数量。(P) 显示的封包数量。(D) (经过显示过滤器过滤后仍然显示的封包) 被标记的封包数量。(M)

正如您在 Wireshark 教程第一部分看到的一样,安装、运行 Wireshark 并开 始分析网络是非常简单的。 使用 Wireshark 时最常见的问题,是当您使用默认设置时,会得到大量冗余 信息,以至于很难找到自己需要的部分——过犹不及。 这就是为什么过滤器会如此重要。 它们可以帮助我们在庞杂的结果中迅速找 到我们需要的信息。 - 捕捉过滤器: 用于决定将什么样的信息记录在捕捉结果中。需要在开始捕捉前设置。 - 显示过滤器: 在捕捉结果中进行详细查找。他们可以在得到捕捉结果后随意修改。 那么我应该使用哪一种过滤器呢? 两种过滤器的目的是不同的。捕捉过滤器是数据经过的第一层过滤器,它用 于控制捕捉数据的数量,以避免产生过大的日志文件。 显示过滤器是一种更为强大(复杂)的过滤器。它允许您在日志文件中迅速 准确地找到所需要的记录。 两种过滤器使用的语法是完全不同的。 我们将在接下来的几页中对它们进行 介绍:

1. 捕捉过滤器

2. 显示过滤器

参考:http://71241.blog.51cto.com/61241/427948

7.3 数据包分析之 TCP: 第一部分 :TCP 三次握手 首先由 ,请求建立链接 的一端(一般是客户机) ,发送 SYN(同步序列号) 给 对端 ;

接着由响应端(一般是服务器) ,发送 ACK 回应,并同时发送建立链接的请 求到对端;

最后由 请求端发送 ACK 确认到响应端;

对应第 7 个数据包 第二部分:断开 TCPTCPTCP 链接 首先由主动断开方发送 FIN(链接完毕)断开链接位 ;

紧接着被动断开方立即做出 ACK 回应。

接着被动断开方也发出一个 FIN 断开链接位 断开链接位,并附随 26 数据 包中的 ACK 值;

最后由主动断开方发出 ACK 确认信号。

数据包分析之 SMTP: 在 cmd 中依次输入如下命令:
telnet smtp.163.com 25 ehlo eric auth login Y2hhbmd4eGxpYW5n eGlubWltYQ== mail from: <orientlove@163.com> rcpt to: < orientlove @163.com> data Subject: hellox mail hello, this is a test mail. . rem quit

下面分别进行解释:

8) 第四条报文:

即实现登陆连接。

8. BS/CS 模式分析
BS 网络模式的结构、工作原理和特点 BS 网络结构模式是基于 Intranet 的需求而出现并发展的。Intranet 是应用 TCPIP 协议建立的企事业单位内部专用网络,它采用诸如 TCPIP、HTTP、SMTP 和 HTML 等 Internet 技术和标准,能为企事业单位内部交换信息提供服务。同时, 它具有连接 Internet 的功能和防止外界入侵的安全措施。另一方面,由于数据库 具有强大的数据存储和管理能力,并且能够动态地进行数据输入和输出,如果把 数据库应用于 Intranet 上,不仅可以实现大量信息的网上发布,而且能够为广大 用户提供动态的信息查询和数据处理服务,进而加强企事业单位内部部门之间、 上级部门与下级部门之间、 企事业单位员工之间、企事业单位与客户之间以及企 8.1

事业单位与企事业单位之间的信息交流,降低企事业单位的日常工作成本,提高 企事业单位的经济效益。 BS 模式的模型结构 BS 模式,即浏览器/服务器模式,是一种从传统的二层 CS 模式发展起来的 新的网络结构模式,其本质是三层结构 CS 模式。 BS 模式的工作原理 在 BS 模式中,客户端运行浏览器软件。浏览器以超文本形式向 Web 服务器 提出访问数据库的要求,Web 服务器接受客户端请求后,将这个请求转化为 SQL 语法,并交给数据库服务器,数据库服务器得到请求后,验证其合法性,并进行 数据处理,然后将处理后的结果返回给 Web 服务器,Web 服务器再一次将得到 的所有结果进行转化, 变成 HTML 文档形式, 转发给客户端浏览器以友好的 Web 页面形式显示出来。 8.13 BS 模式的特点 BS 模式管理信息系统基本上克服了 CS 模式管理信息系统的不足, 其主要表 现在: 8.2 系统开发、维护和升级的经济性 对于大型的管理信息系统,软件开发、维护与升级的费用是非常高的,BS 模式所具有的框架结构可以大大节省这些费用,同时,BS 模式对前台客户机的 要求并不高,可以避免盲目进行硬件升级造成的巨大浪费。 BS 模式提供了一致的用户界面 BS 模式的应用软件都是基于 Web 浏览器的, 这些浏览器的界面都很相似。 对于无用户交互功能的页面, 用户接触的界面都是一致的,从而可以降低软件的 培训费用。 8.22 BS 模式具有很强的开放性 在 BS 模式下,外部的用户亦可通过通用的浏览器进行访问。 8.21 8.12 8.11

8.23

BS 模式的结构易于扩展 由于 Web 的平台无关性,BS 模式结构可以任意扩展,可以从一台服务器、 几个用户的工作组级扩展成为拥有成千上万用户的大型系统。 8.24 BS 模式具有更强的信息系统集成性 在 BS 模式下,集成了解决企事业单位各种问题的服务,而非零散的单一功 能的多系统模式,因而它能提供更高的工作效率。 8.25 BS 模式提供灵活的信息交流和信息发布服务 BS 模式借助 Internet 强大的信息发布与信息传送能力可以有效地解决企业 内部的大量不规则的信息交流。 8.3 CS 网络模式的结构、工作原理和特点

CS 模式是一种两层结构的系统:第一层是在客户机系统上结合了表示与业 务逻辑; 第二层是通过网络结合了数据库服务器。 模式主要由客户应用程序、 CS 服务器管理程序和中间件三个部分组成。 首先, 交互性强是 CS 固有的一个优点。 在 CS 中,客户端有一套完整应用程序,在出错提示、在线帮助等方面都有强大 的功能,并且可以在子程序间自由切换。其次,CS 模式提供了更安全的存取模 式。由于 CS 配备的是点对点的结构模式,采用适用于局域网、安全性可以得到 可靠的保证。 BS 采用点对多点、 而 多点对多点这种开放的结构模式, 并采用 TCPIP 这一类运用于 Internet 的开放性协议,其安全性只能靠数据服务器上管理密码的 数据库来保证。由于 CS 在逻辑结构上比 BS 少一层,对于相同的任务,CS 完成 的速度总比 BS 快,使得 CS 更利于处理大量数据。由于客户端实现与服务器的直 接相连,没有中间环节,因此响应速度快。同时由于开发是针对性的,因此,操 作界面漂亮,形式多样,可以充分满足客户自身的个性化要求。但缺少通用性, 业务的变更,需要重新设计和开发,增加了维护和管理的难度,进一步的业务拓 展困难较多。 不过此部分内容对于管理制度成熟的仓库企业而言,其困难度并不 大。 8.4 基于 BS 模式和 CS 模式结合策略

如上所述,BS 在 MIS 中的一个重要用途即是 WEB。而目前企业 WEB 的基本 工作模式就是: ①WEB Browser 根据用户操作对 WEB Server 提出访问请求。 ②Server 将请求分析处理,通过 CGI 访问 DBMS 以进行数据的查询统计或事 务的提交。 ③CGI 根据 DBMS 返回的结果生成 HTML 文书经过 Server 向客户的 Browser 返回结果。 ④Browser 将 HTML 结果显示给用户。 上述流程,工作量主要在 WEB Server 部分,而对该部分的处理目前也有几 种方法,有用 CGI 访问 DBMS,也有依靠 Web Server 自身具有数据库处理能力, 也有混合访问 DBMS,但总的来说,对 Web Server 端的应用开发能满足我们的要 求。 在各个子系统的应用上,我们仍然使用 ClientServer 方式,在典型的 CS 数据 库应用中,数据的储存管理功能,是由服务器程序独立进行的,并且通常把那些 不同的(不管是已知还是未知的)前台应用所不能违反的规则,在服务器程序中 集中实现,例如访问者的权限,编号不准重复、必须有客户才能建立定单这样的 规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须 过问(通常也无法干涉)这背后的过程,就可以完成自己的一切工作。在客户服 务器架构的应用中,前台程序可以变的非常“瘦小” ,麻烦的事情,都交给了服 务器和网络。在 CS 体系下,数据库真正变成了公共、专业化的仓库,受到独立 的专门管理。无论你用小型 XBASE 类数据库,或大型的 Oracle 、Sybase 类数据 库, 在客户端你仍然要装实用程序用于数据服务器的信息联系,而同样对于大多 数管理类用户则可安装浏览器编制一定的 CGI 程序,甚至利用新出现的 JDBC 或 ASP 技术??实现与后台数据库的连接。

为此,我们在仓储管理信息系统中的货主物资入出库管理采用 CS 模式,而 在货主库存物资动态信息管理采用 BS 模式。具体的功能模块和数据库结构参见 文献。 CS,BS 总结 对于企业的 BS 应用,从当前的技术水平看,特别适用于系统同用户交互量 不大的应用,对于需要大量频繁、高速交互的应用系统,采用这种模式并不一定 是最好的选择。采用 Intranet 应用模式并不一定要全部取代传统的 ClientServer 结构,从某种意义特别是从近期的发展看,二者应用界限并不清晰,而且往往是 互相补充、相辅相成的。事实上,企业 MIS 采用 BS 模式并不是要求把应用都转 到 WEB Server 上来,而是要根据情况来选择。那么,在应用中新的 BS 模式就需 要能同传统的 CS 模式结合起来。 企业在选择 MIS 系统平台模式时,要考虑到 BS 模式的先进性,也要考虑到 CS 模式的成熟性,还可以根据企业自身的业务特点,采取 CS 与 BS 交叉并用的 体系结构。Intranet 系统的出现,其技术日益走向成熟,无疑是企业 MIS 建设的 首选模式。但目前情况下,完全抛弃 CS 技术及其系统结构模式也是不实际的。 一方面,原来的系统能满足使用要求的应保留使用;另一方面,CS 技术能解决 许多目前 Intranet 系统还不易解决的问题。此外,Intranet 系统的优越性表现在 对信息的发布、数据的收集、数据共享方面。事实上,只有将主要以数据库为处 理对象的统计、分析、控制作为主体的业务处理技术(CS 技术)与采用 WEB 技 术的信息查询、 发布系统的有机结合, 才是仓储管理企业网络化的最佳解决方案。 8.6


赞助商链接
相关文章:
电子邮件协议威胁及分析
电子邮件协议威胁及分析_互联网_IT/计算机_专业资料。电子邮件协议,网络安全电子邮件协议威胁及分析 2013.10.25 摘 要 本文介绍了电子邮件协议的基本内容,以及在各...
实验一 电子邮件协议分析
实验一 电子邮件协议分析 - 实验 15 电子邮件协议(SMTP、POP3 和 IMAP) 练习 1 使用 Outlook 发送电子邮件 3. (1)参考答案 25 (2)参考答案 可以看...
Wireshark抓包分析POP3和SMTP协议
POP 协议是基于 TCP/IP 的协议 4. 过程总结 由上述实验结果和实验分析可知,账户的登录过程为:当邮 件发送到服务器后,账户登录时,电子邮件客户端会调用邮件客 ...
网络协议分析实验报告1-Email的发送和接收 - 副本
网络协议分析实验报告1-Email的发送和接收 - 副本_计算机软件及应用_IT/计算机_专业资料。简单电子邮件的发送和接收协议的实验,使用了wireshark软件和Windows的Telnet...
基于WEB的电子邮件系统邮件协议功能实现
第 1 页共 10 页 基于 WEB 的电子邮件系统邮件协议研究与系统功能实现 年 月 中文摘要通过分析 JavaMail 的实现原理,采用开源框架 Struts,Spring, Hibernate 和...
MIME协议及邮件格式分析_图文
MIME协议及邮件格式分析 - 电子邮件也许是一个 Internet 上的流行最广泛的应用。也是我们现在的大多数网络办公流程的基础。各种邮件服 务器很多,但都大都遵循以 ...
浅谈安全电子邮件协议
浅谈安全电子邮件协议 - 浅谈安全电子邮件协议 我们经常使用的电子邮件必须要有安全协议的保护和规范才能正确无误安全得发送到对方 的邮箱里面。那么安全电子邮件协议 ...
电子邮件安全协议—PGP
年第 08 期 摘要 首先介绍电子邮件的传输过程,引出安全电子邮件的重要性,然后介绍电子邮件安 全协议 PGP,涉及到的 IDEA、RSA、MD5 加密算法以及其安全性分析。 ...
深入浅析SMTP协议,利用命令行发送E-mail
深入浅析SMTP协议,利用命令行发送E-mail_互联网_IT/计算机_专业资料。今天闲来无...SMTP邮件协议文档 51页 1下载券 C#基于SMTP协议发送电子... 暂无评价 15页 免...
(强烈推荐)基于WEB的电子邮件系统邮件协议研究与系统功...
(强烈推荐)基于WEB的电子邮件系统邮件协议研究与系统功能实现毕业论文设计 - 毕业论文,单片机论文,毕业论文设计,毕业过关论文,毕业设计,毕业设计说明,硕士论文,研究生...
更多相关标签: