网络编程基础

上传人:公**** 文档编号:567677868 上传时间:2024-07-22 格式:PPT 页数:67 大小:1.79MB
返回 下载 相关 举报
网络编程基础_第1页
第1页 / 共67页
网络编程基础_第2页
第2页 / 共67页
网络编程基础_第3页
第3页 / 共67页
网络编程基础_第4页
第4页 / 共67页
网络编程基础_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《网络编程基础》由会员分享,可在线阅读,更多相关《网络编程基础(67页珍藏版)》请在金锄头文库上搜索。

1、网络编程实用教程第第1章章 网络编程基础网络编程基础l本章介绍网络编程相关的基本概念,包括l进程通信的概念进程通信的概念l因特网中网间进程的标识方法因特网中网间进程的标识方法l网络协议的特征网络协议的特征lTCP/IP中用户数据报协议中用户数据报协议UDP和传输和传输控制协议控制协议TCP的特点的特点 l目前的网络编程现状目前的网络编程现状l网络应用程序的客户服务器交互模式网络应用程序的客户服务器交互模式 1.1 网络编程相关的基本概念网络编程相关的基本概念l1.1.1 网络编程与进程通信网络编程与进程通信l1进程与线程的基本概念进程与线程的基本概念l 进程是处于运行过程中的程序进程是处于运行

2、过程中的程序实例实例,是操作系统调度和分配资源的基本单位。是操作系统调度和分配资源的基本单位。l 一个进程实体由程序代码、数据和进一个进程实体由程序代码、数据和进程控制块三部分构成。程控制块三部分构成。l 各种计算机应用程序在运行时,都以各种计算机应用程序在运行时,都以进程的形式存在。网络应用程序也不例外。进程的形式存在。网络应用程序也不例外。 Windows系统不但支持多进程,还支持多线程。系统不但支持多进程,还支持多线程。 当创建一个进程时,系统会自动创建它的第一个线当创建一个进程时,系统会自动创建它的第一个线程,称为主线程。然后,该线程可以创建其他的线程,程,称为主线程。然后,该线程可以

3、创建其他的线程,而这些线程又能创建更多的线程。而这些线程又能创建更多的线程。 图1.1 单CPU分时地运行进程中的各个线程2网络应用进程在网络体系结构中的位置网络应用进程在网络体系结构中的位置 从从计计算算机机网网络络体体系系结结构构的的角角度度来来看看,网网络络应用进程处于网络层次结构的最上层。应用进程处于网络层次结构的最上层。 从功能上,可以将网络应用程序分为两部从功能上,可以将网络应用程序分为两部分,一部分是专门负责网络通信的模块,它们分,一部分是专门负责网络通信的模块,它们与网络协议栈相连接,借助网络协议栈提供的与网络协议栈相连接,借助网络协议栈提供的服务完成网络上数据信息的交换。另一

4、部分是服务完成网络上数据信息的交换。另一部分是面向用户或者作其他处理的模块,它们接收用面向用户或者作其他处理的模块,它们接收用户的命令,或者对借助网络传输过来的数据进户的命令,或者对借助网络传输过来的数据进行加工,这两部分模块相互配合,来实现网络行加工,这两部分模块相互配合,来实现网络应用程序的功能。应用程序的功能。 图1.2 网络应用程序在网络体系结构中的位置 网网络络应应用用程程序序最最终终要要实实现现网网络络资资源源的的共共享享,共共享享的的基基础础就就是是必必须须能能够够通通过过网网络络轻轻松松地地传传递递各各种种信信息息。网网络络编编程程首首先先要要解解决决网网间间进进程程通通信信的

5、的问问题题。然然后后才才能能在在通通信信的基础上开发各种应用功能。的基础上开发各种应用功能。3实现网间进程通信必须解决的问题实现网间进程通信必须解决的问题 网网间间进进程程通通信信是是指指网网络络中中不不同同主主机机中中的的应应用用进进程程之之间间的的相相互互通通信信问问题题,网网间间进进程程通通信信必必须解决以下问题:须解决以下问题:(1)网间进程的标识问题)网间进程的标识问题(2)如何与网络协议栈连接的问题)如何与网络协议栈连接的问题(3)多重协议的识别问题)多重协议的识别问题(4)不同的通信服务的问题)不同的通信服务的问题1传输层在网络通信中的地位传输层在网络通信中的地位 图图1.3说明

