关闭

关闭

封号提示

内容

首页 TopDownV3-2.ppt

TopDownV3-2.ppt

TopDownV3-2.ppt

上传者: fayelovelu 2011-06-26 评分 5 0 137 19 624 暂无简介 简介 举报

简介:本文档为《TopDownV3-2ppt》,可适用于IT/计算机领域,主题内容包含第章应用层ApplicationLayer第章应用层ApplicationLayer计算机网络:自顶向下方法(原书第三版)陈鸣译机械工业出版社年Co符等。

第章应用层ApplicationLayer第章应用层ApplicationLayer计算机网络:自顶向下方法(原书第三版)陈鸣译机械工业出版社年ComputerNetworking:ATopDownApproachFeaturingtheInternet,rdeditionJimKurose,KeithRossAddisonWesley,July第章应用层第章应用层我们的目标:网络应用协议的概念实现方面运输层服务模型客户机服务器模式对等范例通过考察流行的应用级协议学习协议HTTPFTPSMTPPOPIMAPDNS网络应用编程套接字API第章要点第章要点网络应用的原则Web和HTTPFTP电子邮件SMTP,POP,IMAPDNSPP文件共享TCP的套接字编程UDP的套接字编程构建一个Web服务器某些网络应用某些网络应用EmailWeb即时讯息远程注册PP文件共享多用户网络游戏流式存储视频片段因特网电话实时视频会议大规模并行计算创建一个网络应用创建一个网络应用编写程序能够能够在不同的端系统上运行能够通过网络通信如Web:Web服务器软件与浏览器软件通信没有为网络核心的设备书写的软件网络核心设备不作用于应用层这种设计使得能够快速开发应用应用体系结构应用体系结构客户机服务器对等(PP)客户机服务器与PP的混合客户机服务器体系结构客户机服务器体系结构服务器:总是打开的主机永久的IP地址可扩展为服务器池客户机:与服务器通信可以间歇地连接可以具有动态的IP地址彼此不直接地通信纯PP体系结构纯PP体系结构无总是打开的服务器任意的端系统直接通信对等方间歇地连接改变IP地址例子:Gnutella高度地可扩展但是难以管理客户机服务器与PP的混合客户机服务器与PP的混合Napster文件传送PP集中式文件搜索:对等方在中心服务器上注册内容对等方查询相同的中心服务器以定位内容即时讯息在两个用户之间聊天是PP集中式的出席检测定位:用户当他在线时向中心服务器注册其IP地址用户联系中心服务器以发现伙伴的IP地址进程通信进程通信进程:在一台主机上运行的程序。在同一台主机中两个进程使用进程间通信IPC(由操作系统定义)通信在不同的主机中的进程通过交换报文通信客户机进程:发起通信的进程服务器进程:等待联系的进程注意:具有PP体系结构的应用程序具有客户机进程和服务器进程套接字套接字进程从来自它的套接字发送接收报文套接字类似于门发送进程将报文推出门外发送进程依赖门的另一侧运输层基础设施它将报文送到接收进程的套接字具有缓存、变量的TCP套接字主机或服务器具有缓存、变量的TCP套接字主机或服务器因特网由操作系统控制由应用研发者控制应用程序接口API:()选择运输协议()确定一些参数的能力(详情见后)寻址进程寻址进程表示符包括IP地址和与主机上该进程相关的端口号端口号例子:HTTP服务器:电子邮件服务器:详情见后对于接收报文的进程必须具有一个标识一台主机具有一个独特的比特的IP地址问题:在主机的IP地址足以标识该进程?答案:在同一台主机上能够运行许多进程应用层协议定义应用层协议定义交换的报文类型如请求和响应报文报文类型的语法:报文中的各字段以及字段的定界字段的语义即字段中信息的含义进程何时、怎样发送和响应报文的规则公共域协议:在RFC中定义允许具有互操作性例如,HTTP,SMTP专用协议:如,KaZaA应用程序需要什么样的运输服务?应用程序需要什么样的运输服务?数据丢失某些应用(如音频)能够容忍某些丢失其他应用(如文件传输Telnet)要求可靠数据传输定时某些应用(如因特网电话、交互式游戏)要求“有效的”低时延带宽某些应用(如多媒体)要求“有效的”最小量的带宽其他应用(”弹性应用“)充分利用它们获得的所有带宽普通应用的运输服务要求普通应用的运输服务要求应用程序文件传输电子邮件Web文档实时音频视频存储音频视频交互式游戏即时讯息数据丢失不能丢失不能丢失不能丢失容忍丢失容忍丢失容忍丢失不能丢失带宽弹性弹性弹性音频:kbpsMbps视频:kbpsMbps同上几kbps以上弹性时间敏感不不不是,’smsec是,几秒是,msec是和不是因特网运输协议服务因特网运输协议服务TCP服务:面向连接:客户机和服务器之间所需的建立可靠传输:在发送和接收进程之间流控制:发送方不会淹没接收方拥塞控制:当网络过载时抑制发送方并不提供:定时最小带宽保证UDP服务:在发送进程及接收进程之间的不可靠数据传输不提供:建立连接建立可靠性流控拥塞控制定时或带宽保证问题:为什么这么麻烦?为什么需要UDP因特网应用:应用协议与运输协议因特网应用:应用协议与运输协议应用应用层协议下面的传输协议电子邮件SMTPRFCTCP远程终端访问TelnetRFCTCPWebHTTPRFCTCP文件传输FTPRFCTCP远程文件服务器NFSMcKusikUDP或TCP流媒体通常专用(如RealNetworks)UDP或TCP因特网电话通常专用(如Netphone)典型用UDP第章要点第章要点网络应用的原则Web和HTTPFTP电子邮件SMTP,POP,IMAPDNSPP文件共享TCP的套接字编程UDP的套接字编程构建一个Web服务器Web和HTTPWeb和HTTP某些术语Web页由对象组成对象可以是HTML文件JPEG图片Java小程序音频文件…Web页由基本的HTML文件组成基本的HTML文件包括了几个引用对象每个对象可由URL寻址URL的例子:HTTP概况HTTP概况HTTP:超文本传送协议Web的应用层协议客户机服务器模式客户机:请求、接收”显示“Web对象浏览器服务器:Web服务器响应请求而发送对象HTTP:RFCHTTP:RFCPC运行Explorer服务器运行ApacheWeb服务器Mac运行NavigatorHTTP请求HTTP请求HTTP响应HTTP响应HTTP概述(续)HTTP概述(续)使用TCP:客户机向服务器发起TCP连接(产生套接字)端口服务器从客户机接受TCP连接在浏览器(HTTP客户机)和Web服务器(HTPP服务器)之间交换HTTP报文(应用层协议报文)关闭TCP连接HTTP是”无状态的“服务器不保留有关客户机过去请求的任何信息维护“状态”的协议是复杂的!过去历史(状态)必须维护如果服务器客户机崩溃“状态”的视图可能不一致必须要重新建立HTTP连接HTTP连接非持久HTTP至多一个对象经过一个TCP连接发送HTTP使用非持久HTTP持久HTTP多个对象能够经过客户机和服务器之间的单个TCP连接发送HTTP以默认模式使用持久连接非持久HTTP非持久HTTP假定使用输入URLwwwsomeSchooledusomeDepartmenthomeindexaHTTP客户机向HTTP服务器(进程)的端口的wwwsomeSchooledu发起TCP连接HTTP客户机发送HTTP请求报文(包含URL)进TCP连接套接字报文指示客户机要对象someDepartmenthomeindexb在主机wwwsomeSchooledu的HTTP服务器在端口等待TCP连接“接受”连接通知客户机HTTP服务器接收请求报文形成响应报文包含请求对象并向套接字其发送报文time(包括文本和对个jpeg图片的引用images)非持久HTTP(续)非持久HTTP(续)HTTP客户机接收包含html文件的响应报文显示html解析html文件发现个引用的jpeg对象对个hpeg对象重复步骤HTTP服务器关闭TCP连接time响应时间建模响应时间建模往返时延RRT的定义:从客户机到服务器发送一个小分组并返回所历经的时间响应时间:一个RTT发起TCP连接对HTTP请求和返回的HTTP响应前几个字节的一个RTT文件传输时间总计=RTT传输时间传输文件的时间发起TCP连接RTT请求文件RTT接收的文件时间时间持久HTTP持久HTTP非持久HTTP问题:每个对象要求RTT操作系统必须为每个TCP连接工作并分配逐级资源但浏览器经常打开并行TCP连接以获取引用的对象持久HTTP在发送响应后服务器让连接打开在相同的客户机服务器之间的后继HTTP报文通过该连接发送无流水线的持续:仅当前面的响应已经收到客户机发出新的请求对每个引用对象一个RTT有流水线的持续:在HTTP为默认只要客户机遇到一个引用对象它发送请求对于所有引用的对象花费一个RTT时间HTTP请求报文HTTP请求报文两类HTTP报文:请求响应HTTP请求报文:ASCII(人可读的格式)GETsomedirpagehtmlHTTPHost:wwwsomeschooleduUseragent:MozillaConnection:closeAcceptlanguage:fr(另外的回车换行)请求行(GET,POST,HEAD命令)首部行回车换行指示报文的结束HTTP请求报文:通用格式HTTP请求报文:通用格式上载表单输入上载表单输入Post方法:Web页经常包括表单输入在实体主体中的输入被上载到服务器URL方法:使用GET方法在请求行的URL字段中的输入被上载:wwwsomesitecomanimalsearchmonkeysbanana方法类型方法类型HTTPGETPOSTHEAD请求服务器许可响应请求的对象HTTPGET,POST,HEADPUT向URL字段中定义的路径上载在实体主体中文件DELETE删除在URL字段中定义的文件HTTP响应报文HTTP响应报文HTTPOKConnectioncloseDate:Thu,Aug::GMT服务器:Apache(Unix)LastModified:Mon,Jun…ContentLength:ContentType:texthtmldatadatadatadatadata状态行(协议状态码状态短语)首部行数据如请求的HTML文件HTTP响应状态码HTTP响应状态码OK请求成功请求的对象在这个报文后面MovedPermanently请求的对象已转移新的URL在响应报文的Location:首部行中指定BadRequest请求报文不为服务器理解NotFound请求的文档没有在该服务器上发现HTTPVersionNotSupported在服务器到客户机响应报文中的首行一些编码的例子:你自行试验HTTP(客户机侧)你自行试验HTTP(客户机侧)Telnet到你喜欢的Web服务器上:打开到位于cispolyedu的端口(默认的HTTP服务器端口)键入的任何东西将发送到位于cispolyedu的端口telnetcispolyedu键入一个GETHTTP请求:GET~rossHTTPHost:cispolyedu通过键入这些(按回车两次)你向THHP服务器发送最小(但完整)的GET请求观察由HTTP服务器发送的响应报文!用户服务器状态:cookies用户服务器状态:cookies许多重要的Web站点使用cookies四个部分:)在HTTP响应报文中的cookie首部行)在HTTP请求报文中的cookie首部行)保持在用户主机中的cookie文件并由用户浏览器管理)位于Web站点的后端数据库例子:Susan总是从相同的PC访问因特网她首次访问一个特定的电子商务站点当起始HTTP请求到达站点时站点产生一个独特的ID并为ID在后端数据库中生成一个表项Cookies:保持“状态”(续)Cookies:保持“状态”(续)服务器为用户生成ID后端数据库中的表项访问访问一个星期以后:Cookies(续)Cookies(续)cookies能够做:鉴别购物车推荐用户会话状态(Web电子邮件)Cookies和隐私:Cookies使得站点了解你许多东西你可能向站点提供名字和电子邮件搜索引擎使用重定向和cookies来知道更多跨越站点获得信息以向公司作广告Web缓存(代理服务器)Web缓存(代理服务器)用户设置浏览器:经过缓存访问浏览器向缓存发送所有HTTP请求对象在缓存中:缓存返回对象否则缓存向起始服务器请求对象然后向客户机返回对象目标:满足客户机请求而不涉及起始服务器客户机代理服务器客户机HTTP请求HTTP请求HTTP响应HTTP响应HTTP请求HTTP响应起始服务器起始服务器Web缓存更多情况Web缓存更多情况缓存充当客户机和服务器缓存通常由ISP(大学公司和住宅ISP)安装维和使用Web缓存减小客户机请求的响应时间减小机构访问链路的流量因特网密集安装缓存使得内容提供商能有效地交付内容(对PP文件共享也是这样)缓存例子缓存例子假定平均对象长度=,比特来自机构的浏览器的平均请求=sec从机构路由器到任何起始服务器并返回的时延=sec结果局域网利用率=访问链路利用率=总时延=因特网时延访问时延LAN时延=sec分钟毫秒起始服务器公共因特网机构网络MbpsLANMbps访问链路缓存例子(续)缓存例子(续)可能的解决方案将访问链路的带宽提高到如Mbps结果LAN利用率=访问链路利用率=总时延=因特网时延访问时延LAN时延=sec毫秒毫秒通常升级费用可观起始服务器公共因特网机构网络MbpsLANMbps访问链路缓存例子(续)缓存例子(续)安装缓存器假定命中率是结果请求将几乎立即得到满足请求由起始服务器满足访问链路的利用率减少到,产生可忽略不计的时延(如msec)总平均时延=因特网时延访问时延LAN时延=*()secs毫秒<secs起始服务器公共因特网机构网络MbpsLANMbps访问链路机构缓存器条件GET方法条件GET方法目的:如果缓存中有最新缓存版本就不发送该对象缓存器:在HTTP请求Ifmodifiedsince:<date>中指定缓存版本的日期服务器:如果缓存的拷贝是最新的响应不包含对象:HTTPNotModified缓存器服务器HTTP请求报文Ifmodifiedsince:<date>不修改对象HTTP请求报文Ifmodifiedsince:<date>HTTP响应HTTPOK<data>修改对象第章要点第章要点网络应用的原则Web和HTTPFTP电子邮件SMTP,POP,IMAPDNSPP文件共享TCP的套接字编程UDP的套接字编程构建一个Web服务器FTP:文件传输协议FTP:文件传输协议传输文件到来自远程主机客户机服务器模型客户机:发起传输一侧(到来自远程之一)服务器:远程主机ftp:RFCftp服务器:端口文件传输远程文件系统主机上的用户FTP:独立的控制和数据连接FTP:独立的控制和数据连接FTP客户机联系FTP服务器的号端口指定TCP为运输协议客户机通过控制连接获得授权客户机经控制连接通过发送命令浏览远程目录当服务器接收到一个文件传输命令时该服务器打开到客户机的一个数据连接在传输一个文件后服务器关闭连接服务器打开第二个TCP数据连接以传输另一个文件控制连接:“带外”FTP服务器维护“状态”:当前目录较早的鉴别FTP命令,响应FTP命令,响应命令示例:经控制信道以ASCII文本发送USERusernamePASSpasswordLIST返回当前目录中的文件列表RETRfilename获取(get)文件STORfilename存储(puts)文件到远程主机返回码示例:状态码和短语(如在HTTP中的那样)UsernameOK,passwordrequireddataconnectionalreadyopentransferstartingCan’topendataconnectionErrorwritingfile第章要点第章要点网络应用的原则Web和HTTPFTP电子邮件SMTP,POP,IMAPDNSPP文件共享TCP的套接字编程UDP的套接字编程构建一个Web服务器电子邮件电子邮件三个主要部分:用户代理邮件服务器简单邮件传输协议:SMTP用户代理亦称为“邮件阅读器”写作、编辑、阅读邮件报文例如Eudora,Outlook,elm,NetscapeMessenger存储在服务器上的报文的达到和离开邮件服务器邮件服务器电子邮件:邮件服务器电子邮件:邮件服务器邮件服务器邮箱包含用户的到达报文离开(将发送)邮件报文的报文队列在发送电子邮件报文的邮件服务器之间的SMTP协议客户机:发送邮件服务器服务器:接收邮件的服务器邮件服务器邮件服务器电子邮件:SMTPRFC电子邮件:SMTPRFC使用TCP从客户机到服务器可靠地传输电子邮件报文用端口直接传输:发送服务器到接收服务器传输的三个阶段握手(欢迎)报文的传输关闭命令响应交互命令:ASCII文本响应:状态码和短语报文必须以比特ASCII格式场景:Alice向Bob发送报文场景:Alice向Bob发送报文)Alice使用UA写作报文并向bobsomeschooledu发送)Alice的UA向其邮件服务器发送报文报文放置在报文队列中)SMTP的客户机侧打开与Bob的邮件服务器的TCP连接)SMTP通过TCP连接发送Alice的报文)Bob’的邮件服务器将该报文放入Bob的邮箱)Bob调用其用户代理来读报文SMTP交互的示例SMTP交互的示例S:hamburgereduC:HELOcrepesfrS:Hellocrepesfr,pleasedtomeetyouC:MAILFROM:<alicecrepesfr>S:alicecrepesfrSenderokC:RCPTTO:<bobhamburgeredu>S:bobhamburgereduRecipientokC:DATAS:Entermail,endwith""onalinebyitselfC:DoyoulikeketchupC:HowaboutpicklesC:S:MessageacceptedfordeliveryC:QUITS:hamburgereduclosingconnection自行试验SMTP交互:自行试验SMTP交互:telnet服务器name观察来自服务器的回答输入HELO,MAILFROM,RCPTTO,DATA,QUIT命令上述过程使你发送电子邮件而不使用电子邮件客户机(阅读器)SMTP:有关情况SMTP:有关情况SMTP使用持久连接SMTP要求报文(首部和主体)以bitASCII格式SMTP服务器使用CRLFCRLF以决定报文结束与HTTP的比较:HTTP:拉SMTP:推两者都有ASCII命令响应交互状态码HTTP:每个对象封装在其自己的响应报文中SMTP:多个对象在多方报文中发送邮件报文格式邮件报文格式SMTP:交换电子邮件报文的协议RFC:文本报文格式的标准:首部行,如To:From:Subject:不同于SMTP命令!主体“报文”,均为ASCII字符首部主体空行报文格式:多媒体扩展报文格式:多媒体扩展MIME:多媒体邮件扩展,RFC,在报文首部的附加行声明MIME内容类型多媒体数据类型子类型声明参数使用编码数据的方法MIME版本编码数据邮件访问协议邮件访问协议SMTP:交付存储到接收方服务器邮件访问协议:从服务器获取邮件POP:邮局协议RFC授权(代理<>服务器)并下载IMAP:互联网邮件访问协议RFC更多特色(更复杂)操作存储在服务器上的报文HTTP:Hotmail,Yahoo!Mail等SMTP访问协议接收方邮件服务器POP协议POP协议特许阶段客户机命令:user:声明用户名pass:口令服务器响应OKERR事务阶段,客户机:list:列出报文成员retr:由数字获取报文dele:删除quitC:listS:S:S:C:retrS:<messagecontents>S:C:deleC:retrS:<messagecontents>S:C:deleC:quitS:OKPOP服务器signingoffS:OKPOP服务器readyC:userbobS:OKC:passhungryS:OKusersuccessfullyloggedonPOP和IMAPPOP和IMAPPOP其他情况前面的例子使用了“downloadanddelete”模式如果Bob改变客户机则不能重读电子邮件“Downloadandkeep”:在不同客户机上的报文拷贝POP跨越会话是无状态的IMAP在一个地方保持所有报文:服务器允许用户在文件夹中组织报文IMAP跨越会话保持用户状态:文件夹名和报文ID和文件夹名之间的映射第章要点第章要点网络应用的原则Web和HTTPFTP电子邮件SMTP,POP,IMAPDNSPP文件共享TCP的套接字编程UDP的套接字编程构建一个Web服务器DNS:域名系统DNS:域名系统人:许多标识符社会保险号,名字,护照#因特网主机、路由器:IP地址(bit):用于数据报寻址“名字”,如wwwyahoocom–由人所使用问题:IP地址和名字之间的映射?域名系统:分布式数据库由层次化的许多名字服务器实现应用层协议主机、路由器、名字服务器通信以解析名字(地址名字转换)注意:因特网核心功能作为应用层协议实现复杂性位于网络“边缘”DNSDNSDNS服务主机名到IP地址的转换主机别名规范名和别名邮件服务器别名负载分配复制的Web服务器:对一个规范名的IP地址集合为何不用集中式DNS单点故障通信量远程集中式数据库维护不具有扩展性!分布式、等级制数据库分布式、等级制数据库客户机要求wwwamazoncom的IP地址stapprox:客户机请求根服务器以发现comDNS服务器客户机请求comDNS服务器以得到amazoncomDNS服务器客户机请求amazoncomDNS服务器以得到对wwwamazoncom的IP地址DNS:根名字服务器DNS:根名字服务器当本地名字服务器不能分解名字时联系它根名字服务器:如果名字映射未知联系权威名字服务器获得映射返回对本地名字服务器的映射世界范围的个根名字服务器顶级域和权威服务器顶级域和权威服务器顶级域(TLD)服务器:负责com,org,net,edu等以及所有顶级国家域uk,fr,ca,jpNetworkSolutions维护com顶级域服务器Educause维护edu顶级域服务器权威DNS服务器:组织的DNS服务器为组织的服务器(如Web和电子邮件)提供对IP映射的权威主机名能够由组织或服务提供商维护本地名字服务器本地名字服务器并不严格属于等级结构每个ISP(住宅ISP、公司、大学)有一个也称为“默认名字服务器”当主机发出DNS请求时请求被发送到其本地名字服务器作为代理将请求转发到等级结构例子例子位于cispolyedu的主机为gaiacsumassedu要求IP地址请求主机cispolyedugaiacsumassedu根DNS服务器权威DNS服务器dnscsumassedu顶级域DNS服务器递归请求递归请求递归请求:将名字解析的负担放在联系的名字服务器沉重的负担迭代请求:联系的服务器用要联系的名字服务器回答“我不知道该名字但询问这个服务器”DNS:缓存和更新记录DNS:缓存和更新记录一旦(任何)名字服务器知道了映射它将缓存该映射在一定时间后缓存项超时(消失)顶级域服务器通常缓存在本地名字服务器中因此不经常访问根名字服务器更新通知机制正由IETF设计RFChttp:wwwietforghtmlchartersdnsindcharterhtmlDNS记录DNS记录DNS:分布式数据库存储资源记录(RR)Type=NSname是域(如foocom)Value是该域的权威名字服务器的IP地址Type=Aname是主机名name是IP地址Type=CNAMEname是对某些“规范的”(真实)名字的别名wwwibmcom实际是服务器eastbackupibmcomvalue是规范名Type=MXValue是与name相联系的邮件服务器DNS协议、报文DNS协议、报文DNS协议:查询和回答报文,都具有相同的报文格式报文首部标识符identification:bit#用于查询和回答回答与查询使用相同的#标志flags:查询或回答希望递归递归可用回答是权威的DNS协议报文DNS协议报文用于查询的名字、类型字段对查询的响应中的RR权威服务器的记录可被使用的附加“有帮助的”信息将记录插入DNS将记录插入DNS例子:创建新兴公司NetworkUtopia在注册登记机构(如NetworkSolutions)注册名字为networkuptopiacom需要提供你的权威名字服务器(基本和辅助的)的名字和IP地址注册登记机构将两条RR插入comTLD服务器:(networkutopiacom,dnsnetworkutopiacom,NS)(dnsnetworkutopiacom,,A)对wwwnetworkuptopiacom在权威服务器插入TypeA记录对networkutopiacom插入TypeMX记录人们如何得到你Web站点的IP地址呢?第章要点第章要点网络应用的原则Web和HTTPFTP电子邮件SMTP,POP,IMAPDNSPP文件共享TCP的套接字编程UDP的套接字编程构建一个Web服务器PP文件共享PP文件共享例子Alice在她自己的笔记本机上运行PP客户机应用程序间歇地与因特网相连得到对每个连接的新IP地址寻找歌曲“HeyJude”应用程序显示具有HeyJude拷贝的其他对等方Alice选择其中一个对等方Bob文件从Bob的PC拷贝到Alice笔记本:HTTP在Alice下载时Alice也向其他用户上载Alice的对等方既是Web客户机也是瞬时的Web服务器所有对等方都是服务器=高度可扩展!PP:集中式目录PP:集中式目录初始“Napster”设计)当对等方连接时它通知中心服务器:IP地址内容)Alice查询“HeyJude”)Alice从Bob请求文件PP:集中式目录存在的问题PP:集中式目录存在的问题单点故障性能瓶颈侵犯版权文件传输是分散的但定位内容是高度集中的查询洪泛:Gnutella查询洪泛:Gnutella全分布方式无中心服务器公共域协议许多Gnutella客户机实现协议覆盖网络:图如果对等方X和Y间有一条TCP连接则存在一条边所有活动对等方和边形成覆盖网络边不是物理链路给定对等方将通常与少于个覆盖节点相连Gnutella:协议Gnutella:协议文件传输:HTTP查询报文经现有的TCP连接对等方转发查询报文查询命中经反向路径发送扩展性:有限范围的查询Gnutella:对等方加入Gnutella:对等方加入加入对等方X必须在Gnutella网络中发现某些其他对等方:使用候选对等方列表X随后试图与列表上的对等方建立TCP,直到与Y建立连接X向Y发送Ping报文Y转发Ping报文接收到Ping报文的所有对等方用Pong报文响应X接收许多Pong报文。它能建立附加的TCP连接对等方离开:参见课后作业!利用不均匀性:KaZaA利用不均匀性:KaZaA每个对等方或是一个组长或指派给一个组长对等方和其组长间的TCP连接某些组长之间的TCP连接组长追踪其所有子节点上的内容KaZaA:查询KaZaA:查询每个文件具有一个散列码标准和一个描述符客户机向其组长发送关键词查询组长用匹配响应:对于每个匹配:元数据hash,IP地址如果组长向其他组长转发查询,它们用匹配响应客户机则为下载选择文件HTTP请求使用Hash作为标识符向具有所要文件的对等方发送KaZaA技巧KaZaA技巧限制并行上载请求排队激励优先权并行下载第章要点第章要点网络应用的原则Web和HTTPFTP电子邮件SMTP,POP,IMAPDNSPP文件共享TCP的套接字编程UDP的套接字编程构建一个Web服务器套接字编程套接字编程套接字API在BSDUNIX引入,由应用程序显式产生、使用和释放客户机服务器范式通过套接字API提供两类运输服务:不可靠数据库可靠,面向字节流目标:学习构建使用套接字通信的客户机服务器应用程序使用TCP套接字编程使用TCP套接字编程套接字:应用程序进程和端到端运输协议(UCP或TCP)之间的门TCP服务:从一个进程到另一个的可靠字节传输由应用程序研发者控制由操作系统控制主机或服务器由操作系统控制主机或服务器internet由应用程序研发者控制TCP套接字编程TCP套接字编程客户机必须联系服务器服务器进程必须首先运行服务器必须已经生成套接字(门)以欢迎客户机的联系客户机联系服务器通过:创建客户机本地TCP套接字定义服务器进程的IP地址端口号当客户机产生套接字时:客户机TCP创建到服务器TCP的连接当客户机联系时,服务器TCP为服务器进程生成新的套接字以与客户机通信允许服务器与多个客户机交谈源端口号用于区分客户机(详情参见第章)TCP在客户机和服务器之间提供可靠的、按序的字节传输(管道)流的术语流的术语一个流是流入或流出某进程的字符序列一个输入流与该进程的某些输入源(如键盘或套接字)相联系一个输出流与输出源(如监视器或套接字)相联系TCP套接字编程TCP套接字编程例子客户机服务器app:)客户机从标准输入(inFromUserstream)读入行,经套接字(outToServerstream)发送给服务器)服务器从套接字读行)服务器转换成大写,向客户机发送)客户机读,从套接字(inFromServerstream)打印修改的行客户机process客户机TCP套接字客户机服务器套接字交互:TCP客户机服务器套接字交互:TCP服务器(运行在hostid上)客户机例子:Java客户机(TCP)例子:Java客户机(TCP)importjavaio*importjavanet*classTCPClient{publicstaticvoidmain(Stringargv)throwsException{StringsentenceStringmodifiedSentenceBufferedReaderinFromUser=newBufferedReader(newInputStreamReader(Systemin))SocketClientSocket=newSocket("hostname",)DataOutputStreamoutToServer=newDataOutputStream(ClientSocketgetOutputStream())产生输入流产生客户机套接字,与服务器连接生成输出流与套接字联系例子:Java客户机(TCP)例子:Java客户机(TCP)BufferedReaderinFromServer=newBufferedReader(newInputStreamReader(ClientSocketgetInputStream()))sentence=inFromUserreadLine()outToServerwriteBytes(sentence'n')modifiedSentence=inFromServerreadLine()Systemoutprintln("FROMServer:"modifiedSentence)ClientSocketclose()}}产生与套接字联系的输入流向服务器发送行从服务器读行例子:Java服务器(TCP)例子:Java服务器(TCP)importjavaio*importjavanet*classTCPServer{publicstaticvoidmain(Stringargv)throwsException{StringClientSentenceStringcapitalizedSentenceServerSocketwelcomeSocket=newServerSocket()while(true){SocketconnectionSocket=welcomeSocketaccept()BufferedReaderinFromClient=newBufferedReader(newInputStreamReader(connectionSocketgetInputStream()))在端口生成欢迎套接字在欢迎套接字等待客户机的联系生成输入流与套接字联系例子:Java服务器(TCP)例子:Java服务器(TCP)DataOutputStreamoutToClient=newDataOutputStream(connectionSocketgetOutputStream())ClientSentence=inFromClientreadLine()capitalizedSentence=ClientSentencetoUpperCase()'n'outToClientwriteBytes(capitalizedSentence)}}}从套接字逐行读生成输出流与套接字联系向套接字读出行当循环结束循环回来并等待另一个客户机连接第章要点第章要点网络应用的原则Web和HTTPFTP电子邮件SMTP,POP,IMAPDNSPP文件共享TCP的套接字编程UDP的套接字编程构建一个Web服务器UDP套接字编程UDP套接字编程UDP:在客户机and服务器之间无“连接”没有握手发送方为每个分组附加上目的地的IP地址和端口号no服务器必须从接收到的分组提取IP地址端口号UDP:接收到的传输数据可能失序或丢失UDP为客户机和服务器间的字节组(数据报)提供不可靠的传输客户机服务器套接字交互:UDP客户机服务器套接字交互:UDP服务器(运行在hostid之上)例子:Java客户机(UDP)例子:Java客户机(UDP)输出:发送分组(TCP发送“字节流”)客户机process客户机UDP套接字sendPacket到网络来自网络receivePacketinFromUser键盘显示器ProcessclientSocketUDP分组输入流UDP分组UDP套接字输入:接收分组(TCP接收“字节流”)例子:Java客户机(UDP)例子:Java客户机(UDP)importjavaio*importjavanet*classUDPSocket{publicstaticvoidmain(Stringargs)throwsException{BufferedReaderinFromUser=newBufferedReader(newInputStreamReader(Systemin))DatagramSocketClientSocket=newDatagramSocket()InetAddressIPAddress=InetAddressgetByName("hostname")bytesendData=newbytebytereceiveData=newbyteStringsentence=inFromUserreadLine()sendData=sentencegetBytes()生成输入流生成客户机套接字使用DNS将主机名转换为IP地址例子:Java客户机(UDP),cont例子:Java客户机(UDP),contDatagramPacketsendPacket=newDatagramPacket(sendData,sendDatalength,IPAddress,)ClientSocketsend(sendPacket)DatagramPacketreceivePacket=newDatagramPacket(receiveData,receiveDatalength)ClientSocketreceive(receivePacket)StringmodifiedSentence=newString(receivePacketgetData())Systemoutprintln("FROMServer:"modifiedSentence)ServerSocketclose()}}使用要发送的数据、长度、IP地址、端口生成数据报向服务器发送数据报从服务器读数据报例子:Java服务器(UDP)例子:Java服务器(UDP)importjavaio*importjavanet*classUDPServer{publicstaticvoidmain(Stringargs)throwsException{DatagramSocketServerSocket=newDatagramSocket()bytereceiveData=newbytebytesendData=newbytewhile(true){DatagramPacketreceivePacket=newDatagramPacket(receiveData,receiveDatalength)ServerSocketreceive(receivePacket)在端口生成数据报套接字为接收的数据报生成空间接收数据报例子:Java服务器(UDP)例子:Java服务器(UDP)Stringsentence=newString(receivePacketgetData())InetAddressIPAddress=receivePacketgetAddress()intport=receivePacketgetPort()StringcapitalizedSentence=sentencetoUpperCase()sendData=capitalizedSentencegetBytes()DatagramPacketsendPacket=newDatagramPacket(sendData,sendDatalength,IPAddress,port)ServerSocketsend(sendPacket)}}}获得发送方的IP地址端口#向套接字写出数据报当循环结束循环回来并等待另一个数据报产生数据报发送给客户机第章要点第章要点网络应用的原则Web和HTTPFTP电子邮件SMTP,POP,IMAPDNSPP文件共享TCP的套接字编程UDP的套接字编程构建一个Web服务器构建一个简单的Web服务器构建一个简单的Web服务器处理一个HTTP请求接受该请求解析首部从服务器的文件系统获得请求的文件产生HTTP响应报文:首部行+文件向客户机发送响应在生成服务器后,你能够使用浏览器(如IEexplorer)请求文件详见

类似资料

编辑推荐

古今名医临证金鉴.儿科卷(上).pdf

欧洲GMP正文(中文稿).PDF

新概念英语第四册旧版与新版对照表.pdf

新概念英语 旧版 第4册 图文版.pdf

曾经改变了千万人的人生经典语录.pdf

职业精品

精彩专题

上传我的资料

精选资料

热门资料排行换一换

  • 《信源宝藏》索达吉堪布著.pdf

  • 上尉老公今晚必须交军粮.txt

  • 《杜伊诺哀歌》赖内•马利亚•里尔…

  • 中国书画典库 第51卷-宋代名家…

  • [英文版]格雷厄姆·格林 恋情的…

  • Social Yet Creat…

  • 采铜.如何成为一个精进的人(思维…

  • canon人像摄影.ppt

  • 书谱译注.pdf

  • 资料评价:

    / 106
    所需积分:5 立即下载

    意见
    反馈

    返回
    顶部