00:00
好的,那首先啊,欢迎各位朋友来到铃声教育。我是维克。接下来啊,我们主要是学习啊。Li纳克斯内核源码分析里面的一个。网络部分以及什么它的一个架构分布。那么通过这个图形啊,我们已经知道了。内核是处于用户空间跟硬件的中间。同时我们又将内核空间里面的各个模块啊,常用的我们就全部把它标出来了。那这节课呢,我们主要是学习啊,Linux内核的一个什么,网络当中的一些基础架构。那首先我们了解第一个问题。通过前面的课程啊,我们已经学过了。哪些问题呢,就是说。利纳克斯这个内核的网络协脏,它是有很多个层次组成的。
01:00
那么这个网络数据呢啊,它整体的这个过程是不是以及它流程。主要是指在我们那个协议站啊,各层之间的一个船体。那你比如TCP这个网络编程的流程呢,我们都知道是不是首先你要进行什么呢?按照流程啊,建立一个套解值函数,然后再绑定,绑定完之后就监听,监听完就接收是吧,然后再发送数据,然后再接收数据啊。等等,然后再关闭这个套节字,这是最基本的。那么啊,以此对这个对应的内核处理呢,它也是按照这个顺序进行的。所以说这里提了一个问题。什么问题,就是这个网络啊。网络数据呢?网络数据信息呢,在什么在。在利纳克斯这个什么内核当中的一个啊,处理过程啊。它主要是在什么,主要是在我们经常讲的这个网卡和什么呢?网卡和协议站啊。
02:06
之间啊进行的,这是要搞清楚。怎么回事呢?非常简单,第一个是从什么要从这个网卡来接收数据,这是第一个点是吧,然后再把这个数据啊。再把呢,把这个数据啊交给什么,交给协议站,把它交给什么呢?交给协议站去处理,对不对,那么协议站呢啊,它需要什么呢?协藏将需要啊进行发送的一个什么。啊,数据是通过什么呢?通过这个网络啊进行发送啊,通过网络把它发送出去。他这个流程最基本的我们都要掌握啊,都要掌握。好,那我们掌握这些啊,相关性问题之后,那么接下来我们就来看下一个问题了,是吧,嗯。那么首先在Linux内核当中,各个层次之间呢,它有一个什么呢?网络的这个输入输出的一个层次之间的一个调用关系。
03:08
那么什么意思?那首先我们通过什么呢?大家注意啊,就是我们。通过什么,通过这个网络啊,网络什么呢?网络的IO啊。我们是通过这个网络IO的一个什么呢啊。IO就是输入输出的一个什么。它的一个啊构成。就是它这个层次了,层次之间的一个什么调用啊,关系如下。关系如下图。琐事。那现在我就给大家啊画一个图形,我们就理解了是吧。比没有网络程序,网络程序首先我们是通过什么呢?通过这个进程对不对啊,就是啊应用程序是吧。用辰去进城啊,OK。
04:03
又是你直行是吧。啊,这是第一步,我们就搞定了。好,那么接下来我们就来进行第二步啊,第二步呢,你这个应用程序你是通过什么,通过套接字对不对,然后你经过套一子之后,你还再经过什么,再经过什么协议层呢?是吧。我这样画给大家看啊。再到这个,呃,套戒指。套间字再到什么,再到我们这个协议这个层,协议这一层啊。哎,你斜对层之后,你再到什么,再到这个啊插口层。他这个思路。他就是这样走的,大家一定要摸清楚啊,一定要搞清楚它的一个什么最基本的关系。那如果我们啊。注意啊,如果我们搞不清楚的关系呢,就比较麻烦了。好,那现在我们来看这个啊,上面是应用程序是吧?好,那这个应用程序的问题我们解决了是吧,那么接着它就通过什么呢?通过往下走。
05:05
往下走做什么,往下走这里就到什么,到我们的套切字了,对不对,嗯。就是我们所讲的一个什么,所讲的一个,呃。插口层。插口层就是对应的一个什么啊。Socket。什么呢,对应的一个什么。套节制是吧。好,那么经过so套件制之后,那么再往下面就到协议层了。好,接下来就到协议层。接下来我们就到斜一层了。写一张内存啊,协议存有很多了,有TCP啊,有udp啊。还有什么IP啊啊。等等啊,这里就不再列出来了,是不是。就到这来。啊,到这一层之后呢,那么这个其实就是系统调用,你要搞清楚啊,你看它下来这下来怎么做啊,这个地方其实就是函数调用,是不是通过这个啊,套弃式的函数来调用的,协议层就这个意思。
06:06
他思路要搞清楚啊嗯。再往下面就到什么,就到接口层了。结构层。那怎么回事呢?他就从这里跑到这儿了,看到没有这个过程。它就是函数的一个什么调用。好函数调用的话呢,然后接着什么函数调里面注意啊,嗯,首先应用程序再到我们的这个插口层。好,插口层面进行函数调用,看到没有。好,那么这个函数调用之后呢,再到什么,再到我们这个协议层呢。协议层,然后在什么呢?再经过啊相关的一个插口队列嘛,协议层里面。协议层里面它有一些插口队列啊,等一下。啊,就这个意思啊,啊到这边来,那这时候启动输出了是不是。
07:03
好,现在我们启动输出,那么我们在启动输出的过程当中是吧。那么它就有一个插口队列了。注意啊,这里有个接口队列,是不是这里接口队列啊。接口队列,你比如第一个接口队列啊,往好一点啊。啊,第一个接口队列,然后嘞。要把它描述出来啊,这里面有接口。嗯,这个队列。OK,你看。啊,第一个是吧,还有什么呀,第二个啊。啊,这个是接口队列,那么接口队列之间你看到没有,它通过这个啊,要搞清楚啊。
08:00
一直到下面啊。看到没有,就那么简单啊。好,没问题,看到没有啊,就这么走过来啊,现在我们所看到这个,它就是属于什么,属于这个接口队列,然后你到协议层的时候,到这个接口层啊,接口层这里面就相当于什么,就相当于网络设备所产生的。就是我们所讲的一个什么,就是个硬件中断嘛,就这个意思啊。和这一块。嗯,它是属于什么呢?属于这个硬件中断。硬件中断,它是由网络设备产生的。网络设备产生。OK,你看啊,就这么干。好网络设备产生之后呢,那么就有到上面啊。你看它还有什么呢,我们还是通过这个什么,我们也通过这个协议队列,就是这个协议队列啊,IP的一个什么呢,输入一个队列进行进一步的完成。
09:06
所以他这个啊流程我们也得搞清楚是不是,否则就比较麻烦了。这里啊。嗯,就这么干是吧,好,下面再来两个,他也要什么插口乘你到什么,你到底也可以到什么呢,也可以到我们这个协议层呢。它也是这么一个结构啊,要注意啊,你看。从这里到这来是。就这么干啊?哎,从这到这来。OK,看到没有?哎,这两个要注意啊。啊,这两个里面呢,其实它实现的是什么呢?就是一个协议队列要搞清楚啊。
10:03
从下往上就是协议队列,从上往下就是属于什么接口队列是不是。这个就是鞋业。啊,协议队列。斜队列呢,就是我们所对应的一个什么IP的一个输入队列啊。好完成之后呢,接着什么呀,这个协议层这一块啊,要注意了,斜议层这一块,它是一个什么呢。它是一个软中断。就是软件中断。那么这个软件中断它是由什么?是由接口层产生的?它是由接口这一层产生的。就这么个意思啊,那再往上面就到插口这里。在网上面。
11:26
好,可以了,看到没有。嗯,这个部分啊。这里是什么呢?这里是插口队列。OK。那么现在我们这个图啊,我们就全部就搞清楚了。那么搞清楚这个图之后。我们呢,就会发现一个问题啊。这上面我们是属于什么应用层对不对。硬撑啊。应用层这个套接字初始化绑定是不是和一些啊。
12:03
删除等等。它都要通过什么呢?都要通过调用我们Linux内核当中的一个什么套接值函数进行的。那么通过这个套件值函数进行什么进行申请和删除这些资源啊?那么发送数据的时候。他要将什么呢?要将这个数据是不是由什么,由这个插口层啊,传递给什么,传递到我们的协议层。那么成料线程的话里面有哪些呢?有什么udp啊,什么TCP啊,这些手部啊,你比如TCP,那你就增加TCP手部,如果是IP就是IP首部嘛,如果是udpu u dp首部的事,就是从上面往下是不是,但是如果你倒过来的话啊,如果在协议层里面,你把它一一步一步的把它的IP手把它删除就可以了。这就是一个啊,图形的一个架构。好,那么我们搞清楚这个图形啊结构之后,那现在我们就来看下一个了,是不是。
13:08
OK。嗯。好,那现在这个图我们就搞定了啊。好,理解之后,那么接下来我们就要往下面看了,什么意思呢?但是啊。Linux内核层的一个网络协议上,它也有自己的一个体系架构。
14:04
这一点大家要搞清楚啊。就接下来他就拿这个。第二个啊。第二个是什么?是Linux内核?Linux内核存的一个什么网络协战。网络协议站架构啊,架构图如下。那么一般是这样的。架构啊,那么最上面是不是,最上面它就是什么呢?就是用户空间是不是啊。用户空间其实就是什么,就是我们所讲的一个应用层嘛。应用层的这个程序啊。它就位于什么呢位啊。胃这个地方。是不是啊,那么最下面啊,啊,最底部是不是,最底部它是属于什么呢?物理设备。啊,物理设备呢,啊,你比如哪些呢?比如这个网卡是吧。等等啊,网卡等等啊,它提供主要是提供什么呢?提供网络数据的一个什么连接啊,还有网络数据的一个什么啊接收啊,收花等等啊这些操作。
15:12
但是你要注意了,中间是不是中间,它就是什么,中间就是内合成的。内核层其实就是什么呢?就是我们等一下现在要讲的一个网络协账的一个什么网络的这个啊架构系统对不对,所以说。它流经什么呢?网络站内部的一个套接字,它是有SK buff。负责这个演点跟非点之间的一个数据操作。所以它下面就有这么一个层次要注意啊,你看。啊,机体啊,这个架构是不是机体这个Linux内核啊。广场,哎,机体的内核。他这个什么呀。
16:01
哎,网络。协议站架构是不是啊。如下。就这么个意思是吧,那怎么做嘞,你看啊。你发一个图就行了。其实这个我们的前面都研究过是吧。来看这个啊。好,怎么一回事呢?注意啊。这上面。它是属于什么,属于我们经常讲的一个应用层是吧。好,应用层接着就往下走了啊。应用层。应用层再往下面,它就是一个什么,就是一个系统调用接口嘛。那这个系统这种接口。再往下啊。嗯,再到什么呢?再到这个协议啊。
17:03
啊,协议诊断接口。斜一点的接口,再到什么,再到网络。我们写一页。再到网络协议。那么网络协议呢?再到设备了。再到什么,再到设备诊断啊。这个接口。好设备订单接口呢,再往下面就到什么到设备驱动呢。是不是?好,再到设备驱动。啊,那你这个设备系统再往下面就是硬件了,是不是。嗯,再到下面。就是对应的一个硬件了。硬件设备你看。哎,他就这么一个啊,这么一个思路。OK。好,最上面这个地方啊。
18:01
把这个标一下是吧。好,这个地方。我们讲了啊,它是属于什么,属于用户空间是吧。哎,你用户空间下面这里。哎,就是内核空间了。内核空间。好,你这个内核空间下面就到的是什么呢?就是硬件设硬件层面了。啊,硬件层面你看。它基本上啊,这个架构我们就全部给画出来,这就是Linux内核的一个网络协议站,是不是它就这么个意思啊架构。这个图形改一下啊。呃,中间我用统一的颜色来表示是吧。最下面我用红色是吧,这三个啊。
19:07
好,那现在。我们所有啊都看到了,是不是都了解清楚了。好,这就是Linux内核网络协藏架构啊,整体整体这个图形我们就全部解决了。中间这个部分要注意啊,中间那个框框是不是中间这个颜色,它是属于内核空间啊,内核空间这一块的。你只要了解这几个基本差不多了是不是。但是啊。我们刚刚也提到了这个顶部啊。最上面是不是。
20:00
最上面是什么呢?就是系统调用。不行。好,这上面。最上面是应用层是吧,就是顶部就是系统调用接口。系统调用接口,它是为什么呢?它是为我们这个用户空间的一些相关应用程序啊。提供一种访问我们这个网络子系统的接口。它它在什么呢?在我们下面就是一个协议层无关的啊,协议无关的这一层,它提供一种通用的方法,使用底层的一个传输协议,就这个意思。然后实际协议啊,Linux里面它就包含刚才我们讲的UDPIPTCPIGMP等等啊。那么然后呢,还有另外一个网络设备协议无关的啊。那与网络设备协议无关的话,提供一些什么呢?比如一些我们讲这个设备驱动程序是吧,就是说你提供了与各个设备驱动程序通信的一个通结构,最下面才是我们的设备驱动本身。
21:12
所以系统它提供修改那个网络流程。对不对啊,刚刚我们大家已经研究过了,是不是已经搞清楚了,那么数据的流程是怎么回事呢啊。还有什么,还有对应的这个我们经常讲什么。这个啊SK buff是不是什么意思呢。内核和用户空间,它网络方面差别还是比较大。那么在Linux内核这个层面上,是不是SK buff它占一个非常重要地位,它是表示什么网络协战啊?网络线实际上它是一个层次架构的软件。但是说层与层之间,它是通过我们一定好的这个接口啊。进行了传递的一个报文。所以网络报文中它包含了在。他协议账对不对啊,在协议过程之间有各种信息,由于这个什么呢,网络报文之间。
22:05
它这个大小它不是固定的。所以说我们采用什么呢?采用一些数据结构啊。来存储这个什么网络豹纹就比较好,所以接下来我们看第三个。第三个。第三个是什么,第三个就是说,嗯。网络是吧,网络豹纹。网络报文呢,我们就使用什么使用。使用SK_B。啊,这个数据结构啊。存储就这个意思。那么同时这个数据结构里面,它有各个成员啊,也有一些相关的核心点。那么大家在应用的时候一定要注注意一下是不是。那么GT SK buff在哪里呢?
23:02
大家有没有研究过,是不是?到时候我们可以研究一下啊。SK buff是吧?你们看啊。打开Linux内核源码。啊,就跑到这儿来了啊。把这个先关啊。啊,关闭。关闭之后呢,你要找到啊。你要找到我们想要的。找到什么,你要找到这个注意啊,在include下面呢,Linux。
24:04
下面一个SK buff就行了。啊,这个。双击。你看在套节支缓冲区看到没有。它存储这个网络报应啊。那现在大家所看到这个结构体,我们就明白了,是不是。什么意思呢?首先我们看第一个啊,你看。第一个什么意思呢?通过SK buff这个套值缓冲区是吧。你看这里啊,这里面有,你看UNIUN下面有一个什么,有一个structure,看到没有。它这里面有一个什么呀,有个SK buff自己定的啊,Next这个什么per是吧。好,这个主要是做什么。你比如像这个next的话,注意啊。Next。
25:00
它是什么?就是我们SK buff啊。这个链表链表当中的什么,下一个这个缓冲区是不是把它连到一块嘛,是不是。第二个也是一样的,也是SK什么呢?B这个链表中的什么。啊。链表当中的。啊,上一个是不是就是前面一个啊,上一个缓冲区啊。为什么呢?那么两个变量要注意啊,就是你通过这两个指针,意思就是说。通过这两个指针对吧。哎,通过这两个指针啊。它就将什么呢,将我们这个SK buff套接字啊,这个缓冲区直接把它链接到什么呢?链接到一个双向链表当中。就这个意思。他实力有完成了是吧。哎,除此以外,你比如下面有个什么一个DV。
26:03
哎,那这个DV是干什么的呢?DV就是专门接收豹纹那个设备嘛。低。它是什么,就是收到啊,这个豹纹的一个什么网络设备。他就这个意思。接着后面我们就不再列了啊,我们挑出一些核心重点成就可以你看。啊,比如我们还有一个SK是吧。那么这个SK表示什么意思呢?SK就是表示什么?表示网络报文所属的套接字就是本网络豹文啊。哎,所属的一个什么,So的一个什么。So的一个结构。所以说这个子就是注意啊这个子。它是什么呢?它仅仅是在什么?仅仅是在本机发出的一个什么。豹纹中的一个有效操作,是不是就是说从网络收到的他这个豹纹就为空了,这个不一样啊。
27:04
就是如果你是本机产生,那就没问题,是不是就是这个字仅在本机发出的豹纹中有效,但是从这个网络啊,从网络收到豹纹的这一个什么呢?豹纹这个字。它就是为空的。他就这么个意思是吧,嗯。那么还有一个什么呢?TS这个什么。Ts temp是不是这个就时间错了,这个不跟你讲了是不是。哎,这个就是我们经常用的叫时间错。就是报文他所收到的一个啊。啊,时间错误是吧。好完成之后啊,还有两个点给你们找出来两个核心点是吧。叫做。Le啊,这个地方。
28:02
它Le是什么意思呢?Len它代表什么?有效的一个数据长度。还有个data length。S是什么?就是数据长度了。啊,数据长度后面有个什么,有个MIC看到没有MIC这个啊Les这个是连接什么连接层。连接成。连接成什么呢?连接成这个头部的一个什么,嗯。连接成头部长头部的一个长度。但是它对于什么呢?对于我们所讲这个以太网,它指的是什么?它主要是指MC了,要注意啊。它指m Mac地址啊,所用的一个长度,就这个意思啊,一般长度一般是为六是不是。
29:00
六个部分啊。还有一个是HDR这个认识。那么HDR这个认识它是什么?它是我们SKB的一个什么,可写头部的一个什么呢?嗯,可写头部啊,可写头部长度,就这个意思。这么简单啊。啊,还有一些,你再找一些比较重要叫什么,有没有教练的相关的啊。其实还有很多一些核心重要成员啊。你比下面。下面这个啊。这个什么意思呢,比如Su啊是吧。我们看一下这个CU啊。那这个地方。CU,它表示什么?表示啊。教练和是不是教念和它就包含什么呢?包含开始和这个什么偏移,就这个意思。
30:05
那下面这个是七上呢。嗯,CU的一个计算开始就是当什么呢?当开始计算啊。当开始计算这个什么校验和的时候,它就从什么从SKB所指向的一个什么呢?He啊,它的偏移进行开始。就这个意思啊。还有下面,下面这个是什么呢?就是么讲CU of set是不是,那么他就直接从什么直接从CU这个start开始。开始进行编译,就这个意思。这么简单啊。啊,除此以外,你比如有一些相关的进行进一步操作,你比如property是吧,下面这个。那这个成员是做什么呢?这个成员就是包什么包啊,数据包队列的一个什么优先级。下面这个算。
31:01
优先级还一个hide了。这是优先级啊。优先级。对,还有两个非常重要的点呢。就MC这个头部了,看到没有这三个啊。传输层看到没有?啊,这个是传输层的,传输层头部。嗯,传输层的一个头部。下面这个是网络层,它的一个头部。网络型同步了,还有下面这个是什么。这个是,嗯。MIC嘛,就是链接层啊。啊,链接层的一个。头部就这么个意思是吧。再往后面它有一个什么。有一个这个T是不是ta。Tell,还有end是吧?啊,还有had date是不是好?Tell这个地方它表示什么呢?表示数据的一个什么。
32:06
数据的一个。数据的一个五维指针。End是什么呢?摁的是豹纹啊,豹纹缓冲区的一个什么尾部。还有一个是head。派的是缓冲器的头部。Head。它是缓冲区的一个头部是不是。啊,还有一个date date是数据的一个指针啊。Data。Date是数据的一个头指针。就这么意思。所以基本上啊,大家注意了。我们怎么分析呢?就是说一般情况下,我们所讲这个啊。结构啊,这个结构就是说一个T。End head that是不是?
33:00
他对网络报文的描述,那么网络报文的存储空间它是在什么呢?是在应用层发送的这些网络数据,或者是网络设备啊?他收到的一个什么。动态存储空间。是这个意思啊。核心成员我就全部啊,给各位全部注释完毕了是吧,那现在我就将这个野码放到我的笔记里面啊。那么大家在学的过程当中有任何问题啊,随时可以找我们的贝贝老师来领取我们今晚这个视频资料啊,代码等等是吧。我就给大家放到这南山啊。粘贴。机体。啊,机体什么呢?机体利纳斯内核掩码分析如下。OK。
34:02
大家注意啊,在这里这个不对是吧。它老是变成这个格式是吧,粘贴到这来是吧。再看一下水。再把它换掉了,我就不相信你还变。诶。还是这?这格式不对啊。
35:00
不听话,听话。这我们就摆完了啊。按照程序的格式进行标准,把它算出来算。OK。好,那么现在我们要注意的是什么呢?我们要注意的是这个问题大家注意啊。什么问题呢?一般他是这样的。就相当于什么,相当于你比如这个网络啊,刚才我们讲了网络豹纹嘛,这个结构啊,网络豹纹存储空间。它是在什么呢?是在我们这个应用层呢,应用层发送的一个什么网络数据啊。或者是什么呢,或者是网络设备的一个什么。嗯,收到的这个网络数据的时候,它就会什么呢,动态分配的。但是我们分配成功之后。对不对。将什么呢?将我们接收啊,接收或者什么呢,或者发送到这个网络啊,数据进行什么网络数据。
36:10
进行填充是吧。啊,填充到这个什么。填充的这个存储空间,就这个意思是不是。那么将网络啊,将网络数据啊,填充到我们所申请这个存储空间之后,那么在这个存储空间的头部啊,它预留了一定的这个数量啊,这个间距。那么然后呢,从这个偏移量就开始将这个网络豹纹复制到网络存储空间了。所以说这个什么呢?刚我们讲了SK buff跟那个SK buff head,它会形成一个环形的这个啊。连表是不是,所以说啊,这个next是指向下一个SK buff对不对,那么你这个啊per那就指向什么指向啊,啊上一个上一个这个SK buff啊,大家一定要注意这个思路就行了,其他它没什么难度是不是。
37:02
你看一下啊。它们之间的互相指向是不是就是SK buff的这个结构嘛,如果让你真正把它画出来的话,你怎么去画呢?你看这里啊。这里面有个SK buff,看到没有?SK下划线。看到没有?Head head,看到没有?啊,这个结构看到没有,一个是next,看到没有一个是P是吧,长度锁是吧,它由这个来组成的,所以说一个是SK buff跟这两个之间套用关系。要搞清楚啊,这两个套用关系,那如果我们用一个链表去表示的话,它们俩之间的关系是什么样的呢?对不对。好,那现在我就给大家发出来啊。我们大家来看一下啊。
38:01
你看。什么意思呢?第四个是吧。第四个啊,这个SK buff。跟什么呢?跟这个SK buff_head。哎,他所生成的一个什么,生成的一个链表啊。关系。他们这个指针应该怎么这么这么描述啊。啊,第一个。它有很多个啊,很多个SK buff版,很多个这个套级字缓冲区是吧。第一个。第二个。
39:05
三第三个第四个啊。那现在我们所看到第一个是什么呢?List?刚讲过了啊,第二个next。是吧,P。可以了。搞定了吧?注意啊,这个是SK buff是吧?我们用那个灰色来表示。SK buff是第一个是,那是它是有多克,你还搞清楚啊,两个是。嗯,三个。四个。就可以了是吧。啊,中间其实还有很多,你要注意啊,中间的不止这一个了。但是你这他们两这个仅仅是什么,仅仅是SK buff你注意啊。
40:06
这个是。SK。下划线buff。啊,这是第一个。第二个。差不多了,是。差不多之后呢,那么左边这里啊,左边这里。他有一个什么。其实这里还有很多成岩啊,它不止这个,你要注意啊。可以了,看到没有。
41:06
这个中间。去掉一个了。档次是吧。去掉一个。那么这里面啊。这个地方是吧。啊,中间再用这个算了。是不是中间我没填啊,有很多个啊。很多个这样的了。有很多个这样的。就可以了,是不是,嗯,左边这一个它不是SK buff了,它是SK buff的头部吗。就是什么呢?就是这个head。就这么干啊?
42:00
那么现在接着什么现接这样的,你比如这个啊。你这个头部的头部,它这里只有两个啊,一个是next,刚才看到了啊。来一个。嗯,后面有很多个。可以了是吧。啊可以字号呢,那这里面我就用一种颜色啊进行把它标注是不是,那么这个指针next。它就指向这个头了是吧,在这边好,你这个的话就指向这来了,我就这么给你指啊。然后呢,你这里面啊,它也有个next了,有很多个啊。它只占了,那么你这个next。他就回头指向这个地方来。他有这么一种关系,要搞清楚啊。好,但是他们没种资金对不对。他们之间是有联系的,你要搞清楚啊。
43:13
嗯。这就搞定了啊。啊,基本上啊,它整体思路就这样,但是他们之间的连接就是这个还对,这个还没连好啊。他们这个是跟这个连的,你中间这块你还是跟这个连的。就说你这个。指针是连接的这个头部。这一块。还有这么个意思是不是?啊,前驱指针。对不对,他这个啊。
44:02
它是连接到这个后面来的。文又连到后面了啊。啊,它下面那个指针就往前拧移就行了,这里面很多个。好,我就这么放啊。啊,这连到这儿来是不是它大大概的啊,整体思路它就是这样的。但是说注意啊,这个灰色它表示什么呢?表示是套气子缓冲区,这个是它的头部对不对,以及它们之间的关系。这颜色改一下啊。这个是个灰色,这个没有变是吧。就这么个思路,但是他们各个之间啊。
45:20
可以的。这两个注意啊,它是没有这个箭头的啊。现在这个我们就全部啊解决了,这就是什么SK buff跟那个啊。X k buff这个hide它们之间的一个关系,基本操作我们就全部完成了。OK啊,各位朋友啊,所以说啊,今天晚上。
46:00
我就全部给大家讲了,主要是讲什么呢?主要是讲这个跟Linux内核协议站的套接字相关的一个操作。啊,全部在这里是吧,嗯,大家有任何问题啊,诶,到时候搞不清楚,随时可以找这个啊柚子老师跟我们进行进一步的沟通与交流是吧。所以本节课啊,这个内容我们就到此结束了,是吧,哎,我们下一次课啊,啊,再见,继续学习。拜拜。
我来说两句