6、了基于说明了基于TCP/IP协议栈的进程协议栈的进程之间的通信的情况。之间的通信的情况。图1.3 网络应用程序在网络体系结构中的位置1.1.2 因特网中网间进程的标识因特网中网间进程的标识 按按照照OSI七七层层协协议议的的描描述述,传传输输层层与与网网络络层层在在功功能能上上的的最最大大区区别别是是传传输输层层提提供供进进程程通通信信的的能能力力。TCP/IP协协议议提提出出了了传传输输层层协协议议端端口口(protocol port,简简称称端端口口)的的概概念念,成成功功地解决了通信进程的标识问题。地解决了通信进程的标识问题。 传传输输层层是是计计算算机机网网络络中中,通通信信主主机机内

7、内部部进进行行独独立立操操作作的的第第一一层层,是是支支持持端端到到端端的的进进程程通通信的关键的一层。信的关键的一层。2端口的概念端口的概念l 端口是端口是TCP/IP协议族中,应用层进协议族中,应用层进程与传输层协议实体间的通信接口程与传输层协议实体间的通信接口l 类似于文件描述符,每个端口都拥有类似于文件描述符,每个端口都拥有一个叫作端口号(一个叫作端口号(port number)的整数的整数型标识符型标识符 从从实实现现的的角角度度讲讲,端端口口是是一一种种抽抽象象的的软软件机件机制,制,包括一些数据结构和包括一些数据结构和I/O缓冲区。缓冲区。 图1.4 UDP与TCP的报文格式3端

8、口号的分配机制端口号的分配机制 TCP/IP协协议议采采用用了了全全局局分分配配(静静态态分分配配)和和本本地地分分配配(动动态态分分配配)相相结结合合的的分分配配方方法法。对对于于TCP,或或者者UDP,将将它它们们的的全全部部65535个端口号分为保留端口号和自由端口号两部分。个端口号分为保留端口号和自由端口号两部分。 保留端口的范围是保留端口的范围是01023,又称为众,又称为众所周知的端口或熟知端口(所周知的端口或熟知端口(well-known port),),只占少数,采用全局分配或集中控制只占少数,采用全局分配或集中控制的方式,由一个公认的中央机构根据需要进行的方式,由一个公认的中

9、央机构根据需要进行统一分配,静态地分配给因特网上著名的众所统一分配,静态地分配给因特网上著名的众所周知的服务器进程,并将结果公布于众。周知的服务器进程,并将结果公布于众。 表1.1 一些典型的应用层协议分配到的保留端口TCP的保留端口UDP的保留端口FTP21DNS53HTTP80TFTP69SMTP25SNMP161POP3110 其余的端口号,其余的端口号,1024-65535,称为自,称为自由端口号,采用本地分配,又称为动态分配由端口号,采用本地分配,又称为动态分配的方法。的方法。 总之,总之,TCP或或UDP端口的分配规则是:端口的分配规则是: 端口端口0:不使用,或者作为特殊的使用;

10、:不使用,或者作为特殊的使用; 端端口口1-255:保保留留给给特特定定的的服服务务,TCP和和UDP均均规定,小于规定,小于256的端口号才能分配给网上著名的服务;的端口号才能分配给网上著名的服务;端口端口256-1023:保留给其他的服务,如路由;:保留给其他的服务,如路由;端口端口1024-4999:可以用作任意客户的端口;:可以用作任意客户的端口;端口端口5000-65535:可以用作用户的服务器端口。:可以用作用户的服务器端口。 我们可以描述一下,在这样的端口分我们可以描述一下,在这样的端口分配机制下,客户进程配机制下,客户进程C与服务器进程与服务器进程S第第一次通信的情景。图一次通

11、信的情景。图1.5表示了客户与服表示了客户与服务器第一次通信的情况。务器第一次通信的情况。 图1.5 客户与服务器的第一次通信4进程的网络地址的概念进程的网络地址的概念 在在因因特特网网络络中中,用用一一个个三三元元组组可可以以在在全全局局中唯一地标识一个应用层进程:中唯一地标识一个应用层进程: 应应用用层层进进程程地地址址=(传传输输层层协协议议,主主机机的的IP地址,传输层的端口号)地址,传输层的端口号) 这样一个三元组,叫做一个半相关这样一个三元组,叫做一个半相关(half-association),),它标识了因特网中,它标识了因特网中,进程间通信的一个端点,也把它称为进程的网进程间通

