第15篇 插口层.pdfVIP

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下载 第15章 插 口 层 15.1 引言 本书共有三章介绍 N e t / 3 的插口层代码,本章是第一章。插口概念最早出现于 1 9 8 3年的 4 . 2 B S D版本中,它的主要目的是提供一个统一的访问网络和进程间通信协议的接口。这里讨 论的N e t / 3版基于4.3BSD Reno 版,该版本与大多数U n i x供应商使用的早期的 4 . 2版有些细小的 差别。 如第 1 . 7节所介绍的,插口层的主要功能是将进程发送的与协议有关的请求映射到产生插 口时指定的与协议有关的实现。 为了允许标准的Unix I/O 系统调用,如 r e a d和w r i t e,也能读写网络连接,在 B S D版本 中将文件系统和网络功能集成在系统调用级。与通过一个描述符访问一个打开的文件一样, 进程也是通过一个描述符 (一个小整数)来访问插口上的网络连接。这个特点使得标准的文件系 统调用,如 r e a d和w r i t e,以及与网络有关的系统调用,如 s e n d m s g和r e c v m s g,都能通 过描述符来处理插口。 我们的重点是插口及相关的系统调用的实现而不是讨论如何使用插口层来实现网络应用。 关于进程级的插口接口和如何编写网络应用的详细讨论,请参考 [Stevens 1990]和[Rago 1990] 。 图1 5 - 1说明了进程中的插口接口与内核中的协议实现之间的层次关系。 应用程序 函数调用 插口系统调用 进程 系统调用 内核 插口系统 调用实现 函数调用 插口层函数 TCP TP 4 通过pr_usrreq或pr_ctloutput调用 UDP SPP 图15-1 插口层将一般的请求转换为指定的协议操作 第15 章 插 口 层计计349 下载 s p l n e t处理 插口包含很多对 s p l n e t和s p l x的成对调用。正如第 1 . 1 2节中介绍的,这些调用保护访 问在插口层和协议处理层间共享的数据结构的代码。如果不使用 s p l n e t,初始化协议处理和 改变共亨的数据结构的软件中断将使得插口层代码恢复执行时出现混乱。 我们假定读者理解了这些调用,因而在以后讨论中一般不再特别说明它们。 15.2 代码介绍 本章讨论涉及的三个文件在图 1 5 - 2中列出。 文 件 描 述 s y s / s o c k e t v a r . h s o c k et结构定义 k e r n / u i p c _ s y s c a l l s . c 系统调用实现 k e r n / u i p c _ s o c k e t . c 插口层函数 图15-2 本章讨论涉及的源文件 全局变量 本章讨论涉及到的两个全局变量如图 1 5 - 3所示。

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档