什么是端口?


"端口"是英文port的意譯,可以認為是設備與外界通訊交流的出口。

擴展資料

一、端口作用

1、一台擁有IP地址的主機可以提供許多服務,比如Web服務、FTP服務、SMTP服務等,這些服務完全可以通過1個IP地址來實現。那么,主機是怎樣區分不同的網絡服務呢,顯然不能只靠IP地址,因為IP 地址與網絡服務的關系是一對多的關系。實際上是通過“IP地址+端口號”來區分不同的服務的。
2、需要注意的是,端口並不是一一對應的。比如你的電腦作為客戶機訪 問一台WWW服務器時,WWW服務器使用“80”端口與你的電腦通信,但你的電腦則可能使用“3457”這樣的端口。

二、端口在入侵中的作用

1、有人曾經把服務器比作房子,而把端口比作通向不同房間(服務)的門,如果不考慮細節的話,這是一個不錯的比喻。

2、入侵者要占領這間房子,勢必要破門而入(物理入侵另說),那么對於入侵者來說,了解房子開了幾扇門,都是什么樣的門,門后面有什么東西就顯得至關重要。

3、入侵者通常會用掃描器對目標主機的端口進行掃描,以確定哪些端口是開放的,從開放的端口,入侵者可以知道目標主機大致提供了哪些服務,進而猜測可能存在的漏洞,因此對端口的掃描可以幫助我們更好的了解目標主機,而對於管理員,掃描本機的開放端口也是做好安全防范的第一步。

 

"端口"是英文port的意譯,可以認為是設備與外界通訊交流的出口。

在網絡技術中,端口(Port)大致有兩種意思:

1、物理意義上的端口,比如,ADSL Modem、集線器、交換機、路由器用於連接其他網絡設備的接口,如RJ-45端口、SC端口等等;
2、邏輯意義上的端口,一般是指TCP/IP協議中的端口,端口號的范圍從0到65535,比如用於瀏覽網頁服務的80端口,用於FTP服務的21端口等等

 

如果把IP地址比作一間房子 ,端口就是出入這間房子的門。真正的房子只有幾個門,但是一個IP地址的端口可以有65536(即:2^16)個之多,端口是通過端口號bai標記的,端口號只有整數,范圍是從0 到65535(2^16-1)行

 

1、硬件端口

CPU通過接口寄存器或特定電路與外設進行數據傳送,這些寄存器或特定電路稱之為端口。其中硬件領域的端口又稱接口,如:並行端口、串行端口等。

 

 

在Internet上,各主機間通過TCP/TP協議發送和接收數據報,各個數據報根據其目的主機的ip地址來進行互聯網絡中的路由選擇。可見,把數據報順利的傳送到目的主機是沒有問題的。問題出在哪里呢?我們知道大多數操作系統都支持多程序(進程)同時運行,那么目的主機應該把接收到的數據報傳送給眾多同時運行的進程中的哪一個呢?顯然這個問題有待解決,端口機制便由此被引入進來。
本地操作系統會給那些有需求的進程分配協議端口(protocal port,即我們常說的端口),每個協議端口由一個正整數標識,如:80,139,445,等等。當目的主機接收到數據報后,將根據報文首部的目的端口號,把數據發送到相應端口,而與此端口相對應的那個進程將會領取數據並等待下一組數據的到來。說到這里,端口的概念似乎仍然抽象,那么繼續跟我來,別走開。
端口其實就是隊,操作系統為各個進程分配了不同的隊,數據報按照目的端口被推入相應的隊中,等待被進程取用,在極特殊的情況下,這個隊也是有可能溢出的,不過操作系統允許各進程指定和調整自己的隊的大小。
不光接受數據報的進程需要開啟它自己的端口,發送數據報的進程也需要開啟端口,這樣,數據報中將會標識有源端口,以便接受方能順利的回傳數據報到這個端口

 

每個端口對應着相應的服務。
你開21端口就是ftp
你開80就可以做網頁那種訪問
qq是4000
你關掉了 qq就完蛋了

 

端口號---具有網絡功能的應用軟件的標識號。注意,端口號是不固定的,即可以由用戶手工可以分配(當然,一般在軟件編寫時就已經定義)。當然,有很多應用軟件有公認的默認的端口,比如FTP:20和21,HTTP:80,TELNET:23等等,這里就不一一列舉了。一個軟件可以擁有多個端口號,這證明這個軟件擁有不止一個網絡功能。
0-1023是公認端口號,即已經公認定義或為將要公認定義的軟件保留的,而1024-65535是並沒有公共定義的端口號,用戶可以自己定義這些端口的作用。
那么端口號到底有什么作用呢?請大家繼續往下看。
當一台電腦啟動了一個可以讓遠程其他電腦訪問的程序,那么它就要開啟至少一個端口號來讓外界訪問。我們可以把沒有開啟端口號的電腦看作是一個密封的房間,密封的房間當然不可能接受外界的訪問,所以當系統開啟了一個可以讓外界訪問的程序后它自然需要在房間上開一個窗口來接受來自外界的訪問,這個窗口就是端口。
那么為什么要給端口編號來區分它們呢,既然一個程序開了一個端口,那么不是外部信息都可以通過這個開啟的端口來訪問了嗎?答案是不可以。為什么呢?因為數據是用端口號來通知傳輸層協議送給哪個軟件來處理的,數據是沒有智慧的,如果很多的程序共用一個端口來接受數據的話,那么當外界的一個數據包送來后傳輸層就不知道該送給哪一個軟件來處理,這樣勢必將導致混亂。
上一次提到提到在一個經過OSI第四層傳輸層封裝的數據段的第四層報頭里包含兩個端口號,既源端口號和目的端口號,目的端口號的作用上面已經介紹了,下面讓我們了解一下原端口號吧。
源端口號一般是由系統自己動態生成的一個從1024-65535的號碼,當一台計算機A通過網絡訪問計算機B時,如果它需要對方返回數據的話,它也會隨機創建一個大於1023的端口,告訴B返回數據時把數據送到自己的哪個端口,然后軟件開始偵聽這個端口,等待數據返回。而B收到數據后會讀取數據包的源端口號和目的端口號,然后記錄下來,當軟件創建了要返回的數據后就把原來數據包中的原端口號作為目的端口號,而把自己的端口號作為原端口號,也就是說把收到的數據包中的原和目的反過來,然后再送回A,A再重復這個過程如此反復直到數據傳輸完成。當數據全部傳輸完A就把源端口釋放出來,所以同一個軟件每次傳輸數據時不一定是同一個源端口號。(https://zhidao.baidu.com/question/3449925.html?sort=11&rn=5&pn=20#wgt-answers)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM