Internet应用1

上传人:枫** 文档编号:586639970 上传时间:2024-09-05 格式:PPT 页数:59 大小:452.02KB
返回 下载 相关 举报
Internet应用1_第1页
第1页 / 共59页
Internet应用1_第2页
第2页 / 共59页
Internet应用1_第3页
第3页 / 共59页
Internet应用1_第4页
第4页 / 共59页
Internet应用1_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《Internet应用1》由会员分享,可在线阅读,更多相关《Internet应用1(59页珍藏版)》请在金锄头文库上搜索。

1、应用层应用层本讲目标本讲目标: n网络应用层的概念和实网络应用层的概念和实现现p客户端客户端-服务器范式服务器范式p服务模型服务模型n通过对常用应用层协议通过对常用应用层协议的探讨和分析来学习网的探讨和分析来学习网络协议络协议n教科书参考教科书参考p第第9章章深层次目标深层次目标 n特定协议特定协议: phttppftppsmtpppop pdns1应用程序应用程序和和应用层协议应用层协议应用程序应用程序:沟通沟通, 分布式的进分布式的进程程p运行在网络主机中的运行在网络主机中的 “用户用户空间空间”p在应用程序间交换报文在应用程序间交换报文pe.g., email, ftp, Web应用层协

2、议:应用层协议:p应用程序的一个应用程序的一个“组成部分组成部分”p定义应用程序需交换的报文定义应用程序需交换的报文 和所需采取的动作和所需采取的动作p使用较低层次所提供的通信使用较低层次所提供的通信服务服务 (TCP, UDP)applicationtransportnetworkdata linkphysicalapplicationtransportnetworkdata linkphysicalapplicationtransportnetworkdata linkphysical2网络应用程序网络应用程序: 一些术语一些术语进程进程(Process): 主机中运行主机中运行中的程序中

3、的程序.n在某些主机中在某些主机中, 两个进程两个进程使用使用进程间通信进程间通信 (由由 OS管理管理).n而运行在不同主机上的进而运行在不同主机上的进程则使用应用层协议进行程则使用应用层协议进行通信通信n用户代理用户代理(User agent): 软件进程软件进程, 是介于用户是介于用户( above )和网络()和网络( below )之间的接口)之间的接口p实现应用级协议实现应用级协议pWeb: 浏览器浏览器pE-mail: OE、Foxmailp流媒体流媒体: media player3客户端客户端-服务器范式服务器范式典型的网络应用都是由两个部典型的网络应用都是由两个部分组成分组成

4、: 客户端客户端 和和 服务器服务器applicationtransportnetworkdata linkphysicalapplicationtransportnetworkdata linkphysical客户端客户端:n发起同服务器的联系发起同服务器的联系 (“speaks first”)n一般都从服务器请求服务一般都从服务器请求服务, nWeb: 客户端由浏览器实现客户端由浏览器实现; e-mail: 通过通过OE、Foxmial实现实现requestreply服务器服务器:n向客户端提供所请求的服务向客户端提供所请求的服务ne.g., Web 服务器发送被请求的服务器发送被请求的

