当前位置:网站首页>网络设备硬核技术内幕 路由器篇 6 汤普金森漫游网络世界(中)
网络设备硬核技术内幕 路由器篇 6 汤普金森漫游网络世界(中)
2022-07-27 14:06:00 【用户8289326】
(本篇仿照了美国科学家乔治·盖莫夫在《物理世界奇遇记》中的写作手法,在此致敬)
上回说到,绿洲精灵告诉汤普金森先生,他遇到了麻烦……
“你的麻烦在于,”绿洲精灵轻叹了一口气。“有TCAM红字的箱子里边,是路由器的数据库。”
“这里是路由器的NP处理器。每个机器人都是NP处理器流水线的一个单元。”
“机器人会根据TCAM数据库的内容,确定每个数据包的去向。”
“刚才检查你衣服二维码的,是IP三层转发的机器人。它需要按照最长前缀查找你的目的IP地址的数据,并决定你的去向。”
汤普金森先生有点糊涂:“什么叫最长前缀查找?”
绿洲精灵开始不紧不慢地给汤普金森先生讲解:
原来,在Internet中,总共有42.9亿个地址(2的32次方)。如果为每一个地址都存储一条数据,标志着它应该从哪个接口发出,下一站是哪里,是不现实的。
科学家们发现,由于Internet的地址大部分是连续分配的(按照网段分配),因此,我们只需要查找某个地址所在的网段对应的下一跳记录就可以了。但是,问题在于,每个地址,所在网段的长度并不是固定的。
汤普金森先生身上的地址是75.126.33.156,它有可能在以下这些网段中:
75.0.0.0/8
75.126.0.0/16
75.126.33.0/24
……
但是,只有后缀数字最大的子网,才是它最精确的去向。
因此,科学家们发明了一类特殊的存储器,叫做TCAM。它能够以第一时间找到后缀长度最长(不确定的位数最多)的数据库条目。
(想知道TCAM的具体工作原理,可以看这里——交换机篇 8 还是选择原谅她)
在路由器中,利用TCAM,就可以快速在数据库中,查找数据包应该去的下一跳以及出方向接口了。这个数据库被叫做FIB表(Forwarding Information Base)。
“那么,为什么说,我有麻烦了呢?”汤普金森先生疑惑地问。
“因为你的目的地址,在FIB表中没有查找到结果。”绿洲精灵轻轻叹了口气。“你马上会被送到控制平面去分析。”
说时迟那时快,汤普金森先生发现自己被机器人像提小鸡一样提起来,塞进了另一条管道。
他高喊:“绿洲精灵——”
“别担心,汤普金森先生。”绿洲精灵还是不紧不慢地说。“我会一直陪伴着你,直到你离开这台路由器。”
又一阵天旋地转以后,汤普金森先生又看到了熟悉的灰黑色夹杂着紫红线条的硅片。只不过,这一次他没有被扔到行李转盘一样的传送带上,而是坐在像跆拳道教室一样的地板上:
地板上还有很多其他人,每个人无论身高高矮,都分到了连续4片垫子。
“你现在在路由器主控单元(MPU,Main Process Unit)的内存里。”绿洲精灵告诉汤普金森先生。
“可是,这个内存和刚才机器人告诉我的控制平面是什么关系呀?”汤普金森先生不解地问。
“唉,”绿洲精灵笑了笑。“刚才说的主控单元,就是路由器的控制平面。”
“所有转发平面觉得不应该丢弃,但又不知道转发到哪里去的包,都会上送到控制平面。比如你。”
汤普金森先生自嘲:“这就是说我‘幸运’的原因?”
“哈哈哈……”
绿洲精灵笑声未落,一个机器人走向汤普金森先生,在汤普金森先生脚下捡起一张纸条,看了看读道:“源地址 123.112.90.43,目的地址 75.126.33.156。”然后走了。
绿洲精灵问汤普金森先生:“你知道为什么这里的机器人不扫描你的二维码也知道地址吗?”
汤普金森先生摇了摇头。
“你刚才从管道进入控制平面的时候,被自动扫描二维码了,提取出来的地址,就放在你的脚下。”绿洲精灵笑道。“因为控制平面的CPU是带有加速单元的,就不需要浪费CPU宝贵的时间用来干读你身上的二维码的事儿啦。”
果然,没多久,机器人回来了,对汤普金森先生说:“跟我走吧。”
汤普金森先生问:“去哪?”
机器人还没来得及回答,绿洲精灵先回答了:
请转发到朋友圈,再看下回分解!
本期的问题:为什么路由器的NP不需要提前读取数据包的源地址、目的地址等关键信息,而进入CPU时有专用硬件进行预先读取呢?
上期问题答案:如果汤普金森先生的外衣(以太网头)上,类型不是0x0800,而是0x8906,它将如何走出路由器呢?
0x8906是FCoE的类型,而不是IP数据包。路由器无法处理这一类型数据包,汤普金森先生化身的数据包将被丢弃,他永远无法走出路由器。
边栏推荐
- [popular science] the difference and connection between accuracy and resolution
- JS epidemic at home, learning can't stop, 7000 word long text to help you thoroughly understand the prototype and prototype chain
- How to help enterprises optimize office management
- Nefu117 number of prime numbers [prime number theorem]
- Understand the evolution of redis architecture in one article
- If we were the developer responsible for repairing the collapse of station B that night
- 多表查询_子查询概述和多表查询_子查询情况1&情况2&情况3
- 【STM32】EXTI
- aac 和 h264等的时间戳
- DXGI acquisition process
猜你喜欢

Import the virtual machine officially made by Kali Linux into Oracle VirtualBox

Toward Fast, Flexible, and Robust Low-Light Image Enhancement(实现快速、灵活和稳健的弱光图像增强)CVPR2022

Differences among CPU, GPU and NPU

adb命令 (安装apk包格式:adb install 电脑上apk地址包名)
![[work] about technical architecture](/img/24/f3402c04157ce9a8846580f017f472.png)
[work] about technical architecture

Construction of knowledge map of financial securities and discovery of related stocks from the perspective of knowledge relevance

软件产品第三方测试费用为什么没有统一的报价?

对话框管理器第三章:创建控件

CPU、GPU、NPU的区别

巨形象的图解 SQL
随机推荐
An example of building 3D effects on the web based on three.js
NEFU117 素数个数的位数【素数定理】
国信证券手机开户安全吗 中山证券靠谱吗
FPGA timing constraint sharing 04_ Output delay constraint
事务_基本演示和事务_默认自动提交&手动提交
Idea makes jar packages and introduces jar packages
Web页面table表格,实现快速筛选
图解 SQL,这也太形象了吧
What if win11 wallpaper turns black? The solution of win11 wallpaper blackening
南山区民政局关于开展2022年度南山区社会组织等级评估工作的通知
DVWA full level customs clearance tutorial
@What happens when bean and @component are used on the same class?
UnityUI方面处理(归纳与积累)
Database storage series (1) column storage
网络设备硬核技术内幕 路由器篇 4 贾宝玉梦游太虚幻境(下)
[ManageEngine] what is Siem
视觉系统设计实例(halcon-winform)-9.文字显示
NEFU118 n! How many zeros are there after [basic theorem of arithmetic]
网络设备硬核技术内幕 路由器篇 21 可重构的路由器
internship:其他配置类的编写