12、信的一个端点,也把它称为进程的网络地址。络地址。 5网络中进程通信的标识网络中进程通信的标识 一一个个完完整整的的网网间间通通信信需需要要一一个个五五元元组组在在全全局中唯一地来标识:局中唯一地来标识:(传传输输层层协协议议,本本地地机机IP地地址址,本本地地机机传传输输层层端口,远地机端口,远地机IP地址,远地机传输层端口地址,远地机传输层端口) 这个五元组称为一个全相关这个五元组称为一个全相关(association)。)。即两个协议相同的半相关即两个协议相同的半相关才能组合成一个合适的全相关,或完全指定一才能组合成一个合适的全相关,或完全指定一对网间通信的进程。对网间通信的进程。 1面向

13、消息的协议与基于流的协议面向消息的协议与基于流的协议(1)面向消息的协议)面向消息的协议 面向消息的协议以消息为单位在网上传送面向消息的协议以消息为单位在网上传送数据,在发送端,消息一条一条地发送,在接数据,在发送端,消息一条一条地发送,在接收端,也只能一条一条地接收,每一条消息是收端,也只能一条一条地接收,每一条消息是独立的,消息之间存在着边界。独立的,消息之间存在着边界。 1.1.3 网络协议的特征网络协议的特征图1.6 保护消息边界的数据报传输服务(2)基于流的协议)基于流的协议 基基于于流流的的协协议议不不保保护护消消息息边边界界,将将数数据据当当作作字字节节流流连连续续地地传传输输,

14、不不管管实实际际消消息息边边界界是是否否存在。存在。图1.7 无消息边界的流传输服务2面向连接的服务和无连接的服务面向连接的服务和无连接的服务 一一个个协协议议可可以以提提供供面面向向连连接接的的服服务务,或或者提供无连接的服务。者提供无连接的服务。 面面向向连连接接服服务务是是电电话话系系统统服服务务模模式式的的抽抽象象,即即每每一一次次完完整整的的数数据据传传输输都都要要经经过过建建立立连接,使用连接,终止连接的过程。连接,使用连接,终止连接的过程。 无连接服务是邮政系统服务的抽象,每无连接服务是邮政系统服务的抽象,每个分组都携带完整的目的地址,各分组在系个分组都携带完整的目的地址,各分组

15、在系统中独立传送。统中独立传送。 3可靠性和次序性可靠性和次序性 可可靠靠性性保保证证了了发发送送端端发发出出的的每每个个字字节节都都能能到到达达既既定定的的接接收收端端,不不出出错错,不不丢丢失失,不不重重复复,保证数据的完整性,称为保证投递。保证数据的完整性,称为保证投递。 次序性是指对数据到达接收端的顺序进行次序性是指对数据到达接收端的顺序进行处理。保护次序性的协议保证接收端收到数据处理。保护次序性的协议保证接收端收到数据的顺序就是数据的发送顺序,称为按序递交。的顺序就是数据的发送顺序,称为按序递交。 l1.1.4 高效的用户数据报协议高效的用户数据报协议UDP 传输层的传输层的用户数据

