第5章 应用层协议_第1页
第5章 应用层协议_第2页
第5章 应用层协议_第3页
第5章 应用层协议_第4页
第5章 应用层协议_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章应用层协议5.1EMAIL5.2文件传输协议5.3WWW5.1EMAILInternetEmail的工作模型InternetEmail的命令接口Email的格式扩展Email的格式邮件的传输邮件收发客户端协议5.1EMAIL1.InternetEmail的工作模型客户机(后台传送)发出邮件缓冲区外出邮件的TCP连接服务器(接收邮件)到来邮件的邮箱到来邮件的TCP连接用户接口用户发邮件用户读邮件用户代理邮件传输代理#25端口Unix操作系统下EMAIL命令CommandParameterDescriptionh#Displayheader(s)onthescreencDisplaycurrentheaderonlyt#Typemessage(s)onthescreensaddressSendamessagef#Forwardmessage(s)a#Answermessage(s)d#Deletemessage(s)u#UndeletepreviouslyDeletemessage(s)m#Movemessage(s)toanothermailboxk#Keepmessage(s)afterexitingrmailboxReadanewmailboxnGotonextmessageanddisplayitbBackuptothepreviousmessageanddisplayitg#GotoaspecificmessagebutnotdisplayiteExitthemailsystemandupdatethemailbox2.InternetEmail的命令接口InternetEmail的格式在RFC822中定义,由两部分组成:header+body3.Email的格式HeaderMeaningTo:Emailaddress(es)ofprimaryrecipient(s)Cc:Emailaddress(es)ofsecondaryrecipient(s)Bcc:Emailaddress(es)forblindcarboncopiesFrom:PersonorpeoplewhocreatedthemessageReceivedEmailaddressofactualsenderReturn-Path:CanbeusedtoidentifyapathbacktothesenderRFC822headerfieldsrelatedtomessagetransport3.Email的格式HeaderMeaningDate:ThedateandtimethemessagewassentReplyto:EmailaddresstowhichrepliesshouldbesentMessageid:UniquenumberforreferencingthismessagelaterIn-Reply-To:Message-idofthemessagetowhichthisisareplyKeywords:UserchosenkeywordsSubject:Shortsummaryofthemessagefortheone-linedisplaySomefieldsusedintheRFC822messageheader3.Email的格式Body:内容是任意的,但必须是7位标准ASCII字符。4.扩展Email的格式

扩展Email称为MIME(MultipurposeInternetMailExtensions),最初在RFC1341中定义,修订版发布在RFC1521中。主要是针对RFC822Email中存在的诸多不足和限制而提出的。(1)RFC822Email的缺点不能传送可执行文件或其他的二进制对象。人们曾试图将二进制文件转换为SMTP使用的ASCII文本,例如流行的UNIXUUencode/UUdecode方案,但这些均未形成“正式标准或事实上的标准”。限于传送7位的ASCII字符。许多非英语国家的文字(如中文、俄文,甚至带重音符号的法文或德文)就无法传送。即使在SMTP网关将EBCDIC码转换为ASCII码时也会遇到一些麻烦。服务器会拒绝超过一定长度的邮件。(1)RFC822Email的缺点某些实现并没有完全按照的标准。常见的问题如下:

.回车、换行的删除和增加。

.超过76个字符时的处理:截断或自动换行。

.后面多余空格的删除。

.将制表符转换为多个空格。(2)MIME的处理方法

MIME利用了RFC822的格式,但又加入了一个扩展的头部(实际上是位于RFC822的header中)。主要是为了克服RFC822只能传输标准7位ASCII文本的缺点,使Email既可以传输标准ASCII文本,也可以传输像图片、声音、各种语言文本等。

(3)MIME的头部HeaderMeaningMIMEVersion:IdentifiestheMIMEVersionContent-Description:Human-readablestringtellingwhatisinthemessageContent-id:UniqueidentifierContent-Transfer-Encoding:HowthebodyiswrappedfortransmissionContent-Type:NatureofthemessageRFC822headersaddedbyMIMEMIME的头部MIMEVersion:

用它区分是标准RFC822邮件还是MIME邮件,假定在标准邮件中不能以该字符串开头。定义所使用的MIME版本。Content-Description:ASCII串,对内容的有关描述。Content-Id:

