天天观点:理解 net device Ingress 和 Egress 双重角色

2023-03-11 08:06:38 来源: 腾讯云

大家好,我是二哥。本篇 3700 字,阅读大概需要 20 分钟,下面是内容概览。


(资料图片)

本文是书稿《图解 VPC & K8s 网络模型》其中一篇。书稿还在继续写,进度不快也不慢,因为二哥不急也不躁。好肉需要慢炖,好书需要多磨。

为什么要单独讲这个话题呢?因为我在和同事讨论 K8s 网络尤其是网络数据流向的时候,会反复提及到网络设备,无论它是物理的还是虚拟的。而网络设备在我们所讨论到的数据流场景里,时而在接收数据,时而在发送数据。也就是说它同时扮演着双重身份:Ingress 和 Egress。

另外我在整理 eBPF 相关的内容,尤其是 tc eBPF 的时候,再一次发现如果不能准确地在数据流中识别出网络设备是 Ingress 还是 Egress ,就无法将代码逻辑和实际运行结果对上号,更勿谈能理解tc eBPF 了。

这样的双重角色扮演就如同一个调皮的孩子,总是带上面具在错综复杂的网络里面东躲西藏,肆意玩耍。而当你好不容易抓到它时,却让你猜猜此时此刻他是谁。

简单来说:对于网卡而言,无论它是物理的还是虚拟的,对于 Ingress 角色,它是首先触碰到数据的人,而对于 Egress 角色,它是最后一个碰到数据的人。

本文我们从一个简单的物理网卡开始,然后对 veth、 bridge 还有 tc eBPF ,分别展开聊聊:

当网卡扮演 Ingress 角色时,它从哪里接收数据,又将数据递交给了谁?当网卡扮演 Egress 角色时,它从哪里接收数据,又将数据递交给了谁?

1. 单个物理网卡

图 1

这是一个简单的图,图中有一张物理网卡。我们的台式机通常是这样的配置。橘色的线代表着输入流程,而蓝色的线表示输出流程。

1.1 输入流程 Ingress

对于这张网卡而言,输入过程伴随着以下几个重要的事情:物理网卡首先接收到物理信号 -> 物理网卡通过 DMA 机制将数据保存至其专属的 RingBuffer 里面 -> 向 CPU 发起中断 -> OS kernel thread ksoftirqd/x 不断地消费 RingBuffer 里面的数据。

这里的 ksoftirqd 是一个内核线程,每个 CPU 一个,x 为 CPU 编号。如 ksoftirqd/0 为 0 号 CPU 上运行的内核线程。

ksoftirqd/x 将数据以 skb 为处理粒度依次穿过链路层、网络层、TCP/UDP 传输层 。不过 skb 在链路层和网络层还可能直接 forward 给其它网卡,那这样的话传输层就不会收到这个 skb 了。

整个过程如图 2 所示,你可以从整体上感受一下。标号 1 及 1.x 为数据输入和生产过程,这是本文的重点。而标号 3 为数据消费过程,它带着 skb 从入口处的 net_rx_action() 沿着协议栈由底向上穿越协议栈,这个过程对本文所述的所有 Ingress 场景都是通用的,故后文不再赘述这部分。

图 2

总结:当物理网卡扮演 Ingress 角色时,它从主机外接收数据,将数据递交给了环形队列,然后由 ksoftirqd/x 进行后续的处理,这个处理过程也称为网络栈下半部分。

1.2 输出过程 Egress

从图 1 中,我们大致可以看出来,对于输出过程,数据来源有两种,分别是通过 ip_forward() 过程和通过 ip_local_out() 过程送过来的数据。我们还会发现,在发送数据的路径上,这两个过程只是起点有些不同,剩下的路程大家都一样。

ip_forward() 过程与 skb 在 IP 层路由结果强相关。如图 3 所示,具体来说经过路由的判定,可能需要把 skb forward 至本机网络设备或者网络中的其它主机处理,不过无论是哪种情况,都需要将 skb 送往本机的一个网络设备。

图 3

而 ip_local_out() 过程则对应了本机进程通过 socket 发送数据的场景,如图 4 所示。这张图最后标注的“触发 NET_RX 类型软中断”是数据已经被网卡发送完后发生的事情,中断的目的是为了清理 skb ,略过不表。