16、报协议(用户数据报协议(User Datagram Protocol,UDP)是一种尽力传送的无连接的是一种尽力传送的无连接的不保不保障可靠障可靠的的传输传输服务,服务,是一种保护消息边界的数据的传是一种保护消息边界的数据的传输。输。 1.1.5 可靠的传输控制协议TCPl1可靠性是很多应用的基础可靠性是很多应用的基础 l2TCP为应用层提供的服务为应用层提供的服务l 传输控制协议传输控制协议 (Transmission Control Protocol,TCP)应用层进程应用层进程提供提供一个面向连接的、一个面向连接的、端到端的、端到端的、完全可靠的完全可靠的(无差错、无丢失、无重复或失序)

17、全双(无差错、无丢失、无重复或失序)全双工的流传输服务。工的流传输服务。 3TCP利用利用IP数据报实现了端对端的传输服务数据报实现了端对端的传输服务 TCP被称作一种端对端(被称作一种端对端(end to end)协议,这是因为它提供一个直接从一台计算机协议,这是因为它提供一个直接从一台计算机上的应用进程到另一远程计算机上的应用进程上的应用进程到另一远程计算机上的应用进程的连接。应用进程能请求的连接。应用进程能请求TCP构造一个连接,构造一个连接,通过这个连接发送和接收数据,以及关闭连接。通过这个连接发送和接收数据,以及关闭连接。由由TCP提供的连接叫做虚连接(提供的连接叫做虚连接(virt

18、ual connection),),虚连接是由软件实现的。事虚连接是由软件实现的。事实上,底层的因特网系统并不对连接提供硬件实上,底层的因特网系统并不对连接提供硬件或软件支持,只是两台机器上的或软件支持,只是两台机器上的TCP软件模块软件模块通过交换消息来实现连接的幻象。通过交换消息来实现连接的幻象。 图1.8 TCP是一个端到端的传输协议4三次握手三次握手 为确保连接的建立和终止都是可靠的,为确保连接的建立和终止都是可靠的,TCP使用使用三次握手(三次握手(3-way handshake)的方式来建立连的方式来建立连接,接,图1.9 TCP的三次握手过程1.2.1 基于基于TCP/IP协议栈

19、的网络编程协议栈的网络编程 基基于于TCP/IP协协议议栈栈的的网网络络编编程程是是最最基基本本的的网网络络编编程程方方式式,主主要要是是使使用用各各种种编编程程语语言言,利利用用操操作作系系统统提提供供的的套套接接字字网网络络编编程程接接口口,直直接接开开发发各各种种网网络络应应用程序。本书主要讲解这种网络编程的相关技术。用程序。本书主要讲解这种网络编程的相关技术。1.2 三类网络编程三类网络编程1.2.2 基于基于WWW应用的网络编程应用的网络编程l WWW应用是因特网上最广泛的应用,应用是因特网上最广泛的应用,称为万维网称为万维网l 基于基于WWW应用的网络编程技术,包应用的网络编程技术

20、,包括所见即所得的网页制作工具,和动态服括所见即所得的网页制作工具,和动态服务器页面的制作技术。务器页面的制作技术。 1.2.3 基于基于.NET框架的框架的Web Services网络编程网络编程1关于关于.NET平台平台 微微软软公公司司在在2000年年7月月公公布布的的.NET平平台台是是一一个个全全新新的的开开发发框框架架,集集成成了了微微软软二二十十世世纪纪九九十十年年代代后后期期的的许多技术,许多技术, (1) .NET平台有四组产品平台有四组产品 开发工具:开发工具: 专用服务器专用服务器 Web 服务。服务。 设备:设备: (2) MS.NET顺顺应应了了软软件件工工业业的的趋

21、趋势势,包包括括以以下下几几个个方面:方面: 分布式计算:分布式计算: 组件化:组件化: 企业级别的服务:企业级别的服务: WEB 范型转移:范型转移: l(3) .NET平台由三层软件构成平台由三层软件构成l 顶层是全新的开发工具顶层是全新的开发工具VS.NET, l 中间层包括三部分:中间层包括三部分:.NET服务器、服务器、.NET服务构件和服务构件和.NET框架。框架。l 底层是底层是WINDOWS操作系统。操作系统。 (4) .NET框架的设计要支持的目标框架的设计要支持的目标 简化组件的使用:简化组件的使用: 实现语言的集成:实现语言的集成: 支持支持Internet的互操作:的互

22、操作: 简化软件的开发:简化软件的开发: 简化组件的部署:简化组件的部署: 提高可靠性:提高可靠性: 提高安全性:提高安全性: 2关于关于Web服务服务 什什么么是是Web服服务务?Web服服务务是是松松散散耦耦合合的的可可复复用用的的软软件件模模块块,在在Internet上上发发布布后后,能能通通过过标标准准的的Internet 协协议议在在程程序序中中访访问问,具具有有以以下下的的特点:特点:(1)可复用:)可复用: (2)松散耦合:)松散耦合: (3)封装了离散:)封装了离散:(4)Web服务可以在程序中访问服务可以在程序中访问(5)Web服务在服务在Internet上发布上发布 本本节

