域名系统
域名系统(Domain Name System,DNS)是因特网使用的命令系统,用来把便于人们记忆的具有特定含义的主机名转换为便于机器处理的IP地址。
DNS系统采用C/S模型,其协议运行在UDP
之上,使用53
号端口。
层次域名空间
英特网采用层次树状结构的命名方法。采用这种命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称,即域名。
域名又分为顶级域名、二级域名、三级域名等。每个域名都由标号
序列组成,每个域名之间使用“.”分隔。
例如www.google.com,其中com是顶级域名,google是二级域名,www是三级域名
在域名中有以下几点需要注意:
标号中的英文不区分大小写。
标号中除连字符(-)外不能使用其他的标点符号
每个标号不超过63个字符,多标号组成的完整域名最长不超过255个字符
级别最低的域名写在最左边,级别最高的顶级域名写在最右边
顶级域名分为以下三大类:
国家顶级域名。国家和某些地区的域名,如“.cn”表示中国,“.us”表示美国,“.uk”代表英国,“.hk”代表中国香港特别行政区。
通过顶级域名。常用的有“.com”(公司)、“.net”(网络服务机构)、“.org”(非营利性组织)和“.gov”(美国政府部分)等。
基础结构域名。这种顶级域名只有一个,即`arpa,用于反向域名解析,因此又称反向域名
在域名系统中,每个域分别由不同的组织进行管理。每个组织都可以将它的域再分成一定数目的子域,并将这些子域委托给其他组织去管理。
域名服务器
根域名服务器
根域名服务器是最高层次的域名服务器,所有的
根域名服务器都知道所有的
顶级域名服务器的IP地址。
根域名服务器是最重要的域名服务器,不管是哪个本地域名服务器服务器
,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先
求助于一个根域名服务器。
需要注意的是
,根域名服务器用来管辖顶级域(如.com),通常它并不直接把待查询的域名直接转换成IP地址,而直接告诉本地域名服务器下一步应当找哪个顶级域名服务器进行查询。
顶级域名服务器
这些顶级域名服务器负责管理
在该顶级域名服务器注册的所有二级域名
。收到DNS查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当查找的域名服务器的IP地址)
授权域名服务器(权限域名服务器)
每台主机都必须在授权服务器处登记。实际上,许多域名服务器都同时充当本地域名服务器和授权域名服务器。授权域名服务器总是能将其管辖的主机名转换为该主机的IP地址
本地域名服务器
当一台主机发出DNS查询请求时,这个查询请求报文就发送给该主机的本地域名服务器。
域名解析过程
域名解析是指把域名映射成IP地址或把IP地址映射成域名的过程。前者称为正向解析
,后者称为反向解析
。
当一个DNS服务器收到收到DNS查询结果时,它能将该DNS信息缓存在高速缓存中。DNS服务器将在一段时间后丢弃高速缓存中的信息。
域名解析有两种方式:递归查询和递归与迭代想结合的查询。
递归查询
如果本地主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向根域名服务器继续发出查询请求报文。然后根域名服务器继续向顶级域名发出查询请求。
在这种情况下,本地域名服务器只需要向根域名服务器查询一次,后面的几次查询都是递归地在其他几个域名服务器之间进行的。本地域名服务器从根域名服务器得到所需的IP地址。
迭代查询
当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出要查询的IP地址,要么告诉本地域名服务器顶级域名服务器的IP地址,然后让本地域名服务器向这个顶级域名服务器进行后续的查询。同样,顶级域名服务器收到查询报文后,要么给出最后的IP地址,要么给出本地域名服务器权限域名服务器的IP地址,然后本地域名服务器向权限域名服务器发出查询然后的到最后结果。
电子邮件系统
电子邮件系统的组成结构
一个电子邮件系统有三个最重要的组成构件:用户代理(User Agent)、邮件服务器和电子邮件使用的协议。
用户代理
用户与电子邮件系统的接口。用户代理使用户能够通过一个很友好的接口发送和接收邮件,通常情况下,用户代理就是一个运行在PC上的程序。
邮件服务器
邮件服务器采用C/S工作方式,但它能够同时充当客户和服务器。当邮件服务器作为邮件的接收方时充当服务器,当邮件服务器作为邮件的发送方时充当客户
邮件发送协议和读取协议
邮件发送协议用于用户代理向邮件服务器发送邮件或在邮件服务器之间发送邮件,通常使用的是SMTP;邮件读取协议用于用户代理从邮件服务器读取邮件,如POP3。
SMTP采用的是Push的通信方式,即在用户代理向邮件服务器发送邮件及在邮件服务器之间发送邮件时,使用SMTP将邮件推送到服务器端。
POP3采用的是Pull的通信方式,即用户读取邮件时,用户代理向邮件服务器发出请求,拉取用户邮箱中的邮件
电子邮件格式与MIME
电子邮件格式
一个电子邮件分为信封和内容两大部分,邮件内容又分为首部和主体两部分。用户写好首部后,邮件系统自动地将信封所需的信息提取出来并写在信封上
,用户不需要亲自填写信封上的信息
邮件内容的首部包含一些首部行,每个首行由一个关键字后跟冒号再后跟值组成。有些关键字是必需的,有些是可选的。
To是必需
的关键字,后面跟一个或多个
收件人的电子邮件地址。电子邮件地址的规定格式为:收件人邮箱名@邮箱所在主机的域名。例如xxxx@xxx.com
From是必填
关键字,但它通常由邮件系统自动填入
。
Subject是可选
关键字,是邮件的主题,反映了邮件的主要内容。
邮件内容的首部与主体之间用一个空行进行分割。
多用途网络邮件扩充(MIME)
由于SMTP只能传送一定长度的ASCII码
,许多其他国家的文字和一些视频、二进制文件无法传送,因此提出了多用途网络邮件扩充(Multipurpose Internet Mail Extensions, MIME)
MIME并未改动SMTP或取代它。MIME继续使用目前的格式,但增加了邮件主体的结构,并定义了传送非ASCII码的编码规则。也就是说,MIME邮件可以在现有的电子邮件程序的协议下传送
MIME主要包括以下三个内容:
1、5个新的邮件首部字段,包括MIME版本、内容描述、内容标识、内容传送编码和内容类型
2、定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化
3、定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变
SMTP和POP3
SMPT
简单邮件传输协议(Simple Mial Transfer Protocol, SMTP)是一种提供可靠且有效的电子邮件传输的协议,他控制两个互相通信的SMTP进程交换信息。SMTP使用TCP连接,端口号为25
连接建立
发件人的邮箱发送到发送方的邮件服务器的邮件缓存后,SMTP客户就每隔一定时间对邮件缓存扫描一次。如发现有邮件,就使用SMTP与接收方邮件服务器建立TCP连接。连接建立后,接收方SMTP服务器
就发出220 service ready。然后SMTP发送方向SMTP接收方发出HELO命令,附上发送方的主机名。
SMTP不使用中间邮件服务器
。TCP连接总是在发送方和接收方这两个邮件服务器之间直接建立,而不管他们相隔多远。接收方的邮件服务器因故障暂时不能建立连接时,发送方的邮件服务器只能等待一段时间后再次尝试连接。
邮件传送
连接建立后,就可开始传送邮件。邮件的传送从MAIL命令开始,MAIL命令后面有发件人的地址。如MAIL FROM:xxx@xxx.com。若SMTP服务器已准备好接收邮件,则回答250OK。接着SMTP客户端发送一个或多个RCPT(收件人recipient的缩写),格式为RCPT TO: <收件人地址>。每发送一个RCPT命令,都应有相应的信息从SMTP服务器返回,如250 OK或550 No such user here
RCPT命令的作用是,先弄清接收方系统是否已做好接收邮件的准备,然后才发送邮件。
获得OK的回答后,客户端就使用DATA命令,表示要开始传输邮件的内容。正常情况下,SMTP服务器端回复是354 Start mail input; end with
连接释放
邮件发送完毕后,SMTP客户端发送QUIT命令,SMTP服务器端返回的信息是221(服务关闭),表示SMTP同意释放连接。邮件传送的全过程就此结束
POP3
邮局协议(Post Office Protocol, POP)是一个非常简单但功能有限的邮件读取协议,现在使用的是它的第三个版本POP3。当用户读取邮件时,用户代理向邮件服务器发出请求,拉取用户邮箱中的邮件。
POP也使用C/S的工作方式,在传输层使用TCP,端口号为110
。POP有两种工作方式——下载并保留和下载并删除。在下载并保留方式下,用户从邮件服务器上读取邮件后,邮件依然会保存在邮件服务器上,而使用下载并删除的方式时,邮件一旦被读取,就被从邮件服务上删除
另一个邮件接收协议是网际报文存取协议(IMAP),它要比POP复杂得多,但目前还只是因特网的建议标准。
此外,随着万维网的发展,目前出现了很多基于万维网的电子邮件。这种电子邮件的特点是浏览器与邮件服务器之间邮件发送或接收
使用的是HTTP,而仅在不同邮件服务器之间传送邮件时才使用SMTP。
常用应用层协议端口使用情况
应用程序 | FTP数据连接 | FTP控制连接 | TELNET | SMTP | DNS | TFTP | HTTP | POP3 | SNMP |
---|---|---|---|---|---|---|---|---|---|
使用协议 | TCP | TCP | TCP | TCP | UDP | UDP | TCP | TCP | UDP |
端口号 | 20 | 21 | 23 | 25 | 53 | 69 | 80 | 110 | 161 |