图 4 ,图片来源:“开发内功修炼”公众号

总结:当物理网卡扮演 Egress 角色时,它从本机 TCP/IP 协议栈接收数据,将数据通过驱动程序送离本机。

2. veth-pair

是不是觉得单个网卡的场景其实很容易分辨出来 Ingress 和 Egress ?

别得意,我们来加点难度。我们知道 K8s 的默认 CNI flannel 用到了 veth 。veth 是什么以及它的特性二哥就不细说了。我们聊一个话题:图 5 中,当左侧进程向右侧进程通信发送数据时, 左端的 veth_left 是 Ingress 还是 Egress ? 右端的 veth_right 呢?

图 5

结合图 5 上的箭头示意,答案应该不难猜。对 veth_left 来说,它扮演的是 Egress 角色,因为进程需要通过它把数据发送出去。对 veth_right 而言是 Ingress ,因为它需要负责接收数据并把它送给右侧的进程。

下一个问题:既然 veth_left 扮演了 Egress 角色,流量从离开 network namespace 1 之后去哪里了?既然 veth_right 是 Ingress ,那它从哪里接收到流量的?

答案都在图 6 里面。图中标号 2 及 2.x 在进行数据发送的工作,都属于 veth_left 的 Egress 的过程,这个过程是发生在 network namespace 1 里面的,函数调用栈和图 4 一样。而标号 3 为数据消费也即 veth_right 的 Ingress 过程,这个过程和物理网卡一模一样。

更多详细讲解请参考《看图写话:聊聊veth数据流》。

图 6

总结:既然 veth 是一对虚拟网卡,那我们把对它俩的总结放在一起。

当 veth 网卡扮演 Egress 角色时,如图 7 中的 veth_left,它从其所在的 network namespace TCP/IP 协议栈接收数据,并将数据递交给了 per CPU input_pkt_queue 队列,并触发软件中断。

当 veth 网卡扮演 Ingress 角色时,如图 7 中的 veth_right,它并没有物理网卡那种环形队列,而是由 ksoftirqd/x 直接从 per CPU input_pkt_queue 队列读取 veth_left 塞进来的数据。

veth_left 和 veth_right 共享了同一个 queue 。典型的生产者 / 消费者设计模式的即视感有没有?

图 7

3. bridge

上一节,二哥把 veth pair 单独拿出来和大家一起观赏。可它们终究不是花瓶,它们被创造出来是要有实际使用价值的。veth 典型使用场景就是把一端插入到 bridge 里面,如图 8 所示。

从 veth 的特性来说,流量从下图 veth1-left 流出后,会进入 veth1-right ,这也就意味着流量进入了网桥。

我想这个时候你可以确定 veth1-left 是 Egress ,而 veth1-right 是 Ingress 。那么对于 bridge 的 Port 1 和 Port 2 呢?再进一步,对于 veth2-left 和 veth2-right 呢 ?

图 8

其实对于 bridge 这种虚拟的网桥,它的 port 口也是一个虚拟的概念,说得更直白一点,在内核里它就是一个数据结构:struct net_bridge_port 。这个结构里有 3 个重要的成员:br / port_no / dev 。下面的代码用于插入网络设备到 bridge ,这 3 个成员的作用显而易见。

//file: net/bridge/br_if.cstatic struct net_bridge_port *new_nbp(struct net_bridge *br,          struct net_device *dev){  //申请插口对象  struct net_bridge_port *p;  p = kzalloc(sizeof(*p), GFP_KERNEL);  //初始化插口  index = find_portno(br);  p->br = br;  p->dev = dev;  p->port_no = index;  ...}

对于图 8 来说, Port 1 (net_bridge_port) 就是一个粘合剂,左手 bridge ,右手 veth1-right 。理解了这点也就明白了对于 bridge 的 Port 而言,它是没有所谓的 Ingress 和 Egress 的概念的。

Port 1 接收数据其实是 veth1-right 在 Ingress,而 bridge 把这个流量 forward 给 veth2-right 时,veth2-right 其实在扮演 Egress 角色。那流量从 veth2-right 传至 veth2-left 的过程和 veth1-left 向 veth1-right 发送数据的过程是完全一样的。