5、Web 页面页面, 邮件服务器传递邮件服务器传递 e-mail4应用层协议应用层协议(续续)应用程序接口(应用程序接口(API: application programming interface)n定义应用层和传输层间的定义应用层和传输层间的接口接口n插口(插口(socket: Internet API)p两个进程间的通信,两个进程间的通信, 将数将数据送入据送入 socket, 或从或从socket 读出数据读出数据Q: 某个进程如何某个进程如何“认定认定”另一个另一个 需要与之通信的需要与之通信的进程进程?pIP 地址地址-运行另一个进程运行另一个进程的主机所拥有的的主机所拥有的p“端口

6、号(端口号(PORT #)” 允许接收主机来确定的一允许接收主机来确定的一个标识,本地进程将报文个标识,本地进程将报文发送给它发送给它p教科书教科书p232-2345应用进程需要怎样的传输服务应用进程需要怎样的传输服务?数据丢失(数据丢失(Data loss)n某些应用某些应用 (e.g., audio) 可可以容忍某种程度上的数据丢以容忍某种程度上的数据丢失失n其他应用其他应用 (e.g., 文件传输文件传输, telnet) 要求要求 100% 可靠的可靠的数据传输数据传输实时性(实时性(Timing)n某些应用某些应用(e.g., IP 电话电话, 交互式游戏交互式游戏) 要求较低要求较

7、低的时延的时延带宽(带宽(Bandwidth)n某些应用某些应用(e.g., 多媒体多媒体) 对最低带宽有要求对最低带宽有要求n其他应用其他应用(“弹性应用弹性应用”) 则可灵活应用所能得到的则可灵活应用所能得到的带宽带宽6常用应用程序对传输功能的要求常用应用程序对传输功能的要求应用程序应用程序文件传输文件传输e-mailWeb 网页网页实时音频实时音频/视频视频存储存储音频音频/视频视频交互式游戏交互式游戏金融应用金融应用数据丢失数据丢失不丢失不丢失不丢失允许丢失允许丢失允许丢失允许丢失不丢失带宽带宽弹性弹性弹性音频: 5Kb-1Mb视频:10Kb-5Mb同上 几 Kb/s 以上弹性实时性实

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

9、器进程之间在客户端和服务器进程之间实现实现“不可靠的不可靠的”数据传输数据传输n不提供不提供:连接建立连接建立, 可靠性保可靠性保证证,流量控制流量控制,拥塞控制拥塞控制,实时实时性性, 最小带宽承诺最小带宽承诺Q: 既生喻,何生亮既生喻,何生亮? Why is there a UDP?8Internet应用应用: 应用应用, 传输协议传输协议应用应用e-mail远程终端访问远程终端访问Web 文件传输文件传输流媒体流媒体远程文件服务器远程文件服务器IP电话电话应用协议应用协议smtp RFC 821telnet RFC 854http RFC 2068ftp RFC 959专有协议专有协议(

10、e.g. RealNetworks)NSF专有协议专有协议(e.g., Vocaltec)所依赖的传输协议所依赖的传输协议TCPTCPTCPTCPTCP or UDPTCP or UDPtypically UDP9http 协议协议http: TCP 传输服务传输服务:n客户端启动客户端启动TCP连接连接(创建插口创建插口) 到服务器到服务器, 端口端口 80n服务器接受来自客户端的服务器接受来自客户端的 TCP 连接连接nhttp 报文报文(应用层协议报文应用层协议报文) 在浏览器在浏览器 (http client) 和和Web服务器服务器(http server)之间之间进行交换进行交换n

11、关闭关闭TCP 连接连接http 是是 “无状态无状态(stateless)”的的n服务器不保留任何访问服务器不保留任何访问过的请求信息过的请求信息保留状态的协议很复杂哟保留状态的协议很复杂哟!n过去的历史过去的历史 (状态状态) 需要保留需要保留n一旦浏览器一旦浏览器/服务器崩溃服务器崩溃, 它它们各自的状态视图就会发生们各自的状态视图就会发生分歧,还需要重新核对分歧,还需要重新核对小评论10Web: http 协议协议超文本传输协议(超文本传输协议(http: hypertext transfer protocol)n万维网应用协议万维网应用协议n客户端客户端/服务器模式服务器模式p客户端

12、客户端: 浏览器请求、接浏览器请求、接收、展示收、展示 Web对象(对象( objects)p服务器服务器: Web 服务器发服务器发送对象对请求进行响应送对象对请求进行响应nhttp1.0: RFC 1945nhttp1.1: RFC 2068PC runningExplorerServer runningNCSA WebserverMac runningNavigatorhttp requesthttp requesthttp responsehttp response11http 举例举例假设用户键入了一个假设用户键入了一个 URL www.someSchool.edu/someDepa

13、rtment/home.index1a. http 客户端启动客户端启动 TCP 连接到连接到www.someSchool.edu上的上的http 服务器服务器 (进程进程). Port 80 是是 http 服务器的默认端口服务器的默认端口.2. http客户端客户端发送发送 http 请求报请求报文文 (包括包括URL) 进入进入 TCP 连接插连接插口(口(socket)1b. 在在www.someSchool.edu 上上的的http 服务器在服务器在 port 80 等待等待 TCP 的连接请求的连接请求. “接受接受” 连连接并通知客户端接并通知客户端3. http 服务器接收到请

14、求报文服务器接收到请求报文, 形成形成 响应报文(响应报文( 包含了所请求包含了所请求的对象的对象 ,someDepartment/home.index), 将报将报文送入插口(文送入插口( socket)time(该网页包含文本并引用了10 个jpeg 图片)12http 举例举例 (续续.)5. http 客户端接收到了包含客户端接收到了包含html文件的响应报文。文件的响应报文。 分分析析 html 文件文件, 发现发现 10 个引个引用的用的 jpeg 对象对象6. 对对10 jpeg objects 逐个重复逐个重复1-5 步步4. http 服务器关闭服务器关闭 TCP 连接连接.

15、 time13非持续和持续连接非持续和持续连接(非持续连接)(非持续连接)Non-persistentnhttp/1.0: 服务器分析请服务器分析请求、响应、关闭求、响应、关闭 TCP 连接连接n取对象需要取对象需要2 RTTspTCP 连接连接p对象请求对象请求/传送传送n每次传送都要受到每次传送都要受到TCP连接连接初始化时的慢启动影响初始化时的慢启动影响n许多浏览器同时打开多个许多浏览器同时打开多个并行的连接来改善性能并行的连接来改善性能(持续连接)(持续连接)Persistentnhttp/1.1的默认设置的默认设置n在同一在同一TCP 连接上连接上: 服服务器分析请求、响应请务器分析

16、请求、响应请求,分析新的请求、求,分析新的请求、.n客户端一旦下载到了基客户端一旦下载到了基本的本的html文件(文件( base HTML )马上发送对所)马上发送对所有引用对象的请求有引用对象的请求.n较少的较少的 RTTs, 较少的较少的慢启动慢启动.14http 报文格式报文格式: request(请求)(请求)ntwo types of http报文报文: request, responsenhttp 请求请求报文报文:pASCII (可读格式可读格式)GET /somedir/page.html HTTP/1.0 User-agent: Mozilla/4.0 Accept: te

17、xt/html, image/gif,image/jpeg Accept-language:fr (额外的 carriage return, line feed) 请求行请求行(GET, POST, HEAD 命令命令)首部首部 诸行诸行回车、换行表示回车、换行表示报文结束报文结束15http 请求报文请求报文: 一般格式一般格式16http 报文格式报文格式: response(响应)(响应)HTTP/1.0 200 OK Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 2

18、2 Jun 1998 . Content-Length: 6821 Content-Type: text/html data data data data data . 状态行状态行(协议状态码协议状态码状态短语状态短语)首部首部 诸行诸行数据数据, e.g., 被请求的被请求的html文件文件17http 响应状态码和短语响应状态码和短语200 OKp请求成功请求成功, 被请求的对象在报文中被请求的对象在报文中301 Moved Permanentlyp被请求的对象被移动过被请求的对象被移动过, 新的位置在报文中有说明新的位置在报文中有说明 (Location:)400 Bad Reques

19、tp服务器不懂请求报文服务器不懂请求报文404 Not Foundp服务器上找不到请求的对象服务器上找不到请求的对象505 HTTP Version Not Supported位于(服务器位于(服务器-客户端)响应报文的第一行客户端)响应报文的第一行.样例样例:18自行测试自行测试 http (客户端操作客户端操作)1. 用用Telnet 连接测试用的服务器(需要预先登录连接测试用的服务器(需要预先登录UNIX):打开打开 TCP 连接到连接到 port 80(默认的默认的http 服务器端口服务器端口) 位于位于 202.117.35.70后续键入的内容将发送到后续键入的内容将发送到202.

20、117.35.70 的的 80 号端口号端口$telnet 202.117.35.70 802. 键入一条键入一条 http请求报文请求报文:GET /j1010/hello.htm HTTP/1.0将该指令键入后将该指令键入后 (按两次回车键按两次回车键), 就就将此最短之将此最短之 (但是完整的但是完整的) GET 请求发到了请求发到了 http 服务器服务器3. 请注意观察请注意观察http服务器发回的响应报文服务器发回的响应报文!19用户用户-服务器的交互服务器的交互: 认证(认证(authentication)认证认证 : 控制对服务器内容的访问控制对服务器内容的访问n信用认证信用认

21、证: 一般通过用户名一般通过用户名, 口口令进行令进行 n无状态无状态: 客户端必须在每次请求客户端必须在每次请求前进行认证前进行认证pauthorization: 就是要求在每就是要求在每个请求报文中提交认证的首个请求报文中提交认证的首部行部行p如果客户端没有提交如果客户端没有提交 authorization: 首部行首部行, 服务服务器将拒绝访问器将拒绝访问, 只是在响应只是在响应报文首部中发送报文首部中发送WWW authenticate: clientserver普通普通 http 请求报文请求报文401: 认证要求认证要求WWW authenticate:普通普通 http 请求报文

22、请求报文+ Authorization: 普通普通 http响应报文响应报文普通普通 http 请求报文请求报文+ Authorization: 普通普通 http响应报文响应报文time20Cookies: 保存保存 “状态状态”n服务器产生一个服务器产生一个 # , 服务服务器认识这个器认识这个 #, 以备不时以备不时之需之需:p认证认证p记忆用户的前序访问记忆用户的前序访问, 先前的选择先前的选择n服务器在响应报文中发送服务器在响应报文中发送 “cookie” 给客户端给客户端Set-cookie: 1678453n客户端可以在后继的请求中客户端可以在后继的请求中发送发送“cookie”

23、 cookie: 1678453clientserver普通 http 请求报文普通 http响应报文+Set-cookie: #普通 http 请求报文cookie: #普通 http响应报文普通 http 请求报文cookie: #普通 http响应报文cookie-特定的cookie-特定的21Conditional GET: 客户端缓存机制客户端缓存机制n目的目的: 如果客户端缓存了最新如果客户端缓存了最新的请求对象,则服务器不必重的请求对象,则服务器不必重复发送复发送n客户端客户端: 在在http请求报文中声请求报文中声明所缓存拷贝的生成日期明所缓存拷贝的生成日期If-modifie

24、d-since: n服务器服务器: 如果客户端缓存的拷如果客户端缓存的拷贝是最新的,则在响应报文中贝是最新的,则在响应报文中不发请求的对象不发请求的对象: HTTP/1.0 304 Not Modifiedclientserverhttp请求报文If-modified-since: http响应报文HTTP/1.0 304 Not Modified对象未经修改http请求报文If-modified-since: http响应报文HTTP/1.1 200 OK对象已经修改22Web 缓存:代理服务器缓存:代理服务器 (proxy server)n用户设置浏览器用户设置浏览器: Web 访问经由访

25、问经由代理服代理服务器务器 n客户端发送所有的客户端发送所有的 http 请求到请求到代理服务器代理服务器p代理服务器保存了请求的代理服务器保存了请求的对象对象: 代理服务器返回代理服务器返回请求的对象请求的对象 p否则代理服务器从原始否则代理服务器从原始服务器请求对象服务器请求对象,再将再将其返回给客户端其返回给客户端 目的目的: 满足客户端的请求而无需烦扰原始服务器满足客户端的请求而无需烦扰原始服务器clientProxyserverclienthttp requesthttp requesthttp responsehttp responsehttp requesthttp respon

26、seorigin serverorigin server23为何为何Web缓存缓存?前提前提: 缓存与客户端比较缓存与客户端比较“接近接近 “(e.g., 在同一网在同一网络中络中)n响应时间较短响应时间较短:缓存与客缓存与客户端比较户端比较“接近接近 “n减少了往来与远程服务减少了往来与远程服务器间的数据流量器间的数据流量p因为从学校或本地因为从学校或本地ISP 通通往外部的链路往往是网络往外部的链路往往是网络瓶颈瓶颈originserverspublic Internetinstitutionalnetwork10 Mbps LAN1.5 Mbps access linkinstituti

27、onalcache24ftp: 文件传输协议文件传输协议n传输文件往来与远程主机传输文件往来与远程主机n客户端客户端/服务器模式服务器模式p客户端客户端: 启动传输启动传输 (无论与往来远程主机无论与往来远程主机)p服务器服务器: 远程主机远程主机nftp: RFC 959nftp 服务器服务器: 端口端口 21file transferFTPserverFTPuserinterfaceFTPclientlocal filesystemremote filesystemuser at host25ftp: 分离的控制分离的控制, 数据连接数据连接nftp客户端在客户端在 ftp 服务器的服务器

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

29、在进行文件传输时,在进行文件传输时, FTP的客户和服务器之间的客户和服务器之间要建立两个要建立两个TCP连接:连接:p控制连接(Control Connection):客户程序与客户程序与FTP服务器的端口服务器的端口21建立控制连接建立控制连接,并在整个并在整个FTP会话过程中维持连接;会话过程中维持连接;控制连接用于传输请求和应答信息;控制连接用于传输请求和应答信息;由由FTP客户端发起控制连接。客户端发起控制连接。p数据连接(Data Connection):):数据连接用于传输文件;数据连接用于传输文件;每传输一个文件都要建立一个数据连接(在每传输一个文件都要建立一个数据连接(在FT

30、P服务器的服务器的端口端口2020););由由FTP服务器发起数据连接。服务器发起数据连接。27TCP数据传送数据传送控制控制FTP客户端客户端TCP数据传送数据传送控制控制FTP服务器端服务器端X21因特网因特网20Y由客户端发起由服务器端发起28FTP的文件传输过程的文件传输过程n建立控制连接(客户端发起)建立控制连接(客户端发起)p控制连接建立后,客户端使用这个连接来发送控制连接建立后,客户端使用这个连接来发送FTP命令,服务命令,服务器端使用这个连接来发送器端使用这个连接来发送FTP应答。应答。n建立数据连接建立数据连接p当用户发出一个文件传输请求时,客户端软件通过控制连接当用户发出一

31、个文件传输请求时,客户端软件通过控制连接向服务器发出一个向服务器发出一个PORT命令,在命令,在PORT命令中指定一个临时命令中指定一个临时端口,目的是希望服务器在建立数据连接时使用这个临时端端口,目的是希望服务器在建立数据连接时使用这个临时端口;口;n文件传输文件传输 p数据连接建立后,发送数据的一方使用这个连接把文件传送数据连接建立后,发送数据的一方使用这个连接把文件传送给对方。给对方。 n断开数据连接断开数据连接p当数据传输完成后当数据传输完成后n断开控制连接断开控制连接pFTP会话结束后会话结束后29ftp Client ftp Server TCP:21 控制连接初始化控制连接初始化

32、, 控制端口控制端口 SYNPort xxxx- Port 21 SYN, ACKPort xxxx Port 21控制操作控制操作: 用户列目录或传输文件用户列目录或传输文件 Port, IP, Port yyyy Port xxxx - Port 21 Port Successful Port xxxx Port 21TCP:20 数据连接初始化数据连接初始化, 数据端口数据端口SYNPort yyyy Port 20ACKPort yyyy - Port 20数据操作数据操作: 数据传输数据传输DataPort yyyy Port 20 30ftp 命令命令, 响应响应样例命令样例命令:

33、n在控制通道上传送的在控制通道上传送的ASCII文本文本pUSER username(登录)(登录)pPASS password(登录)(登录)pLIST (返回当前目录(返回当前目录中的文件列表中的文件列表)pRETR filename (取(取 (gets) 文件)文件)pSTOR filename (存存(puts) 文件到远程主机)文件到远程主机)返回码样例返回码样例n状态码和短语状态码和短语 (同同 http)p331 Username OK, password requiredp125 data connection already open; transfer startingp

34、425 Cant open data connectionp452 Error writing file31电子邮件电子邮件四个重要组件四个重要组件: n用户代理用户代理 n邮件服务器邮件服务器 n简单邮件传输协议简单邮件传输协议: smtpn邮局协议:邮局协议:pop用户代理用户代理n写作写作, 编辑编辑, 阅读邮件报文阅读邮件报文ne.g., Foxmail, OE, elm, Netscape Messengern外发外发, 接收的报文存储在邮件接收的报文存储在邮件服务器中服务器中用户邮箱外发报文队列mailserveruseragentuseragentuseragentmailser

35、veruseragentuseragentmailserveruseragentSMTPSMTPSMTP32电子邮件电子邮件:邮件服务器邮件服务器Mail Servers n邮箱邮箱 包含了收到的用户包含了收到的用户邮件邮件 (尚未被阅读尚未被阅读)n报文报文 队列包含了外发的队列包含了外发的 邮件报文邮件报文nsmtp 协议协议用在邮件服务用在邮件服务器之间发送邮件器之间发送邮件p客户端客户端: 将邮件发送到将邮件发送到邮件服务器邮件服务器p“服务器服务器”: 接收和转接收和转发邮件发邮件mailserveruseragentuseragentuseragentmailserverusera

36、gentuseragentmailserveruseragentSMTPSMTPSMTP33电子邮件的发送和接收过程电子邮件的发送和接收过程n点击观看点击观看TCP连接连接TCP连接连接TCP连接连接TCP连接连接l 发信人运发信人运行用户代理行用户代理编辑邮件。编辑邮件。发件人的邮件服务器收件人的邮件服务器l 发送端邮件服务发送端邮件服务器收到邮件后,将邮器收到邮件后,将邮件放入邮件缓存队列件放入邮件缓存队列,等待发送。,等待发送。l 发送端邮件服务器中的发送端邮件服务器中的SMTP客户进程发现邮件客户进程发现邮件队列中有待发送的邮件,队列中有待发送的邮件,就与接收端邮件服务器建就与接收端邮

37、件服务器建立立TCP连接。连接。l 发送端的发送端的SMTP客户进客户进程使用程使用SMTP协议把邮件协议把邮件队列中的邮件发送给接收队列中的邮件发送给接收端的端的SMTP服务进程。服务进程。l 发送完后,关闭发送完后,关闭TCP连连接。接。l 接收端邮件服务接收端邮件服务器将收到的邮件放器将收到的邮件放入收件人的邮箱中。入收件人的邮箱中。l 收件人收信时,运行收件人收信时,运行用户代理,用户代理使用户代理,用户代理使用用POP3协议将用户邮协议将用户邮箱中的邮件下载到本地箱中的邮件下载到本地计算机。计算机。l 用户代理利用用户代理利用SMTP协议将邮协议将邮件传送给发件人件传送给发件人的邮件

38、服务器。的邮件服务器。34电子邮件电子邮件: smtp RFC 821n使用使用 tcp 可靠的传送邮件报文可靠的传送邮件报文, 端口端口25n直接传输直接传输: 发送服务器到接收服务器发送服务器到接收服务器n传输的三个阶段传输的三个阶段p握手握手(打招呼打招呼)p报文传输报文传输p结束结束n命令命令/响应交互响应交互p命令命令: ASCII文本文本p响应响应: 状态码和短语状态码和短语n邮件报文必须使用邮件报文必须使用7-bit ASCII表示表示35smtp 交互样例(在交互样例(在UNIX中用中用telnet)S: 220 X1 NT-ESMTP Server C: HELO S: 25

39、0 hello C: MAIL FROM:S: 250 okC: RCPT TO:S: 250 ok its for C: DATAS: 354 ok, send it; end with .C: Hi, I am in XUJI now,Where are you?C: .S: 250 Message queuedC: QUITS: 221 Goodbye SMTP握手握手邮邮件件传传送送断开断开连接连接36自测自测 smtp 交互交互:n$telnet 202.117.35.170 25n见到邮件服务器的见到邮件服务器的 220 响应后响应后n键入键入 HELO, MAIL FROM, R

40、CPT TO, DATA, QUIT 命令命令 上述过程可以不使用用户代理,就能直接将电子邮件上述过程可以不使用用户代理,就能直接将电子邮件发送出去(因为目前大部分邮件服务器的交互过程趋发送出去(因为目前大部分邮件服务器的交互过程趋于复杂,本试验不一定都能进行)。于复杂,本试验不一定都能进行)。37smtp: 评述评述nsmtp 使用持续连接使用持续连接nsmtp 要求报文要求报文 (首部首部 & 信体信体) 全部使用全部使用 7-bit ASCII码码n某些代码组合不允许出某些代码组合不允许出现在报文中现在报文中 (e.g., CRLF.CRLF). 此类数此类数据必须进行编码据必须进行编码

41、 (通常通常使用使用 base-64 或或 quoted printable)nsmtp 服务器用服务器用 CRLF.CRLF 表示邮件表示邮件报文的结束报文的结束与与 http的比较的比较:nhttp: pull(拉)(拉)nemail: push(推)(推)n都使用都使用 ASCII 命令命令/响响应交互应交互, 状态码状态码nhttp: 每个对象分装在每个对象分装在各自的响应报文中各自的响应报文中nsmtp:多个对象在一个多多个对象在一个多分部的报文中传送分部的报文中传送38邮件报文格式邮件报文格式smtp: 交换邮件报文的协议交换邮件报文的协议RFC 822: 文本报文格式标准文本报文

42、格式标准:n首部诸行首部诸行, e.g., pTo:pFrom:pSubject:不同不同 于于 smtp 命令命令!n信体信体p即即 “报文报文”, ASCII characters onlyheaderbody空行39邮件格式邮件格式: 多媒体扩展多媒体扩展nMIME: multimedia mail extension, RFC 2045, 2056n在报文首部附加额外的信息声明在报文首部附加额外的信息声明 MIME 内容类型内容类型From: alicecrepes.fr To: bobhamburger.edu Subject: Picture of yummy crepe. MIM

43、E-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data . . .base64 encoded data 多媒体类型多媒体类型, 子类型子类型, 参数参数声明声明数据编码方法数据编码方法MIME 版本版本编码后的数据编码后的数据40MIME 类型声明类型声明 Content-Type: type/subtype; parametersTextn子类型样例子类型样例: plain, htmlImagen子类型样例子类型样例: jpeg, gifAudion子类型样例

44、子类型样例: basic (8-bit mu-law encoded), 32kadpcm (32 kbps coding)Videon子类型样例子类型样例: mpeg, quicktimeApplicationn需使用其他阅读器的数据需使用其他阅读器的数据n子类型样例子类型样例: msword, octet-stream 41MIME多分部类型多分部类型From: alicecrepes.fr To: bobhamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Type: multipart/mixe

45、d; boundary=98766789 -98766789Content-Transfer-Encoding: quoted-printableContent-Type: text/plainDear Bob, Please find a picture of a crepe.-98766789Content-Transfer-Encoding: base64Content-Type: image/jpegbase64 encoded data . . .base64 encoded data -98766789-42邮件访问协议邮件访问协议nSMTP: 发送发送/存储存储 到接收方的服务器

46、到接收方的服务器n邮件访问协议邮件访问协议: 从服务器中取信从服务器中取信pPOP: Post Office Protocol RFC 1939认证认证 (agent server) 和下载和下载 pIMAP: Internet Mail Access Protocol RFC 1730更多功能更多功能(更为复杂更为复杂)在服务器中操作存储在那里的报文在服务器中操作存储在那里的报文pHTTP: Hotmail , Yahoo! Mail, ,etc.useragentsenders mail serveruseragentSMTPSMTPPOP3 orIMAPreceivers mail se

47、rver43POP3 协议协议认证阶段认证阶段n客户端命令客户端命令: 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

48、server ready C: user alice S: +OK C: pass hungry S: +OK user successfully logged on44自测自测 pop3交互交互:n$telnet 202.117.35.70 110n见到见到+OK POP3 server ready 响应后响应后n键入键入 user, pass, list, retr, quit 命令命令 上述过程可以不使用用户代理,就能察看邮上述过程可以不使用用户代理,就能察看邮箱中的信件。箱中的信件。45DNS: 域名系统域名系统自然人自然人: 诸多定义诸多定义:p身份证身份证, 姓名姓名, 护照护照

49、#因特网主机因特网主机, 路由器路由器:pIP 地址地址 (32 bit) 用于用于数据报寻址数据报寻址p“域名域名”, e.g., 帮助帮助记忆记忆Q: IP 地址和域名之间如地址和域名之间如何映射何映射(转换转换) ?Domain Name System:n分布式数据库:由许多域分布式数据库:由许多域名服务器按层次构成名服务器按层次构成 n应用层协议:应用层协议: 主机、路由主机、路由器、域名服务器互相通信器、域名服务器互相通信进行域名解析进行域名解析 (地址地址/域名域名翻译翻译)p注意注意: 因特网之核心功因特网之核心功能能, 应用层之协议应用层之协议p网络网络“边缘边缘”上之复杂上

50、之复杂实体实体46域名空间(域名树)域名空间(域名树)域名空间分为若干层次:根域(顶级域)和次级域47主机域名的构成主机域名的构成n主机名是由一系列由主机名是由一系列由“. .”分开的标签组成:分开的标签组成:p每个标签不能超过每个标签不能超过6363个字符;个字符;p全部的标签不能超过全部的标签不能超过255255个字符;个字符;p书写顺序是书写顺序是从主机从主机开始直开始直到域名树的到域名树的根域为止。例根域为止。例如:如:n域域名名是是一个组织在域名空间中的名字:一个组织在域名空间中的名字:p例如,西安交大的域名为例如,西安交大的域名为。p该组织中已注册的主机都以组织的域名为后缀。该组织

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

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

53、. 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个根域名服务器个根域名服务器50简单简单 DNS 举例举例主机主机 要要求求 gaia.cs.umass.edu 的IP 地址地址 1. 联系本地域名服务器联系本地域名服务器, 202.117.0

54、.202.如有必要如有必要202.117.0.20 会会联系根域名服务器联系根域名服务器3.如有必要根域名服务器会联系如有必要根域名服务器会联系授权域名服务器授权域名服务器, dns.umass.edurequesting gaia.cs.umass.eduroot name serverauthorititive name serverdns.umass.edulocal name server202.117.0.2012345651DNS 举例举例根域名服务器根域名服务器:n可能不知道授权域可能不知道授权域名服务器的地址名服务器的地址n可能知道可能知道中介域名中介域名服务器服务器: 由它负

55、责由它负责联系授权域名服务联系授权域名服务器器requesting gaia.cs.umass.eduroot name serverlocal name server202.117.0.20123456authoritative name serverdns.cs.umass.eduintermediate name serverdns.umass.edu7852DNS: 迭代查询迭代查询递归查询递归查询:n对根域名服务器造对根域名服务器造成工作负担成工作负担n如何减负如何减负?迭代查询迭代查询:n被查询的服务器直被查询的服务器直接把可查询的服务接把可查询的服务器地址报回器地址报回n“不懂这

56、个域名不懂这个域名, 但但可以从这个服务器可以从这个服务器查到查到”requesting hostsurf.eurecom.frgaia.cs.umass.eduroot name serverlocal name serverdns.eurecom.fr123456authoritative name serverdns.cs.umass.eduintermediate name serverdns.umass.edu78iterated query53DNS: 缓存和更新纪录缓存和更新纪录n一旦一旦 (任何任何) 域名服务器得知了某个映射域名服务器得知了某个映射, 就将其就将其 缓缓存存p

57、在一定的时间间隔后缓存的条目将会过期在一定的时间间隔后缓存的条目将会过期(自动消自动消除除)n更新更新/通知通知 机制由机制由 IETF负责设计负责设计pRFC 2136phttp:/www.ietf.org/html.charters/dnsind-charter.html54DNS 纪录纪录DNS: 存储资源纪录存储资源纪录 (RR)的分布式数据库的分布式数据库nType=NSpname = 域域 (e.g. )pvalue =该域授权域名服务该域授权域名服务器的器的 IP 地址地址RR 格式: (name, value, type,ttl)nType=Apname = 主机名主机名pva

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

59、s 响应来自授权服务器的纪录其他“帮助”信息57本讲小结本讲小结n应用服务的要求应用服务的要求:p 可靠性可靠性, 带宽带宽, 延迟延迟n客户端客户端-服务器范式服务器范式nInternet 传输服务模型传输服务模型p面向连接的面向连接的, 可靠的可靠的: TCPp不可靠的不可靠的, 数据报数据报: UDPOur study of network apps now complete!n特定协议特定协议:phttppftppsmtp, pop3pdns58本讲小结本讲小结n典型的请求典型的请求/应答报文交应答报文交换换:p客户请求信息或服务客户请求信息或服务p服务器用数据服务器用数据, 状态码进状态码进行响应行响应n报文格式报文格式:p首部首部: 说明数据的信息说明数据的信息p数据数据: 进行通信的信息进行通信的信息Most importantly: learned about protocolsn控制控制 vs. 数据报文数据报文pin-based, out-of-bandn集中式集中式 vs. 非集中式非集中式 n无状态无状态 vs. 有状态有状态n可靠的可靠的 vs. 不可靠的报文传输不可靠的报文传输 n“网络边缘上的复杂实体网络边缘上的复杂实体”n安全性安全性: 认证认证59

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

最新文档


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

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