23、节着着重重于于因因特特网网上上的的高高级级服服务务,以以及及提提供供这这些些服服务务的的应应用用软软件件。讨讨论论网网络络应应用用软软件件的的客客户户服服务务器器交交互互模模式式,并并说说明明网网络络协协议议操操作作的的方方式式为为什什么么需需要要这这种模式。这是构筑所有网络应用的基础。种模式。这是构筑所有网络应用的基础。1.3 客户服务器交互模式客户服务器交互模式l1.3.1 网络应用软件的地位和功能网络应用软件的地位和功能l 因特网仅仅提供一个通用的通信构架,因特网仅仅提供一个通用的通信构架,它只负责传送信息,而对于信息传过去干它只负责传送信息,而对于信息传过去干什么用,利用因特网究竟提供

24、什么服务,什么用,利用因特网究竟提供什么服务,由哪些计算机来运行这些服务,如何确定由哪些计算机来运行这些服务,如何确定服务的存在,如何使用这些服务等等问题,服务的存在,如何使用这些服务等等问题,都要由应用软件和用户解决。都要由应用软件和用户解决。 网网络络应应用用进进程程通通信信时时,普普遍遍采采用用客客户户服服务务器器交交互互模模式式(client-server paradigm of interaction),简简称称C/S模模式式。这这是是因因特特网网上上应用程序最常用的通信模式。应用程序最常用的通信模式。 1.3.2 客户服务器模式客户服务器模式l C/S模式过程中服务器处于被动服务模

25、式过程中服务器处于被动服务的地位。首先服务器方要先启动,并根据的地位。首先服务器方要先启动,并根据客户请求提供相应服务,服务器的工作过客户请求提供相应服务,服务器的工作过程是:程是:l(1)打开一通信通道,并告知服务器所)打开一通信通道,并告知服务器所在的主机,它愿意在某一公认的地址上在的主机,它愿意在某一公认的地址上(熟知知端口,如(熟知知端口,如FTP为为21)接收客户请)接收客户请求。求。l(2)等待客户的请求到达该端口。)等待客户的请求到达该端口。 (3)服服务务器器接接收收到到服服务务请请求求,处处理理该该请请求求并并发发送送应应答答信信号号。为为了了能能并并发发地地接接收收多多个个

26、客客户户的的服服务务请请求求,要要激激活活一一个个新新进进程程或或新新线线程程来来处处理理这这个个客客户户请请求求(如如UNIX系系统统中中用用fork、exec)。服服务务完完成成后后,关关闭闭此此新新进进程与客户的通信链路,并终止。程与客户的通信链路,并终止。(4)返返回回第第二二步步,等等待待并并处处理理另另一一客客户户请请求。求。(5)在特定的情况下,关闭服务器。)在特定的情况下,关闭服务器。 l 客户方采取的是主动请求方式,其工客户方采取的是主动请求方式,其工作过程是:作过程是:l(1)打开一通信通道,并连接到服务器)打开一通信通道,并连接到服务器所在主机的特定监听端口。所在主机的特