总结:当 veth 这样的虚拟网卡插入在 bridge 上时:

图8 中 veth1-left 扮演 Egress 角色,它从其所在的 network namespace TCP/IP 协议栈接收数据,将数据递交给了 per CPU input_pkt_queue 队列,并触发软件中断。

veth1-right 扮演 Ingress 角色,它并没有物理网卡那种环形队列,而是由 ksoftirqd/x 直接从 per CPU input_pkt_queue 队列读取 veth1-left 塞进来的数据。当 ksoftirqd/x 把流量送至链路层时,从 br_forward() 开始进入 forward 流程。这个流程的效果就是流量从 veth1-right 转至 veth2-right 发送出去了。

那自然 veth2-right 这个时候就扮演了 Egress 角色,veth2-left 扮演了 Ingress 角色。

4. veth-pair plus

如果你没有晕的话,那抖索一下精神,我们开始 veth-pair 的进阶版。

上一节我们看到 veth 和 bridge 搭配使用的场景。veth 另一端一定要插在 bridge 上吗?从图 9 你也看到了,答案是:不一定。

图 9

现在我们知道,在图 9 中,从 container-1 发出的流量经过 veth 发出后,veth-p 会以 Ingress 角色开始接收。根据前文的解释,当网卡进行 Ingress 时,流量会被 ksoftirqd/x 送往协议栈进一步处理。这个处理的过程当然也就包括了图 9 中的路由过程。

图 9 这里巧妙的地方是:流量是产生于容器内,但对这份流量的路由却发生在主机 root(default) network namespance 里面,使用的也是主机的路由表。如果路由结果发现需要把这份流量发往其它主机,那自然流量就从主机的 eth0 这个网卡设备离开了。在这个过程中,主机其实扮演了网关的角色。

说到这里,你能理解图 10 的工作过程了吗?它是 K8s host-gateway 网络模型,顾名思义,这种网络模型以 host 为 gateway ,更具体地说,host 的 root network namespace 充当了路由的角色。

图 10

5. tc eBPF

如果你对 tc 和 eBPF 了解得不多或者不感兴趣,可以跳过这部分。

以 Cilium 为代表的 K8s CNI 提供商一直在尝试使用 eBPF 代替 iptables 以便优化服务网格数据面性能。其中 bpf_redicrect() 函数即为其中一项优化产出。

bpf_redicrect() 函数的特性用一句话就能解释清楚:当 veth Ingress 时,将流量直接通过 bpf_redirect() 重定向到另一个 veth Ingress。如图 11 所示。

不过如果你对 veth pair 哪一端在何时会扮演 Ingress 角色了解得不是很清楚的话,上面这句话其实会把你绕晕。

图 11

但在看完二哥这篇文章后,希望你不会再晕了。在图 11 中,从右下 Pod 出来的流量会流到位于 host network ns 这一端的 veth 上,这个 veth 是以 Ingress 角色工作的。

你看到在它身上附上了一个 eBPF 小蜜蜂图标,表示这个时候 eBPF 程序会介入执行,执行的结果就是流量被直接通过 dev_forward_skb() forward 给了另外一个同样位于 host network ns 端的 veth (如图 11 箭头所指的那个 veth),当然对这个 veth 而言,它会扮演 Egress 角色。

这个过程也可以用下面这样的函数调用层次图来表示。

pkt -> NIC -> TC ingress -> handle_ing()                            |-verdict = tc_classify()     // exec BPF code                            |           |-bpf_redirect() // return verdict                            |                            |-switch (verdict) {                              case TC_ACK_REDIRECT:                                  skb_do_redirect()       // to the target net device                                    |-if ingress:                                    |   dev_forward_skb()                                    |-else:                                        dev_queue_xmit()

下面是网易轻舟的一篇文章里面所附的图。它画出了网易轻舟基于 Cilium 网络方案的探索和实践细节,包括跨节点 Pod 间通信、同节点 Pod 间通信、Pod 访问外网等各类常见的场景。

