《Linux高性能服务器编程》——1.7 socket和TCP/IP协议族的关系-阿里云开发者社区

开发者社区> 华章计算机> 正文

《Linux高性能服务器编程》——1.7 socket和TCP/IP协议族的关系

简介: 本节书摘来自华章计算机《Linux高性能服务器编程》一书中的第1章,第1.7节,作者 游双,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
+关注继续查看

1.7 socket和TCP/IP协议族的关系

前文提到,数据链路层、网络层、传输层协议是在内核中实现的。因此操作系统需要实现一组系统调用,使得应用程序能够访问这些协议提供的服务。实现这组系统调用的API(Application Programming Interface,应用程序编程接口)主要有两套:socket和XTI。XTI现在基本不再使用,本书仅讨论socket。图1-1显示了socket与TCP/IP协议族的关系。

由socket定义的这一组API提供如下两点功能:一是将应用程序数据从用户缓冲区中复制到TCP/UDP内核发送缓冲区,以交付内核来发送数据(比如图1-5所示的send函数),或者是从内核TCP/UDP接收缓冲区中复制数据到用户缓冲区,以读取数据;二是应用程序可以通过它们来修改内核中各层协议的某些头部信息或其他数据结构,从而精细地控制底层通信的行为。比如可以通过setsockopt函数来设置IP数据报在网络上的存活时间。我们将在第5章详细讨论这一组API。

值得一提的是,socket是一套通用网络编程接口,它不但可以访问内核中TCP/IP协议栈,而且可以访问其他网络协议栈(比如X.25协议栈、UNIX本地域协议栈等)。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux 服务器建站新手教程不需要敲一行命令【小白篇】
Linux 服务器配置、运行、不用敲命令 WordPress 建站攻略——助力新手快速利用Linux系统建立属于自己的站点——给新手节省宝贵的时间,避免采坑!
334 0
linux内核之网络协议栈
https://www.ibm.com/developerworks/cn/linux/l-ntflt/
870 0
Java网络编程(TCP_UDP)
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.
787 0
Java性能优化之编程技巧总结
1、慎用异常 在Java软件开发中,经常使用 try-catch 进行错误捕获,但是,try-catch 语句对系统性能而言是非常糟糕的。
862 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载