您的位置:首页 > 汽车 > 时评 > 安阳网站公司哪家好_传智播客黑马程序员_微信营销平台有哪些_怎么创建一个网站

安阳网站公司哪家好_传智播客黑马程序员_微信营销平台有哪些_怎么创建一个网站

2024/12/23 21:56:23 来源:https://blog.csdn.net/qq_28576837/article/details/144412463  浏览:    关键词:安阳网站公司哪家好_传智播客黑马程序员_微信营销平台有哪些_怎么创建一个网站
安阳网站公司哪家好_传智播客黑马程序员_微信营销平台有哪些_怎么创建一个网站

参考:深入分析LINUX内核源码

深入分析Linux内核源码 (kerneltravel.net)

Linux 的网络功能是 Linux 最显著的特点之一,它作为一种网络操作系统,具有比 Windows NT 安全稳定、简易方便的优点,在操作系统领域成为一支不可忽视的生力军。本章将以面向对象的思想为核心,分别对网络部分的 4 个主要对象:协议、套接字、套接字缓冲区及网络设备接口进行了具体分析。

在 Linux 的应用方面,基于 Linux 的网络服务器是非常成功的范例,并且广泛用于商业领域,在网络服务器平台中所占比例逐年上升,所以对 Linux 的网络部分的研究具有广阔的市场价值和现实意义。

概述

Linux 优秀的网络功能和它严密科学的设计思想是分不开的。在分析 Linux 网络内容之前,我们先大体上了解一下网络部分的设计思想及其特点,这对于我们后面的分析很有帮助。 (1)Linux 的网络部分沿用了传统的层次结构。网络数据从用户进程传输到网络设备要经过 4 个层次,如图 12.1 所示。

每个层次的内部,还可以再细分为很多层次。数据的传输过程只能依照层次的划分,自顶向下进行,不能跨越其中的某个或某些层次,这就使得网络传输只能有一条而且是唯一的一条路径,这样做的目的就是为了提高整个网络的可靠性和准确性。

Linux 对以上网络层次的实现采用了面向对象的设计方法,层次模型中的各个层次被抽象为对象,这些对象的详细情况如下所述。

• 套接字 (socket)。

一个套接字就是网络中的一个连接,它向用户提供了文件的 I/O, 并和网络协议紧密地联系在一起,体现了网络和文件系统、进程管理之间的关系,它是网络传输的入口。

• 网络协议 (protoal)。

网络协议是一种网络语言,它规定了通信双方之间交换信息的一种规范,它是网络传输的基础。

• 套接字缓冲区 (sh_buff)。

网络中的缓冲器叫做套接字缓冲区。它是一块保存网络数据的内存区域,体现了网络和内存管理之间的关系,它是网络传输的灵魂。

• 设备接口 (device and interface)。

网络设备接口控制着网络数据由软件—硬件— 软件的过程,体现了网络和设备的关系,它是网络传输的桥梁。

这 4 个对象之间的关系如图 12.2 所示。

从图 12.2 中我们可以看出:这 4 个对象之间的关系是非常紧密的,其中套接字缓冲区的作用非常重要,它和其他 3 个对象均有关系。本章下面的部分将对这 4 个对象及其之间的关系做详细的介绍。

Linux 网络部分为了提高它整体上的兼容性,每一个核心对象都包含了很多种类,为了便于对网络内核的分析,每一个对象我们只选择最常用的一种详细说明,其他种类从略。

网络协议

一说起网络首先就应该想到网络协议,协议是网络特有的产物,它也是整个网络传输的基础。因为网络协议非常标准规范,它在不同的系统上的用法和工作原理都是一样的,而且介绍协议的书很多,所以,协议这一节不作为本章的重点,我们只是以最常用的一种协议— —TCP/IP 为例,简要介绍网络协议的工作原理和过程。

具体其他地方都能找到大量相关内容,此处略。

套接字(socket)

套接字在网络中的地位和作用

socket 在所有的网络操作系统中都是必不可少的,而且在所有的网络应用程序中也是必不可少的。它是网络通信中应用程序对应的进程和网络协议之间的接口,如图 12.7 所示。

socket 在网络系统中的作用如下。

(1)socket 位于协议之上,屏蔽了不同网络协议之间的差异。

(2)socket 是网络编程的入口,它提供了大量的系统调用,构成了网络程序的主体。

(3)在 Linux 系统中,socket 属于文件系统的一部分,网络通信可以被看作是对文件的读取,使得我们对网络的控制和对文件的控制一样方便。

套接字接口的种类

Linux 支持多种套接字种类,不同的套接字种类称为“地址族”,这是因为每种套接字种类拥有自己的通信寻址方法。Linux 所支持的套接字地址族见表 12.3。 Linux 将上述套接字地址族抽象为统一的 BSD 套接字接口,应用程序关心的只是 BSD 套接字接口,而 BSD 套接字由各地址族专有的软件支持。一般而言,BSD 套接字可支持多种套接字类型,不同的套接字类型提供的服务不同,Linux 所支持的部分 BSD 套接字类型见表 12.4,但表 12.3 中的套接字地址族并不一定全部支持表 12.4 中的这些套接字类型。

下面我们以 INET 套接字地址族、流套接字类型为例,详细介绍套接字的工作原理和通信过程。

更多参考开头pdf链接。

暂略。

更多待补充。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com