对content的唯一的标识。Content-Transfer-Encoding:Body所使用的编码方式。常用的用base64编码和Quoted-printable编码。MIME的头部MIMEVersion:

用它区分是标准RFC822邮件还是MIME邮件,假定在标准邮件中不能以该字符串开头。定义所使用的MIME版本。Content-Description:ASCII串,对内容的有关描述。Content-Id:

对content的唯一的标识。Content-Transfer-Encoding:Body所使用的编码方式。常用的用base64编码和Quoted-printable编码。Base64Encoding每三字节拆成四字节,即三个八位变为四个六位。00000000Base64Encoding将每个六位(范围为0~63)进行编码。6-bitvalueASCIIcharBase64value0123456789101112131415ABCDEFGHIJKLMNOP4142434445464748494A4B4C4D4E4F506-bitvalueASCIIcharBase64value16171819202122232425

262728293031QRSTUVWXYZ

abcdef5152535455565758595A

6162636465666-bitvalueASCIIcharBase64value32333435363738394041424344454647ghijklmnopqrstuv6768696A6B6C6D6E6F707172737475766-bitvalueASCIIcharBase64value48495051525354555657585960616263wxy

z

0123456789+/7778797A

30313233343536

3738392B2FBase64Encoding对于文件的末尾不是三字节时(一字节或二字节),用==或=表示。00000000=

Base64编码后的结果只包含可显示的ASCII字符,其编码效率为75%。Quoted-printableEncoding对于小于128的直接使用(不包括3DH,即“=”),大于等于128的用“=”后跟其16进制值表示。例如:汉字“系统”,其内部编码为CFBFCDB3,编码为:=CF=BF=CD=B3;对于等号则使用:=3D.MIME的头部Content-Type:内容的自然特性,如是图片还是文本等。分为两个标识:类型和子类型,中间用/分开。Content-TypeEmail例子Message-ID:<003d01c2921a$30d7cfd0$4e03a8c0@tan>From:“yaolan"<yaolan@>To:<yaolan@>Subject:Thisistestmail.Date:Sat,15Nov20089:51:44+0800MIME-Version:1.0Content-Type:text/plain;charset="gb2312"Content-Transfer-Encoding:base64DQotLS0tLSBPcmlnaW5hbCBNZXNzYWdlIC0tLS0tIA0KRnJvbTogImdhb2Z4IiA8Z2FvZnhAbmVjbWFpbC5uZXUuZWR1LmNuPg0KVG86IDxnYW9meEBuZWNtYWlsLm5ldS5lZHUuY24+DQpTZW50OiBGcmlkYXksIE5vdmVtYmVyIDIyLCAyMDAyIDc6MTkgUE0NClN1YmplY3Q6IFRoaXMgaXMgdGVzdCBtYWlsLg0KDQoNCj4gvfHM7M/C0anByyzV5rrDIQ0KPiBJdCBpcyBzbm93IHRvZGF5LiBJIGxpa2Ugc25vdy4NCj4gDQo+IA0K.Email例子5.邮件的传输

邮件的传送是一种client/server的交互。它是基于tcp协议的。Server在25号端中上监听,有连接请求时,接受连接,然后传输邮件,传输完毕后再将连接断开。这是一个纯ASCII字符的协议.所有的命令和数据均以标准ASCII字符传输。ClientServer25TCPConnectionSMTPSMTP:SimpleMailTransferProtocol,DefinedinRFC821.5.邮件的传输-例子

ClientServer/client25TCPConnectionSMTPPCServer255.邮件的传输-例子

C:>\telnet325220SMTPservice(NetscapeMessagingServer4.15)HELO250MAILFROM:<cat@dog>250Sender<cat@dog>OkRCPTTo:<boyus@21>250Recipient<boyus@21>OkDATA354OkSenddataendingwith<CRLF>.<CRLF>Happybirthday..250Messagereceived:GNE1S500.LQDQUIT221ESMTPserverclosingconnection5.邮件的传输

SMTP规定了14条命令和21种响应信息。每条命令用4个组成,每一种响应一般只有一行信息组成,,由一个3位数字的代码开始,后面附上(也可以不附上)很简单的说明。若SMTP服务器已准备好,则回答250ok,否则返回一个其它代码指明出错原因如451(处理时出错),452(存储器空间不够),500(无法识别的命令)。所有的返回信息既有代码同时有解释。ESMTP

