- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机网络编程 第三讲 协议的程序接口
* * 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 电子科大计算机学院 第三讲 协议的程序接口 不精确指明的协议软件接口 接口功能 系统调用 网络通信的基本方法 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 ATT的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如何扩展功能,六个基本的系统函数: 计算机网络编程 电子科大计算机学院 操作 含义 Open Close Read Write Lseek Ioctl 为输入或输出操作准备一个设备或者文件 终止使用以前已打开的设备或者文件 从输入设备或者文件中得到数据 数据从应用程序存储器传到设备或文件中 转到文件或者设备中的某个指定位置 控制设备或者用于访问该设备的软件 int desc desc=open(“filename”, O_RDWR, 0) read(desc,buffer,128) close(desc) 计算机网络编程 电子科大计算机学院 扩展文件描述符:可以用于网络通信 扩展read和write:可以用于网络标识符 额外功能的处理( 如下) ,增加新系统调用: 指明本地和远端的端口,远程IP地址 使用TCP还是UDP 启动传输还是等待传入连接 可以接收多少传入连接 传输UDP数据 计算机网络编程 电子科大计算机学院 TCP/IP是为了多厂商环境设计的,没有精确指明应用程序接口 概念性接口:一种说明性的示例 操作系统尽可能扩展原有的系统调用的功能,减少新增加系统调用的数量。 必要的新的系统调用 计算机网络编程 电子科大计算机学院 1.说明不精确指明协议软件接口的优缺点
文档评论(0)