- 1、本文档共73页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《网络程序设计》第1章.ppt
每个服务赋予一个唯一的标识 这个问题是由传输协议栈提供的一套机制来解决的。这种机制必须赋给每个服务一个唯一的标识,并要求服务器和客户都使用这个标识。当服务器开始执行时,它在本地的协议栈软件中登记,指明它所提供的服务的标识。 当客户与远程服务器通信时,客户在提出请求时,通过这个标识来指定所希望的服务。客户端机器的传输协议栈软件将该标识传给服务器端机器。服务器端机器的传输协议栈则根据该标识来决定由哪个服务器程序来处理这个请求。 1.4 P2P 模式 1.4.1 单服务器存在的问题 随着应用规模的不断扩大,软件复杂度不断提高,面对巨大的用户群,单服务器成了性能的瓶颈 ,另外,服务器上的搜索引擎不能提供最新的动态信息、网络访问集中在有限的服务器上流量非常不平衡、客户端只做一些简单的工作造成资源的巨大浪费,…,等等,为了解决这些问题,就出现了P2P技术。 1.4.2 P2P的定义和特征 P2P技术就是一种在计算机之间直接进行资源和服务的共享,不需要服务器介入的网络技术。 在P2P网络中,每台计算机同时充当着Server和Client的角色,当需要其他电脑的文件和服务时,两台电脑直接建立连接,本机是Client;而当响应其他电脑的资源要求时,本机又成为提供资源与服务的Server。 (1)分散性 (2)规模性 (3)扩展性 (4)Servent性 (5)自治性 (6)互助性 (7)自组织性 P2P系统具有以下特征: P2P 的发展分为三代, 第一代以 Napster 系统为代表 第二代 P2P 使用基于分布式哈希表(Distributer Hash Table,DHT)的协议 第三代 P2P 采用混合型的覆盖网络结构 1.4.3 P2P的发展 该方式由一台大型服务器提供目录服务,当用户启动对等结点上的P2P共享程序时,会将该对等结点的IP地址以及可共享对象等信息通知目录服务器。 目录服务器从每个P2P对等点收集信息建立一动态数据库,而目录服务器也会周期性地向对等结点发送报文以确定对等点的连接状态。 当对等点要与另一对等点通信时,首先查询目录服务器,得知另一对等点的IP后,此后便和另一对等点直接通信交互。 Napster -- 集中式目录 (采用C/S和P2P混合结构) Gnutella协议软件运行在普通对等结点上,对等点靠其间的一些TCP连接(不一定有直接链路)形成一抽象的“覆盖”网络。对等点通过覆盖网络中的既有TCP连接,向相邻对等点发送须定位内容的“查询报文”,其相邻对等点又向它们的相邻对等点转发该报文, …, 如多到7跳转发,形成洪泛查询,当某一对等点收到该报文,检查发现自己有所需文件,它便发回“命中报文”沿着查询报文送来的反向路径到查询方。查询方从收到的若干个对等点“命中报文”中选择一个对等点,与其建立直接的TCP连接,这样,两者间通过 HTTP GET 和 HTTP Response报文便可请求与传回共享文件。 Gnutella -- 查询洪泛(采样全分布的方法定位内容) 对等点分为普通对等点(成员)和超级对等点(组长)两种。运行时,对等点与一个超级结点建立TCP连接,将它自己结点上的共享文件通知给超级结点,超级结点维护其记录有各共享文件标识号、元文件以及共享文件成员对等点IP的数据库,于是成为类似一小型Napster的中央目录服务器;而超级结点之间使用TCP互联形成一个类似于Gnutella的覆盖网络,超级结点间通信,在各组间共享目录信息。 当某对等点查询共享文件时,它向其组长发查询,组长可用对等点列表响应,或向其它组转发查询,其它组沿覆盖网络的反向路径返回响应。 KaZaA -- 不同等级的对等点形成层次型覆盖网络 (1)资源定位 (2)安全性与信任问题 (3)联网服务质量问题 (4)标准化 1.4.4 P2P的关键技术 (1)分布式计算及网格计算 (2)文件共享与存储共享 (3)即时通信交流 (4)安全的P2P通信与信息共享 (5)语音与流媒体 1.4.5 P2P系统的应用与前景 * 图1.9 TCP的三次握手过程 为确保连接的建立和终止都是可靠的,TCP使用三次握手(3-way handshake)的方式来建立连接。 4.三次握手 1.2.1 基于TCP/IP协议栈的网络编程 基于TCP/IP协议栈的网络编程是最基本的网络编程方式,主要是使用各种编程语言,利用操作系统提供的套接字网络编程接口,直接开发各种网络应用程序。本书主要讲解这种网络编程的相关技术。 1.2 三类网络编程 WWW应用是因特网上最广泛的应用
文档评论(0)