网站大量收购独家精品文档,联系QQ:2885784924

网络软件设计课程实验(电子科技大学)《网络软件设计》实验指导书.docVIP

网络软件设计课程实验(电子科技大学)《网络软件设计》实验指导书.doc

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电子科技大学通信学院 《网络软件设计实验指导书》 编写者 段景山等 服务与协议实验 基于select的多路复用程序设计 多线程并发服务器设计 有限状态机与有状态通信 基于消息驱动的异步选择机制 2009年1月 目录 服务与协议实验――――――――――――――――――――――――1 基于select的多路复用程序设计 ――――――――――――――――5 多线程并发服务器设计―――――――――――――――――――――14 有限状态机与有状态通信――――――――――――――――――――17 基于消息驱动的异步选择机制――――――――――――――――――30 服务与协议实验 【实验目的】 1、掌握不同在类型的套接字上可以获得不同效果的服务。 2、通过对比,深入掌握各套接字接口函数在不同类型套接字上提供的相似或不同的服务。 3、体会服务质量的最终保证仍然依靠对应的协议。 【实验意义】 如何在两种不同的模式(流套接字和数据报套接字)下交叉使用对方模式的函数,这个问题本身不是本实验的目的。本实验是希望通过仔细观察在实验过程中出现的各种现象,进一步透过现象探讨不同的套接字模式究竟对程序的设计带来什么样的影响,探讨影响服务质量的关键因素。 【实验环境】 两人或三人一组实验,也可作为教师演示性实验。 【实验原理】 常用的套接字服务有面向连接的服务和无连接的服务。围绕着这两种不同的服务,网络软件设计在流程、字节流与数据报、可靠性保证和通信关系的限定等方面都有所不同。这些不同的服务又相应地由不同的套接字函数提供。 一般认为,面向连接的双方需要使用listen、accept、connect等一组函数来建立连接,在通信过程中使用recv和send完成数据的接收和发送;无连接的双发只需使用recvfrom和sendto就可直接进行通信,更重要的是,面向连接时应使用SOCK_STREAM类型的套接字,无连接则使用SOCK_DGRAM类型的套接字。 不过,在数据报类型的套接字上也可以使用connect等一系列通常在面向连接中使用的套接字函数。问题是,用户程序在这种情形下,究竟获的是限定在两个端点之间的、字节流的、得到可靠性保证的面向连接通信服务还是不限定源与目的、数据报、没有可靠性保证的无连接服务呢?抑或是某种在一些方面类似面向连接,而另一些方面类似无连接的服务呢?这些都需要实验者通过实验来发现,通过实验数据总结出规律,从而在具体的任务中能够自觉运用正确类型的套接字和套接字函数。 可以认为,连接的首要特征是对通信数据源和目的的限定,即一旦在通信双方之间建立了连接的关系,通信过程中的数据将在且只能在双方之间传递,任何一方既不能发送数据给第三方,也不能从第三方接收数据。因此,在通信过程中双方不需要在每次发送和接收时都指明源和目的地址。在限定了通信只能发生于连接两方之间后,底层面向连接协议可以方便地在通信过程中对传输的数据进行编号和排序。由此,进而可以实现差错控制和流量控制等功能,面向连接的协议于是可以向上层提供字节流(基于排序)服务及可靠性保证(基于编号及重传)。 相反,无连接在任何时候都不限定通信的源和目的。任意时刻,用户程序可以通过套接字向任意的目的发送数据,也能接收任意源到来的数据。实现无连接功能的协议对每次用户发送的数据都独立处理,提供数据报服务。由于很难对数据报排序,无连接协议就不方便实现差错控制功能。从服务的角度,无连接的协议不能保证递交数据报的正确性,递交时也只能以独立的报文形式进行。 本实验的第一阶段将测试各套接字函数在两种类型的套接字上能否使用,然后在这个基础上,进一步观察各套接字接口函数针对不同的套接字类型,提供的服务有哪些不同或相同。例如,如果用DGRAM套接字尝试建立连接,在通信的过程中是否能限定源和目的,限定的程度如何;是否能获得字节流服务;是否能获得可靠性的保证等。反过来,如果在STREAM套接字上使用recvfrom和sendto直接收发数据,观察是否可以不受地址限制发送或接收数据,数据的递交是否为数据报形式等。 在分层协议体系中,各层提供的服务与该层协议的实现是相互关联但又互相独立的两个概念。协议是规定对等实体之间的行为规范,一般情况下,某种类型的协议向其上层实体提供某种类型的服务,就像面向连接的协议提供面向连接的服务。不过,协议和服务又是两个相对独立的概念,在特殊情况下,某种类型的服务可以由另外类型的协议来实现。在套接字这个高层应用和传输层实体之间的接口上,用户通过创建套接字时指明的套接字类型,其实是指明底层实体(协议)。数据报套接字的服务由UDP协议提供,而字节流套接字的服务则由TCP协议提供。在数据报套接字上使用connect等提供面向连接的服务原语,是希望无连接协议提供面向连接的服务。正如我们将在实验中观察到的,用不同类型

您可能关注的文档

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档