水晶玻璃鞋 7 網路埠

2021-09-30 09:17:46 字數 2966 閱讀 5129

如果把ip位址比作一間房子 ,埠就是出入這間房子的門。真正的房子只有幾個門,但是乙個ip位址的埠 可以有65536(即:2^16)個之多!埠是通過埠號來標記的,埠號只有整數,範圍是從0 到65535(2^16-1)。  在internet上,各主機間通過tcp/ip協議傳送和接收資料報,各個資料報根據其目的主機的ip位址來進行網際網路絡中的路由選擇。可見,把資料報順利的傳送到目的主機是沒有問題的。問題出在**呢?我們知道大多數作業系統都支援多程式(程序)同時執行,那麼目的主機應該把接收到的資料報傳送給眾多同時執行的程序中的哪乙個呢?顯然這個問題有待解決,埠機制便由此被引入進來。  本地作業系統會給那些有需求的程序分配協議埠(protocol port,即我們常說的埠),每個協議埠由乙個正整數標識,如:80,139,445,等等。當目的主機接收到資料報後,將根據報文首部的目的埠號,把資料傳送到相應埠,而與此埠相對應的那個程序將會領取資料並等待下一組資料的到來。說到這裡,埠的概念似乎仍然抽象,那麼繼續跟我來,別走開。  埠其實就是隊,作業系統為各個程序分配了不同的隊,資料報按照目的埠被推入相應的隊中,等待被程序取用,在極特殊的情況下,這個隊也是有可能溢位的,不過作業系統允許各程序指定和調整自己的隊的大小。

不光接受資料報的程序需要開啟它自己的埠,傳送資料報的程序也需要開啟埠,這樣,資料報中將會標識有源埠,以便接受方能順利地回傳資料報到這個埠。

埠詳解:

由於每種網路的服務功能都不相同,因此有必要將不同的封包送給不同的服務來處理。

每乙個 tcp 連線都必須由一端(通常為 client )發起請求這個 port 通常是隨機選擇大於 1024 以上(因為0-1023有特殊作用,被預定,如ftp、http、smtp等)的 port 號來進行!其 tcp 封包會將(且只將) syn 旗標設定起來!這是整個聯機的第乙個封包;

· 如果另一端(通常為 server ) 接受這個請求的話(當然囉,特殊的服務需要以特殊的 port 來進行,例如 ftp 的 port 21 ),則會向請求端送回整個聯機的第二個封包!其上除了 syn 旗標之外同時還將 ack 旗標也設定起來,並同時在本機端建立資源以待聯機之需;

· 然後,請求端獲得

服務端第乙個響應封包之後,必須再響應對方乙個確認封包,此時封包只帶 ack 旗標(事實上,後繼聯機中的所有封包都必須帶有 ack 旗標);

· 只有當服務端收到請求端的確認( ack )封包(也就是整個聯機的第三個封包)之後,兩端的聯機才能正式建立。這就是所謂的 tcp 聯機的'三次握手( three-way handshake )'的原理。   

經過三向交握之後,呵呵!你的 client 端的 port 通常是高於 1024 的隨機取得的 port ,至於主機端則視當時的服務是開啟哪乙個 port 而定,例如 www 選擇 80 而 ftp 則以 21 為正常的聯機通道!

埠的作用

主機是怎樣區分不同的網路服務呢?顯然不能只靠ip位址,因為ip 位址與網路服務的關係是一對多的關係。實際上是通過「ip位址+埠號」來區分不同的服務的。

網路中可以被命名和定址的通訊埠是作業系統的一種可分配資源。由網路osi(開放系統互聯參考模型,opensysteminterconnectionreferencemodel)七層協議可知,傳輸層與網路層最大的區別是傳輸層提供程序通訊能力,網路通訊的最終位址不僅包括主機位址,還包括可描述程序的某種標識。所以tcp/ip協議提出的協議埠,可以認為是網路通訊程序的一種識別符號。

應用程式(調入記憶體執行後一般稱為:程序)通過系統呼叫與某埠建立連線(binding,繫結)後,傳輸層傳給該埠的資料都被相應的程序所接收,相應程序發給傳輸層的資料都從該埠輸出。在tcp/ip協議的實現中,埠操作類似於一般的i/o操作,程序獲取乙個埠,相當於獲取本地唯一的i/o檔案,可以用一般的讀寫方式訪問類似於檔案描述符,每個埠都擁有乙個叫埠號的整數描述符,用來區別不同的埠。

一種常見的技術是把乙個埠重定向到另乙個位址。例如預設的http埠是80,不少人將它重定向到另乙個埠,如8080。如果是這樣改了。實現重定向是為了隱藏公認的預設埠,降低受破壞率。這樣如果有人要對乙個公認的預設埠進行攻擊則必須先進行埠掃瞄。大多數埠重定向與原埠有相似之處,例如多數http埠由80變化而來:81,88,8000,8080,8888。同樣pop的埠原來在110,也常被重定向到1100。也有不少情況是選取統計上有特別意義的數,象1234,23456,34567等。許多人有其它原因選擇奇怪的數,42,69,666,31337。近來,越來越多的

遠端控制木馬(remoteaccesstrojans,rats)採用相同的預設埠。如netbus的預設埠是12345。blaker.swopes指出使用重定向埠還有乙個原因,在unix系統上,如果你想偵聽1024以下的埠需要有

root許可權。如果你沒有root許可權而又想開web服務,你就需要將其安裝在較高的埠。此外,一些isp的

防火牆將阻擋低端口的通訊,這樣的話即使你擁有整個機器你還是得重定向埠。

周知埠是眾所周知的埠號,範圍從0到1023,其中80埠分配給w ww服務,21埠分配給ftp服務等。我們在ie的位址列裡輸入乙個**的時候是不必指定埠號的,因為在預設情況下www服務的埠 號是「80」。

網路服務是可以使用其他埠號的,如果不是預設的埠號則應該在 位址列上指定埠號,方法是在位址後面加上冒號「:」(

半形),再加上埠 號。比如使用「8080」作為www服務的埠,則需要在位址列裡輸入「**:8080」。

但是有些系統協議使用固定的埠號,它是不能被改變的,比如139 埠專門用於netbios與tcp/ip之間的通訊,不能手動改變。

檢視埠

在windows 2000/xp中,可以在命令提示符下使用「netstat /na」查 看系統埠狀態,可以列出系統正在開放的埠號及其狀態;

更多詳情參考:

水晶玻璃鞋 8 埠對映

埠對映過程就如同 你家在乙個小區裡b棟2410室,你朋友來找你,找到小區門口,不知道你住哪層哪號?就問守門的保安,保安很客氣的告訴了他你家詳細門牌,所以你朋友很輕鬆的找到了你家。這個過程就是外網訪問內網通過埠對映的形象比喻.內網的一台電腦要上網際網路對外開放服務或接收資料,都需要埠對映。閘道器傳送資...

20155232《網路對抗》Exp7 網路欺詐防範

本實踐的目標理解常用網路欺詐背後的原理,以提高防範意識,並提出具體防範方法。具體實踐有 1 簡單應用set工具建立冒名 1分 2 ettercap dns spoof 1分 3 結合應用兩種技術,用dns spoof引導特定訪問到冒名 1.5分 netstat tupln grep 80指令檢視80...

7 網路工具

07 network contents 目錄 netstat 命令用於顯示各種網路相關資訊,如網路連線,路由表,介面狀態 inte ce statistics masquerade 連線,多播成員 multicast memberships 等等。列出所有埠 包括監聽和未監聽的 netstat a列...