图中 cilium_net/cilium_host是一对 veth pair ,它们在 Kernel 4.19+ Cilium 1.8部署中已经没什么作用了(事实上社区在考虑去掉它们)。

我想有了上面所有的铺垫和知识,至少对标号 ① ② 所示的流程,你应该能看得懂了。

图 12

6. 总结

文末,二哥来做个小总结:

对于网卡而言,无论它是物理的还是虚拟的,对于 Ingress 角色,它是首先触碰到数据的人,而对于 Egress 角色,它是最后一个碰到数据的人。对于 Ingress 过程,无论是物理网卡还是虚拟网卡,在它接收到数据后,总是通过 ksoftirqd/x 进行网络栈下半部分处理。对于 Egress 过程,无论是物理网卡还是虚拟网卡,在它从链路层那里拿到数据后,总是通过网卡驱动程序将数据送离本设备。Ingress 过程和 Egress 过程在内核中的处理路径完全不同,也更无对称可言。对于 veth ,无论是搭配 bridge 还是用于 host-gateway 场景,在数据流经过的关键位置区分是 Ingress 还是 Egress ,有助于理解系统对数据流的处理行为。tc eBPF 强依赖 Ingress 和 Egress,理解了它们也才能更好地理解 bpf_redirect() 。

标签:

上一篇 :

下一篇 :

天天观点:理解 net device Ingress 和 Egress 双重角色

本文是书稿《图解VPC&K8s网络模型》其中一篇。书稿还在继续写,进度不快也不慢,因为二哥不急也不躁。好...

03-11 08:06:38

世界快看点丨贵池区教育局

1、贵池教师进修学校于2007年经市政府批准正式成立,以“小实体”、“多功能”、“大服务”的原则组织管...

03-11 07:11:36

快看:美股行业ETF继续全线收跌

【美股行业ETF继续全线收跌】金融行业仍是重灾区:区域银行ETF继续重挫4 39%,银行业ETF跌4 17%,网络...

03-11 05:46:37

当前播报:紫川秀_关于紫川秀介绍

1、紫川秀,是老猪所著小说《紫川》,原名林河,字秀川,是一个集帅气、智慧、洒脱、搞笑、无赖、忠诚于...

03-11 00:49:24

全球消息!mastercard是啥_mastercard是什么卡

1、是二个国际信用卡组织一个是万事达卡(mastercard),一个是VISA卡,全球两个最大的信用卡机构。2、这两

03-10 21:54:50

全球速递!安徽省“十四五”城市住房发展规划

1、《安徽省“十四五”城市住房发展规划》由安徽省发改委发布,规划指出,“十三五”时期:住房发展不平...

03-10 20:48:33

报道:【聚焦】高带宽存储器(HBM)市场潜力巨大 本土尚属空白

中国虽有部分单位研究、应用高带宽存储器(HBM),并获得了一些技术成果,但距离自主开发、生产高带宽存...

03-10 18:06:46

环球看点!不申请工伤认定能报雇主责任险吗?

不申请工伤认定能报雇主责任险。雇主责任险属于商业保险,一般由雇主投保并做为被保险人,比如当雇主为...

03-10 16:10:54

观热点:安徽建筑大学是一本还是四本_安徽建筑大学是一本还是二本

1、四十四个一本专业在安徽。2、在另外五省有一部分专业为一本。本文到此分享完毕,希望对大家有所帮助。

03-10 15:41:54

全球今日讯!丰田车型大全图片价格_丰田车价格

1、广州丰田系列车型:雅力士价格:9 19-13 63万元外形尺寸(长 宽 高):3750 1695

03-10 13:57:47

【天天新视野】泸永高速什么时候收费2023?

泸永高速什么时候收费2023?2023年3月17日零时起,泸永高速将正式联网收取车辆通行费收费标准该项目一类...

03-10 11:22:22

实时焦点:辛亥革命 纪录片

1、《辛亥革命》是由上海东方影视发行有限责任公司出品,张黎和成龙执导,赵文瑄、李冰冰、陈冲、孙淳等...

03-10 10:24:11

全球播报:湖北省社保卡查询服务中心_湖北省社保卡进度查询

1、湖北省社保网上查询湖北省直社会养老保险参保个人信息查询进入>>>说明:本系统现仅提供湖北省省直养...

