00:00
Hello,大家好,我是小明,今天给大家分享UCR统一通信框架,UC传输层。呃,的客户端相关的。源码流程。呃,接着上一期的视频给大家讲解,呃,这是我的第十个技术视频,希望大家喜欢。OK,我们接着昨天的讲。今天我们分享。呃,有些。U统一通信传输层三也是服务端和客户端调用站的详解。源码解读。呃,上一次我们。讲到了客户服务端的一些流程,这是我们把剩下的客户端的。徐流程。姜文。这边是主流承接上片的。
01:22
OK。上一篇我们提到的东西都在这里。提到有一个长着希望的传输层。穿layer look up。然后再往下我看一下。有一个公式。计算带宽的公式。
02:11
OK,我们找到那个计算线数的公式。在这里。好吧,补充。这个应该也是补充到这里面的。数据收发流程。这里面的线索的计算公式我补充在这里呢,然后还补充了一些呃术语。比如安需分叶呀。然后odp speed限速的计算公式切过来。先说的计算公式是在这个地方,我们看它的上一级是在查询那个接口的时候,往下走的时候,他这边会去Switch Switch当前的激活的一个速度。
03:00
然后如果case是个EDR的模式。他就把这个延迟设上去,然后还有这个sign信号率啊,这边还有编码。那这边计算限速的公式还在这里?他首先算这个number pass。这里有迅速的计算。首先。这里它也列出来,先计算number pass,然后再算线数,这里公式已经列出来了。然后这边就是算那个。包的。胡仔。现在公司是微宽乘以那个single乘以编码乘以number pass路径的数量。额外的。
04:00
呃,额外的包的长度是。有这个。帮他看一下基本参数的。BTH,然后CRC4个字节,然后VCRC。可变的CC。两个字节,IB的一个分割符2B。两个自己,然后他这边。往下走。OK,他算出来之后,他就算到那个共享带宽。共享带宽是真?下面一点算出来一个。希尔的贷款是两者取其小。共享带宽的。计算是取这个。与PCI的带宽做比较,较小的值。我这个MT。还有那个限速相乘,然后再去除以加上一个m tu,然后再。
05:04
还有一个包额外的长度相相除。最终得到一个共享的带宽。这就是查找存储客户端也会有这个逻辑。所以这个。它的传输是一个非常重要的一个函数。那今天我们继续。稍微做了一些补充。然后我们看。客户端这边的操作。客户端的操作,这边是服务端的。已经。过了。The。客户端的流程在这里。
06:00
看一下。像客户端它这边也是杠D参数指定DS,杠T指定类型RC。靠它连接的,不然后去连接,前面省略了一些步骤,然后这边去连也是解析命令行,然后创建worker也是这个关键函数插说是。这就设置回调。他这里设的是那个am。然后这边的话是。连接,然后获取地址,然后创建point。交换地址,然后这边是分。什么是分配16字节的字符代发出的数据?可以用这种大的或者manage的。生成测试字串,然后这里调用一个零拷贝。
07:04
这是copy。首先这里面是一个。内存的先注册。好,这边也支持内存的一个预取,好往下是。这边是在调那个注册该段内存,也就是说他这边准备好内存呢,需要先注册。所以您拷贝就是先把那个内存给注册了。再往下。这种是短消息的发送,它走的是这个m short,最终会走到这个IV post send。哎,除了这种shot的话。还有种be copy的。Copy的流程也是在这里,大概类似的也是。我要周四。Point提交。
08:02
An EP post in the description。加一些flag。MP的。最终他也是调到IV post这里来。服务端收到数据就会在那个head word的回调里面去print。这个视。打印客户端发送数据。这边有一个动作,就是把这个序列号插到那个outstanding队列里面去了。在轮行完成的时候,他们可以获取完整的数量。这边就是说往一个队联里面袭阿利斯丹尼。然后这边。说完那个b b copy,然后这边是零拷贝的一个发送流程,零拷贝发送流程也是类似的。直接着copy,然后往下。
09:01
要做一些检查。然后从那层池中。获取发送零拷贝的内存描述。定的镖头。这边。看下往下走的话。准备工作请求代表work。空气发生的状态。他这边的话。他这里有两个实线,一个是。呃,Rpoint position也是常规的,像上面的那种,另外一种是那种麦老师网卡相关的零拷贝的一个提交。这边就是说它的具体的实现,这里面先是去填充,然后是内里的copy,然后这边调一个公共的post。这边会有一个相当巨大的一个操作,然后。调用了那个汇编指令,内存屏障什么的,防止编译器重排,重新排序指令。
10:07
作为一个story,这里啊,这是a storage。这。做了一个内存屏障,然后再做那个拷贝。最终是调这个uor copy。就是copy。这个就性能级它应该是比较高的这种。结合网卡的这种免拷贝,然后更新计数器。这边也是在做一个。发送的一个序列号的记录就是。Push到那个队列里面去了,OK,这边就是客户端的一个发送流程,我们再切到里面看还有什么。是您拷贝的调用站。
11:00
这个地方刚才已经。主要是IP,然后这是零拷贝的。两参数刚才提了,刚才说实现的对。零拷贝内存示意图的话,就是说。首先是。造一段内存出来,然后。比如说16个字节的字符串,ABC的FG等等等。是一个八分,然后。经过内存注册IBVMR之后,然后得到内存的控制器,然后它才转成这个IV,还有向量。往下走。好,接下来我们看一下这个里面的一些调用站,比如说创建Q,它是在哪哪个地方去调用的。三。Ma执行的时候是在初始化interface的时候,打开的时候,然后去初始化。去创建Q。The Chinese的extension,然后这边调用到了aqu qp。
12:01
可否?然后Q的话也是这边也是lookup的时候open的手机。第二个quite sick you。这边几次都是这样的。然后一步。一部时间现成的。韩硕。也就是说这边有一个一步线程启动之后。会等那个事件。老子分发那个控制器。We handle dispat。这肥料?这边有个回调。你说当那个服务器收到。客户端发的数据时,他这里通过事件触发到。碎片就会掉到CB里面了。随便处理一部。实际。根据这个类型做一些。事件的处理。
13:04
Okay。那就是UCUCT传输层的一个解读,看一下这里面还有没有漏掉的。有人描述美丽文件。第一,人民拷贝是谁?没办法。都赢过。
14:04
这样的概念。刚才那个地方的异步处理形成。M to端口的状态链路,还有端口的一些能力。就是那个。办个人。而rocker的版本V1 V1.5 V2,我们现在用的VR。这边还有卡支持的功能。买ATE15,买LO14,买了四,买ATE15。嗯,这边DC。V1DCV2。RM相关的参数。这个主要是那个IP协议规范里面的一些。
15:03
比如说多少比特。Copy number。然后。No全局路由头,本地路由头。基本的传输头。BTH,这里是12字节。14。这里面的游戏是哪个IP的版本?OKIP端口的属性是在这里m tu啊什么。还是写look的。AMC啊这些东西。AMC在这里MC了快递。比如Mac MC的话就是。L mask controller,当多个被分配给当前端口使用时。
16:00
当时使用。哎,最大虚拟限度。什等级等什么,那这里面很多和那个IB,还有麦网卡相关的一些参数,网卡相关的一些目录,比如说。System class later。帮你。还有这个。Connection pass最大连接的应什么?对的对的类型。RCUCUD。属性的掩码。现在成吃。发送回调CB。常用的一些红。
17:07
OK。所以这就是。U。的传输层的一个总结。希望大家喜欢。
我来说两句