8应用层教程详解.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
应用程序编程接口 t y p e 参数表明通信的语义。 S O C K _ S T R E A M 说明是字节流。 S O C K _ D G R A M则表明是面向消息的服务,像U D P 提供的一样。 p r o t o c o l 参数则指明将要用到的特定协议。 s o c k e t 返回值是新创建套接字的句柄(h a n d l e ),即以后引用该套接字时使用的标识符。在套接字的其他操作中,它也将作为一个参数。 d o m a i n 参数描述将使用的协议族。 A F _ I N E T 用于表示因特网协议族。 A F _ U N I X 用于表示U n i x 管道功能 套接字类型 TCP/IP的socket提供下列三种类型套接字。 (1)流式套接字(SOCK_STREAM) 提供面向连接、可靠的数据传输服务,数据无差错、无重复地发送,且按发送顺序接收。 内设流量控制,避免数据流超限; 数据被看作是字节流,无长度限制。 文件传送协议(FTP)即使用流式套接字。? (2)数据报式套接字(SOCK_DGRAM) 提供无连接服务。 数据包以独立包形式被发送,不提供无错保证,数据可能丢失或重复,并且接收顺序混乱。 网络文件系统(NFS)使用数据报式套接字。? (3)原始式套接字(SOCK_RAW) 该接口允许对较低层协议,如IP、ICMP直接访问。 常用于检验新的协议实现或访问现有服务中配置的新设备。 客户/服务器模式 操作过程中采取的是主动请求方式。 服务器方要先启动,并根据请求提供相应服务: 打开一通信通道并告知本地主机,它愿意在某一公认地址上(如著名端口,FTP 21)接收客户请求; 等待客户请求到达该端口; 接收到重复服务请求,处理该请求并发送应答信号。 接收到并发服务请求,要激活一新进程来处理这个客户请求。 新进程处理此客户请求,并不需要对其它请求作出应答。 服务完成后,关闭此新进程与客户的通信链路,并终止。 返回第二步,等待另一客户请求。 关闭服务器 客户/服务器模式 客户方: 打开一通信通道,连接到服务器所在主机的特定端口; 向服务器发服务请求报文,等待并接收应答;继续提出请求...... 请求结束后关闭通信通道并终止。 从上面所描述过程可知: 1.?客户与服务器进程的作用是非对称的,因此编码不同。 2.?服务进程一般是先于客户请求而启动的。只要系统运行,该服务进程一直存在,直到正常或强迫终止。 应用程序编程接口 下一步看你是客户还是服务器。 如果是服务器: 在服务器主机上,应用进程执行一个被动的打开,即服务器表明它已准备好接受连接,但并没有真正建立连接。 服务器通过调用以下三个操作来完成打开: b i n d 操作:将新创建的s o c k e t 与a d d r e s s 绑定。这是本地参与者(即服务器)的网络地址。 注意,a d d r e s s 在因特网协议中使用时是表示一个数据结构,其中包括服务器的I P 地址和T C P 端口号。例如,We b 服务器通常在端口8 0 上接受连接。 l i s t e n 操作:定义在指定的s o c k e t 上可以有多少个待处理的连接。 a c c e p t 操作:完成被动打开。它是一个阻塞的操作,在远程参与者没有建立起连接前,它不会返回任何参数,一旦连接成功,它将返回一个表示这个新建连接的新的套接字,并且a d d r e s s 参数还包括了远程参与者的地址。 注意,当a c c e p t 返回时,以前作为参数给定的原始套接字依然存在并依然对应于被动打开;在以后调用a c c e p t 时它仍作为参数。 应用程序编程接口 在客户机上 应用程序执行主动打开; 它通过调用如下的一个操作来表明它希望与谁通信: 该操作直至T C P 成功建立连接后才返回,此时应用程序可以开始发送数据。 a d d r e s s 中包括了远程参与者的地址。 客户机通常只描述远程参与者的地址,让系统自动填写本地信息。 服务器通常在共知的端口监听消息,一般地,客户机并不关心它自己用哪个端口,操作系统简单地选一个未用端口即可。 一旦连接建立,应用进程将调用以下两个操作来发送和接收数据: 这个操作在指定的s o c k e t 上发送m e s s a g e 这个操作则是将从指定的s o c k e t 上收到的消息放入指定的b u ff e r 。它们都使用一系列f l a g s 来控制操作的特定细节。 应用程序编程接口 典型套接字调用过程举例 必须有客户和服务器两个进程,并且首先启动服务器。 面向连接的协议的套接字系统调用如图所示: 服

文档评论(0)

奇缘之旅 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档