SMTP存在的问题:邮件长度不允许超过64k.(取决于实现)timeout问题.Client与server的timeout不同时,一方已经timeout,并且关闭了connection,另一方可能还处于忙的状态.无限循环问题:在mail-listing中两个host互相包含时会出现无限循环的问题.ESMTP:在RFC1425中重新进行了定义.client与server进行会话时用EHLO开始而代替HELO.6.邮件收发客户端协议

大多数用户是在个人计算机上收发邮件。而个人计算机不能长时间一直连在网上,即使连在网上也不能具有固定的域名和ip地址。因此不能作为smtp的服务器。为此,需要Internet网上的smtp服务器来替用户代收邮件,当用户需要时,在将自己的PC与该Email服务器连接上,接收邮件。一般的邮件服务器除了有SMTPserver外,同时也支持PC客户接收邮件.(1)POP3协议

POP是PostOfficeProtocol的缩写,最初于1984年公布于RFC918.经过几次更新,现在广泛使用的是它的第三版,称为POP3。POP3的工作过程:POP3Server监听端口110。当一个Clienthost请求与之建立连接时,POP3Server发回相应的回答信息。之后,两者交换相应的命令及响应,直到连接关闭为止。POP3也是一个纯ASCII文本的协议.ClientHost发出的是命令,该命令一般由4个字符组成,后跟相应的参数,每个命令都以CRLF结束。POP3Server给出的是响应,通常都是“+OK”或“-ERR”,后跟其它信息。(1)POP3协议

ClientHost与POP3Server建立了连接后,经过如下几个状态(阶段)最终结束。AuthorizationState一旦建立起连接,pop3server给出相应的回答信息:S:+OKPOP3Serverready.这时就进入了授权阶段.USERname回答:S:+OK.Enterthepasswordsplease!S:-ERR.Usernotfound.PASSstring(口令)响应:S:+OKMaildroplockedandreadyS:-ERRInvalidpasswordsS:-ERRUnabletolockmaildrop.在用户名和口令通过验正后,就进入了交易阶段.(1)POP3协议

TransactionStateSTAT(回答当前信箱中的信件数及总长度)S:+OK.2230(两封邮件,总长230字节)LIST(msg)(显示邮件)例:C:LISTS:+OK.2Messages(320octets).RETRmsg(取指定的邮件)C:RETR1S:+OK120octets.S:Happybirthday.S:.(1)POP3协议

DELEmsg(将邮件标为删除)C:DELE1S:+OK.Message1deleted.NOOP(空操作,Server给出一个回合+OK).LAST(让Server给出序号最高的邮件的序号)RSET(将标为删除的邮件的标记去掉)①

UpdateState一旦Client给出QUIT命令就进入Update阶段.这时Server给出“+OK”命令,并将标为删除的Message删除.C:QUIITS:+OKPOP3ServerSigningoff(2messageleft).可选的命令:TOPmsg请求Server将指定邮件的标题及前10行送过来.(2)IMAP协议

IMAP(InternetMessageAccessProtocol),RFC1064在使用IMAP时所有收到的邮件同样是先送到MailServer,而PC用户在PC机上运行IMAP客户程序,该客户程序与MailServer上的IMAPSever建立连接,用户在PC上操作服务器的邮箱就像在服务器上操作邮箱一样。(3)DMSP协议

DMSP(DistributedMailSystemProtocol)RFC1056该协议假定用户使用多个MailServer,该协议允许用户将邮件Download到PC机上,然后将连接断开.在连接断开的情况下,用户可以阅读邮件,可以回复邮件.当连接重新建立时,邮件被发送出去,系统会重新进行同步。注:

发信人的用户代理向源邮件服务器发送邮件,源邮件服务器向目的邮件服务器发送邮件使用都是SMTP协议;POP3和IMAP等协议只是从目的邮件服务上读取邮件。5.2文件传输协议

文件传输协议的类型FTP

TFTP