27、定监听端口。l(2)向服务器发送请求报文,等待并接)向服务器发送请求报文,等待并接收应答;继续提出请求,与服务器的会话收应答;继续提出请求,与服务器的会话按照应用协议进行。按照应用协议进行。l(3)请求结束后,关闭通信通道并终止。)请求结束后,关闭通信通道并终止。表表1.2 一些著名的网络应用一些著名的网络应用网络应用客户端软件服务器软件应用层协议电子邮件foxmail电子邮件服务器SMTP、Pop3文件传输cutFTP文件传输服务器FTPWWW浏览IE浏览器IIS服务器HTTP 客客户户软软件件和和服服务务器器软软件件通通常常还还具具有有以以下下一一些主要特点:些主要特点: 1客户软件客户软

28、件(1)在在进进行行网网络络通通信信时时临临时时成成为为客客户户,但但它它也可在本地进行其他的计算。也可在本地进行其他的计算。(2)被被用用户户调调用用,只只为为一一个个会会话话运运行行。在在打打算通信时主动向远地服务器发起通信。算通信时主动向远地服务器发起通信。1.3.3 客户与服务器的特性客户与服务器的特性l(3)能访问所需的多种服务,但在某一)能访问所需的多种服务,但在某一时刻只能与一个远程服务器进行主动通信。时刻只能与一个远程服务器进行主动通信。l(4)主动地启动与服务器的通信。)主动地启动与服务器的通信。l (5)在用户的计算机上运行,不需要特)在用户的计算机上运行,不需要特殊的硬件

29、和很复杂的操作系统。殊的硬件和很复杂的操作系统。 2服务器软件服务器软件(1)是是一一种种专专门门用用来来提提供供某某种种服服务务的的程程序序,可可同同时时处处理多个远地客户的请求。理多个远地客户的请求。(2)当当系系统统启启动动时时即即自自动动调调用用,并并且且连连续续运运行行着着,不不断地为多个会话服务。断地为多个会话服务。(3)接接受受来来自自任任何何客客户户的的通通信信请请求求,但但只只提提供供一一种种服服务。务。(4)被动地等待并接受来自多个远端客户的通信请求。)被动地等待并接受来自多个远端客户的通信请求。(5)在在共共享享计计算算机机上上运运行行,一一般般需需要要强强大大的的硬硬件

30、件和和高高级的操作系统支持。级的操作系统支持。(1)客客户户和和服服务务器器都都是是软软件件进进程程,C/S模模式式是是网网络络上上通通过过进进程程通通信信建建立立分分布布式式应应用用的的常常用用模型。模型。(2)非非对对称称性性:服服务务器器通通过过网网络络提提供供服服务务,客客户户通通过过网网络络使使用用服服务务,这这种种不不对对称称性性体体现现在在软软件结构和工作过程上。件结构和工作过程上。3基于因特网的基于因特网的C/S模式的应用程序的特点模式的应用程序的特点(3)对等性:客户和服务器必有一套共识)对等性:客户和服务器必有一套共识的约定,必与的约定,必与以以某种应用层协议相联,并某种应

31、用层协议相联,并且协议必须在通信的两端实现。比如浏览且协议必须在通信的两端实现。比如浏览器和器和3W服务器就都基于服务器就都基于HTTP超文本传输超文本传输协议。协议。 l(4)服务器的被动性:服务器必须先行)服务器的被动性:服务器必须先行启动,时刻监听,日夜值守,及时服务,启动,时刻监听,日夜值守,及时服务,只要有客户请求,就立即处理并响应,回只要有客户请求,就立即处理并响应,回传信息。但决不主动提供服务。传信息。但决不主动提供服务。(5)客客户户机机的的主主动动性性:客客户户机机可可以以随随时时提提出出请请求求,通通过过网网络络得得到到服服务务,也也可可以以关关机机走走人人,一一次次请请求

