应用层协议概述通用课件

上传人:大米 文档编号:567313314 上传时间:2024-07-19 格式:PPT 页数:86 大小:1.42MB
返回 下载 相关 举报
应用层协议概述通用课件_第1页
第1页 / 共86页
应用层协议概述通用课件_第2页
第2页 / 共86页
应用层协议概述通用课件_第3页
第3页 / 共86页
应用层协议概述通用课件_第4页
第4页 / 共86页
应用层协议概述通用课件_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《应用层协议概述通用课件》由会员分享,可在线阅读,更多相关《应用层协议概述通用课件(86页珍藏版)》请在金锄头文库上搜索。

1、 应用层应用层本讲目标本讲目标: n网络应用层的概念和实网络应用层的概念和实现现p客户端客户端-服务器范式服务器范式p服务模型服务模型n通过对常用应用层协议通过对常用应用层协议的探讨和分析来学习网的探讨和分析来学习网络协议络协议深层次目标深层次目标 n特定协议特定协议: pdnsphttppftppsmtpppop 1应用层应用层协议应用层协议应用层负责的是进程与进程之应用层负责的是进程与进程之间的通信间的通信应用层协议:应用层协议:p应用层的一个应用层的一个“组成部分组成部分”p定义应用程序需交换的报文定义应用程序需交换的报文 和所需采取的动作和所需采取的动作p位于最高层位于最高层p使用较低

2、层次所提供的通信使用较低层次所提供的通信服务服务 (TCP, UDP)applicationtransportnetworkdata linkphysicalapplicationtransportnetworkdata linkphysicalapplicationtransportnetworkdata linkphysical2应用层网络应用程序网络应用程序: 一些术语一些术语进程进程(Process): 主机中运行主机中运行中的程序中的程序.n在某些主机中在某些主机中, 两个进程两个进程使用使用进程间通信进程间通信 (由由 OS管理管理).n而运行在不同主机上的进而运行在不同主机上的进

3、程则使用应用层协议进行程则使用应用层协议进行通信通信n用户代理用户代理(User agent): 软件进程软件进程, 是介于用户是介于用户( above )和网络()和网络( below )之间的接口)之间的接口p实现应用级协议实现应用级协议pWeb: 浏览器浏览器pE-mail: OE、Foxmailp流媒体流媒体: media player3应用层客户端客户端-服务器模式服务器模式典型的网络应用都是由两个部典型的网络应用都是由两个部分组成分组成: 客户端客户端 和和 服务器服务器applicationtransportnetworkdata linkphysicalapplicationt