文件传输协议的类型(1)透明型(2)非透明型(1)透明型透明型,又分为文件共享型(基于OS,例如Novell的Netware,Microsoft的Windows9X,WindowsNT/2000,SUN的NFS等)和磁盘共享型(基于BIOS,典型代表为3COM公司的Etherseries)。磁盘共享型应用或系统程序操作系统BIOS/Network本地磁盘网络BIOS/Network本地磁盘网络磁盘共享型应用或系统程序操作系统BIOS/Network本地磁盘网络BIOS/Network本地磁盘网络FDTFATINT13H(物理参数)文件共享型应用或系统程序操作系统BIOS本地磁盘网络本地磁盘网络NetworkDrvBIOSNetworkDrv操作系统(2)非透明:文件传送型文件传送命令(客户)网络本地文件网络网络操作系统文件传送(服务器)网络操作系统2.FTP

FTP(FileTransferProtocol)是Internet上广泛使用的协议之一,它是一种文件传送型协议,适合异种机(异种操作系统)下的文件传送。它支持ASCII文件(文本文件)和纯二进制文件的传送。FTP定义在RFC959。FTP工作模型severprotocolinterpreterseverdatatransferfunctionfilesystemuserprotocolinterpreteruserdatatransferfunctionuserinterfacecontrolconnection(FTPcommands)(FTPreplies)dataconnectionfilesystemuseratterminalclientserver2120FTP用户接口命令!crmacdefproxysend$deletemdeletesendportstatusaccountdebugmdirputstructappenddirmgetpwdsuniqueasciidisconnectmkdirquittenexbellfrommlsquotetracebinarygetmoderecvtypebyeglobmputremotehelpusercasehashnmaprenameverbosecdhelpntransreset?cduplcdopenrmdircloselspromptruniqueFTPcommandsCommandDescriptionABORLISTfilelistPASSpasswordPORTn1,n2,n3,n4,n5,n6QUITRETRfilenameSTORfilenameSYSTTYPEtypeUSERusernameAbortpreviousFTPcommandananydatatransferListfilesordirectoriesPasswordonserverClientIPaddress(n1,n2,n3,n4)andport(n5*256+n6)LogofffromserverGetafilePutafileServerreturnssystemtypeSpecifyfiletype:AforASCII,IforimageUsernameonserverFTPrepliesReplyDescription1yz

2yz3yz4yz5yzPositivepreliminaryreply.Theactionisbeingstartedbutexpectanotherreplybeforesendanothercommand.Positivecompletionreply.Anewcommandcanbesent.Positiveintermediatereply.Thecommandhasbeenacceptedbutanothercommandmustbesent.Transientnegativecompletionreply.Therequestedactiondidnottakeplace,buttheerrorconditionistemporarysothecommandcanbereissuedlater.Permanentnegativecompletionreply.Thecommandwasnotacceptedandshouldnotberetried.x0zx1zx2zx3zx5zx6zSyntaxerrors.Information.Connections.Repliesreferringtothecontrolordataconnection.Authenticationandaccounting.Repliesfortheloginoraccountingcommands.Unspecified.Filesystemstatus.FTP实例C:\WINDOWS\Desktop>ftp1Connectedto1.220ProFTPD1.2.6rc1Server(NeuFtp_Test)[FtpTest]User(1:(none)):anonymous331Anonymousloginok,sendyourcompleteemailaddressasyourpassword.Password:abc@abc230-[欢迎使用0:10000]!!!强调不安要求上传的内容一律删除!!!来自77的朋友现在是北京时间SatNov2316:52:152002欢迎光临东北大学FTP服务器WelcometoFtpTest欢迎使用我们的FTP搜索引擎3!你是当前第12个用户,最多允许100个用户Thereare12outof100usersnowloggedin磁盘可用空间0

