最近在思考一个问题,图书馆里书越来越多,书店的书也越来越多,人类的问题非但没有减少,反而越来越多?

我从事计算机网络行业,谈谈我的观点。

计算机网络技术发展特别快,有些技术从诞生到消失可能只有几年的时间,所以还没有来得及出书,技术就消失得无影无踪。

还有一些技术,比如NAT技术,尽管很常用也有技术标准,但是各个厂家的实现方式并不统一。技术标准是先有产品后来才有的技术标准,所以这种技术标准并没有多大的用处,因为产品已经成型了。

但是,NAT技术并不需要不同厂家平台的交互,所以不会有什么问题。不像路由协议需要交互信息,如果没有严格遵照标准,可能就无法通信了。

所以像这些技术很难去出书,不像路由协议那么有广泛性、代表性。厂家更愿意出一些配置文档、白皮书供用户参阅。

这些内容会告诉用户如何配置、以及简单的工作原理,但是很难找到这个问题的答案,这就是为何知乎等问答平台可以诞生的原因。

问题来了,答主辛辛苦苦写的文字,一分钱没有,这种依赖雷锋式奉献精神的模式到底能走多远?所以,我很不看好这个平台,除非让优质内容的输出者得到自己应得的那一份。

听闻Oracle关闭中国研发中心,波及1000多人,对于有扎实技术的骨干人员,重新找一份类似工作不难,但是没有核心技术的人员,短期内可能会备受煎熬。

学好一门技术,可以拯救自己于危难时刻!

CPU进程转发

IP报文到达入接口,转交给软件转发进程,查询路由表,找到对应出口及下一跳IP,查询下一跳MAC,完成二层封装,从出口发送出去。

硬件快速转发

IP 报文到达入接口,硬件芯片查询硬件转发表,获得对应出口及二层封装,从出口发送出去。

硬件转发要远远快于CPU进程转发,相差至少一个数量级。有同学会疑惑地问,既然硬件转发那么快,为何还用进程转发呢?

硬件转发芯片长于转发流量,但是却处理不了复杂的逻辑。

硬件转发表是天上掉下来的馅饼吗?不是的!

是天生就存在于硬件芯片里的吗? 不是的!

是硬件芯片自己学习到的吗?不是的!

既然都不是,那是从哪里来的呢?

路由进程告诉的!

路由进程,是不是就是路由协议RIP 、OSPF、BGP之流?

对的。

路由进程跑在CPU上,路由进程和邻居、整个网络同步完路由表,将路由表(以二层转发表的形式)下发到硬件芯片里,然后硬件芯片就可以愉快地工作了。

当路由器配置了NAT,路由器并不能将二层转发表提前下发到硬件芯片,为什么呢?

每一个TCP/UDP会话的四元组(源IP,源端口,目的IP,目的端口)是动态的,这些动态的信息没有办法提前知晓。所以,TCP/UDP会话第一个报文到达路由器入口时,硬件芯片的转发表(NAT表)是空的,必须交由CPU进程处理。

CPU最强大的地方,就是可以处理任何复杂的逻辑!NAT进程立马介入,生成一个动态的NAT表条目,将IP报文的私有源IP+端口,替换成公网的IP + 端口,然后转发出去。

完了吗?

没有!

NAT进程还需要将NAT转发表下发到硬件,硬件芯片有了NAT表就变得强大了起来。如同加满油的老司机,地板油走起,一路绝尘。。。

有乘客会问,TCP的第二个报文是CPU转发还是硬件转发?

老司机冷笑一声,我都有了NAT表,可以独自开车,为什么要劳烦CPU大神!

话音未落,老司机一个地板油,风驰电掣开始飙车,乘客发出鬼哭狼嚎的尖叫声。。。

归纳一下

配置NAT之后,会对CPU有影响。至于影响多少,取决于有多少个全新的TCP/UDP会话数目。

相信这篇回答不会在任何教科书,或者厂家的配置文档、白皮书里找到。如果喜欢这篇文章,请点赞支持,谢谢!

