资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
计算机网络编程,第三讲 协议的程序接口 电子科技大学计算机学院,不精确指明的协议软件接口 接口功能 系统调用 网络通信的基本方法 Linux提供的基本I/O功能 将Linux I/O用于TCP/IP,目录,计算机网络编程,电子科大计算机学院,TCP/IP协议存在于OS中,网络服务通过OS提供 应用程序要和操作系统交互,才能使用TCP/IP提供的网络通信功能 交互的接口:即应用程序接口(API) 从网络的观点看:TCP/IP和应用程序之间的接口,不精确指明的协议软件接口,计算机网络编程,电子科大计算机学院,问题:为什么操作系统能为我们提供网络通信功能?,TCP/IP被设计成能运行于多厂商的环境之中:,计算机网络编程,电子科大计算机学院,不精确指明的协议软件接口,要和不同的机器兼容,TCP/IP尽量避免使用任何一家厂商的内部数据表示,TCP/IP尽量避免让接口使用某一个厂商的OS中可以使用的特征,TCP/IP和应用程序之间的接口应该是不精确指明的: 不规定接口的细节 只建议需要的功能集 允许系统设计者选择有关API的具体实现细节,优点: 提供了灵活性和容错能力 便于各种OS实现TCP/IP 接口可以是过程的,也可以是消息的 缺点: 不同的OS中的接口细节不同 移植性差 程序员需要重新学习接口知识 一些接口举例: Berkeley UNIX中的套接字接口 Microsoft windows中的windows socket AT&T的UNIX系统V的TLI,计算机网络编程,电子科大计算机学院,不精确指明协议软件接口,分配用于通信的本地资源 指定本地和远程通信端点 (客户端)启动连接 (客户端)发送数据报 (服务器端)等待连接到来 发送或者接收数据 判断数据何时到达,计算机网络编程,电子科大计算机学院,接口功能,产生紧急数据 处理到来的紧急数据 从容终止连接 处理来自远程端点的连接终止 异常终止通信 处理错误条件或者连接异常终止 连接结束后释放本地资源,概念性接口:TCP/IP提供的接口示例 一组过程和函数(将控制权从应用程序转交给系统),及它们要求的参数和操作的语义,如send 不指明数据的表示和编程的细节 由OS实现成为API 只要求功能相同,可以自由选择过程名和参数,计算机网络编程,电子科大计算机学院,概念性接口,系统调用:应用程序和操作系统之间传递控制权(函数调用) 目的是从操作系统获得服务 一定的权限控制(允许读取或修改操作系统数据结构),计算机网络编程,电子科大计算机学院,系统调用,应用程序1,由应用程序调用的系统函数,包括TCP/IP协议软件的操作系统内核,应用程序2,应用程序3,在用户地址空间中的应用程序,系统调用接口,系统地址中的协议软件,计算机网络编程,电子科大计算机学院,系统调用举例:,suconnect,wakeup,tcp_usrreq,tsleep,soisconnecting,connect,soisconnected,TCP开始三次握手,TCP三次握手完成,在用户地址空间中的应用程序,系统调用接口,系统地址中的协议软件,使用新的系统调用来访问TCP/IP 对于每个概念性的操作实现一个系统调用 创建新的系统调用并不明智 使用一般的I/O调用来访问TCP/IP 使用一般的I/O调用,但是进行了扩充,既可以用于I/O,又可以用于网络协议 混合方法 尽可能使用基本的I/O功能 增加一些函数来实现其它操作,计算机网络编程,电子科大计算机学院,网络通信的两种基本方法,理解基本I/O如何扩展功能,六个基本的系统函数:,计算机网络编程,电子科大计算机学院,LINUX中提供的基本I/O功能,操作,含义,Open Close Read Write Lseek Ioctl,为输入或输出操作准备一个设备或者文件 终止使用以前已打开的设备或者文件 从输入设备或者文件中得到数据 数据从应用程序存储器传到设备或文件中 转到文件或者设备中的某个指定位置 控制设备或者用于访问该设备的软件,int desc desc=open(“filename”, O_RDWR, 0) read(desc,buffer,128) close(desc),计算机网络编程,电子科大计算机学院,基本I/O举例,扩展文件描述符:可以用于网络通信 扩展read和write:可以用于网络标识符 额外功能的处理( 如下) ,增加新系统调用: 指明本地和远端的端口,远程IP地址 使用TCP还是UDP 启动传输还是等待传入连接 可以接收多少传入连接 传输UDP数据,计算机网络编程,电子科大计算机学院,将Linux I/O用于TCP/IP,TCP/IP是为了多厂商环境设计的,没有精确指明应用程序接口 概念性接口:一种说明性的示例 操作系统尽可能扩展原有的系统调用的功能,减少新增加系统调用的数量。 必要的新的系统调用,计算机网络编程,电子科大计算机学院,总结,1.说明不精确指明协议软件接口的优缺点? 2.列举接口的功能。 3.说明使用系统调用进行网络通信的两种基本方法?,计算机网络编程,电子科大计算机学院,作业,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号