32、求与与服服务的过程是由客户机首先激发的。务的过程是由客户机首先激发的。(6)一一对对多多:一一个个服服务务器器可可以以为为多多个个客客户户机机服服务务,客户机也可以打开多个窗口,连接多个服务器。客户机也可以打开多个窗口,连接多个服务器。(7)分布性与共享性:资源在服务器端组织与存储,)分布性与共享性:资源在服务器端组织与存储,通过网络分散在多个客户端使用。通过网络分散在多个客户端使用。1服务器程序与服务器类计算机服务器程序与服务器类计算机 服服务务器器(server)这这个个术术语语来来指指那那些些运运行行着着的的服服务程序。务程序。 服服务务器器类类计计算算机机(server-class c

33、omputer)这一术语来称呼那些运行服务器软件的强大的计算机。这一术语来称呼那些运行服务器软件的强大的计算机。1.3.4 容易混淆的术语容易混淆的术语l2客户与用户客户与用户l “客户客户”(client)和服务器都指的是应和服务器都指的是应用进程,即计算机软件。用进程,即计算机软件。l “用户用户”(user)指的是使用计算机的人。指的是使用计算机的人。 图1.10说明了这些概念的区别。图1.10 用户、客户、服务器、服务器类计算机客户与服务器的通信过程一般是这样的:客户与服务器的通信过程一般是这样的:(1)通信之前,服务器应先行启动,并通)通信之前,服务器应先行启动,并通知它的下层协议栈

34、做好接收客户请求的准备,知它的下层协议栈做好接收客户请求的准备,然后被动地等待客户的通信请求,称服务器然后被动地等待客户的通信请求,称服务器处于监听状态。处于监听状态。1.3.5 客户与服务器的通信过程客户与服务器的通信过程l(2)一般是先由客户向服务器发送请求,服务)一般是先由客户向服务器发送请求,服务器向客户返回应答。客户随时可以主动启动通器向客户返回应答。客户随时可以主动启动通信,向服务器发出连接请求,服务器接收这个信,向服务器发出连接请求,服务器接收这个请求,建立了二者的通信关系。请求,建立了二者的通信关系。l(3)客户与服务器的通信关系一旦建立,客户)客户与服务器的通信关系一旦建立,

35、客户和服务器都可发送和接收信息。信息在客户与和服务器都可发送和接收信息。信息在客户与服务器之间可以沿任一方向或两个方向传递。服务器之间可以沿任一方向或两个方向传递。在某些情况下,客户向服务器发送一系列请求,在某些情况下,客户向服务器发送一系列请求,服务器相应地返回一系列应答。服务器相应地返回一系列应答。 客客户户与与服服务务器器作作为为两两个个软软件件实实体体,它它们们之之间间的的通通信信是是虚虚拟拟的的,是是概概念念上上的的,实实际际的的通通信信要要借借助助下下层层的的网络协议栈来进行。网络协议栈来进行。1.3.6 网络协议与网络协议与CS模式的关系模式的关系1.3.7 错综复杂的客户服务器

36、交互l 在在C/S模式中,存在着三种一个与多模式中,存在着三种一个与多个的关系:个的关系: l(1)一个服务器同时为多个客户服务:)一个服务器同时为多个客户服务:l(2)一个用户的计算机上同时运行多个)一个用户的计算机上同时运行多个连接不同服务器的客户连接不同服务器的客户l (3)一个服务器类的计算机同时运行多)一个服务器类的计算机同时运行多个服务器:个服务器: 图1.11 一台计算机中的多个服务器被多个计算机的客户访问 并并发发性性是是客客户户服服务务器器交交互互模模式式的的基基础础,并并发发允允许许多多个个客客户户获获得得同同一一种种服服务务,而而不不必必等等待待服服务务器器完完成成对对上

37、上一一个个请请求求的的处处理理。这这样样才才能能很很好好地地同同时时为为多多个个客客户提供服务。户提供服务。 图1.12 服务器创建多个线程来为多个客户服务1.3.8 服务器如何同时为多个客户服务服务器如何同时为多个客户服务 在一台服务器类的计算机中可以并发地在一台服务器类的计算机中可以并发地运行多个服务器进程。它们都要借助协议栈运行多个服务器进程。它们都要借助协议栈来交换信息,协议栈就是多个服务器进程传来交换信息,协议栈就是多个服务器进程传输数据的公用通道,输数据的公用通道, 这有了一个问题,既然在一个服务器类这有了一个问题,既然在一个服务器类计算机中运行着多个服务器,如何能让客户计算机中运