03-10 10:02:17

世界快消息!jshoppers客服_jshoppers

1、第设置确应该住所2填JS转送址转送编号社名需要第二问题电号码例:86-***********留手机Ok第三问题注册邮

03-10 06:55:33

当前关注:dnf异次元碎片能干嘛_dnf异次元碎片

1、方法一:不同维度的DNF碎片,在古代任何一个画面都能掉落,只有精英怪物才能掉落,是巴卡尔2 3 4 5 6黑土地2

03-10 04:30:10

世界聚焦:卧龙苍天陨落二周目最强武器推荐[多图]

卧龙苍天陨落二周目什么武器好用?部分玩家可能还不清楚,下面一起来看看卧龙苍天陨落二周目最强武器推荐...

03-10 01:59:52

世界实时:李励、李健,好样的!

连日来武警云南总队曲靖支队警卫勤务中队下士李励武警广东总队潮州支队机动中队排长李健成了单位里战友...

03-09 21:51:25

全球微头条丨03月09日15时云南昭通疫情数据 阳了以后为什么会腰疼?应该怎么办?

03月09日15时云南昭通疫情数据阳了以后为什么会腰疼?应该怎么办?以下为详情!一、03月09日15时昭通疫...

03-09 19:08:09

世界速讯:如何算耗电量_耗电量怎样计算

1、电器耗电量的计算方法:不论是什么电器,说明书或铭牌上都会标注了功率(瓦,用字母W表示),通常我...

03-09 18:53:37

环球滚动:桂林漓江杨堤码头—老村头排筏游船指南(附购票入口)

桂林漓江杨堤码头—老村头排筏游玩指南售票时间:8:00—17:00里程:15km游览时间:90分钟全程路线:杨堤...

03-09 17:21:15

焦点速读:文件夹怎么生成目录列表_如何在文件夹内自动生成文档目录

1、用dos实现,很简单的。2、步骤新建一个文本文档(txt格式)步骤2、打开输入以下内容“dir s n>目录

03-09 15:40:56

微资讯!衡东县举行2023年学雷锋志愿服务主题月活动启动仪式

启动仪式活动现场。颁奖现场。3月8日,衡东县2023年“罗帅故里学雷锋文明创建我先行”学雷锋志愿服务主...

03-09 13:48:58

精彩看点:包围曝光的作用_包围曝光是什么意思

1、白平衡包围曝光和曝光包围的意思比较接近。2、曝光包围是一次拍摄后,以中间曝光值和减少曝光值和增...

03-09 13:24:01

世界消息!公司问答丨京东方A:柔性屏去年出货目标可以达到 今年出货量还有提升空间

据媒体报道,京东方将为苹果供应搭载LTPO技术的OLED屏幕,相关事项于今年2月敲定,产线将置于四川绵阳。...

03-09 11:32:34

每日视讯:炸牛奶的做法_怎么制作炸牛奶

解答:1、将纯牛奶和玉米淀粉倒入锅中,搅拌均匀。2、倒入白糖,搅拌均匀。3、用小火加热。为防止牛奶糊...

03-09 09:59:34

世界即时看!电话mute是什么意思_mute是什么意思

1、静音mute英[mju:t]美[mjut]adj 缄默的;哑的;无声的;(字母)不发音的n 哑巴;(乐器上的)弱

03-09 07:54:48

世界快资讯:森山松之助

