在tcp協議中,有埠(port)的概念,很多人都不知道埠到底是什麼。之前介紹過實體地址,也就是網絡卡位址,做個不恰當的比喻,實體地址(mac)位址,相當於身份證(唯一),家庭位址是幾幢幾單元相當於ip位址,那麼如果送快遞的話,還是不能夠得知你的具體位址,無法將快遞送達,因為一幢樓的乙個單元裡的住戶很多,只有知道你是哪層樓哪個房間的住戶,才能送達,比如405室,那麼405就相當於tcp協議的埠了。
ip能鎖定一台物理機器,對應著一張網絡卡,外界發來的資料報網絡卡都會接收。但是問題來了,網絡卡給程式提供了介面,你監聽一下我,要是有訊息來了,我就**給你。這樣應用程式就能收到資料了。但是問題來了,程式a和程式b都需要監聽網絡卡接髮資料,網絡卡說那我把接到的資料都發給你兩,你們自己看著辦吧。好,小a小b都接受了。但是又來了cdef......,不行了,每個包都被發到了所有應用程式,每個應用程式都累得不行,最終垮了。
好,那網絡卡說我給你們加個表示吧,我們之間可以用乙個號碼來作為標識,我和小a之間就用1來標識,如果外界發給1號標識的資料我就**給你,你監聽我的時候得告訴我你監聽的時1,我就**1的資料報給你。好了其他的bcd...都自己弄乙個標識號,只要不重複就行。這樣大家都省事了。
最後設計到安全,乙個標識號只能被乙個應用程式監聽,因為如果小a程式和小b同時監聽乙個標識號號,那就壞了,我傳的資料都被ab接到,這樣資料安全性就沒辦法保證了。
在應用層,多個應用層程式同時執行,如a,b,c,d。
舉個例子,a應用程式高層協議用的是ftp,如果接收到乙太網資料e後,mac位址與ip位址都驗證,那麼如果沒有埠,a,b,c,d 四個應用層程式會監聽e資料。如果加上埠,而且e的埠是ftp的埠,那麼只有a會接收此資料。
常用埠如下:
卿萃科技
你知道Python 嗎?
python 是乙個高層次的結合了解釋性 編譯性 互動性和物件導向的指令碼語言。python 的設計具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。python 是一種解釋型語言 這意味著開發過程中沒有了編譯這個環節。類似於php和perl...
你知道CSS Hack嗎?
一般來說是針對不同的瀏覽器寫不同的css,就是 css hack。css hack常見的有三種形式 屬性hack 選擇符hack 條件注釋hack,hack主要針對ie瀏覽器 例如 1 條件hack color red 條件注釋只有在ie瀏覽器下才能執行,這個 在非ie瀏覽下被當做注釋視而不見。可以...
你知道 typeof void 嗎?
void 也是.net中的一種型別,只不過在c 中看不到 system.void 這種type,而在il這一層是可以看到的。如果我們要通過反射判斷乙個方法是否有返回值,比較直觀的解決辦法好像是這樣 methodinfo originmethod if originmethod.returntype ...