第2讲协议软件接口概要优秀PPT.ppt
《第2讲协议软件接口概要优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第2讲协议软件接口概要优秀PPT.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第2 2讲讲 协议软件接口协议软件接口WindowsWindows网络编程基础网络编程基础协议的软件接口套接字WinSock本讲内容1.1.协议的软件接口协议的软件接口1.TCP/IP协议软件接口的特点现象:TCP/IP标准没有规定应用软件与TCP/IP协议软件如何接口的细微环节,只建议了所需的功能集。操作系统操作系统应用程序应用程序TCP/IP实现实现?TCP/IP协议软件接口协议软件接口特点:不精确指明TCP/IP的设计者尽量避开运用任何一家厂商的内部数据表示。TCP/IP标准尽量避开让接口运用那些只在某一家厂商的操作系统中可用的特征目的:使得协议的兼容性强,可以运行在多厂商的环境之中。
2、目前的一些协议软件接口Berkeley UNIX:套接字接口(或socket)微软:Windows Socket(WinSock)AT&T UNIX(System V):传输层接口(Transport Layer Interface,TLI)1.TCP/IP协议软件接口的特点2.如何访问TCP/IP协议?两种基本方法:设计者独创一种新的系统调用,应用程序用它们来访问TCP/IP;列举出全部的概念性操作为每个操作指定一个名字和参数将每个操作实现为一个系统调用设计者运用一般的I/O调用访问TCP/IP扩充一般的I/O原语两种方法综合问题的引入Linux系统的I/O模型一般模式:打开读/写关闭步骤:
3、调用“打开”获得对文件或设备的运用权,并返回整型的文件描述符,此后运用它对该文件或设备进行I/O操作;多次调用“读/写”传输数据;全部传输操作完成后,用户调用“关闭”,通知操作系统已经完成了对某个对象的运用。Linux中供应的基本I/O功能操作 含义open为输入或输出操作准备一个设备或文件close终止使用以前已经打开的设备或文件read从输入设备或文件中获得数据,将数据放到应用程序的存储器中write将数据从应用程序的存储器传导输出设备或文件lseek转到文件或设备中的某个指定位置ioctl控制设备或用于访问该设备软件(如:指明缓存的大小或改变字符集的映射)Linux中对文件操作打开一个文
4、件读取一个文件关闭文件int desc;desc=open(“filename”,O_RDWR,0);read(desc,buffer,128);close(desc);TCP/IP的角色:相当于一种新的I/O操作,但比一般应用程序与传统的I/O操作的相互作用困难得多。网络应用程序要解决的问题:进行网络I/O操作的两个进程在不同机器上,如何建立它们之间的联系?网络协议有很多种,如何建立一种通用机制以支持多种协议?如何扩充一般的I/O原语?1.1.协议的软件接口协议的软件接口2.2.套接字套接字一个本地主机建立或拥有的应用程序一个本地主机建立或拥有的应用程序,在操作系在操作系统限制下的统限制下的
5、,与其它与其它(远程远程)应用进程之间发送和应用进程之间发送和接收数据的接口。接收数据的接口。socketsocket(套接字)(套接字)socket 是进行程序间通讯(IPC)的 BSD 方法。客户将插头插入一个服务器端口建立一个双向的连接管道客户端服务器插口(port)socket的抽象表示Berkeley套接字时间:20世纪80年头早期资助方:远景探讨规划局(Advanced Research Projects Agency,ARPA)探讨方:加利福尼亚高校伯克利分校产品:套接字接口(套接字API)方法:扩充已有的系统调用增加新的系统调用方法socket程序设计中的几个重要概念端口:为网
6、络通信进程设置一些抽象的访问点,供应了多路输出数据到指定应用程序的方法;端口数据管理:每一端口有一缓冲区来存放进入该端口的数据队列;OS供应机制,创建或唤醒相应进程来处理相应端口数据。半相关:三元组(协议,本地地址,本地端口号)唯一标识本地通信一方;全相关:五元组(协议,本地地址,本地端口号,远地地址,远地端口号),标识一个完整的网络通信。进行网络进行网络I/OI/O操作的两个进程在操作的两个进程在不同机器不同机器上,如何建上,如何建立它们之间的联系?立它们之间的联系?全相关在客户-服务器应用中的体现客户端:(主动一方)服务器的IP地址:知道向谁恳求服务 客户机的IP地址:让服务器知道把数据传
7、送给谁 服务器的端口号:知道服务器上原委是谁来供应服务 客户端的端口号:服务器知道最终把数据传送到哪 运用的传输层服务:要求牢靠的传输,还是不行靠的传输?服务器:(被动方,与客户端类似)解决方法套接字类型 流式套接字(SOCK_STREAM):供应面对连接的、牢靠的字节流服务,用于TCP。数据报套接字(SOCK_DGRAM):供应无连接的,不行靠的数据报服务,用于UDP。原始套接字(SOCK_RAW):允许对较低层的协议,如IP、ICMP干脆访问。网络协议有很多种,如何建立一种通用机制以支持网络协议有很多种,如何建立一种通用机制以支持多种协议多种协议?将Linux中的 I/O用于TCP/IP扩
8、展文件描述符集(+网络通信所运用的描述符)扩展read和write这两个系统调用(+网络操作功能)其它考虑:指明地址(IP,PORT)指明通讯方式(TCP,UDP,IP)确定通讯角色(Client,Server)处理数据格式套接字描述符和文件描述符用于文件用于文件1的内部数据结构的内部数据结构用于文件用于文件0的内部数据结构的内部数据结构用于文件用于文件2的内部数据结构的内部数据结构用于文件用于文件3的内部数据结构的内部数据结构用于套接字用于套接字1的内部数据结构的内部数据结构套接字的抽象概念 文件描述符表文件描述符表(一个进程一张)(一个进程一张)0:1:2:3:4:5:针对套接字的系统数据
9、结构 文件描述符表文件描述符表(一个进程一张)(一个进程一张)0:1:2:3:4:5:用于文件的内部数据结构用于文件的内部数据结构Family:PF_INETService:SOCK_STREAMLocalIP:RemoteIP:Local Port:4000Remote Port:8000用于套接字的内部数据结构用于套接字的内部数据结构端点地址端点地址套接字的位置套接字的位置套套接接字字用户进程用户进程内核内核应用层细微应用层细微环节环节通信细微通信细微环节环节socket编程步骤 建立一个socket 配置socket 连接socket 通过socket发送数据 通过socket接收数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 协议 软件 接口 概要 优秀 PPT
限制150内