硬件nat关闭还是开启_路由器开启NAT和防火墙功能,性能会下降吗?相关推荐

  1. 硬件nat关闭还是开启_潜在的NAT加速问题和冲突以及开关建议

    NAT加速华硕已经写在了路由器上的硬件之中.这就是路由在常常说的的路由器硬件加速功能!一般分为CTF(直通转发)和FA(流速加速器),当然本文的内容仅供一般用户配置使用,我们这里不会详细介绍NAT加速 ...

  2. java jmx 开启_动态开启jmx服务

    java可以利用编写mbeans来暴露很多程序指标,jdk自己也有很多指标,例如内存使用以及划分.很多小伙伴都表示这些值不少jstat就可以获取查看的吗,ssh登录上去就可以,也很方便.jstat确实 ...

  3. 硬件nat关闭还是开启_NAT(Network Address Translation)网络地址转换技术详解

    NAT简介 NAT:Network Address Translation,网络地址转换 NAT技术的工作原理和特点 NAT名字很准确,网络地址转换,就是替换IP报文头部的地址信息.NAT通常部署在一 ...

  4. wmm开启和关闭的区别_一次搞懂VV阀、BDV阀、RFV阀的区别与用途

    VV阀.BDV阀.RFV阀,这组阀门名称相近,记起来困难,又难于理解,总是分不清它们的区别.小编找遍相关资料,整理了VV阀.BDV阀.RFV阀的概念及运行操作要求,欢迎收藏. 概念 VV阀:Vent ...

  5. 华硕路由器固件 虚拟服务器,华硕路由器开启设置虚拟服务器

    华硕路由器开启设置虚拟服务器 内容精选 换一换 用户的弹性云服务器已绑定EIP,但是无法连接到Internet.弹性云服务器通过EIP访问Internet的流程如图1所示:本问题请按照以下思路进行排查 ...

  6. 华硕路由器配置虚拟服务器,华硕路由器开启设置虚拟服务器

    华硕路由器开启设置虚拟服务器 内容精选 换一换 设置"网络":在下拉列表中选择可用的虚拟私有云.子网,并设置私有IP地址的分配方式.弹性云服务器网络使用虚拟私有云(VPC)提供的网 ...

  7. 小米路由器开启DDNS并支持二级路由

    小米路由器开启DDNS具体的设置步骤可以参见这篇连接 [路由达人]简单两步搞定小米路由新增功能-DDNS(解析域名地址转向在线工具) - *(00)* - 博客园 由于路由器版本升级,web界面有所改 ...

  8. 后渗透之关闭防火墙、杀毒软件并开启远程桌面

    目录 一. 关闭防火墙 二. 关闭windows Defender和DEP数据执行保护 三. 关闭杀毒软件 四. 开启远程桌面 当我们拿下一台主机后,想在主机上留后门,那么我们的首要任务就是关闭主机的 ...

  9. 如何开启小米路由器的ssh功能

    文章目录 一.前言 二.工具下载 三.用法 1.开启ssh 2.改密码 3.关闭ssh 四.链接 总结 一.前言 本文只针对小米(Redmi)路由器,其他路由器请另请高明 其实在网上有很多把路由器刷成 ...

最新文章

  1. AI 与区块链:两大热门技术,会碰撞出什么样的火花?
  2. 信息系统运维安全管理规定(可作为范文参考)
  3. 用Socket编写TCP程序(C/C++)(转)
  4. Html_Img元素 设置图片与其他元素横排高度一致
  5. 在一个风景秀丽的小镇,一天早上,有N名晨跑爱好者(编号1~N)沿着优雅的江边景观道朝同一方向进行晨跑
  6. 极限3秒钟,闪存能作什么?
  7. printf(%f\n, 3);输出结果为什么是0.000000(转载)
  8. mysql 按类型查询个数和总数
  9. TTL与CMOS电路
  10. 我的android手机在哪里打开,USB调试在哪里打开 手机USB调试模式设置大全
  11. 全球及中国粮食加工行业产量需求规模与投资产值预测报告2022版
  12. VUE:element ui组件应用之个人中心页面
  13. 回归模型效果评估系列3-R平方
  14. Data()笔记之getDay()的基本用法
  15. 【unity】转场动画
  16. 运算电路的频率响应与冲激响应
  17. 请假流程如何快速实现(OA )呢?:Activiti工作流
  18. RSA分段加密分段解密以及密钥与.Net的转化
  19. linux手机内存碎片整理软件,Linux不需要磁盘碎片整理
  20. 想自己动手制作游戏动漫角色模型,教你几招,一定要看看!

热门文章

  1. 《三字经》《百家姓》《千字文》简单介绍
  2. 无线收发模块三种天线有什么区别?
  3. Android挂逼修练之行---微信中把朋友圈封面设置成酷炫视频功能插件开发详解
  4. 【PyTorch】PyTorch搭建基础VGG16网络
  5. 怎样利用MAC中自带的截图工具
  6. 数组字符操作--输出乘法竖式
  7. PowerPMAC技术培训------5、虚拟电机配置
  8. [元带你学NVMe协议] NVMe 协议基本概念和架构
  9. 定位模块能解决工程测量质量低的问题吗
  10. 怎么通过MQTT查看数据是否上云端_C#通过OPC UA+MQTT将设备数据采集至云端自动化工程师的数字化之路...