虛擬照進(jìn)現(xiàn)實(shí)|重新認(rèn)識(shí)計(jì)算機(jī)端口

????當(dāng)我們談?wù)撚?jì)算機(jī)端口的時(shí)候,你可能認(rèn)為你了解它,但它卻沒(méi)有照進(jìn)現(xiàn)實(shí),給你更多的想象空間,它有點(diǎn)孤獨(dú)。
????如果一個(gè)知識(shí)點(diǎn)帶來(lái)的想象空間不多,一定是我們看待它的角度不全或者打開(kāi)的方式不對(duì),我們需要重新認(rèn)識(shí)它!!
????端口英文叫port,port的本意是港口,如果你是一個(gè)以英語(yǔ)為母語(yǔ)的開(kāi)發(fā)者,就很容易聯(lián)想到:

---端口就是計(jì)算機(jī)系統(tǒng)和外界進(jìn)行數(shù)據(jù)流通的港口,端口號(hào)則是這些港口的編號(hào)~~----

港口

????類(lèi)似于港口——系統(tǒng)外部的數(shù)據(jù)到達(dá)端口后,就會(huì)進(jìn)入端口緩沖區(qū)排隊(duì),然后在系統(tǒng)內(nèi)部會(huì)有服務(wù)通過(guò)連接端口的數(shù)據(jù)通道不斷從緩沖區(qū)取走數(shù)據(jù)??偨Y(jié)下:端(港)口=門(mén)戶(hù)+緩沖+信道,打開(kāi)一個(gè)端口和開(kāi)辟一個(gè)港口一樣,有如下三件事:
????1 新設(shè)港口門(mén)戶(hù),承認(rèn)合法性:內(nèi)部數(shù)據(jù)可以通過(guò)這個(gè)門(mén)流通到外部,外部數(shù)據(jù)也可以通過(guò)這個(gè)門(mén)流通到內(nèi)部,不是通過(guò)合法門(mén)戶(hù)進(jìn)出的數(shù)據(jù)一律是違法的,一旦發(fā)現(xiàn)就會(huì)被制裁;
????2 打通連接港口的交通要道:系統(tǒng)內(nèi)部的服務(wù)通過(guò)這個(gè)通道從緩沖區(qū)獲取數(shù)據(jù),也通過(guò)這個(gè)通道把數(shù)據(jù)發(fā)送到端口以及外部;
????3 圍繞港口建立緩沖地帶:比如港口的大片空地和避風(fēng)港灣,緩沖區(qū)有兩種:內(nèi)部數(shù)據(jù)出去的緩沖區(qū),外部數(shù)據(jù)進(jìn)來(lái)的緩沖區(qū),一個(gè)端口都有一對(duì)緩沖區(qū),所以端口編號(hào)也代表了緩沖隊(duì)列編號(hào);

------當(dāng)把虛擬映射到現(xiàn)實(shí)中,像理解港口一樣理解端口,關(guān)于端口的很多問(wèn)題就一下子變得容易理解了~~~~比如:

問(wèn)題一: 如果端口緩沖區(qū)滿了會(huì)有什么問(wèn)題?

:類(lèi)比港口——緩沖地帶滿了,新的貨物就不能進(jìn)來(lái)或者出去了。現(xiàn)實(shí)世界路可以停車(chē),但計(jì)算機(jī)世界中,沒(méi)有緩存的信道上不能儲(chǔ)存任何信息,接收數(shù)據(jù)的緩沖區(qū)滿了,外面的數(shù)據(jù)就進(jìn)不來(lái)了;不停的去塞滿端口緩沖區(qū),也是一種常見(jiàn)的黑客攻擊手段。

問(wèn)題二:為啥一個(gè)計(jì)算機(jī)系統(tǒng)要很多端口?是否可以隨便開(kāi)辟端口呢?

:類(lèi)比港口——為啥一個(gè)國(guó)家有很多港口呢?當(dāng)然為了提升整個(gè)國(guó)家內(nèi)部與外部的人和資源(對(duì)應(yīng)計(jì)算機(jī)的數(shù)據(jù))的流通速度了;
????開(kāi)辟一個(gè)港口是需要占用很多資源的,所以港口不是隨意開(kāi)辟的,端口也是如此,打開(kāi)端口就會(huì)消耗內(nèi)存/CPU資源,并且有一定的安全風(fēng)險(xiǎn),所以端口開(kāi)辟也不是隨便開(kāi)辟,且有數(shù)量限制~

問(wèn)題三常說(shuō)的http使用端口是80,https使用端口443,是什么意思?

:類(lèi)比港口——一個(gè)小島都會(huì)有空運(yùn)貨物港、空運(yùn)客運(yùn)港、火車(chē)站、貨運(yùn)港、客運(yùn)港等不同類(lèi)型的港口,究其原因就是不同的人和貨物(數(shù)據(jù)形式)需要不同的處理方式,為了加速整體數(shù)據(jù)流通效率而做的分工。
????80就是大家約定好接收并處理Http請(qǐng)求數(shù)據(jù)的端(港)口 ,這就叫公認(rèn)端口,就是說(shuō)當(dāng)一個(gè)數(shù)據(jù)到達(dá)一個(gè)計(jì)算機(jī)系統(tǒng),如果是http數(shù)據(jù),默認(rèn)就去端(港)口80排隊(duì)進(jìn)入系統(tǒng)。
????有公認(rèn)就有例外,比如你啟動(dòng)了一個(gè)http服務(wù)器程序,你就要從8080端口接收數(shù)據(jù),那就需要跟你信任的客戶(hù)端提前說(shuō)好,當(dāng)它發(fā)送數(shù)據(jù)過(guò)來(lái)的時(shí)候不去大家公認(rèn)的80港口排隊(duì),而是去8080港口排隊(duì);還有一種辦法就是找一個(gè)中間人(網(wǎng)關(guān)、代理)還是去80端口接數(shù)據(jù),接到數(shù)據(jù)后,它就做一些做一些安全校驗(yàn),然后再把校驗(yàn)通過(guò)的數(shù)據(jù)轉(zhuǎn)發(fā)到8080端口。

最后我們來(lái)一個(gè)小結(jié)

????端口就是計(jì)算機(jī)系統(tǒng)的"港口"端口號(hào)則是這些港口的編號(hào),端口設(shè)計(jì)需要考慮系統(tǒng)整體的數(shù)據(jù)吞吐量、資源占用、數(shù)據(jù)安全等問(wèn)題。
????從整體到局部,從系統(tǒng)到具體功能,端口設(shè)計(jì)建設(shè)和港口設(shè)計(jì)建設(shè)都是可以相互參考、相互借鑒的,您能再給出一些具體的實(shí)例嗎?歡迎在評(píng)論區(qū)或者留言交流~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容