版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
应用进程跨越网络的通信1系统调用和应用编程接口大多数操作系统使用系统调用(systemcall)的机制在应用程序和操作系统之间传递控制权。对程序员来说,每一个系统调用和一般程序设计中的函数调用非常相似,只是系统调用是将控制权传递给了操作系统。多个应用进程使用系统调用的机制应用程序1应用程序2应用程序n…由应用程序调用的系统函数用户地址空间中的应用程序系统调用接口系统地址空间中的协议软件包括TCP/IP协议软件的操作系统内核应用编程接口API系统调用接口实际上就是应用进程的控制权和操作系统的控制权进行转换的一个接口。使用系统调用之前要编写一些程序,特别是需要设置系统调用中的许多参数,因此这种系统调用接口又称为应用编程接口API(ApplicationProgrammingInterface)。几种应用编程接口APIBerkeleyUNIX操作系统定义了一种API,它又称为套接字接口(socketinterface)。微软公司在其操作系统中采用了套接字接口API,形成了一个稍有不同的API,并称之为WindowsSocket。AT&T为其UNIX系统V定义了一种API,简写为TLI(TransportLayerInterface)。应用进程通过套接字接入到网络应用进程TCP由应用程序控制互联网由操作系统控制客户服务器套接字TCP应用进程套接字套接字的作用当应用进程需要使用网络进行通信时就发出系统调用,请求操作系统为其创建“套接字”,以便把网络通信所需要的系统资源分配给该应用进程。操作系统为这些资源的总和用一个叫做套接字描述符的号码来表示。应用进程所进行的网络操作都必须使用这个套接字描述符。通信完毕后,应用进程通过一个关闭套接字的系统调用通知操作系统回收与该套接字描述符相关的所有资源。调用socket创建套接字套接字描述符表(每一个进程一个描述符)0:1:2:3:4:操作系统套接字的数据结构协议族:PF_INET服务:SOCK_STREAM本地IP地址:远地IP地址:本地端口:远地端口:
2几种常用的系统调用当应用进程需要使用网络进行通信时,就发出系统调用。使用TCP/IP应用编程接口API,就可以编写基于互联网的网络应用程序了。调用API时,用户可以使用TCP服务,也可以使用UDP等其他服务。2几种常用的系统调用TCP提供面向连接的服务。使用TCP服务需要经历3个阶段:连接建立阶段数据传送阶段和连接释放阶段1.连接建立阶段当套接字被创建后,它的端口号和IP地址都是空的,因此应用进程要调用bind(绑定)来指明套接字的本地地址。在服务器端调用bind时就是把熟知端口号和本地IP地址填写到已创建的套接字中。这就叫做把本地地址绑定到套接字。服务器在调用bind后,还必须调用listen(收听)把套接字设置为被动方式,以便随时接受客户的服务请求。UDP服务器由于只提供无连接服务,不使用listen系统调用。服务器紧接着就调用accept(接受),以便把远地客户进程发来的连接请求提取出来。系统调用accept的一个变量就是要指明从哪一个套接字发起的连接。服务器端客户端1.连接建立阶段socketbindlistenacceptrecvsendclosesocketrecvsendcloseconnect连接建立请求连接建立数据传送连接释放服务器端客户端1.连接建立阶段socketbindlistenacceptrecvsendclosesocketrecvsendcloseconnect连接建立请求连接建立数据传送连接释放服务器端客户端1.连接建立阶段socketbindlistenacceptrecvsendclosesocketrecvsendcloseconnect连接建立请求连接建立数据传送连接释放服务器端客户端1.连接建立阶段socketbindlistenacceptrecvsendclosesocketrecvsendcloseconnect连接建立请求连接建立数据传送连接释放并发方式工作的服务器接受连接请求的套接字MS1连接套接字连接套接字连接套接字S2S3操作系统服务器应用进程从属服务器进程主服务器进程(原来的套接字)(新创建的套接字)调用accept要完成的动作较多。这是因为一个服务器必须能够同时处理多个连接。这样的服务器常称为并发方式(concurrent)工作的服务器。2.传送阶段客户和服务器都在TCP连接上使用send系统调用传送数据,使用recv系统调用接收数据。通常客户使用send发送请求,而服务器使用send发送回答。服务器使用recv接收客户用send调用发送的请求。客户在发完请求后用recv接收回答。服务器端客户端2.传送阶段socketbindlistenacceptrecvsendclosesocketrecvsendcloseconnect连接建立请求连接建立数据传送连接释放3.连接释放阶段一旦客户或服务器结束使用套接字,就把套接字撤消。这时就调用close释放连接和撤销套接字。服务器端客户端3.连接释放阶段socketbindlistenacceptrecvsendclosesocketrecvsend
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省安陆市事业单位考试职业能力倾向测验(医疗卫生类E类)强化训练题库及答案
- 管理人员考试题库含答案+危大工程应知应会试题及答案
- 2026年资产评估师职业资格考试备考指南与真题及答案解析
- 2026年下半年银行业专业人员初级和中级职业资格考试个人理财复习题及答案
- 消防工程专项验收方案
- 物流企业汽车零部件物流管理手册
- 室外道路路基铺设施工方案
- 企业质量管理体系运行手册
- 外语培训机构市场推广成本管理方案
- 企业降本增效执行方案
- 职业生涯规划与求职就业指导智慧树知到期末考试答案2024年
- 高中阅读理解万能答题公式
- 有创机械通气模式及参数2023
- 《电力行业职业技能标准 农网配电营业工》
- 产业招商图谱
- 《民事诉讼法》期末重点整理马工程版
- 2022-2023学年广州市天河区五下数学期末调研试题含答案
- 年产80万吨高级瓦楞原纸项目环境影响报告书
- 水利工程建设安全生产检查表
- JJG 875-2019数字压力计
- 2023年上海市高中学业水平合格性考试化学试卷及参考答案
评论
0/150
提交评论