1、森山松之助毕业於东京帝国大学建筑系,是受西方建筑教育的第一代学生,老师为英籍教授康德(JosiahConder

03-09 06:59:14

【环球播资讯】3月8日基金净值:广发瑞誉一年持有期混合A最新净值0.9932,跌0.46%

3月8日,广发瑞誉一年持有期混合A最新单位净值为0 9932元,累计净值为0 9932元,较前一交易日下跌0 4...

03-09 01:36:10

世界看热讯:挪威脊背龙蛋咒语_挪威脊背龙

1、《哈利波特》读后感我觉得哈利波特是位不可思议而又神秘的魔术师,有些人有可能会觉得这样说《哈利波...

03-08 22:14:07

世界动态:U20女足亚洲杯预选赛 中国队首战6-0大胜菲律宾队

北京时间3月8日,U20女足亚洲杯预选赛第一阶段首轮结束一场争夺,中国U20女足6-0大胜菲律宾U20女足。

03-08 21:20:18

每日速递:牛瘪是什么

牛瘪,又被称为“百草汤”,是黔东南地区独特的一种食品,深受侗族苗族人民喜爱,被黔东南少数民族视为...

03-08 18:24:37

世界观点:甘肃省平凉市住建局督导全市住建领域重点工作

2月27日至3月2日,市住建局党组书记、局长高登榜和局机关分管负责同志分别带队督导检查全市住建领域重大...

03-08 18:12:35

全球速看:今年阿拉山口铁路口岸过货量超200万吨

今年以来,随着进出口贸易蓬勃发展,新疆阿拉山口铁路口岸向西开放的枢纽节点作用日益凸显,实现了进出...

03-08 15:58:32

今日热门!安全生产责任制

1、安全生产责任制是根据我国的安全生产方针“安全第一,预防为主,综合治理”和安全生产法规建立的各级...

03-08 15:13:48

环球百事通!刚刚 陕西省气候中心宣布:西安入春啦!

刚刚陕西省气候中心宣布:西安入春啦!

03-08 13:59:10

【世界时快讯】跳伞的禁忌有哪些

1、地面训练不少于十个小时:跳伞是属于危险的运动,而且是在立体空间活动,要进行必要的训练,这样才能...

03-08 12:09:03

天天速看:孩子寒暑假“无人看管” 委员建议校内托管

孩子寒暑假“无人看管”委员建议校内托管

03-08 11:51:54

环球热门:为什么葵花籽油保质期只有一年半?

一般常温下,葵花籽油保质期大约一年半左若是超过保质期服用后会导致肠胃不适,甚至引发食物中毒的反应...

03-08 09:53:03

环球短讯!石琼璘

1、石琼璘,女,汉族,1979年10月23日出生于湖南长沙,中国内地节目主持人,毕业于北京广播学院(中国传...

03-08 08:42:10

当前要闻:拜仁VS巴黎圣曼,热刺VSAC米兰

建议方向:胜1 64|让胜2 84|比分:3-1 3-0|进球数:3 4球|单挑:4球两队三次交锋,热刺1胜1平1负,...

03-08 07:46:44

焦点速看:凤阳中学

1、安徽省凤阳中学,是安徽省省级示范性高中。2、凤阳中学是一所历史悠久,享有盛名的百年老校。3、坐落...

03-08 05:39:40

世界滚动:暧昧的称呼男生_暧昧的称呼

1、男性对女性的暧昧称呼由亲爱的。2、老婆。3、,我的亲亲。以上就是【暧昧的称呼男生,暧昧的称呼】相...

03-08 03:11:49

世界观速讯丨漂流要准备什么东西_漂流要准备什么

1、防晒装备:如长衣长裤、防晒霜、眼镜绳、阔沿帽、太阳镜、户外用头巾等,漂流一般要经过几个小时,暴...

03-07 22:58:44

世界快看:支付宝在线客服考试答案_支付宝在线客服

1、首先,为了打开支付宝在线客服,我们需要打开手机,进入手机桌面,打开我们手机桌面上的支付宝APP,...

03-07 21:42:05

全球时讯:现代汽车在美国召回26169辆2012-2013年飞思汽车

美国国家公路交通安全管理局3月7日披露,现代汽车美国公司召回26169辆2012-2013年飞思(Veloster)汽车...

03-07 19:52:58

速讯:曾都区有几个街道

曾都区共有4个街道,分别是东城街道、西城街道、南郊街道、北郊街道。曾都区,湖北省随州市市辖区,地处...

03-07 18:55:12

当前关注:医保共济账户成员怎么使用 医保共济怎么操作

一 医保共济账户成员怎么使用?微信客户端绑定:打开手机微信APP,搜索你所在地区的微信社保公众号,点...

03-07 17:57:03

全球速讯:挖空曼城?巴萨引援考虑拉波尔特 有意购B席京多安

北京时间3月7日,据《世界体育报》报道,巴萨的引援名单不仅包括拉波尔特,曼城的两名中场球员贝尔纳多-...

03-07 15:50:28

全球关注:玉米粒的家常做法甜味

1、胡萝卜和黄瓜分别切成丁,葱花切碎。2、玉米粒是在超市买现成的,回家先用凉水泡一会,再烧水焯一下...

03-07 15:22:34

【全球快播报】女人对你是“认真的”还是“玩玩而已”,看三个方面就清楚了......

你对待感情会不会有担忧的时候呢?或许会有的吧!因为在喜欢上一个人的时候,除了喜欢,还会有一种情绪...

03-07 14:04:05

世界快看点丨贵池区教育局
快看:美股行业ETF继续全线收跌
当前播报:紫川秀_关于紫川秀介绍
全球消息!mastercard是啥_mastercard是什么卡
全球速递!安徽省“十四五”城市住房发展规划
报道:【聚焦】高带宽存储器(HBM)市场潜力巨大 本土尚属空白
环球看点!不申请工伤认定能报雇主责任险吗?
观热点:安徽建筑大学是一本还是四本_安徽建筑大学是一本还是二本
全球今日讯!丰田车型大全图片价格_丰田车价格
【天天新视野】泸永高速什么时候收费2023?
实时焦点:辛亥革命 纪录片
全球播报:湖北省社保卡查询服务中心_湖北省社保卡进度查询
世界快消息!jshoppers客服_jshoppers
当前关注:dnf异次元碎片能干嘛_dnf异次元碎片
世界聚焦:卧龙苍天陨落二周目最强武器推荐[多图]
世界实时:李励、李健,好样的!
全球微头条丨03月09日15时云南昭通疫情数据 阳了以后为什么会腰疼?应该怎么办?
世界速讯:如何算耗电量_耗电量怎样计算
环球滚动:桂林漓江杨堤码头—老村头排筏游船指南(附购票入口)
焦点速读:文件夹怎么生成目录列表_如何在文件夹内自动生成文档目录
微资讯!衡东县举行2023年学雷锋志愿服务主题月活动启动仪式
精彩看点:包围曝光的作用_包围曝光是什么意思
世界消息!公司问答丨京东方A:柔性屏去年出货目标可以达到 今年出货量还有提升空间
每日视讯:炸牛奶的做法_怎么制作炸牛奶
世界即时看!电话mute是什么意思_mute是什么意思
世界快资讯:森山松之助
【环球播资讯】3月8日基金净值:广发瑞誉一年持有期混合A最新净值0.9932,跌0.46%
世界看热讯:挪威脊背龙蛋咒语_挪威脊背龙
世界动态:U20女足亚洲杯预选赛 中国队首战6-0大胜菲律宾队
每日速递:牛瘪是什么
世界观点:甘肃省平凉市住建局督导全市住建领域重点工作
全球速看:今年阿拉山口铁路口岸过货量超200万吨
今日热门!安全生产责任制
环球百事通!刚刚 陕西省气候中心宣布:西安入春啦!
【世界时快讯】跳伞的禁忌有哪些
天天速看:孩子寒暑假“无人看管” 委员建议校内托管
环球热门:为什么葵花籽油保质期只有一年半?
环球短讯!石琼璘
当前要闻:拜仁VS巴黎圣曼,热刺VSAC米兰
焦点速看:凤阳中学
世界滚动:暧昧的称呼男生_暧昧的称呼
世界观速讯丨漂流要准备什么东西_漂流要准备什么
世界快看:支付宝在线客服考试答案_支付宝在线客服
全球时讯:现代汽车在美国召回26169辆2012-2013年飞思汽车
速讯:曾都区有几个街道
当前关注:医保共济账户成员怎么使用 医保共济怎么操作
全球速讯:挖空曼城?巴萨引援考虑拉波尔特 有意购B席京多安
全球关注:玉米粒的家常做法甜味
【全球快播报】女人对你是“认真的”还是“玩玩而已”,看三个方面就清楚了......
当前要闻:甘龙
X 广告
行业动态
X 广告

Copyright ©  2015-2022 东方植物网版权所有  备案号:沪ICP备2020036824号-8   联系邮箱:562 66 29@qq.com