- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
网络软件设计深入套接字制作主讲段景山
2套接口结构套接字是一个标识符套接字是一个结构套接字是一个包含标识、数据和操作的复合体,是效劳访问点
3套接字是一个标识符套接字是一个标识符变量类型:SOCKETSOCKETs;本质: 在winsock.h中typedefunsignedintu_int;typedefu_intSOCKET;一个整型变量--记录一个标识符通过这个标识符,用户就能获得系统通信效劳但是一个简单的整数,怎么能够实现复杂的通信功能呢?
4structsocket{ shortso_type; shortso_option; shortso_linger; shortso_state; caddr_tso_pcb; structprotosw*so_proto; structsocket*so_head; structsocket*so_q0; structsocket*so_q; shortso_q0len; shortso_qlen; shortso_qlimit; shortso_timeo; u_shurtso_error pid_tso_pgid;套接口结构UNIX通过标识符在系统中找寻的就是这个结构
5structsockbuf{ u_longsb_cc; u_longsb_hiwat; u_longsb_mbcnt; u_longsb_mbmax; longsb_lowat structmbuf*sb_mb; structselinfosb_sel; shortsb_flags; shortsb_timeo;} u_longso_oobmark; structsockbufso_rcv,so_snd; caddr_tso_tpcb; void(*so_upcall)(structsocket*so,caddr_targ,intwaitf); caddr_tso_upcallarg;}套接口结构套接口结构中包含了为用户提供通信效劳的各种信息状态控制数据so_typeso_stateso_pcbso_rcv接收数据队列so_snd待发数据队列
6套接口中饱含为一次通信效劳的丰富资源,系统通过套接字标识符〔描述符、socketid〕来找到对应套接口结构从两个层次理解:用户角度:只需给出标识符就能找到透明性、方便性:用户不需掌握找寻的方法系统的角度:系统如何根据标识符找到套接口这是一个系统设计问题:我们可以从中学习设计的技巧套接口结构与套接字描述符
7利用索引表的形式套接字描述符是表的索引号码表中记录套接口结构的地址socketid索引id关系映射进程符号表套接口结构与套接字描述符套接口结构
8套接字描述符套接字描述符的分配套接字描述符可以认为是套接口资源的编号全局分配:系统所有的套接口资源均统一编号局局部配:套接口资源仅在一个进程内部统一编号结果:全局分配:系统各进程得到的套接字描述符全不相同局局部配:各进程的套接字描述符可能相同优缺点:全局分配:便于统一管理,进程间的独立性差局局部配:维持进程间的独立性,可能造成管理的混乱设计
9套接字描述符全局分配套接字描述符统一分配套接字描述符有一定难度在socket〔〕调用时由系统想方法实现进程间的相关性太强套接字描述符的取值范围,在进程中有禁区。局局部配套接字描述符进程间独立性强管理难度低推理
10套接字描述符套接字描述符的实验实验方案观察两个进程是否可能获得相同值的套接字描述符测试如果两个进程使用相同值的套接字描述符是否能同时不受干扰地完成各自的通信实验结论两个进程的套接字描述符可以获得相同的值两个进程的套接字对应不同的通信效劳--不同的套接口资源验证
11TCP实体进程1进程2进程3123456781234512345套接口与套接字描述符套接字标识符套接口结构从套接字描述符的分配问题深入系统设计原理如何实现局部的标识符与全局管理的资源之间的映射技巧及优点反思
12端口与套接口当我们了解了从上至下〔从套接字描述符到套接口资源〕的映射方式后,进一步探索从下至上〔从端口到套接口资源〕的映射方式。从而完成整个接口系统的上下对应关系整个关系是围绕者套接字的
13TCP进程1进程2进程3套接口结构本地端点远端点源端口目的端口。。。接收队列端口与套接口TCP实体依据什么信息处理接收的报文?TCP实体如何处理报文?用户进程如何获取报文?本地端点远端点接收队列recv(s,buf…)s套接口结构目的端口设计
14端口与套接口TCP实体依据什么处理接收的报文?TCP实体如何
文档评论(0)