说明:自己是看谢希仁老师的《计算机网络简明教程》学的计算机网络。这些都是自己对书里的个人总结而已,没有涉及编程之类。
电子邮件:
-
电子邮件概述
这里所说的电子邮件,是作为应用层的一个应用进程,是一个独立的应用,而不是网页版的 QQ 邮箱之类。如果是网页版的邮箱之类,本质上还是万维网这类应用进程。(网页版邮箱后面也会提一下)
一个电子邮件系统有三个主要组成构件,即用户代理(可以说是客户机进程)、邮件服务器、邮件协议。邮件从客户机一直到服务器,需要使用的协议有 SMTP、POP3 或者 IMTP(这三种应用层协议的传输层协议,都是 TCP 协议)。
用户代理上,都有集成了 SMTP 和POP3(或者是IMAP)的。只是执行发送任务的时候,只使用了 SMTP 协议。而每一个和用户代理直接联系的也一定是具备了 SMTP 和 POP3 两种协议。只是在接收客户机发送来的邮件,或者服务器间互传邮件时,应用层的进程都是使用 SMTP 协议。只有向接收代理发送邮件时,服务器才使用 POP3 协议。当然,发送方 / 接收方服务器只是相对于语境下的说法,不同情况下互相转换而已(注意,图里所说的 SMTP 服务器、POP3 服务器并不是说有两个不同的服务器,只是说这一个服务器上,同时运行了SMTP 、POP3 两个进程。如果是 SMTP 进程发挥作用,即称 SMTP 服务器。换言之是 POP3 服务器。本质上,无论是客户机还是服务器,最终端交互信息的都不是机子,而是应用进程)。 -
简单邮件传送 SMTP
简单邮件传送 SMTP(simple mail transfer protocol)用于用户代理向邮件服务器发送邮件,或者是邮箱服务器之间相互传递邮件。SMTP 服务器接收到客户代理发送过来的邮件之后,就把邮件临时存放在邮件缓存队列里。等待发送到接收方的邮件服务器中。
发送方邮件服务器和接收方邮件服务器建立 TCP 连接,将邮件依次发出去。TCP 连接,总是在接收方和发送方两个服务器之间之间建立连接,不需要连接其他(不过本来就是嘛,只是中途需要路由器之类而已)。
SMTP 使用 TCP 并不能保证不丢失邮件。它只能保证能够可靠地将邮件发送到接收方服务器里。但是接收方服务器可能崩溃了完全有可能。 -
接收方的协议 POP3 和 IMAP
邮局协议 POP3(post office protocol v3) 或者 网际报文存取协议 IMAP (internet message access protocol )用于向邮件服务器读取协议。
POP3 协议的特点是只要用户从 POP3 服务器(即是通过服务器到的 POP3 应用程序)读取邮件后,POP3 服务器就会将该邮件删掉,这样其实很不方便。现在做了拓展,可以让用户设置读取邮件后保留该邮件的时间(但还是会删除)。
IMAP 相对而言,会复杂很多。它是一个联机协议。用户在客户机上就可以操作邮件服务器里的邮件,就像操作本地的文件一样。IMAP 的好处是, 用户未发出删除命令时, IMAP 服务器会一直保存着邮件。打开 IMAP 服务器的邮件时,只会显示邮件的首部,只有点击具体的邮件,才会将整个邮件发送到桌面。且,用户可以使用不同的电脑读取邮件。 -
基于万维网的电子邮件
如果是使用网页版的电子邮件,在浏览器和互联网上的邮件服务器之间还是使用 HTTP 协议,只是在各邮件服务器间传递邮件是使用 sMTP 协议。 -
动态主机配置协议
对于应用层、运输层之类的协议,它们时需要去兼容各种操作系统的,通常它们是以软件的形式体现的(不是驱动,驱动需要和具体的硬件相配合)。如何把协议软件做成通用和便于移植的,协议软件的编写者不会把所有的细节都很确定地固定在源代码里。相反,他们将协议软件参数化(像是预留接口,和不同的操作系统相匹配就好了),在协议软件运行之前,需要给各个参数赋值,称为协议配置。
协议配置的参数,具体需要的是:
(1)IP 地址
(2)子网掩码(指定哪些位是网络号、哪些是主机号)
(3)默认路由器的 IP 地址
(4)域名服务器的 IP 地址
互联网现在使用的是动态主机配置协议 DHCP (dynamic host configuration protocol),它提供了一种机制,即插即用连网(plug-and-play networking)。这种机制允许一台计算机加入新的网络和获取 IP 地址而不需要手工参与。DHCP 对于客户机和服务器都使用。对于客户机,移动到另一个网络时,使用 DHCP 配置信息就可以了。而 DHCP 配置服务器,配置的是一个永久的地址(这一点很可以理解)。
DHCP 使用客户-服务器方式,即是客户机先运行这个软件,向 DHCP 服务器广播发送报文(DHCPDISCOVR),这时客户机的 IP 地址,先是被预置为全1,即是255.255.255.255。DHCP 服务器收到报文后,先在数据库查找该客户机的配置信息,若找到,则返回。如果没有,则从服务器的 IP 地址池(address pool,即是空闲的地址)中取一个地址,发送回去。DHCP 服务器的回答报文,称为提供报文(DHCPOFFER)。
如果在每个网络里都配置一个 DHCP 服务器,成本太高。现在基本是在每个网络至少有一个 DHCP 中继代理(relay agent,通常是一台路由器),它存储了 DHCP 服务器的 IP 地址。当客户机通过广播发送给中继代理时,中继代理点对点发送给 DHCP 服务器。
值得一提的是,DHCP 服务器分配的 DHCP 用户的 IP 地址,是临时的。因此,客户机只能在一段时间获得这个 IP 地址的使用权,称为租用期(lease agent)。这一个由 DHCP 自行决定(终于知道使用校园网到期续费的原理了 )。
Windows系统下,控制面板——网络——某个网络的菜单——TCP/IP协议——属性,选择“自动获得 IP 地址”和“自动获得 DNS 服务器地址”,即是使用 DHCP 协议。 -
P2P 体系
P2P 体系即是在一个没有或者只有极少数固定的服务器,而绝大多数的交互都是使用对等方式(P2P 方式,每台机子都作为服务器和客户机)进行的网络交互。这些极少数的服务器,只是专门存放现有网络里的资源所在 IP 或者有多少个 IP 而已。绝大多数是用直接访问目标机的形式获取信息。大多数的机子,又做资源请求方,又做资源提供方。这才是区别于 C/S 式的。