硬件nat关闭还是开启_路由器开启NAT和防火墙功能,性能会下降吗?
最近在思考一個問題,圖書館里書越來越多,書店的書也越來越多,人類的問題非但沒有減少,反而越來越多?
我從事計算機(jī)網(wǎng)絡(luò)行業(yè),談?wù)勎业挠^點(diǎn)。
計算機(jī)網(wǎng)絡(luò)技術(shù)發(fā)展特別快,有些技術(shù)從誕生到消失可能只有幾年的時間,所以還沒有來得及出書,技術(shù)就消失得無影無蹤。
還有一些技術(shù),比如NAT技術(shù),盡管很常用也有技術(shù)標(biāo)準(zhǔn),但是各個廠家的實(shí)現(xiàn)方式并不統(tǒng)一。技術(shù)標(biāo)準(zhǔn)是先有產(chǎn)品后來才有的技術(shù)標(biāo)準(zhǔn),所以這種技術(shù)標(biāo)準(zhǔn)并沒有多大的用處,因?yàn)楫a(chǎn)品已經(jīng)成型了。
但是,NAT技術(shù)并不需要不同廠家平臺的交互,所以不會有什么問題。不像路由協(xié)議需要交互信息,如果沒有嚴(yán)格遵照標(biāo)準(zhǔn),可能就無法通信了。
所以像這些技術(shù)很難去出書,不像路由協(xié)議那么有廣泛性、代表性。廠家更愿意出一些配置文檔、白皮書供用戶參閱。
這些內(nèi)容會告訴用戶如何配置、以及簡單的工作原理,但是很難找到這個問題的答案,這就是為何知乎等問答平臺可以誕生的原因。
問題來了,答主辛辛苦苦寫的文字,一分錢沒有,這種依賴?yán)卒h式奉獻(xiàn)精神的模式到底能走多遠(yuǎn)?所以,我很不看好這個平臺,除非讓優(yōu)質(zhì)內(nèi)容的輸出者得到自己應(yīng)得的那一份。
聽聞Oracle關(guān)閉中國研發(fā)中心,波及1000多人,對于有扎實(shí)技術(shù)的骨干人員,重新找一份類似工作不難,但是沒有核心技術(shù)的人員,短期內(nèi)可能會備受煎熬。
學(xué)好一門技術(shù),可以拯救自己于危難時刻!
CPU進(jìn)程轉(zhuǎn)發(fā)
IP報文到達(dá)入接口,轉(zhuǎn)交給軟件轉(zhuǎn)發(fā)進(jìn)程,查詢路由表,找到對應(yīng)出口及下一跳IP,查詢下一跳MAC,完成二層封裝,從出口發(fā)送出去。
硬件快速轉(zhuǎn)發(fā)
IP 報文到達(dá)入接口,硬件芯片查詢硬件轉(zhuǎn)發(fā)表,獲得對應(yīng)出口及二層封裝,從出口發(fā)送出去。
硬件轉(zhuǎn)發(fā)要遠(yuǎn)遠(yuǎn)快于CPU進(jìn)程轉(zhuǎn)發(fā),相差至少一個數(shù)量級。有同學(xué)會疑惑地問,既然硬件轉(zhuǎn)發(fā)那么快,為何還用進(jìn)程轉(zhuǎn)發(fā)呢?
硬件轉(zhuǎn)發(fā)芯片長于轉(zhuǎn)發(fā)流量,但是卻處理不了復(fù)雜的邏輯。
硬件轉(zhuǎn)發(fā)表是天上掉下來的餡餅嗎?不是的!
是天生就存在于硬件芯片里的嗎? 不是的!
是硬件芯片自己學(xué)習(xí)到的嗎?不是的!
既然都不是,那是從哪里來的呢?
路由進(jìn)程告訴的!
路由進(jìn)程,是不是就是路由協(xié)議RIP 、OSPF、BGP之流?
對的。
路由進(jìn)程跑在CPU上,路由進(jìn)程和鄰居、整個網(wǎng)絡(luò)同步完路由表,將路由表(以二層轉(zhuǎn)發(fā)表的形式)下發(fā)到硬件芯片里,然后硬件芯片就可以愉快地工作了。
當(dāng)路由器配置了NAT,路由器并不能將二層轉(zhuǎn)發(fā)表提前下發(fā)到硬件芯片,為什么呢?
每一個TCP/UDP會話的四元組(源IP,源端口,目的IP,目的端口)是動態(tài)的,這些動態(tài)的信息沒有辦法提前知曉。所以,TCP/UDP會話第一個報文到達(dá)路由器入口時,硬件芯片的轉(zhuǎn)發(fā)表(NAT表)是空的,必須交由CPU進(jìn)程處理。
CPU最強(qiáng)大的地方,就是可以處理任何復(fù)雜的邏輯!NAT進(jìn)程立馬介入,生成一個動態(tài)的NAT表?xiàng)l目,將IP報文的私有源IP+端口,替換成公網(wǎng)的IP + 端口,然后轉(zhuǎn)發(fā)出去。
完了嗎?
沒有!
NAT進(jìn)程還需要將NAT轉(zhuǎn)發(fā)表下發(fā)到硬件,硬件芯片有了NAT表就變得強(qiáng)大了起來。如同加滿油的老司機(jī),地板油走起,一路絕塵。。。
有乘客會問,TCP的第二個報文是CPU轉(zhuǎn)發(fā)還是硬件轉(zhuǎn)發(fā)?
老司機(jī)冷笑一聲,我都有了NAT表,可以獨(dú)自開車,為什么要勞煩CPU大神!
話音未落,老司機(jī)一個地板油,風(fēng)馳電掣開始飆車,乘客發(fā)出鬼哭狼嚎的尖叫聲。。。
歸納一下
配置NAT之后,會對CPU有影響。至于影響多少,取決于有多少個全新的TCP/UDP會話數(shù)目。
相信這篇回答不會在任何教科書,或者廠家的配置文檔、白皮書里找到。如果喜歡這篇文章,請點(diǎn)贊支持,謝謝!
總結(jié)
以上是生活随笔為你收集整理的硬件nat关闭还是开启_路由器开启NAT和防火墙功能,性能会下降吗?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言编程题—N名学生的成绩已在主函数中
- 下一篇: NAT技术如何解决IP地址不足的问题