考研笔记-应用层

4. 应用层

  4.1 应用层协议原理

    4.1.1 应用层协议及描述

      网络应用跟应用层协议是两个概念,应用层协议是网络应用的一部分。通信双方应用层交换的协议数据单元是报文,应用层协       议定义了运行在不同端系统上的应用程序进程间相互传递报文的方式。应用层协议涉及:

      1)交换的报文类型,如请求报文和响应报文。

      2)报文的语法格式,如报文中包含的字段以及相应的描述。

      3)报文中字段的语义,字段中二进制位组合的含义。

      4)各种类型报文发送的先后顺序和规则。

      应用层是5层计算机网络体系结构中的最高层。以Internet中的TCP/IP协议为例,主要的应用层协议有:域名系统(DNS)、超       文本传输协议(HTTP)、文件传输协议(FTP)、简单邮件传输协议(SMTP)、简单网络管理协议(SNMP)、远程登录协议          (Telnet)等。

    4.1.2 应用层需要的服务

      网络应用需要从运输层获得哪些服务,涉及三方面的服务质量保证:

      1)可靠的数据传输

      2)有很低的数据丢失率

      3)足够的带宽和低时延

    4.1.3 网络应用的计算模式

      计算机网络中网络应用的计算模式主要有客户机/服务器(C/S)模式、对等模式(P2P)。运用最多的还是C/S模式,例如,         Internet中的web应用中的浏览器/服务器(B/S)、电邮服务中邮件代理/服务器模式。

      客户机/服务器模式的基本组成包括:提供服务的服务器主机和请求服务的客户机,客户机软件和服务器软件,支持服务器和客       户机通信传输信息的网络。工作流程是:

      1)服务器处于接收请求状态

      2)客户机发出服务请求,并等待接收结果

      3)服务器收到请求后,分析请求,进行必要的处理,得到结果并发送给客户机

    C/S模型的主要特点还有:

      1)网络中各计算机的地位不平等,服务器可以通过对用户的权限控制来达到管理客户机的目的。

      2)客户机之间不直接通信。

      3)可扩展性不佳。

 

  4.2 域名系统DNS

    DNS系统采用的C/S模型,其协议运行在UDP之上,使用53号端口。

    概念上可以把DNS分成3个部分:层次域名空间、域名服务器、解析器。

    4.2.1 层次域名空间

      因特网采用层次树状结构的命名方法。采用这种方法,任何连接互联网的主机或者路由器都有唯一的层次结构名字,即域        名。“域”是名字空间中可被管理的划分,域还可以划分为子域,子域还能继续划分为子域的子域,这样就形成了顶级域,二级        域,三级域等。每个域名都有标号序列组成,各标号之间用“.”连接。

    关于域名标号有以下几点需注意:

      1)标号中英文不区分大小写

      2)标号中除连字符(-)外不能使用别的标点符号

      3)每个标号不超过63个字符,多标号组成完整域名最长不超过255个字符

      4)级别最低的域名在最左边,级别最高的在最右

    顶级域名有以下三大类:

      1)国家顶级域名nTLD。国家和某些地区的域名,如“.cn”代表中国,“.uk”代表英国,“.hk”代表中国香港特区。

      2)通用顶级域名gTLD。常见的有“.com”(公司企业)、“.net”(网络服务机构)、“.org”(非营利性组              织)、“.gov”(政府部门)等。

      3)基础结构域名。这种顶级域名只有一个,即arpa,用于反向域名解析,又称反向域名。

 

    4.2.2 域名服务器

      域名到IP的解析是由运行在域名服务器上的程序完成的,一个服务器所管辖的范围称为区,每个区设置相应的权限域名服务        器,用来保存该区域中所有主机域名到IP地址的映射。每个域名服务器不但能进行一些域名解析,而且还必须具有连向其他域名服      务器的信息。当自己不能进行域名到IP地址转换时,能知道去什么地方找别的域名服务器。

      DNS系统采用分布式设计,主要有四种类型的域名服务器。

      1.根域名服务器

        根域名服务器是最高层次的服务器,所有根域名服务器都知道所有顶级域名服务器的IP地址。根域名服务器也是最重要的         域名服务器,本地域名服务器无法解析时,首先要求助于根域名服务器。根域名服务器用来管辖顶级域,他并不是把待查询的         域名解析成IP地址,而是告诉本地域名服务器该找哪个顶级域名服务器进行查询。

      2.顶级域名服务器

        这些域名服务器负责管理在该顶级域名注册的所有二级域名。当收到DNS查询请求时,给出相应的应答。(可能是最后的结         果,也可能是下一步应该查找的域名服务器地址)

      3.授权域名服务器(权限域名服务器)

        每个主机都必须在权限域名服务器处登记。为了更加可靠的工作,一个主机最好至少有两个授权域名服务器。实际上,许         多域名服务器都同时充当本地域名服务器跟权限域名服务器。授权域名服务器总能够将其所管辖的主机名转换成IP地址。

      4.本地域名服务器

        本地域名服务器对域名系统非常重要。每个因特网服务提供者都可以拥有一个本地域名服务器。当一个主机发出DNS查询请         求时,这个查询请求的报文就发送给了本地域名服务器。

 

    4.2.3 域名解析过程

      域名解析是指把域名映射成IP地址或者把IP地址映射成域名的过程。前者称为正向解析,后者称为反向解析。当客户端需要域      名解析时,客户端构造一个DNS请求报文,以UDP数据报方式发往本地域名服务器。解析方式有两种:递归查询和递归与迭代相结合      的查询。


 

      (1)主机向本地域名服务器查询采用的是递归查询

      若本地询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向根域名服务器发送查       询请求报文,而不是让主机自己进行下一步查询,这种情况下,本地域名服务器只需要向根域名服务器查询一次,后面几次查询都       是递归地在其他几个域名服务器之间进行,最后本地域名服务器得到IP地址,并把结果告诉主机。

      (2)本地域名服务器向根域名服务器查询采用迭代查询

      当根域名收到DNS查询请求报文后,要么直接给出IP地址,要么告诉本地域名服务器下一步查询的顶级域名服务器的IP地址,同       样顶级域名服务器也会做出相同的操作,直到得到最终结果,本地域名服务器把结果告诉主机。

 

      举例说明域名解析过程,假设某客户机想获得y.abc.com的主机IP地址,过程如下:

      1.客户机向本地域名服务器发出DNS查询请求报文。

      2.本地域名服务器查询本地缓存,假设没有该记录,则以DNS客户的身份向根域名服务器发出解析请求。

      3.根域名服务器收到请求后,判断该域名属于.com域,将对应的顶级域名服务器dns.com的IP地址返回给本地域名服务器。

      4.本地域名服务器向顶级域名服务器发送解析请求。

      5.顶级域名服务器收到请求后,判断该域名属于abc.com域,将授权域名服务器dns.abc.com的IP地址返回给本地域名服务器。

      6.本地域名服务器向授权域名服务器发出解析请求。

      7.授权域名服务器收到请求后,将解析结果返回本地域名服务器。

      8.本地域名服务器将结果加入本地缓存,并将结果返回客户机。

 

    4.2.4 DNS记录格式与报文

      1.DNS记录格式

      在DNS分布式数据库中存储有域名地址与IP地址映射的资源记录,一个资源记录占一行,每个资源记录有4个字段:

          Name,Value,Type,TTL

      Name为结点主机域名,或是域的名字;Value是与Name对应的值,如,对应的IP地址;Type为记录的类型,表示这个记录是对应      一个主机的IP地址或是一个名字服务器;TTL指出该记录的生存时间,一般为一天(24h,86400s)。

      

      2. DNS报文

      DNS报文包括查询报文和响应报文,两种报文有相同的格式,只是在标志字段中用查询/响应位来区分,该位值若为0,为查询报       文,若为1,则是响应报文。

      图中标示的“12字节”为DNS首部,这部分肯定都会有,首部下面的是正文部分,其中查询问题部分也都会有。除此之外,回      答、授权和额外信息部分是只出现在DNS应答报文中的,而这三部分又都采用资源记录(Recource Record)的相同格式,这个稍后      会提到。下面逐个字段地分析DNS报文。

      标识(2字节):这个字段网上的解释有点不清楚:“由客户程序设置并有服务器返回结果。”看了下实验室的程序和文档,原      来这个字段可以看作是DNS报文的ID,对于相关联的请求报文和应答报文,这个字段是相同的,由此可以区分DNS应答报文是哪个请      求报文的响应。

      标志(2字节):这部分非常重要,需要逐比特分析。

      QR(1比特):查询/响应的标志位,1为响应,0为查询。

    opcode(4比特):定义查询或响应的类型(若为0则表示是标准的,若为1则是反向的,若为2则是服务器状态请求)。

    AA(1比特):授权回答的标志位。该位在响应报文中有效,1表示名字服务器是权限服务器

    TC(1比特):截断标志位。1表示响应已超过512字节并已被截断(依稀好像记得哪里提过这个截断和UDP有关,先记着)

    RD(1比特):该位为1表示客户端希望得到递归回答

    RA(1比特):只能在响应报文中置为1,表示可以得到递归响应。

    zero(3比特):不说也知道都是0了,保留字段。

   rcode(4比特):返回码,表示响应的差错状态,通常为0和3,各取值含义如下:

    0          无差错

    1          格式差错

    2          问题在域名服务器上

    3          域参照问题

    4          查询类型不支持

    5          在管理上被禁止

    6          -- 15 保留

      标志段说完了,下面是问题数、资源记录数、授权资源记录数和额外资源记录数,这四个字段都是两字节,分别对应下面的查      询问题、回答、授权和额外信息部分的数量。一般问题数都为1,DNS查询报文中,资源记录数、授权资源记录数和额外资源记录数      都为0。

      查询问题部分格式如下:

      查询名部分长度不定,一般为要查询的域名(也会有IP的时候,即反向查询)。此部分由一个或者多个标示符序列组成,每个      标示符以首字节数的计数值来说明该标示符长度,每个名字以0结束。计数字节数必须是0~63之间。该字段无需填充字节。还是借个      例子来说明更直观些,查询名为gemini.tuc.noao.edu的话,查询名字段如下:

 

      查询类型(2字节):通常查询类型为A(由名字获得IP地址)或者PTR(获得IP地址对应的域名),类型列表如下:

        类型 助记符 说明

        1 A IPv4地址。

        2 NS 名字服务器。

        5 CNAME 规范名称。定义主机的正式名字的别名。

        6 SOA 开始授权。标记一个区的开始。

        11 WKS 熟知服务。定义主机提供的网络服务。

        12 PTR 指针。把IP地址转化为域名。

        13 HINFO 主机信息。给出主机使用的硬件和操作系统的表述。

        15 MX 邮件交换。把邮件改变路由送到邮件服务器。

        28 AAAA IPv6地址。

        252 AXFR 传送整个区的请求。

        255 ANY 对所有记录的请求。

           查询类(2字节):通常为1,指Internet数据。

        前面说过,回答字段,授权字段和附加信息字段均采用资源记录RR(Resource Record)的相同格式。该格式如下:

        域名字段(不定长或2字节):记录中资源数据对应的名字,它的格式和查询名字段格式相同。当报文中域名重复出现时,就        需要使用2字节的偏移指针来替换。例如,在资源记录中,域名通常是查询问题部分的域名的重复,就需要用指针指向查询问题        部分的域名。关于指针怎么用,TCP/IP详解里面有,即2字节的指针,最签名的两个高位是11,用于识别指针。其他14位从报文        开始处计数(从0开始),指出该报文中的相应字节数。注意,DNS报文的第一个字节是字节0,第二个报文是字节1。一般响应报        文中,资源部分的域名都是指针C00C(1100000000001100),刚好指向请求部分的域名。

        类型(2字节)、类(2字节):含义与查询问题部分的类型和类相同。

        生存时间(4字节):该字段表示资源记录的生命周期(以秒为单位),一般用于当地址解析程序取出资源记录后决定保存及       使用缓存数据的时间。

      资源数据长度(2字节):表示资源数据的长度(以字节为单位,如果资源数据为IP则为0004)

      资源数据:该字段是可变长字段,表示按查询段要求返回的相关资源记录的数据。

 

