网络编程技术复习课_第1页
网络编程技术复习课_第2页
网络编程技术复习课_第3页
网络编程技术复习课_第4页
网络编程技术复习课_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、会聚点问题CS模型要求在任何一对进行通信的应用进程中,有一方必须在启动执行后(无限期地)等待对方与其联系。这种解决方案减少了下层软件的复杂性,因为下层协议不必自己对收到的通信请求做出响应。CS模型应用分类CS模型根据通信发起的方向对程序进行分类,即区别一个程序是客户还是服务器。一般来说,发起对等通信的应用程序称为客户。特权为完成计算和返回结果,服务器软件拥有系统特权来访问受操作系统保护的对象(如文件、数据库、设备或协议端口),但应注意不要将特权传递给使用服务的客户。通常服务器含有处理以下安全问题的代码:鉴别验证客户身份授权判断某个库胡是否被允许访问服务器服务数据安全确保数据不被无意泄漏或损坏保

2、密防止未经授权访问信息保护确保网络应用程序不能滥用系统资源状态服务器所维护的与客户交互活动的信息称为状态息。不保存任何状态信息的服务器称为无状态服务器,反之称为有状态服务器。如果应用协议不能使操作成为幂等(注1)的,就可能不能使无状态服务器。有状态服务器的条件在理想情况下,只要网络能可靠地交付所有的报文,并且计算机从不崩溃,则在这种情况下,使服务器为每个进行着的交互保持少量状态信息,就可以使交互的报文小些,并使分布式应用更像非分布式应用。创建进程:fork父进程通过fork()创建子进程,返回两次,一次在父进程,一次在子进程;出错则返回-1。创建线程:pthread_create在当前进程中,

3、创建一个新的线程,与当前运行的线程并发执行。执行新程序:exec系列当前进程映像替换成新的程序文件,而且该程序通常main函数开始执行。多路转接:select确定一个或多个描述符的状态(可读性、可写性、错误状态),实现对多个描述符状态的并发“监听”。可用于实现单线程的并发。等待子进程终止:wait父进程通过调用wait()而阻塞,并等待子进程终止。当有子进程终止时,父进程可获得子进程的退出状态,清理子进程的残余数据,并从阻塞中返回。socket应用调用socket创建一个新的套接字,该新的套接字用于网络通信,并返回该套接字的描述符。connect创建一个套接字后,客户程序调用connect以便

4、同远程服务器建立主动的连接,并通过描述符来传输数据。send(sendto)客户和服务器使用send在TCP上传输数据。客户常使用send传输请求,而服务器使用send传输应答。recv(recvfrom)客户和服务器使用recv在TCP上接收数据。服务器通过其接收客户端请求,而客户端通过其来接收应答。close客户或服务器一旦结束使用某个套接字,便调用close将该套接字撤销(引用为0时注1)。bind应用程序使用bind为一个套接字指定本地端点地址。对于TCP/IP协议,端点地址使用sockaddr_in结构,它包含了IP地址和协议端口号。listen面向连接的服务器调用listen将一个

5、套接字置为被动模式,并使其准备接受传入连接。accept对于TCP套接字,服务器将调用accept以获取所指明的套接字的下一个传入连接请求。循环、无连接服务器(UDP)1、创建套接字并将其绑定到所提供服务的熟 知端口上;2、重复地读取来自客户的请求,构造响应, 按照应用协议向客户发回响应。循环、面向连接服务器(TCP)1、创建套接字并将其绑定到它所提供服务的熟知端口上。2、将该端口设置为被动模式,使其准备为服务器所用。3、从该套接字上接受下一个连接请求,获得该连接的新的 套接字。4、重复地读取来自客户的请求,构造响应,按照应用协议 向客户发回响应。5、与某个特定的客户完成交互时,关闭连接,并返

6、回步骤 3以接受新的连接。并发、面向连接服务器(TCP)主1.创建套接字并将其绑定到所提供服务的熟知地 址上主2.将该端口设置为被动模式,使其准备为服务器 所用主3.反复阻塞等待接受请求以便接收来自客户的下 一个连接请求,并创建新的从进程来处理响应从1.针对主进程传递来的连接请求开始从2.用该连接与客户进行交互:读取请求并发回响 应从3.关闭连接并退出,在处理完来自客户的所有请 求后,从进程就退出单线程、并发服务器(TCP)1、创建套接字并将其绑定到这个服务的熟知端口上。将该套接字加到一个表中,该表中的项为可以进行IO的描述符;2、使用多路转接技术在已有套接字上等待IO;3、如果最初的套接字准

7、备就绪,通过接受连接请求获得下一个连接,并将这个新的套接字加入到表中,该表中的项是可以进行IO的描述符;4、如果是最初的套接字以外的某些套接字准备就绪,就读下一个请求,构造并发送响应;多协议服务器一个多协议服务器的设计允许设计者创建一个单一的过程,此过程响应某个给定服务的请求,响应该过程的调用,而不必关心这些请求是来自UDP还是TCP。多协议服务器允许设计者将某个给定服务的所有代码封装到一个程序里,这样就消除了重复,并且也更容易协调各种变化。多服务、多协议服务器可以选择一种多服务的实现方法来构建多服务服务器,以减少需要执行的服务器的数量;可以使用多协议以便把无连接和面向连接的服务结合进一个服务

8、器中。程序员可以使用并发进程或线程实现一种并发的、多服务服务器,也可以在单执行线程中使用多路转接技术以提供表面上的并发性。从进程/线程预分配当使用预分配时,服务器在启动时就创建若干个并发的从线程/进程。预分配避免了在每次请求到达时创建进程的开销,因而降低了服务器时延,同时允许在处理一个请求时,与另一个请求相关联的I/O活动也在重叠进行。延迟分配技术当使用延迟分配技术时,服务器开始将循环地处理每个请求。仅当处理要花大块时间时,服务器才创建一个并发的从线程/进程来处理该请求。这种时延允许主服务器在创建一个进程或切换环境前,先检查有无差错并处理一些短的请求。预分配与延迟分配统一的基础两者基于同一原理:通过把服务器的并发等级从当前活跃的请求数目中分离出来,设计人员可获得灵活性并提高服务器效率。封装将一个IP数据报放进一个网络分组或帧以便在下层的网络上发送它。封装涉及网络接口如何使用分组交换硬件。隧道技术是指使用高层传输网络服务运送来自另一个服务的分组或报文。区别当IP直接使用硬件发送数据报时,它将每个数据包封装进一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论