4、ransportnetworkdata linkphysical客户端客户端:n发起同服务器的联系发起同服务器的联系 (“speaks first”)n一般都从服务器请求服务一般都从服务器请求服务, nWeb: 客户端由浏览器实现客户端由浏览器实现; e-mail: 通过通过OE、Foxmial实现实现requestreply服务器服务器:n向客户端提供所请求的服务向客户端提供所请求的服务ne.g., Web 服务器发送被请求的服务器发送被请求的 Web 页面页面, 邮件服务器传递邮件服务器传递 e-mail4应用层应用层协议应用层协议(续续)应用程序接口(应用程序接口(API: applic

5、ation programming interface)n定义应用层和传输层间的定义应用层和传输层间的接口接口n插口(插口(socket: Internet API)p两个进程间的通信,两个进程间的通信, 将数将数据送入据送入 socket, 或从或从socket 读出数据读出数据Q: 某个进程如何某个进程如何“标识标识”另一个另一个 需要与之通信的需要与之通信的进程进程?(SOCKET 套接字)套接字)pIP 地址地址-运行另一个进程运行另一个进程的主机所拥有的的主机所拥有的p“端口号(端口号(PORT #)” 允许接收主机来确定的一允许接收主机来确定的一个标识,本地进程将报文个标识,本地进

6、程将报文发送给它发送给它pSOCKETIP+PORT5应用层关于端口的说明关于端口的说明n端口是应用进程的标识,本质上是一个存放在端口是应用进程的标识,本质上是一个存放在传输层首部的一个字段的值,如传输层首部的一个字段的值,如TCP端口,端口,UDP端口。端口。n端口可以看作传输层对于应用层的端口可以看作传输层对于应用层的SAPn端口占两个字节,范围是端口占两个字节,范围是065535p保留使用的端口保留使用的端口01023 http:80. Dns:53. Smtp:25 pop:110p用户可以使用的端口用户可以使用的端口102465535n问题:为什么不使用操作系统的进程号来标识问题:为

7、什么不使用操作系统的进程号来标识进程。进程。6应用层应用进程需要怎样的传输服务应用进程需要怎样的传输服务?数据丢失(数据丢失(Data loss)n某些应用某些应用 (e.g., audio) 可可以容忍某种程度上的数据丢以容忍某种程度上的数据丢失失n其他应用其他应用 (e.g., 文件传输文件传输, telnet) 要求要求 100% 可靠的可靠的数据传输数据传输实时性(实时性(Timing)n某些应用某些应用(e.g., IP 电话电话, 交互式游戏交互式游戏) 要求较低要求较低的时延的时延带宽(带宽(Bandwidth)n某些应用某些应用(e.g., 多媒体多媒体) 对最低带宽有要求对最

8、低带宽有要求n其他应用其他应用(“弹性应用弹性应用”) 则可灵活应用所能得到的则可灵活应用所能得到的带宽带宽7应用层常用应用程序对传输功能的要求常用应用程序对传输功能的要求应用程序应用程序文件传输文件传输e-mailWeb 网页网页实时音频实时音频/视频视频存储存储音频音频/视频视频交互式游戏交互式游戏金融应用金融应用数据丢失数据丢失不丢失不丢失不丢失允许丢失允许丢失允许丢失允许丢失不丢失带宽带宽弹性弹性弹性音频: 5Kb-1Mb视频:10Kb-5Mb同上 几 Kb/s 以上弹性实时性实时性无无无100s msecfew secs100s msecyes and no8应用层Internet

9、的传输协议服务的传输协议服务TCP 服务:n面向连接面向连接: 在客户端和服务器进在客户端和服务器进程之间需要建立连接(程之间需要建立连接(setup )n可靠传输可靠传输 : 在发送和接受进程在发送和接受进程之间之间n流量控制流量控制: 发送数据的速度决不发送数据的速度决不超过接收的速度超过接收的速度 n拥塞控制拥塞控制: 当网络超负荷时,束当网络超负荷时,束紧发送端口,减缓发送速度紧发送端口,减缓发送速度n不提供不提供: 实时性实时性, 最小带宽承诺最小带宽承诺UDP服务:n在客户端和服务器进程之间在客户端和服务器进程之间实现实现“不可靠的不可靠的”数据传输数据传输n不提供不提供:连接建立

10、连接建立, 可靠性保可靠性保证证,流量控制流量控制,拥塞控制拥塞控制,实时实时性性, 最小带宽承诺最小带宽承诺Q: 既生喻,何生亮既生喻,何生亮? Why is there a UDP?9应用层Internet应用应用: 应用应用, 传输协议传输协议应用应用e-mail远程终端访问远程终端访问Web 文件传输文件传输流媒体流媒体远程文件服务器远程文件服务器IP电话电话应用协议应用协议smtp RFC 821telnet RFC 854http RFC 2068ftp RFC 959专有协议专有协议(e.g. RealNetworks)NSF专有协议专有协议(e.g., Vocaltec)所依赖

11、的传输协议所依赖的传输协议TCPTCPTCPTCPTCP or UDPTCP or UDPtypically UDP10应用层在在IE中输入网址后中输入网址后n首先域名解析首先域名解析DNS,浏览器和浏览器和DNS服务器交服务器交互互n其次采用其次采用http协议,浏览器和协议,浏览器和Web服务器交互服务器交互11应用层DNS: 域名系统域名系统自然人自然人: 诸多定义诸多定义:p身份证身份证, 姓名姓名, 护照护照 #因特网主机因特网主机, 路由器路由器:pIP 地址地址 (32 bit) 用于用于数据报寻址数据报寻址p“域名域名”, e.g., 帮助帮助记忆记忆Q: IP 地址和域名之间

12、如地址和域名之间如何映射何映射(转换转换) ?Domain Name System:n分布式数据库:由许多域分布式数据库:由许多域名服务器按层次构成名服务器按层次构成 nDNS透明的解决了透明的解决了IP地址地址和域名的转换问题和域名的转换问题nDNS传输一般使用传输一般使用UDP,端端口口53。12应用层因特网的域名结构因特网的域名结构n因特网采用了层次树状结构的命名方法。因特网采用了层次树状结构的命名方法。n任何一个连接在因特网上的主机或路由器,都任何一个连接在因特网上的主机或路由器,都有一个有一个惟一惟一的层次结构的名字,即的层次结构的名字,即域名域名。n域名的结构由若干个分量组成,各分

13、量之间用域名的结构由若干个分量组成,各分量之间用点点隔开:隔开: .三级域名三级域名.二级域名二级域名.顶级域名顶级域名n各分量分别代表不同级别的域名。各分量分别代表不同级别的域名。 13应用层顶级域名顶级域名 TLD (Top Level Domain)(1) 国家顶级域名国家顶级域名 nTLD:如如: .cn 表示中国,表示中国,.us 表示美国,表示美国,.uk 表示英国,等等。表示英国,等等。(2) 国际顶级域名国际顶级域名 iTLD:采用采用.int。国际性的组织可在国际性的组织可在 .int 下注册。下注册。(3) 通用顶级域名通用顶级域名 gTLD:最早的顶级域名是:最早的顶级域

14、名是: .com 表示公司企业表示公司企业 .net 表示网络服务机构表示网络服务机构 .org 表示非赢利性组织表示非赢利性组织 .edu 表示教育机构(美国专用)表示教育机构(美国专用) .gov 表示政府部门(美国专用)表示政府部门(美国专用) .mil 表示军事部门(美国专用)表示军事部门(美国专用) 14应用层因特网的名字空间因特网的名字空间 com net org edu gov milcoopbizinfoaeroint cnukhkjsshbjorg net gov edu com acpkufudansjtutsinghua树根cctvibmhpmot顶级域名二级域名三级域名

15、mailep四级域名mail csnetlseu15应用层DNS name serversn没有服务器能够保存所有没有服务器能够保存所有 Name-to-IP 地址的映射地址的映射本地域名服务器本地域名服务器:p每个每个 ISP, 企业可拥有企业可拥有 本地本地(默认默认) 域名服务器域名服务器p主机的主机的 DNS 查询首先发往查询首先发往本地域名服务器本地域名服务器授权域名服务器授权域名服务器:p每台主机必须在授权服务器每台主机必须在授权服务器上注册登记上注册登记p可完成域名可完成域名/地址的转换地址的转换为什么不搞集中的为什么不搞集中的DNS?n单点失败的问题单点失败的问题n数据的流通量

16、数据的流通量n远程集中式的数据库远程集中式的数据库n维护问题维护问题难以与时俱进,跟不上发展难以与时俱进,跟不上发展!16应用层DNS: 根域名服务器根域名服务器n当本地域名服务器不能解析时,就向根域名服务器查询当本地域名服务器不能解析时,就向根域名服务器查询n根域名服务器根域名服务器:p如果域名映射未知,则向授权域名服务器查询如果域名映射未知,则向授权域名服务器查询p取得映射取得映射p将映射返回将映射返回本地域名服务器本地域名服务器b USC-ISI Marina del Rey, CAl ICANN Marina del Rey, CAe NASA Mt View, CAf Interne

17、t Software C. Palo Alto, CAi NORDUnet Stockholmk RIPE Londonm WIDE Tokyoa NSI Herndon, VAc PSInet Herndon, VAd U Maryland College Park, MDg DISA Vienna, VAh ARL Aberdeen, MDj NSI (TBD) Herndon, VA 遍布世界各地的遍布世界各地的13个根域名服务器个根域名服务器17应用层递归查询递归查询 18应用层递归与迭代相结合的查询递归与迭代相结合的查询 19应用层DNS: 缓存和更新纪录缓存和更新纪录n一旦一旦 (

18、任何任何) 域名服务器得知了某个映射域名服务器得知了某个映射, 就将其就将其 缓缓存存p在一定的时间间隔后缓存的条目将会过期在一定的时间间隔后缓存的条目将会过期(自动消自动消除除)n更新更新/通知通知 机制由机制由 IETF负责设计负责设计pRFC 213620应用层DNS 纪录纪录DNS: 存储资源纪录存储资源纪录 (RR)的分布式数据库的分布式数据库nType=NSpname = 域域 (e.g. )pvalue =该域授权域名服务该域授权域名服务器的器的 IP 地址地址RR 格式: (name, value, type,ttl)nType=Apname = 主机名主机名pvalue =

19、IP 地址地址nType=CNAMEpName= 别名别名 is reallypvalue =真名真名nType=MXpvalue = 与与 name相关的邮件服务器域名21应用层DNS 协议报文格式协议报文格式DNS 协议协议 : 查询查询和和应答应答报文报文, 二者格式相同二者格式相同报文首部报文首部nidentification: 16 bit # 用于查询用于查询, 应答报文使用同应答报文使用同样的样的 #nflags:p查询查询 或或 应答应答p希望递归希望递归 p可以递归可以递归p授权应答授权应答22应用层DNS 协议报文格式协议报文格式Name, type fields 查询报文

20、RRs 响应来自授权服务器的纪录其他“帮助”信息23应用层万维网万维网 WWW概述概述n万万维维网网 WWW (World Wide Web)并并非非某某种种特特殊殊的的计算机网络。计算机网络。n万维网是一个大规模的、联机式的信息储藏所。万维网是一个大规模的、联机式的信息储藏所。n万万维维网网用用链链接接的的方方法法能能非非常常方方便便地地从从因因特特网网上上的的一一个个站站点点访访问问另另一一个个站站点点,从从而而主主动动地地按按需需获获取取丰丰富富的的信信息。息。n这种访问方式称为这种访问方式称为“链接链接”。24应用层万维网提供分布式服务万维网提供分布式服务 万维网站点 A万维网站点 C

21、万维网站点 E万维网站点 D万维网站点 B链接到链接到链接到链接到链接到链接到25应用层超媒体与超文本超媒体与超文本n万维网是分布式超媒体万维网是分布式超媒体(hypermedia)系统,它是超文系统,它是超文本本(hypertext)系统的扩充。系统的扩充。n一个超文本由多个信息源链接成。利用一个链接可使一个超文本由多个信息源链接成。利用一个链接可使用户找到另一个文档。这些文档可以位于世界上任何用户找到另一个文档。这些文档可以位于世界上任何一个接在因特网上的超文本系统中。超文本是万维网一个接在因特网上的超文本系统中。超文本是万维网的基础。的基础。n超媒体与超文本的区别是文档内容不同。超文本文

22、档超媒体与超文本的区别是文档内容不同。超文本文档仅包含文本信息,而超媒体文档还包含其他表示方式仅包含文本信息,而超媒体文档还包含其他表示方式的信息,如图形、图像、声音、动画,甚至活动视频的信息,如图形、图像、声音、动画,甚至活动视频图像。图像。26应用层万维网的工作方式万维网的工作方式 n万维网以客户服务器方式工作。万维网以客户服务器方式工作。n浏览器浏览器就是在用户计算机上的万维网客户程序。就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。因此这个计算机也称为万维网服务器。n客户程序向服务

23、器程序发出请求,服务器程序向客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。客户程序送回客户所要的万维网文档。n在一个客户程序主窗口上显示出的万维网文档称在一个客户程序主窗口上显示出的万维网文档称为为页面页面(page)。27应用层万维网必须解决的问题万维网必须解决的问题 (1) 怎样标志分布在整个因特网上的万维网文档?怎样标志分布在整个因特网上的万维网文档? n使用使用统一资源定位符统一资源定位符 URL (Uniform Resource Locator)来标志万维网上的各种文档。来标志万维网上的各种文档。n使每一个文档在整个因特网的范围内具有惟一的标识符使每一

24、个文档在整个因特网的范围内具有惟一的标识符 URL。 (2) 用何协议实现万维网上各种超链的链接?用何协议实现万维网上各种超链的链接? n在在万万维维网网客客户户程程序序与与万万维维网网服服务务器器程程序序之之间间进进行行交交互互所所使使用用的的协协议议,是是超超文文本本传传送送协协议议 HTTP (HyperText Transfer Protocol)。nHTTP 是是一一个个应应用用层层协协议议,它它使使用用 TCP 连连接接进进行行可可靠靠的传送。的传送。 28应用层万维网必须解决的问题万维网必须解决的问题 (3) 怎怎样样使使各各种种万万维维网网文文档档都都能能在在因因特特网网上上的

25、的各各种种计计算算机机上上显显示示出出来来,同同时时使使用用户户清清楚楚地地知知道道在在什什么么地地方方存在着超链?存在着超链? n超超文文本本标标记记语语言言 HTML (HyperText Markup Language)使使得得万万维维网网页页面面的的设设计计者者可可以以很很方方便便地地用用一一个个超超链链从从本本页页面面的的某某处处链链接接到到因因特特网网上上的的任任何何一一个个万万维维网网页页面面,并并且且能能够够在在自自己己的的计计算算机机屏屏幕幕上上将将这些页面显示出来。这些页面显示出来。(4) 怎样使用户能够很方便地找到所需的信息?怎样使用户能够很方便地找到所需的信息? n为为

26、了了在在万万维维网网上上方方便便地地查查找找信信息息,用用户户可可使使用用各各种种的的搜搜索索工工具具(即搜索引擎)。(即搜索引擎)。 29应用层统一资源定位符统一资源定位符 URL(uniform resourse location)n统一资源定位符统一资源定位符 URL 是对可以从因特网上得到是对可以从因特网上得到的资源的位置和访问方法的一种简洁的表示。的资源的位置和访问方法的一种简洁的表示。nURL 给资源的位置提供一种抽象的识别方法,并给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。用这种方法给资源定位。nURL 相当于一个文件名在网络范围的扩展。因此相当于一个文件名在网络

27、范围的扩展。因此 URL 是与因特网相连的机器上的任何可访问对象是与因特网相连的机器上的任何可访问对象的一个指针。的一个指针。 30应用层URL 的一般形式的一般形式 n由以冒号隔开的两大部分组成,并且在由以冒号隔开的两大部分组成,并且在 URL 中的字符中的字符对大写或小写没有要求。对大写或小写没有要求。nURL 的一般形式是:的一般形式是::/:/ (8-2) ftp 文件传送协议 FTPhttp 超文本传送协议 HTTPNews USENET 新闻31应用层URL 的一般形式的一般形式 n由以冒号隔开的两大部分组成,并且在由以冒号隔开的两大部分组成,并且在 URL 中的字符中的字符对大写

28、或小写没有要求。对大写或小写没有要求。nURL 的一般形式是:的一般形式是::/:/ (8-2) 是存放资源的主机在因特网中的域名32应用层URL 的一般形式的一般形式 n由以冒号隔开的两大部分组成,并且在由以冒号隔开的两大部分组成,并且在 URL 中的字符中的字符对大写或小写没有要求。对大写或小写没有要求。nURL 的一般形式是:的一般形式是::/:/ (8-2) 有时可省略33应用层使用使用 HTTP 的的 URLn使用使用 HTTP 的的 URL 的一般形式的一般形式 http:/:/ 这表示使用 HTTP 协议34应用层使用使用 HTTP 的的 URLn使用使用 HTTP 的的 URL

29、 的一般形式的一般形式 http:/:/ 冒号和两个斜线是规定的格式35应用层使用使用 HTTP 的的 URLn使用使用 HTTP 的的 URL 的一般形式的一般形式 http:/:/ 这里写主机的域名36应用层使用使用 HTTP 的的 URLn使用使用 HTTP 的的 URL 的一般形式的一般形式 http:/:/ HTTP 的默认端口号是 80,通常可省略37应用层使用使用 HTTP 的的 URLn使用使用 HTTP 的的 URL 的一般形式的一般形式 http:/:/ 若再省略文件的项,则 URL 就指到因特网上的某个主页(home page)。 38应用层http 协议协议http:

30、TCP 传输服务传输服务:n客户端启动客户端启动TCP连接连接(创建插口创建插口) 到服务器到服务器, 端口端口 80n服务器接受来自客户端的服务器接受来自客户端的 TCP 连接连接nhttp 报文报文(应用层协议报文应用层协议报文) 在浏览器在浏览器 (http client) 和和Web服务器服务器(http server)之间之间进行交换进行交换n关闭关闭TCP 连接连接http 是是 “无状态无状态(stateless)”的的n服务器不保留任何访问服务器不保留任何访问过的请求信息过的请求信息保留状态的协议很复杂哟保留状态的协议很复杂哟!n过去的历史过去的历史 (状态状态) 需要保留需要

31、保留n一旦浏览器一旦浏览器/服务器崩溃服务器崩溃, 它它们各自的状态视图就会发生们各自的状态视图就会发生分歧,还需要重新核对分歧,还需要重新核对小评论39应用层Web: http 协议协议超文本传输协议(超文本传输协议(http: hypertext transfer protocol)n万维网应用协议万维网应用协议n客户端客户端/服务器模式服务器模式p客户端客户端: 浏览器请求、接浏览器请求、接收、展示收、展示 Web对象(对象( objects)p服务器服务器: Web 服务器发服务器发送对象对请求进行响应送对象对请求进行响应nhttp1.0: RFC 1945nhttp1.1: RFC

32、2068PC runningExplorerServer runningNCSA WebserverMac runningNavigatorhttp requesthttp requesthttp responsehttp response40应用层http 举例举例假设用户键入了一个假设用户键入了一个 URL 1a. http 客户端启动客户端启动 TCP 连接到连接到上的上的http 服务器服务器 (进程进程). Port 80 是是 http 服务器的默认端口服务器的默认端口.2. http客户端客户端发送发送 http 请求报请求报文文 (包括包括URL) 进入进入 TCP 连接插连接

33、插口(口(socket)1b. 在在 上的上的http 服务器在服务器在 port 80 等待等待 TCP 的连接请求的连接请求. “接接受受” 连接并通知客户端连接并通知客户端3. http 服务器接收到请求报文服务器接收到请求报文, 形成形成 响应报文(响应报文( 包含了所请求包含了所请求的对象的对象 ,someDepartment/home.index), 将报将报文送入插口(文送入插口( socket)time(该网页包含文本并引用了10 jpeg 图片)41应用层http 举例举例 (续续.)5. http 客户端接收到了包含客户端接收到了包含html文件的响应报文。文件的响应报文。

34、 分分析析 html 文件文件, 发现发现 10 个引个引用的用的 jpeg 对象对象6. 对对10 jpeg objects 逐个重复逐个重复1-5 步步4. http 服务器关闭服务器关闭 TCP 连接连接. time42应用层非持续和持续连接非持续和持续连接(非持续连接)(非持续连接)Non-persistentnhttp/1.0: 服务器分析请服务器分析请求、响应、关闭求、响应、关闭 TCP 连接连接n取对象需要取对象需要2 RTTspTCP 连接连接p对象请求对象请求/传送传送n每次传送都要受到每次传送都要受到TCP连接连接初始化时的慢启动影响初始化时的慢启动影响n许多浏览器同时打开

35、多个许多浏览器同时打开多个并行的连接来改善性能并行的连接来改善性能(持续连接)(持续连接)Persistentnhttp/1.1的默认设置的默认设置n在同一在同一TCP 连接上连接上: 服服务器分析请求、响应请务器分析请求、响应请求,分析新的请求、求,分析新的请求、.n客户端一旦下载到了基客户端一旦下载到了基本的本的html文件(文件( base HTML )马上发送对所)马上发送对所有引用对象的请求有引用对象的请求.n较少的较少的 RTTs, 较少的较少的慢启动慢启动.43应用层流水线和非流水线方式流水线和非流水线方式n流水线方式指没有收到上一个请求的对象就发流水线方式指没有收到上一个请求的

36、对象就发送新的对象的请求送新的对象的请求n非流水线方式指必须要等到上一个请求的对象非流水线方式指必须要等到上一个请求的对象到达之后再发送新的对象的请求到达之后再发送新的对象的请求44应用层http 报文格式报文格式: request(请求)(请求)ntwo types of http报文报文: request, responsenhttp 请求请求报文报文:pASCII (可读格式可读格式)GET /somedir/page.html HTTP/1.0 User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-

37、language:fr (额外的 carriage return, line feed) 请求行请求行(GET, POST, HEAD 命令命令)首部首部 诸行诸行回车、换行表示回车、换行表示报文结束报文结束45应用层http 请求报文格式:请求报文格式:Request方 法URL版 本首部字段名首部行:值首部字段名值:实体主体(通常不用)请求行空格回车换行:CRLFCRLFCRLFCRLF请求报文的类型是由它所采用的方法决定的。 46应用层HTTP 请求报文的一些方法请求报文的一些方法 方法(操作)方法(操作) 意义意义OPTION 请求一些选项的信息请求一些选项的信息GET 请求读取由请求

38、读取由URL所标志的信息所标志的信息HEAD 请求读取由请求读取由URL所标志的信息的首部所标志的信息的首部POST 给服务器添加信息(例如,注释)给服务器添加信息(例如,注释)PUT 在指明的在指明的URL下存储一个文档下存储一个文档DELETE 删除指明的删除指明的URL所标志的资源所标志的资源TRACE 用来进行环回测试的请求报文用来进行环回测试的请求报文CONNECT用于代理服务器用于代理服务器47应用层http 响应报文格式:响应报文格式:Response版 本状态码短 语首部字段名首部行:值首部字段名值:实体主体(有些响应报文不用)状态行空格回车换行:CRLFCRLFCRLFCRL

39、F响应报文的开始行是状态行。状态行包括三项内容,即 HTTP 的版本,状态码,以及解释状态码的简单短语。 开始行48应用层状态码都是三位数字状态码都是三位数字 n1xx 表示通知信息的,如请求收到了或正在进表示通知信息的,如请求收到了或正在进行处理。行处理。n2xx 表示成功,如接受或知道了。表示成功,如接受或知道了。n3xx 表示重定向,表示要完成请求还必须采取表示重定向,表示要完成请求还必须采取进一步的行动。进一步的行动。n4xx 表示客户的差错,如请求中有错误的语法表示客户的差错,如请求中有错误的语法或不能完成。或不能完成。n5xx 表示服务器的差错,如服务器失效无法完表示服务器的差错,

40、如服务器失效无法完成请求。成请求。49应用层用户用户-服务器的交互服务器的交互: 认证(认证(authentication)认证认证 : 控制对服务器内容的访问控制对服务器内容的访问n信用认证信用认证: 一般通过用户名一般通过用户名, 口口令进行令进行 n无状态无状态: 客户端必须在每次请求客户端必须在每次请求前进行认证前进行认证pauthorization: 就是要求在每就是要求在每个请求报文中提交认证的首个请求报文中提交认证的首部行部行p如果客户端没有提交如果客户端没有提交 authorization: 首部行首部行, 服务服务器将拒绝访问器将拒绝访问, 只是在响应只是在响应报文首部中发送

41、报文首部中发送WWW authenticate: clientserver普通普通 http 请求报文请求报文401: 认证要求认证要求WWW authenticate:普通普通 http 请求报文请求报文+ Authorization: 普通普通 http响应报文响应报文普通普通 http 请求报文请求报文+ Authorization: 普通普通 http响应报文响应报文time50应用层Cookies: 保存保存 “状态状态”n服务器产生一个服务器产生一个 # , 服务服务器认识这个器认识这个 #, 以备不时以备不时之需之需:p认证认证p记忆用户的前序访问记忆用户的前序访问, 先前的选择

42、先前的选择n服务器在响应报文中发送服务器在响应报文中发送 “cookie” 给客户端给客户端Set-cookie: 1678453n客户端可以在后继的请求中客户端可以在后继的请求中发送发送“cookie” cookie: 1678453clientserver普通 http 请求报文普通 http响应报文+Set-cookie: #普通 http 请求报文cookie: #普通 http响应报文普通 http 请求报文cookie: #普通 http响应报文cookie-特定的cookie-特定的51应用层Conditional GET: 客户端缓存机制客户端缓存机制n目的目的: 如果客户端缓

43、存了最新如果客户端缓存了最新的请求对象,则服务器不必重的请求对象,则服务器不必重复发送复发送n客户端客户端: 在在http请求报文中声请求报文中声明所缓存拷贝的生成日期明所缓存拷贝的生成日期If-modified-since: n服务器服务器: 如果客户端缓存的拷如果客户端缓存的拷贝是最新的,则在响应报文中贝是最新的,则在响应报文中不发请求的对象不发请求的对象: HTTP/1.0 304 Not Modifiedclientserverhttp请求报文If-modified-since: http响应报文HTTP/1.0 304 Not Modified对象未经修改http请求报文If-mod

44、ified-since: http响应报文HTTP/1.1 200 OK对象已经修改52应用层Web 缓存:代理服务器缓存:代理服务器 (proxy server)n用户设置浏览器用户设置浏览器: Web 访问经由访问经由代理服代理服务器务器 n客户端发送所有的客户端发送所有的 http 请求到请求到代理服务器代理服务器p代理服务器保存了请求的代理服务器保存了请求的对象对象: 代理服务器返回代理服务器返回请求的对象请求的对象 p否则代理服务器从原始否则代理服务器从原始服务器请求对象服务器请求对象,再将再将其返回给客户端其返回给客户端 目的目的: 满足客户端的请求而无需烦扰原始服务器满足客户端的

45、请求而无需烦扰原始服务器clientProxyserverclienthttp requesthttp requesthttp responsehttp responsehttp requesthttp responseorigin serverorigin server53应用层为何为何Web缓存缓存?前提前提: 缓存与客户端比较缓存与客户端比较“接近接近 “(e.g., 在同一网在同一网络中络中)n响应时间较短响应时间较短:缓存的设缓存的设备与客户端比较近备与客户端比较近n减少了往来与远程服务减少了往来与远程服务器间的数据流量器间的数据流量p因为从学校或本地因为从学校或本地ISP 通通往外

46、部的链路往往是网络往外部的链路往往是网络瓶颈瓶颈originserverspublic Internetinstitutionalnetwork10 Mbps LAN1.5 Mbps access linkinstitutionalcache54应用层实验:构建实验:构建Web服务器服务器(iis),使使用用Iris分析分析DNS和和Http协议协议nHttp是否加密传输?是否加密传输?nHttp的服务器监听端口是否必须是的服务器监听端口是否必须是80端口端口nHttp1.0和和1.1之间的区别之间的区别nWeb缓存真的存在么?缓存真的存在么?55应用层用用telnet测试测试 http (客

47、户端操作客户端操作)1. 用用Telnet 连接测试用的服务器(需要预先登录连接测试用的服务器(需要预先登录UNIX):打开打开 TCP 连接到连接到 port 80(默认的默认的http 服务器端口服务器端口) 位于位于 后续键入的内容将发送到后续键入的内容将发送到 的的 80 号端口号端口$ 802. 键入一条键入一条 http请求报文请求报文:GET /j1010/hello.htm HTTP/1.0将该指令键入后将该指令键入后 (按两次回车键按两次回车键), 就就将此最短之将此最短之 (但是完整的但是完整的) GET 请求发到了请求发到了 http 服务器服务器3. 请注意观察请注意观

48、察http服务器发回的响应报文服务器发回的响应报文!56应用层ftp: 文件传输协议文件传输协议n传输文件往来与远程主机传输文件往来与远程主机n客户端客户端/服务器模式服务器模式p客户端客户端: 启动传输启动传输 (无论与往来远程主机无论与往来远程主机)p服务器服务器: 远程主机远程主机nftp: RFC 959nftp 服务器服务器: 端口端口 21file transferFTPserverFTPuserinterfaceFTPclientlocal filesystemremote filesystemuser at host57应用层ftp: 分离的控制分离的控制, 数据连接数据连接n

49、ftp客户端在客户端在 ftp 服务器的服务器的 端端口口21进行联系进行联系, 使用使用TCP作为传作为传输协议输协议n打开两个并行的连接打开两个并行的连接:p控制控制:在客户端和服务器之在客户端和服务器之间交换命令间交换命令, 响应。称为带响应。称为带外控制:外控制:“out of band control”p数据数据: 往来于服务器的文件往来于服务器的文件nftp 维持状态维持状态 (state): 当前当前目录、先前的认证信息等目录、先前的认证信息等FTPclientFTPserverTCP control connectionport 21TCP data connectionpor

50、t 2058应用层ftp 命令命令, 响应响应样例命令样例命令:n在控制通道上传送的在控制通道上传送的ASCII文本文本pUSER username(登录)(登录)pPASS password(登录)(登录)pLIST (返回当前目录(返回当前目录中的文件列表中的文件列表)pRETR filename (取(取 (gets) 文件)文件)pSTOR filename (存存(puts) 文件到远程主机)文件到远程主机)返回码样例返回码样例n状态码和短语状态码和短语 (同同 http)p331 Username OK, password requiredp125 data connection

51、already open; transfer startingp425 Cant open data connectionp452 Error writing file59应用层实验:构建实验:构建FTP服务器,分析服务器,分析FTP协议协议n使用使用ServU或或WftpDn使用使用ftp命令行的方式访问命令行的方式访问n使用使用cuteftp或或flashfxp等窗口模式的等窗口模式的ftp客户端客户端n问题:问题:ftp的数据连接的端口真的是的数据连接的端口真的是20么?么?60应用层电子邮件概述电子邮件概述发送方邮件缓存 接收端邮件服务器用户代理SMTPSMTPPOP3 发送端邮件服务

52、器用户代理用户邮箱接收方用户代理用户代理 邮件服务器 邮件服务器SMTPSMTPPOP3(发送邮件)(发送邮件)(发送邮件)(发送邮件)(读取邮件)(读取邮件)(TCP 连接)(TCP 连接)(TCP 连接)因特网61应用层电子邮件的发送和接收过程电子邮件的发送和接收过程 发送方邮件缓存 接收端邮件服务器用户代理 发送端邮件服务器用户代理接收方用户代理用户代理 邮件服务器 邮件服务器(发送邮件)SMTPSMTP(发送邮件)(TCP 连接)因特网(1) 发信人调用用户代理来编辑要发送的邮件。用户代理用 SMTP 把邮件传送给发送端邮件服务器。 62应用层电子邮件的发送和接收过程电子邮件的发送和接

53、收过程 发送方 接收端邮件服务器用户代理SMTP 发送端邮件服务器邮件缓存用户代理接收方用户代理用户代理 邮件服务器 邮件服务器SMTP(发送邮件)(发送邮件)(TCP 连接)因特网(2) 发送端邮件服务器将邮件放入 邮件缓存队列中,等待发送。63应用层电子邮件的发送和接收过程电子邮件的发送和接收过程 发送方邮件缓存 接收端邮件服务器用户代理SMTP 发送端邮件服务器用户代理接收方用户代理用户代理 邮件服务器 邮件服务器SMTP(发送邮件)(发送邮件)(TCP 连接)SMTPSMTP(发送邮件)(发送邮件)(TCP 连接)因特网(3) 运行在发送端邮件服务器的 SMTP 客户进程,发现在邮件缓

54、存中有待发送的邮件,就向运行在接收端邮件服务器的 SMTP 服务器进程发起 TCP 连接的建立。64应用层电子邮件的发送和接收过程电子邮件的发送和接收过程 发送方邮件缓存 接收端邮件服务器用户代理SMTP 发送端邮件服务器用户代理用户邮箱接收方用户代理用户代理 邮件服务器 邮件服务器SMTP(发送邮件)(发送邮件)(TCP 连接)SMTPSMTP(发送邮件)(发送邮件)(TCP 连接)因特网(4) TCP 连接建立后,SMTP 客户进程开始向远程的 SMTP 服务器进程发送邮件。当所有的待发送邮件发完了,SMTP 就关闭所建立的 TCP 连接。65应用层电子邮件的发送和接收过程电子邮件的发送和

55、接收过程 发送方邮件缓存 接收端邮件服务器用户代理SMTP 发送端邮件服务器用户代理用户邮箱接收方用户代理用户代理 邮件服务器 邮件服务器SMTP(发送邮件)(发送邮件)(TCP 连接)SMTPSMTP(发送邮件)(发送邮件)(TCP 连接)因特网(5) 运行在接收端邮件服务器中的 SMTP 服务器进程收到邮件后,将邮件放入收信人的用户邮箱中,等待收信人在方便时进行读取。66应用层电子邮件的发送和接收过程电子邮件的发送和接收过程 发送方邮件缓存 接收端邮件服务器用户代理SMTP 发送端邮件服务器用户代理用户邮箱接收方用户代理用户代理 邮件服务器 邮件服务器SMTP(发送邮件)(发送邮件)(TC

56、P 连接)SMTPSMTP(发送邮件)(发送邮件)(TCP 连接)POP3POP3(读取邮件)(读取邮件)(TCP 连接)因特网(6) 收信人在打算收信时,调用用户代理,使用 POP3(或 IMAP)协议将自己的邮件从接收端邮件服务器的用户邮箱中的取回(如果邮箱中有来信的话)。67应用层电子邮件系统的组成电子邮件系统的组成四个重要组件四个重要组件: n用户代理用户代理 n邮件服务器邮件服务器 n邮件传输协议邮件传输协议: SMTP,MIMEn邮件接收协议:邮件接收协议:pop,IMAP用户代理用户代理n写作写作, 编辑编辑, 阅读邮件报文阅读邮件报文 e.g., Foxmail, OE, el

57、m, Netscape Messenger,IEn外发外发, 接收的报文存储在邮件接收的报文存储在邮件服务器中服务器中用户邮箱外发报文队列mailserveruseragentuseragentuseragentmailserveruseragentuseragentmailserveruseragentSMTPSMTPSMTP68应用层电子邮件电子邮件: smtp RFC 821n使用使用 tcp 可靠的传送邮件报文可靠的传送邮件报文, 端口端口25n直接传输直接传输: 发送服务器到接收服务器发送服务器到接收服务器n传输的三个阶段传输的三个阶段p握手握手(打招呼打招呼)p报文传输报文传输p结

58、束结束n命令命令/响应交互响应交互p命令命令: ASCII文本文本p响应响应: 状态码和短语状态码和短语n邮件报文必须使用邮件报文必须使用7-bit ASCII表示表示69应用层Smtp相关说明相关说明nsmtp 使用持续连接使用持续连接nsmtp 要求报文要求报文 (首部首部 & 信体信体) 全部使用全部使用 7-bit ASCII码码n某些代码组合不允许出某些代码组合不允许出现在报文中现在报文中 (e.g., CRLF.CRLF). 此类数此类数据必须进行编码据必须进行编码 (通常通常使用使用 base-64 或或 quoted printable)nsmtp 服务器用服务器用 CRLF.

59、CRLF 表示邮件表示邮件报文的结束报文的结束与与 http的比较的比较:nhttp: pull(拉)(拉)nsmtp: push(推)(推)n都使用都使用 ASCII 命令命令/响响应交互应交互, 状态码状态码nhttp: 每个对象分装在每个对象分装在各自的响应报文中各自的响应报文中nsmtp:多个对象在一个多多个对象在一个多分部的报文中传送分部的报文中传送70应用层邮件报文格式邮件报文格式smtp: 交换邮件报文的协议交换邮件报文的协议RFC 822: 文本报文格式标准文本报文格式标准:n首部诸行首部诸行, e.g., pTo:pFrom:pSubject:不同不同 于于 smtp 命令命

60、令!n信体信体p即即 “报文报文”, ASCII characters onlyheaderbody空行71应用层通用因特网邮件扩充通用因特网邮件扩充 MIMESMTP 有以下缺点:有以下缺点:nSMTP 限限于于传传送送 7 位位的的 ASCII 码码。 SMTP 不不能能传传送送可可执执行行文文件件或或其其他他的的二二进进制制对对象象,包包括括许许多多其其他他非非英英语语国国家家的的文文字字(如如中中文文、俄俄文文,甚至带重音符号的法文或德文)。甚至带重音符号的法文或德文)。nSMTP 服务器会拒绝超过一定长度的邮件。服务器会拒绝超过一定长度的邮件。n某某些些 SMTP 的的实实现现并并没

61、没有有完完全全按按照照RFC 821的的 SMTP 标准。标准。 72应用层MIME 的特点的特点nMIME 并没有改动并没有改动 SMTP 或取代它。或取代它。nMIME 的的意意图图是是继继续续使使用用目目前前的的RFC 822格格式式,但但增增加加了了邮邮件件主主体体的的结结构构,并并定定义义了了传传送送非非 ASCII 码码的编码规则。的编码规则。 73应用层MIME 和和 SMTP 的关系的关系 非 ASCII 码7 位 ASCII 码MIMESMTPMIMESMTP7 位 ASCII 码7 位 ASCII 码非 ASCII 码用户用户74应用层MIME 主要包括三个部分主要包括三个

62、部分 n5 个个新新的的邮邮件件首首部部字字段段,它它们们可可包包含含在在RFC 822首首部部中中。这些字段提供了有关邮件主体的信息。这些字段提供了有关邮件主体的信息。n定义了许多邮件内容的格式,对多媒体电子邮件的表示定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。方法进行了标准化。n定义了传送编码,可对任何内容格式进行转换,而不会定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。被邮件系统改变。75应用层MIME使用的编码方式使用的编码方式Base64编码编码本质上是把三个本质上是把三个Byte的数据用的数据用 4 个个Byte表示,这表示,这四个四个Byt

63、e 中,实际用到的都只有前面中,实际用到的都只有前面6 bit,这这样就不存在只能传输样就不存在只能传输 7bit 的字符的问题的字符的问题 76应用层MIME使用的编码方式使用的编码方式Quote Printable编码编码n把一个把一个 8 bit 的字符用两个的字符用两个16进制数值表示,进制数值表示,然后在前面加然后在前面加“=”。例如。例如10110011 10110101 10001001经过经过QP编码后编码后=B3=B5=89。nQP编码方式适用于当所传送的数据中只有少量编码方式适用于当所传送的数据中只有少量的非的非ASCII,例如汉字。例如汉字。 77应用层MIME 增加增加

64、 5 个新的邮件首部个新的邮件首部 nMIME-Version: 标标志志 MIME 的的版版本本。现现在在的的版版本本号号是是 1.0。若无此行,则为英文文本。若无此行,则为英文文本。nContent-Description: 这这是是可可读读字字符符串串,说说明明此此邮邮件件是是什么。和邮件的主题差不多。什么。和邮件的主题差不多。nContent-Id: 邮件的惟一标识符。邮件的惟一标识符。 nContent-Transfer-Encoding: 在传送时邮件的主体是在传送时邮件的主体是如何编码的。如何编码的。nContent-Type: 说明邮件的性质。说明邮件的性质。 78应用层内容传

65、送编码内容传送编码Content-Transfer-Encoding n最最简简单单的的编编码码就就是是 7 位位 ASCII 码码,而而每每行行不不能能超超过过 1000 个个字字符符。MIME 对对这这种种由由 ASCII 码构成的邮件主体不进行任何转换。码构成的邮件主体不进行任何转换。 n该该 字字 段段 指指 出出 此此 时时 MIME使使 用用 的的 是是 quoted-printable,还是还是Base64 编码。编码。 79应用层邮件访问协议邮件访问协议nSMTP: 发送发送/存储存储 到接收方的服务器到接收方的服务器n邮件访问协议邮件访问协议: 从服务器中取信从服务器中取信p

66、POP: Post Office Protocol RFC 1939认证认证 (agent server) 和下载和下载 pIMAP: Internet Mail Access Protocol RFC 1730更多功能更多功能(更为复杂更为复杂)在服务器中操作存储在那里的报文在服务器中操作存储在那里的报文pHTTP: Hotmail , Yahoo! Mail, ,etc.useragentsenders mail serveruseragentSMTPSMTPPOP3 orIMAPreceivers mail server80应用层POP3 协议协议认证阶段认证阶段n客户端命令客户端命令:

67、 puser: 用户名用户名ppass: 口令口令n服务器响应服务器响应p+OKp-ERR交互阶段交互阶段, 客户端客户端:nlist: 列出报文号码列出报文号码nretr: 用报文号码取信用报文号码取信ndele:用报文号码删信用报文号码删信nquit C: list S: 1 498 S: 2 912 S: . C: retr 1 S: S: . C: dele 1 C: retr 2 S: S: . C: dele 2 C: quit S: +OK POP3 server signing offS: +OK POP3 server ready C: user alice S: +OK C

68、: pass hungry S: +OK user successfully logged on81应用层IMAP协议协议nIMAP最最大大的的好好处处就就是是用用户户可可以以在在不不同同的的地地方方使使用用不不同同的计算机随时上网阅读和处理自己的邮件。的计算机随时上网阅读和处理自己的邮件。nIMAP 还还允允许许收收信信人人只只读读取取邮邮件件中中的的某某一一个个部部分分。例例如如,收收到到了了一一个个带带有有视视像像附附件件(此此文文件件可可能能很很大大)的的邮邮件件。为为了了节节省省时时间间,可可以以先先下下载载邮邮件件的的正正文文部部分分,待以后有时间再读取或下载这个很长的附件。待以后

69、有时间再读取或下载这个很长的附件。nIMAP 的的缺缺点点是是如如果果用用户户没没有有将将邮邮件件复复制制到到自自己己的的 PC 机机上上,则则邮邮件件一一直直是是存存放放在在 IMAP 服服务务器器上上。因因此此用用户需要经常与户需要经常与 IMAP 服务器建立连接。服务器建立连接。82应用层实验:使用实验:使用cmailserver构建邮件构建邮件服务器,分析服务器,分析smtp和和pop协议协议83应用层本讲小结本讲小结n应用服务的要求应用服务的要求:p 可靠性可靠性, 带宽带宽, 延迟延迟n客户端客户端-服务器范式服务器范式nInternet 传输服务模型传输服务模型p面向连接的面向连

70、接的, 可靠的可靠的: TCPp不可靠的不可靠的, 数据报数据报: UDPOur study of network apps now complete!n特定协议特定协议:pdnsphttppftppsmtp, pop384应用层本讲小结本讲小结n典型的请求典型的请求/应答报文交应答报文交换换:p客户请求信息或服务客户请求信息或服务p服务器用数据服务器用数据, 状态码进状态码进行响应行响应n报文格式报文格式:p首部首部: 说明数据的信息说明数据的信息p数据数据: 进行通信的信息进行通信的信息Most importantly: learned about protocolsn控制控制 vs. 数

71、据报文数据报文pin-based, out-of-bandn集中式集中式 vs. 非集中式非集中式 n无状态无状态 vs. 有状态有状态n可靠的可靠的 vs. 不可靠的报文传输不可靠的报文传输 n“网络边缘上的复杂实体网络边缘上的复杂实体”n安全性安全性: 认证认证85应用层相关习题相关习题n对同一个域名向对同一个域名向DNS服务器发出好几次的服务器发出好几次的DNS请求报文后,每一次得到请求报文后,每一次得到IP地址都不一样。这地址都不一样。这可能吗?可能吗? nHTTP 1.1协议比起协议比起HTTP 1.0协议有哪些主要协议有哪些主要的变化?的变化? n电子邮件发送协议一定是电子邮件发送协议一定是smtp么?么?86应用层

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号