使用中有什么问题请联系管理员ftp@或者到白山黑水BBS站Download版联系230欢迎光临东北大学FTP服务器ftp>dir200PORTcommandsuccessful.150OpeningASCIImodedataconnectionforfilelistdrwxr-x3ftpftp4096Nov2303:00advicedrwxr-xr-x10ftpftp4096Nov2308:00incomingdrwxr-xr-x2rootroot4096Jul2607:24lost+founddrwxr-xr-x50ftpftp4096Nov2307:51softwaredrwxr-xr-x2rootroot4096Sep808:49!!!incomingdrwxr-xr-x2rootroot4096Sep2800:46!!!个人文件请上传incomingdrwxr-xr-x2rootroot4096Sep2801:01!!!drwxr-xr-x2rootroot4096Sep808:49!!!ftp:682bytesreceivedin0.11Seconds6.20Kbytes/sec.ftp>cdincoming250CWDcommandsuccessful.ftp>dir200PORTcommandsuccessful.150OpeningASCIImodedataconnectionforfilelistdrwxr-x30ftpftp4096Nov2308:322002.11.17-2002.11.23-rw-r1ftpftp0Nov2216:06ICQ.ram-rw-r1ftpftp0Nov2215:58RFW.EXEdrwxr-x2ftpftp4096Nov2308:32chen-rw-r1ftpftp0Nov2307:29gistest.txtdrwxr-x2ftpftp4096Nov2305:46plugin1drwxr-x3ftpftp4096Nov2215:24serv-udrwxr-x3ftpftp4096Nov2305:00stillicel226Transfercomplete.ftp:1156bytesreceivedin0.16Seconds7.22Kbytes/sec.ftp>getgistest.txtabc.txt200PORTcommandsuccessful.150OpeningASCIImodedataconnectionforgistest.txt226Transfercomplete.ftpquit221Goodbye.3.TFTPTrivialFileTransferProtocol虽然FTP是TCP/IP协议簇中最常用的文件传送协议,但他的编程也是最复杂和最困难的。许多应用场合及不需要FTP提供的全部功能,也不能应付FTP的复杂性。TFTP就应运而生了。TFTP只提供简单文件传输,不提供存取授权。由于TFTP局限性较大,所以TFTP比FTP小得多,它可用在像无盘工作站的启动等的场合。TFTP使用UDP协议,端口号是69。TFTP的报文格式

读请求(1)文件名0模式02字节操作码n字节1字节n字节1字节写请求(2)文件名0模式02字节操作码n字节1字节n字节1字节数据(3)块#数据2字节操作码2字节最多512字节ACK(4)块#2字节操作码2字节差错(5)差错码差错报文02字节操作码2字节1字节n字节5.3WWWWWW的起源WWW系统必须要解决的问题及工作模型URLHTMLHTTP1.WWW的起源WWW于是1989年3月起源于CERN,物理学家Berners-Lee提出。1990年9月开发出第一个文本界面的系统。1991年月12月在SanAntonio,Texas的Hypertext’91进行了展示。1993年2月,MarcAndreessen在国家超级计算机应用中心开发出图形界面的浏览器Mosaic.MarcAndreessen创办Netscape,并推出Navigator。1995年,Microsoft推出IE。2.WWW系统必须要解决在问题

及工作模型怎样标识分布在Internet上的文档?用什么协议为实现用户与服务器之间的文档传输?怎样使不同风格的文档都能在Internet的各种计算机上展示出来?WWW的工作模型HTML文档WWWServer80TCP连接HTTP浏览器3.URLURL是UniformResourceLocator的缩写,用来解决上述定第一个问题。定义:是对能从Internet上得到的资源的位置和访问方法的一种简洁的表示。格式:<访问方式>://<主机>:<端口>/<路径>URL的访问方式NameUsedforExamplehttpHTMLhttp://www.cs.uv.nl/~astftpFTP/incoming/readmefileLocalfiled:/data/x1.txtnewsNewsgroupnews:comps.os.minixnewsNewsarticlenews:AA0134223211@gopherGophergopher:///11/librariesmailtoSendingemailmailto:gaofx@telnetRemotelogintelnet://4.HTMLHTML,HyperTextMarkupLanguage(超文本标记语言)IBMGML(GeneralMarkupLanguage)ISOSGML(StandardGeneralMarkupLanguage)HTML是SGML的子集,由MarcAndreessen提出。典型的标记语言BD排版语言WPSWordStar它们都不属于WYSIWYG。HTMLTags(标签)HTML文档由Tag+Body组成。TagDescription<HTML>…</HTML>DeclaresWebpagetobewritteninHTML<HEAD>…</HEAD>Delimitsthepage’shead<TITLE>…</TITLE>Definethetitle(notdisplayedonthepage)<BODY>…</BODY>Delimitsthepage’sbody<Hn>…</Hn>Delimitsalevelnheading<B>…</B>Set…inboldface<I>…</I>Set…initalics<UL>…</UL>Bracketsa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论