计算机网络编程第三讲协议的程序接口.ppt_第1页
计算机网络编程第三讲协议的程序接口.ppt_第2页
计算机网络编程第三讲协议的程序接口.ppt_第3页
计算机网络编程第三讲协议的程序接口.ppt_第4页
计算机网络编程第三讲协议的程序接口.ppt_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机网络编程,第三讲 协议的程序接口,不精确指明的协议软件接口 接口功能 系统调用 网络通信的基本方法 Linux提供的基本I/O功能 将Linux I/O用于TCP/IP,目录,计算机网络编程,电子科大计算机学院,TCP/IP协议存在于OS中,网络服务通过OS提供 应用程序要和操作系统交互,才能使用TCP/IP提供的网络通信功能 交互的接口:即应用程序接口(API) 从网络的观点看:TCP/IP和应用程序之间的接口,不精确指明的协议软件接口,计算机网络编程,电子科大计算机学院,问题:为什么操作系统能为我们提供网络通信功能,TCP/IP被设计成能运行于多厂商的环境之中,计算机网络编程,电子科

2、大计算机学院,不精确指明的协议软件接口,要和不同的机器兼容,TCP/IP尽量避免使用任何一家厂商的内部数据表示,TCP/IP尽量避免让接口使用某一个厂商的OS中可以使用的特征,TCP/IP和应用程序之间的接口应该是不精确指明的: 不规定接口的细节 只建议需要的功能集 允许系统设计者选择有关API的具体实现细节,优点: 提供了灵活性和容错能力 便于各种OS实现TCP/IP 接口可以是过程的,也可以是消息的 缺点: 不同的OS中的接口细节不同 移植性差 程序员需要重新学习接口知识 一些接口举例: Berkeley UNIX中的套接字接口 Microsoft windows中的windows soc

3、ket AT&T的UNIX系统V的TLI,计算机网络编程,电子科大计算机学院,不精确指明协议软件接口,分配用于通信的本地资源 指定本地和远程通信端点 (客户端)启动连接 (客户端)发送数据报 (服务器端)等待连接到来 发送或者接收数据 判断数据何时到达,计算机网络编程,电子科大计算机学院,接口功能,产生紧急数据 处理到来的紧急数据 从容终止连接 处理来自远程端点的连接终止 异常终止通信 处理错误条件或者连接异常终止 连接结束后释放本地资源,概念性接口:TCP/IP提供的接口示例 一组过程和函数(将控制权从应用程序转交给系统),及它们要求的参数和操作的语义,如send 不指明数据的表示和编程的细

4、节 由OS实现成为API 只要求功能相同,可以自由选择过程名和参数,计算机网络编程,电子科大计算机学院,概念性接口,系统调用:应用程序和操作系统之间传递控制权(函数调用) 目的是从操作系统获得服务 一定的权限控制(允许读取或修改操作系统数据结构,计算机网络编程,电子科大计算机学院,系统调用,应用程序1,由应用程序调用的系统函数,包括TCP/IP协议软件的操作系统内核,应用程序2,应用程序3,在用户地址空间中的应用程序,系统调用接口,系统地址中的协议软件,计算机网络编程,电子科大计算机学院,系统调用举例,suconnect,wakeup,tcp_usrreq,tsleep,soisconnect

5、ing,connect,soisconnected,TCP开始三次握手,TCP三次握手完成,在用户地址空间中的应用程序,系统调用接口,系统地址中的协议软件,使用新的系统调用来访问TCP/IP 对于每个概念性的操作实现一个系统调用 创建新的系统调用并不明智 使用一般的I/O调用来访问TCP/IP 使用一般的I/O调用,但是进行了扩充,既可以用于I/O,又可以用于网络协议 混合方法 尽可能使用基本的I/O功能 增加一些函数来实现其它操作,计算机网络编程,电子科大计算机学院,网络通信的两种基本方法,理解基本I/O如何扩展功能,六个基本的系统函数,计算机网络编程,电子科大计算机学院,LINUX中提供的

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

评论

0/150

提交评论