4.3 万维网和HTTP

  4.3.1 WWW的概念与组成

    万维网WWW是一个资料空间,一样有用的事物称为“资源”,由一个全域“统一资源定位符”(url)标识。这些资源通过超文本传    输协议(HTTP)传送给使用者,后者通过超链接来获取资源。

    万维网内核部分由三个标准构成:

    (1)统一资源定位符(URL),负责标识万维网上的各种文档,并使每个文档在整个万维网的范围内具有唯一的标识符URL。

    (2)超文本传输协议(HTTP),一个应用层协议,使用TCP连接进行可靠传输,HTTP是万维网客户程序与服务器程序之间交互必须     严格遵守的协议。

    (3)超文本标记语言(HTML),是一种文档结构的标记语言,使用一些约定的标记对页面上的各种信息进行描述。

    URL的一般形式:<协议>://<主机>:<端口>/<路径>

    常见的<协议>有http、ftp等;<主机>是存放资源的主机域名,也可以是IP地址;<端口><路径>有时可以省略,不区分大小写。

    万维网采用客户/服务器的方式工作,浏览器是客户程序,而万维网中资源所在的主机则运行服务器程序,工作流程如下:

    (1)Web用户使用浏览器(制定URL)与Web服务器建立连接,并发送浏览请求。

    (2)Web服务器把URL转换成文件路径,并返回信息给浏览器。

    (3)通信完成,关闭连接。

 

  4.3.2 超文本传输协议(HTTP)

    1.http的操作过程

      从协议执行的过程来讲,浏览器要访问WWW服务器时,首先要完成对WWW服务器的域名解析,获得IP地址后,浏览器通过TCP向服      务器发送连接请求。

      每个万维网站点都有一个服务进程,监听TCP的端口80,当监听到请求后便与浏览器建立连接。建立连接后,浏览器就向服务器      发送请求获取某一web页面的HTTP请求。服务器收到请求后,构建所请求的web页必须的信息,通过HTTP响应返回给浏览器,浏览器      对响应进行解释,然后将web页面显示给用户,最后TCP释放。

      用户单击鼠标后发生的事件按顺序如下:

      (1)浏览器分析连接指向页面的URL(http://www.tsinghua.edu.cn/chn/index.htm)

      (2)浏览器向DNS请求解析www.tsinghua.edu.cn的IP地址

      (3)域名系统DNS解析出IP地址,返回浏览器

      (4)浏览器与该服务器建立连接

      (5)浏览器发出HTTP请求:GET/chn/index.htm

      (6)服务器通过HTTP响应把文件index.htm返回给浏览器

      (7)TCP连接释放

      (8)浏览器将index.htm文件进行解释,并将web页面显示给用户

 

    2.HTTP协议的特点

      HTTP协议是无状态的。也就是说,同一个用户第二次访问同一页面时,服务器的响应与第一次相同,因为服务器并不记得曾经      访问过这个客户。

      在实际应用中通常使用cookie加数据库的方式来跟踪用户的活动。cookie是存储在用户主机中的文本文件,里面有一串“识别      码”,用于web服务识别用户。web服务器根据cookie就能从数据库中查询到该用户的活动记录,进而执行一些个性化活动。

      HTTP采用TCP作为运输层协议,保证了数据的可靠传输。HTTP不用考虑数据在传输过程中被丢弃后怎样被重传。但HTTP协议本身      是无连接的,就是说HTTP虽然使用了TCP连接,但通信双方在交换HTTP报文前都不需要建立连接。

      HTTP既可以使用非持久连接,也可以使用持久连接。(HTTP/1.1支持)

      对于非持久连接,每一个网页元素对象的传输都需要单独建立一个TCP连接。

      对于持久连接就是万维网服务器在发送响应后仍然保持这条连接,使同一个客户和服务器可以继续在这条连接上传送后续的        HTTP请求和响应报文。

      持久连接又分为非流水线和流水线两种方式。对于非流水线方式,客户收到一个响应后才能发出下一个请求。HTTP/1.1默认模      式是流水线的持久连接。这种情况下,客户没遇到一个对象的引用就立即发出一个请求,客户可以一个接一个地发出各种对各个引      用对象的请求。

 

    3.HTTP报文结构

      HTTP是面向文本的,因此在报文中每个字段都是ASCII码串,并且每个字段的长度都是不确定的。有两类报文:请求/响应报文

     

    请求报文和响应报文都由三个部分组成。两种报文的区别就是开始行的不同。

    在请求报文中开始行叫做请求行,而在响应报文中开始行叫状态行。开始行三个字段间用空格隔开,最后的两个代表回车、换行

    请求报文的请求行有三个内容:方法、请求资源的URL、HTTP版本

    请求方法Method

 

    (1)GET方法意思是获取URL指定的资源,这个请求方式是最简单的也是最常用的。使用GET 方法时,可以将请求参数和对应的值附       加在 URI 后面,利用一个问号(“?”)将资源的URI和请求参数隔开,参数之间使用与符号(“&”)隔开,因此传递参数长度也受到       了限制,而且与隐私相关的信息也直接暴露在URI中。比如/index.jsp?username=holmofy&password=123123

 

     (2)HEAD 方法与GET用法相同,但没有响应体,使用场合没有GET多。比如下载前使用HEAD发送请求,通过ContentLength响应字       段,来了解网络资源的大小;或者通过LastModified响应字段来判断本地缓存资源是否要更新。 
    (3)POST 方法一般用提交信息或数据,请求服务器进行处理(例如提交表单或者上传文件)。表单使用POST相对GET来说还是比       较隐秘的,而且GET的URL有长度限制,而上传大文件就必须要使用POST了。

 

    (4)OPTIONS方法比较少见,该方法用于请求服务器告知其支持哪些其他的功能和方法。通过OPTIONS 方法,可以询问服务器具体       支持哪些方法,或者服务器会使用什么样的方法来处理一些特殊资源。可以说这是一个探测性的方法,客户端通过该方法可以在不       访问服务器上实际资源的情况下就知道处理该资源的最优方式。

    

    首部行,用来说明浏览器、服务器或者报文主体的一些信息。首部可以有好几行,但可以不使用。每个首部都有首部字段名和相应      的值,每一行在结束时要回车换行,整个首部结束时,还有一个空行与后面的实体主体分开。

    实体主体,在请求报文中一般不用这个字段,而在响应报文中也可能没有这个字段。

 

4.4 文件传输和FTP协议

  4.4.1 FTP工作原理

    文件传输协议FTP是因特网上使用的最广泛的文件传输协议。FTP提供交互式的访问,允许客户指明文件的类型和格式,并允许文件    具有存取权限。他屏蔽了各计算机系统的细节,适合在异构网络中任意计算机之间传送文件。

    FTP提供以下功能:

    (1)提供不同类型主机系统(硬、软件体系等都可以不同)之间的文件传输能力。

    (2)以用户权限管理的方式对远程FTP服务器上的文件管理能力。

    (2)以匿名FTP的方式提供文件共享的能力。

    FTP采用C/S模式,使用TCP可靠传输。一个FTP服务器进程可同时为多个客户服务。FTP服务器进程由两大部分组成:一个主进程,负    责接收新的请求;另外有若干从属进程,负责处理单个请求。工作步骤如下:

    (1)打开21端口,使客户进程可以连接上。

    (2)等待客户进程发来连接请求。

    (3)启动从属进程来处理客户发来的请求。主进程和从属进程并发执行,从属进程对客户进程处理完后即终止。

    (4)回到等待状态,继续接收其他用户的请求。

    FTP必须在整个会话期间保留用户状态信息。特别是服务器必须把制定用户账户与控制连接联系起来。

  

  4.4.2 控制连接与数据连接

    FTP在工作时使用两个并行的TCP连接,一个是控制连接(端口号21),一个是数据连接(端口号20)。

    1.控制连接

      服务器监听在21端口,等待客户连接,建立在这个端口上的连接称为控制连接,控制连接用来传递控制信息。并且控制信息都      是以7位ASCII格式传送。FTP客户发送传送请求,通过控制连接发送给服务器,但控制连接并不用来传输数据。另外在整个会话的过      程中要保持控制连接处于打开状态,传输过程中也可以使用控制连接。

    2.数据连接

      服务器端收到FTP客户发来的传输请求后创建“数据传送进程”和“数据连接”。数据连接用来连接客户和服务器的数据传输进      程,由数据连接完成文件的传送,在传送完毕后关闭数据连接。

    因为FTP使用一个分离控制连接,所以称FTP的控制信息是外带传送的。使用FTP时,若要修改服务器上的文件,则需要先将文件传输      到本地主机,然后再将修改完的文件副本传输给服务器。网络文件系统NFS允许进程打开一个远程文件,并在该文件的指定位置开始      读写数据。这样,NFS可使用户复制大文件中的一个小片段,而不需要复制整个文件。

 

  4.4.3 FTP与HTTP协议的比较

    FTP和HTTP都是文件传输协议,使用的运输层协议都是TCP,两个协议的差别主要是,FTP使用两个并行的TCP连接,控制连接用于传    输控制信息,数据连接用于传输文件。

    FTP的控制信息属于外带传送,HTTP属于内带传输控制信息,HTTP是在传输文件的TCP连接中发送请求和响应首部行。

    FTP协议是有状态的,FTP必须在整个会话期间保留客户机的状态信息,而HTTP协议是无状态的,不对用户状态进行追踪。

 

4.5 电子邮件

  4.5.1 电子邮件系统的组成结构

    一个电子邮件系统主要由三个组成构件:用户代理、邮件服务器、电子邮件使用协议,如SMTP、POP3等。

    用户代理(User Agent)就是用户与电子邮件系统的接口,在大多数情况下它就是运行在用户PC机中的一个程序。一般具有撰写、    显示、处理、通信等功能。

    邮件服务器的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付、被拒绝、丢失等)。邮件服务器按照客户    服务器方式工作。邮件服务器需要使用发送和读取两个不同的协议。

    应当注意的是,一个邮件服务器既可以作为客户,也可以作为服务器。例如,当邮件服务器 A 向另一个邮件服务器 B 发送邮件      时,邮件服务器 A就作为 SMTP 客户,而 B 是 SMTP 服务器。当邮件服务器 A 从另一个邮件服务器 B 接收邮件时,邮件服务器 A就    作为 SMTP 服务器,而 B 是 SMTP 客户。

    发送和接收电子邮件的几个重要步骤

 

    (1)发件人调用 PC 中的用户代理撰写和编辑要发送的邮件。

 

    (2)发件人的用户代理把邮件用SMTP 协议发给发送方邮件服务器,

 

    (3)SMTP 服务器把邮件临时存放在邮件缓存队列中,等待发送。

 

    (4)发送方邮件服务器的SMTP 客户与接收方邮件服务器的 SMTP 服务器建立 TCP 连接,然后就把邮件缓存队列中的邮件依次发送       出去

 

    (5)运行在接收方邮件服务器中的SMTP服务器进程收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人进行读取。

 

    (6)收件人在打算收信时,就运行 PC 机中的用户代理,使用 POP3(或 IMAP)协议读取发送给自己的邮件。请注意,POP3 服务       器和 POP3 客户之间的通信是由 POP3 客户发起的。

 

  4.5.2 电子邮件格式和MIME

    1.电子邮件格式

    电邮格式分为信封和内容两部分。邮件内容又分为首部和主体两部分。[RFC 822]规定了邮件的首部格式,邮件的内容由用户自由撰    写。用户写好首部后,邮件系统自动将信封所需的信息提取出来并写到信封上,用户不需要亲自填写信封上的信息。

    邮件内容的首部包含一些首部行,每个首部行由一个关键字后面跟冒号再加上值组成。有些关键字是必须的,有些是可选的。最重    要的关键字是TO和Subject。

    “TO”是必须关键字,后面填入一个或多个收件人的地址。电邮地址的规定格式为:收件人信箱名@邮箱所在主机的域名。这样就保    证了这个邮件地址在整个因特网是唯一的。

    “Subject”是可选关键字,是邮件的主题,反应邮件主要内容。

    还有一个必填关键字“From”,通常由邮件系统自动填入。

    首部与主体间用一个空格进行分割。

 

    2.MIME

    由于SMTP只能传送一定长度的ASCII码,许多其他非英语国家的文字就无法传送,由此提出了多用途网络邮件扩充(MIME)。

    MIME并没有改动SMTP或者取代他。MIME的意图是继续使用目前的格式,但增加了邮件主体结构,定义了传送非ASCII码的编码规则。    MIME邮件可以在现有的电邮程序和协议下传送。

    MIME主要包括以下三部分内容:

    (1)5个新的邮件首部字段,包括MIME版本,内容描述,内容标识,内容传送编码,内容类型。

    (2)定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行标准化。

    (3)定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。

 

  4.5.3 SMTP协议和POP3协议

    1.SMTP协议

      简单邮件传输协议(SMTP)是一种提供可靠且有效的电子邮件传输的协议,控制两个相互通信的SMTP进程交换信息。SMTP用的      是TCP连接,端口号为25。SMTP通信有以下三个阶段:

      (1)建立连接

        发件人的邮件发送到发送方的邮件服务器之后,SMTP服务进程每个一定时间扫面发送缓存,当发现有待发送的邮件时,就         使用25端口给接收方的邮件服务器发送TCP请求建立连接。连接建立后,接收方SMTP服务器要发出“220 Service ready”,然         后SMTP客户向SMTP服务器发送HELO命令,附上发送方的主机名。

        SMTP不使用中间邮件服务器,TCP总是在接收方与发送方直接建立,不管他们相隔多远。若接收方服务器发生故障暂时午饭         接收时,发送方的邮件服务器只能等待一段时间后继续尝试。

      (2)邮件传送

      (3)连接释放

    

    2.POP3协议

      POP(Post Office Protocol)邮局协议是一个非常简单、但功能有限的邮件读取协议。现在使用的是它的第三个版本POP3。

      POP 也使用客户服务器的工作方式,端口号110。在接收邮件的用户 PC 机中必须运行 POP 客户程序,而在用户所连接的 ISP      的邮件服务中则运行 POP 服务器程序。  

      POP协议支持离线邮件处理,当邮件发送到服务器后,电子邮件客户端会调用邮件客户端程序,下载所有未阅读的电子邮件(这      种离线访问模式是一种存储转发服务)。当邮件从邮件服务器发送到个人计算机上,同时邮件服务器会删除该邮件(但是目前很多      POP3服务器都支持“下载邮件,服务器并不删除邮件”,也就是说在POP3中改进了POP协议)。

      另一个读取邮件的协议是IMAP(InternetMessage Access Protocol),它比POP协议复杂很多。

      IMAP 也是按客户服务器方式工作,现在较新的是版本 4,即 IMAP4。

      用户在自己的 PC 机上就可以操纵邮件服务器的邮箱,就像在本地操纵一样。IMAP最大的好处就是用户可以在不同的地方使用      不同的计算机随时上网阅读和处理自己的邮件。

        

 

      

 

posted @ 2018-07-26 12:04  Ragd0ll  阅读(735)  评论(0编辑  收藏  举报