1 / 92

第三章 应用层

第三章 应用层. 本章知识点. 应用层的基本概念,应用层实体、客户-服务器模型、应用进程地址 WWW 和 HTTP 协议 FTP 协议 电子邮件、 SMTP 协议、 POP3 协议 域名系统 DNS DHCP. 应用层概述. 应用层的目的是为人们提供具体的网络应用,如网页浏览、文件下载、电子邮件等 。 通信两端的应用层遵循特定的应用层协议,交换特定的应用层报文,实现特定的网络应用 。. 应用层中的几个问题. 在应用层里是谁在通信?即应用层实体是什么? 两个应用层实体的通信如何开始的?如何进行的?如何结束的?

sloane-chan
Télécharger la présentation

第三章 应用层

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三章 应用层

  2. 本章知识点 • 应用层的基本概念,应用层实体、客户-服务器模型、应用进程地址 • WWW和HTTP协议 • FTP协议 • 电子邮件、SMTP协议、POP3协议 • 域名系统DNS • DHCP

  3. 应用层概述 • 应用层的目的是为人们提供具体的网络应用,如网页浏览、文件下载、电子邮件等 。 • 通信两端的应用层遵循特定的应用层协议,交换特定的应用层报文,实现特定的网络应用 。

  4. 应用层中的几个问题 • 在应用层里是谁在通信?即应用层实体是什么? • 两个应用层实体的通信如何开始的?如何进行的?如何结束的? • 通信的一个关键要素是地址,在应用层中,应用层实体的地址是如何确定的?

  5. 应用层实体 • 应用层实体实现了具体的应用层协议,提供网络应用。 • 网络通信是在两个正在运行着的程序之间进行的,因此应用层实体是实现并遵循特定网络协议的应用进程 。

  6. 应用层工作模型 • TCP/IP应用层基本的工作模型是客户-服务器模型。 • 客户和服务器都是指进行网络通信的进程。 • 在客户-服务器模型中,服务器要先运行并处于等待状态,时刻准备接收客户的请求。 • 客户只在需要时向服务器发出请求,服务器收到请求后给客户做出应答,然后客户再次发出请求,服务器再次给予应答……

  7. 应用进程的地址 • 在TCP/IP体系中,应用进程的地址是通过<IP地址,端口号>来确定的 。 • 一个IP地址可以标识网络中的一台主机 ,一个端口号对应于一台主机内的一个通信的应用进程 。 • <IP地址1,端口号1> -----<IP地址2,端口号2>能确定通信的两个应用进程。

  8. 端口号 • 一些常用的服务器(如Web服务、FTP服务)占用的端口号是固定的,这些端口称为熟知端口(well-known port),其值的范围一般0~1023。 • 客户进程的端口号是由操作系统随机分配的,它的值一般都大于1024。

  9. 常用的服务及其默认端口号

  10. URL • 统一资源定位符(Unified Resource Location, URL)用来表示因特网服务器上可以访问的资源 。 • URL的表示形式为:<访问方式>:// <主机>:<端口>/<路径> 。 • 例如:http://202.108.9.38 ,ftp://ftp.cdut.edu.cn/pub/

  11. HTTP协议

  12. WWW和HTTP • WWW(World Wide Web)又称为万维网。 • WWW由4部分组成:HTML语言、HTTP协议、Web浏览器和Web服务器。

  13. HTTP协议 • HTTP协议是Web浏览器和Web服务器交互时要遵循的协议,它定义了Web浏览器和Web服务器的通信规则。 • HTTP协议最初被设计用来在Web浏览器和Web服务器之间传递HTML文档,但现在还可以用来传输其他类型的文件。 • HTTP协议需要运输层协议TCP的支持 ,80端口是Web服务器的默认服务端口。

  14. HTTP协议工作过程

  15. HTTP协议是一个无状态的协议 • Web服务器不去记忆哪一个客户曾经访问过它,也不去记忆特定的某个客户曾经访问过哪一个文件。 • 一个客户连续向服务器发出两个相同的请求时,Web服务器会认为这是两个单独的请求。

  16. HTTP报文 • Web浏览器和Web服务器通过交换HTTP报文来实现HTTP协议。 • HTTP协议有2种报文:请求报文和应答报文 。 • 请求报文是浏览器发给服务器的,指明所需文档的名字和位置。 • 应答报文是服务器发给浏览器的,里面包含服务器的应答和浏览器所需的文档 。

  17. HTTP请求报文例子 Get / HTTP/1.1 Accept: image/gif, image/jpeg,application/x-shockwave-flash,application/vnd.ms-excel, application/vnd.ms-powerpoint, application/vnd.ms-word, */* Accept-Language:zh-ch Accept-Encoding:gzip,deflate User-Agent:Mozilla/4.0(compatible;MSIE 6.0;Windows NT 5.1) Host:www.google.cn Connection:Keep-Alive

  18. HTTP请求报文格式

  19. HTTP请求报文 • 方法字段 • GET :请求获取某个文档。 • POST:向服务器提交网页上表单内的数据。 • HEAD :类似GET,但应答报文中不包含文档的具体内容 。 • PUT :用来将一个文档上传到Web服务器上 。 • DELETE:用来删除Web服务器上的文档 。

  20. HTTP请求报文 • 首部字段 • Accept:表示浏览器所接受的文档类型 。 • Accept-Language:表示浏览器优先接受的语言类型。 • Accept-Encoding:表示浏览器能够理解的编码方式 。 • User-Agent:告诉服务器浏览器的类型 。 • Host:表示所访问的主机 。 • Connection:告诉服务器在对浏览器做了应答后,是否继续保持和浏览器的连接。

  21. HTTP请求报文 • 实体字段 • 对于Get请求,实体字段一般为空。 • 对于Post请求,实体字段要放入客户向服务器传递的数据。 • 不同的方法字段,实体字段内容不同。

  22. HTTP应答报文例子 • HTTP/1.1 200 OK • Connection: Close • Date: Wed ,07 Feb 2007 12:01:30 GMT • Server:Apache/1.3.0 (Unix) • Last-Modified: Sun ,03 Feb 2007 15:03:24 GMT • Content-Length:4020 • Contend-Type:text/html • (data data data data data data ……)

  23. HTTP应答报文格式

  24. HTTP应答报文 • 首部字段 • Connection:服务器告诉浏览器,发送完文档后是关闭连接还是保持连接。 • Date:是服务器产生响应报文的时间。 • Server:表明服务器的类型。 • Last-Modified:文档的最后修改时间 。 • Content-Length :发送文档的字节数 。 • Contend-Type:文档的格式 。

  25. HTTP应答报文 • 状态码 • HTTP协议使用一些特定的三位数字表明对请求的应答结果,称为状态码。 • 三位数字1XX表示服务器给浏览器发送的信息,如提示浏览器补全请求,提升协议版本号等。 • 2XX表示浏览器的请求已经成功地被服务器接受了 • 3XX表示的是重定向信息。 • 4XX表示浏览器的请求有错误,不能被执行。 • 5XX表示服务端出现了错误,不能执行浏览器的请求 。

  26. HTTP应答报文 • 常用的状态码和短语 • 200 OK • 301 Moved Permanently • 400 Bad Request • 403 Forbidden • 404 Not Found • 500 Internal Server Error

  27. HTTP应答报文 • 实体字段 • 当需要向客户端传输文档时,实体字段存放文档的内容。

  28. Web代理 • 代理服务器技术有两个主要的优点: • 访问速度快 • 可以节省带宽,降低开销

  29. Web代理 • 代理服务器的缺陷:代理服务器所缓存的网页可能不是最新的 。 • 解决方案:条件GET机制 • 服务器的相应中添加Last-Modified 字段 • 客户端的请求中添加If-modified-since 字段

  30. Cookie • Cookie实际上Web网站用来记录用户行为的一种技术,Cookie最早由Netscape公司发明。 • HTTP协议本身是一种无状态的协议 ,Web服务器不会去记录客户的访问情况。 • 有时候网站需要了解和记录用户访问网站的过程,如购物喜好、购物记录等活动,并进行一些统计。Cookie技术便用来完成这项任务。

  31. Cookie • 原理 • 对于第一次访问网站的用户,服务器的应答中添加Set-cookie,分配cookieId给用户 • 浏览器将用户cookieId保存在磁盘中 • 下次访问时,浏览器的请求报文中包含Cookie 字段,告诉服务器用户的cookieId • 根据cookieId,服务器识别用户,记录用户的行为

  32. 多点下载和断点续传 • 多点下载和断点续传都是利用了HTTP 1.1协议所支持的部分下载的功能。 • HTTP请求报文的Range可以指明想要下载文档的部分内容,例如Range:bytes=0-499。 • 从应答报文中的Content-Length首部获取文档大小后,可以建立若干个连接,每个连接下载一部分内容,实现多点下载。 • 可以暂停下载过程并记录下载点,下次从断点开始下载即可。

  33. FTP协议

  34. 文件传输协议-FTP • 文件传输协议(File Transfer Protocol,FTP)是专门用来传输各类文件的协议。 • 21端口是FTP服务器的默认服务端口,FTP协议在运输层上使用了TCP协议。 • FTP协议是以交互式的命令方式运行的。用户输入命令,FTP客户端将命令传递给FTP服务器,FTP服务器执行命令,并将结果返回FTP客户端。

  35. 文件传输协议-FTP

  36. 控制连接和数据连接 • FTP协议中有两个连接。 • FTP客户首先与FTP服务器的21端口建立连接,这个连接称为控制连接,专门用来传输控制信息,如用户标识、口令、用户命令等。 • 第二个连接称为数据连接,主要用来传输目录文件列表、下载的文件和上传的文件。 • 一般情况下,FTP服务器会占用两个端口,21端口用于控制连接,20端口用于数据连接。

  37. 控制连接和数据连接

  38. 控制连接和数据连接 • 控制连接是由客户端发起的,客户端使用一个随机端口连接到服务器的21端口。 • 数据连接通常是由FTP服务器主动发起的,由服务器的20端口连接的客户机的另一个随机端口上 。 • 控制连接一旦建立,在整个会话过程中始终存在,直到用户退出。 • 数据连接在传输数据前建立,数据传输完毕后就关闭。下一次传输数据时要重新建立新的数据连接。

  39. 主动模式和被动模式 • 数据连接通常是由服务器主动向客户机发起的,这种模式称为主动模式(相对于服务器而言)。 • 但是现在多数的防火墙软件只允许用户向外界发起连接,而不允许外界向用户发起连接。 • FTP协议提供了一种被动模式来解决这个问题 。 • 被动模式中,需要建立数据连接时,客户端首先通过控制连接发送PASV命令,告诉服务器采用被动模式。

  40. 主动模式和被动模式 • 服务器收到命令后,会随机选择一个端口号,在这个端口号上等待连接请求,并将这个端口号通过控制连接传递给客户端。 • 客户端收到后,会主动发起向服务器所选定端口的连接。由于连接是由客户端发起,所以不会被防火墙过滤掉,能够成功地建立数据连接,传递数据 。

  41. FTP命令 • FTP命令通常是由FTP客户端发给服务器的,用来实现登录服务器、查看文件列表、上传、下载文件等功能。FTP命令都通过控制连接来传递 。 • USER: 客户端使用USER命令来向服务器表明身份 。 • PASS:PASS命令通常是紧接着USER命令,用来向服务器传递用户的口令 。

  42. FTP命令 • LIST:列出FTP服务器当前目录下的文件和子目录。 • CWD:改变当前目录。 • CDUP:回到上一级目录。 • PWD:显示当前所在目录。 • RETR:下载文件,RETR命令的参数是要下载文件名。 • STOR:将本地硬盘的文件上传到FTP服务器上,STOR的参数是要上传的文件名。

  43. FTP命令 • DELE:删除FTP服务器上的文件。DELE命令的参数是服务器上要删除的文件名。 • MKD:在FTP服务器上新建目录,目录名作为MKD命令的参数。 • RMD:删除FTP服务器上的目录,要删除的目录名作为RMD命令的参数。 • PORT:用来传递数据连接的端口号。 • PASV:客户端通知服务器采用被动模式。

  44. FTP命令 • HELP;帮助。 • QUIT:退出。

  45. FTP应答 • 对于FTP客户发出的命令,FTP服务器需要给出应答。 • 应答包括三位整数的状态码和它后面的一个文本字符串,如226 File send OK 。 • 常见的FTP应答有: • 150 File status okay; about to open data connection • 200 Command okay

  46. FTP应答 • 220 Service ready for new user • 221 Service closing control connection. Logged out if appropriate • 226 Closing data connection. Requested file action successful (for example, file transfer or file abort). • 227 Entering Passive Mode • 230 User logged in, proceed

  47. FTP应答 • 331 User name okay, need password • 425 Can't open data connection. • 500 Syntax error, command unrecognized

  48. 电子邮件

  49. 电子邮件概述 • 使用电子邮件的的第1种方式是用一些专门的邮件客户端软件来收发邮件,如Outlook、Foxmail等 ,这些软件被称为邮件用户代理(Mail User Agent)。

  50. 电子邮件概述 • 用户代理向邮件服务器发送邮件时使用的协议是简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)。 • 一个邮件服务器向另一个邮件服务器发送邮件,使用的也是SMTP协议。 • 用户代理从邮件服务器上接收邮件主要使用的是第三版的邮局协议(Post Office Protocol Version 3,POP3)协议或因特网消息访问协议(Internet Message Access Protocol,IMAP)。

More Related