《02335网络操作系统(第五章网络操作系统的接口).ppt》由会员分享,可在线阅读,更多相关《02335网络操作系统(第五章网络操作系统的接口).ppt(23页珍藏版)》请在课桌文档上搜索。
1、第五章 网络操作系统的接口,应用程序接口的编程使用方法套接字在网络通信中的应用,考核内容,应用编程接口概述套接字及其相关的基本系统调用简单套接字及其应用Winsock及其应用,考核知识点识记,应用程序接口概念TLI/XTI函数套接字概念,考核知识点领会,TLI/XTI的服务模式UNIX套接字及其简单应用:套接字和套接字地址,客户机/服务器简单响应的应用利用winsock实现网络通信,考核知识点应用,TLI/XTI函数的应用编程实现套接字通信编程实现winsock的通信,应用编程接口,网络操作系统中应用程序编程接口称为网络API。应用程序接口(API)是一组定义、程序及协议的集合,通过API接口
2、可以实现计算机软件之间的相互通信。API的主要功能是提供通用的功能集,程序员通过使用API函数开发应用程序,以减轻编程任务。,操作系统的用户接口包括命令输入和系统调用,应用程序接口是完成某一个功能的多个系统调用和命令的组合,其功能是完成某一个特定的操作。用户利用网络操作系统的应用程序接口来进行网络编程,可以简化编程,提高效率。,从网络的开发系统互联参考模型来看,API所采用的基本构造技术就是分层使用。各种网络提供的API可以分布在各个层次上,一般的网络只在应用层、会话层、传输层和网络层提供接口API。为了便于用户使用网络和开发网络应用程序,各种网络在各个层次上为用户和第三方开发者提供了方便灵活
3、的编程接口,这些接口统称为应用程序编程接口(API)。,API的四种类型,远程过程调用(RPC)标准查询语言(SQL)文件传输信息交付,开放式API,当需要执行系统整合、自定义和程序应用等操作时,所有成员都可以通过系统接口标准调用源代码,该接口标准称为开放式API。三种开放式API:TLI/XTI接口Socket接口Winsock接口,TLI/XTI函数,TLI即传输层接口,ISO传输服务定义提供了TLI所给予的模型。TLI提供了OSI传输层和会话层之间的API。XTI即开放式传送接口,它是由TLI接口演变而来,使用XTI和使用TLI接口的应用程序相互兼容。TLI/XTI是一组函数的集合,为用
4、户提供传输层接口,包括建立通信、管理连接以及传送数据,应用程序利用这些函数实现网络应用、控制底层的网络活动。,TLI/XTI结构,TLI/XTI把相互通信的两个进程称为端点。TLI/XTI提供网络应用底层端点到端点的通信,为用户应用进程提供了直接传输的接口,TLI/XTI的服务模式,TLI/XTI提供两种服务模式,即面向连接的服务模式和面向非连接的服务模式。,UNIX套接字及其应用,UNIX的socket接口被广泛应用,并成为了事实上的工业标准。套接字也就是socket接口,就是通信的双方的一种约定,利用套接字中的相关函数来完成通信过程。Socket可以看成在两个程序间进行通信连接中的一个端点
5、。,网络中socket是如何找到目标的?,通过IP地址,网络中每台主机具有唯一的IP地址,所以信息会正确的传递到目的主机。IPv4地址是32位,IPv6地址128位,当有多个程序时,又是如何确定目标程序的?,通过端口号来确定目标程序,因为每一个基于TCP/IP网络通信的程序都被赋予了唯一的端口和端口号,端口是一个信息缓冲区,用于保留socket中的输入/输出信息,端口号是一个16位无符号数,范围是0-65535,以区别主机上的每一个程序,低于256的端口号保留给标准应用程序。在通信中,每一个套接字都组合进了IP地址、端口、端口号,这样形成的整体就可以保证每一个套接字传送的对象是可识别的。,套接
6、字是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。套接字可以根据通信性质分类:流套接字和数据报套接字。应用程序一般仅在同一类的套接字间进行通信,不过只要底层的通信协议允许,不同类型的套接字间也照样可以通信。,通过互联网进行通信,至少需要一对套接字,一个运行于客户端,称为client socket,另一个运行于服务器端,称为server socket。根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。,套接字网络通信中一般用到的函数,创建套接字函数socket创建成功返回非负的描述符,失败返回-1.绑定本地名称函数bi
7、nd绑定正常返回0,失败返回-1建立连接函数connect连接正常返回0,失败返回-1侦听函数listen侦听正常返回0,失败返回-1接收数据函数accept接收正常返回非负的描述符,失败返回-1关闭套接字函数close正常关闭返回0,失败返回-1,Winsock概述,在windows环境下利用套接字在TCP/IP上的编程接口就叫做windows sockets,即winsockWinsock是在windows下得到广泛应用的,开发的,支持多种协议的网络编程接口,已成为windows网络编程的事实上的标准。,流套接字和数据报套接字,流套接字提供了双向的、有序的、无重复并且无记录边界的数据流服务
8、。数据报套接字支持双向的数据流,但并不保证是可靠、有序、无重复的。一个从数据报套接字接收信息的进程有可能发现信息重复了,或者和发出时的顺序不一致。数据报套接字保留了记录边界,它采用与包交换网络相似的模型来实现数据边界的记录。,使用winsock实现网络通信,使用winsock实现网络通信的典型范例便是客户机/服务器模型。数据报套接字可以用来向许多系统支持的网络发送广播数据包。在一次网络通信/连接中有以下几个参数需要被设置:本地IP地址,本地端口号,对方端口号,对方IP地址。不论是有连接还是无连接的通信都不需要双方的端口号相同。,Winsock的应用,通过winsock功能可以方便地建立网络连接和发送数据,所有的winsock应用其实都是调用winsock.dll中的方法。,