38、行着多个服务器,如何能让客户无二义性地指明所希望的服务?无二义性地指明所希望的服务? 1.3.9 标识一个特定服务标识一个特定服务图1.13 沙漏计时器形状的TCP/IP协议族 这个问题是由传输协议栈提供的一套机这个问题是由传输协议栈提供的一套机制来解决的。这种机制必须赋给每个服务一制来解决的。这种机制必须赋给每个服务一个唯一的标识,并要求服务器和客户都使用个唯一的标识,并要求服务器和客户都使用这个标识。当服务器开始执行时,它在本地这个标识。当服务器开始执行时,它在本地的协议栈软件中登记,指明它所提供的服务的协议栈软件中登记,指明它所提供的服务的标识。当客户与远程服务器通信时,客户的标识。当客

39、户与远程服务器通信时,客户在提出请求时,通过这个标识来指定所希望在提出请求时,通过这个标识来指定所希望的服务。客户端机器的传输协议栈软件将该的服务。客户端机器的传输协议栈软件将该标识传给服务器端机器。服务器端机器的传标识传给服务器端机器。服务器端机器的传输协议栈则根据该标识来决定由哪个服务器输协议栈则根据该标识来决定由哪个服务器程序来处理这个请求。程序来处理这个请求。 1.4 P2P模式 l随着应用规模的不断扩大,软件复杂度不随着应用规模的不断扩大,软件复杂度不断提高,面对巨大的用户群,单服务器成断提高,面对巨大的用户群,单服务器成了性能的瓶颈了性能的瓶颈 ,为了解决这些问题,就出为了解决这些

40、问题,就出现了现了P2P技术技术 1.4.2 P2P的定义和特征lP2P技术就是一种在计算机之间直接进行技术就是一种在计算机之间直接进行资源和服务的共享,不需要服务器介入的资源和服务的共享,不需要服务器介入的网络技术。在网络技术。在P2P网络中,每台计算机同网络中,每台计算机同时充当着时充当着Server和和Clent的角色,当需要的角色,当需要其他电脑的文件和服务时,两台电脑直接其他电脑的文件和服务时,两台电脑直接建立连接,本机是建立连接,本机是Client;而当响应其他;而当响应其他电脑的资源要求时,本机又成为提供资源电脑的资源要求时,本机又成为提供资源与服务的与服务的Server。 P2

41、P系统具有以下特征。(1)分散性。)分散性。 (2)规模性。)规模性。 (3)扩展性。)扩展性。 (4)Servent性。性。 (5)自治性。)自治性。(6)互助性。)互助性。(7)自组织性。)自组织性。 1.4.3 P2P的发展P2P的发展分为三代,的发展分为三代,l第一代以第一代以Napster系统为代表系统为代表 ,l第二代第二代P2P使用基于分布式哈希表使用基于分布式哈希表(Distributer Hash Table,DHT)的协)的协议,议,l第三代第三代P2P采用混合型的覆盖网络结构,采用混合型的覆盖网络结构,不需要专门的服务器,不需要专门的服务器, 1.4.4 P2P的关键技术(1)资源定位。)资源定位。 (2)安全性与信任问题。)安全性与信任问题。 (3)联网服务质量问题)联网服务质量问题 (4)标准化。)标准化。 1.4.5 P2P系统的应用与前景(1)分布式计算及网格计算。)分布式计算及网格计算。 (2)文件共享与存储共享。)文件共享与存储共享。 (3)即时通信交流,)即时通信交流, (4)安全的)安全的P2P通信与信息共享,通信与信息共享, (5)语音与流媒体)语音与流媒体

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

最新文档


当前位置:首页 > 资格认证/考试 > 自考

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