2015-10-22 198 views
0

這是我關於端口和端口號(糾正我,如果我不正確的)理解:端口和端口號的關係?

  • 「端口」是傳輸層

  • 「端口號」中的一個通信端點是分配給端口的地址。

是一個港口和一個這樣的網絡接口和IP地址之間的端口號之間的關係,在給定一個端口,我們可以改變分配給它的端口號,類似於有可能更改分配給網絡接口的IP地址?

或者是更像網絡接口和MAC地址的關係,因爲網絡接口的MAC地址幾乎不會改變,更像是身份而不是地址?

回答

1

將IP地址視爲建築物的街道地址,將端口號作爲該建築物的房間號碼。不同的建築物有不同的街道地址,但它們都可以有相同的房間號碼。

+0

謝謝。區分端口和其端口號是否正確,就像網絡接口及其IP地址或MAC地址一樣?我的問題是端口號是否可以改變。 – Tim

+0

端口號是0到65535.你對改變數字的問題沒有任何意義。應用程序決定它將響應哪個端口號。例如,默認情況下,大多數Web服務器都會響應HTTP端口80。大多數Web服務器應用程序都允許您將其更改爲不同的端口號,但不會更改端口號;您正在更改Web服務器響應的端口。基本上,網絡服務器改變了大樓中的房間,但它並不改變房間上的房間號碼。 –

+0

在應用程序保留端口號並開始使用端口號之前,端口號是毫無意義的。所有65,536個端口號都可以發送到主機上,但除非應用程序決定使用其中一個端口號,否則不會發生任何事情。當你敲門房間時,如果房間空了,沒人回答。只有當應用程序佔用房間時,端口號才意味着什麼。端口號僅僅是一個概念,讓流量流向保留該端口號的特定應用程序。 –

1

我假設您在這裏詢問TCP和/或UDP端口。

在這種情況下,端口是16位數字,它允許在您的操作系統中運行的許多應用程序都使用像TCP和UDP這樣的協議而不會相互干擾。一個應用程序可能使用端口2000來接收數據,而另一個應用程序可能使用端口2000.另外,當您的TCP/IP協議棧接收到一個IP數據包時,如果它是TCP或UDP,並且應用程序已經綁定了該端口號該本地IP地址,或沒有IP地址)數據包中的數據可以被路由到正確的應用程序。

當一個應用程序建立一個傳出連接時,它會綁定一個本地端口並將其用作傳出TCP或UDP數據包的源端口,當另一端(對等端)響應時,應答數據包將返回將目標端口設置爲本地源端口,確保將回復傳遞迴正確的應用程序。

有一些所謂的衆所周知的端口,例如端口80.Web服務器通常在端口80上偵聽,所有常用的服務通常都有一個衆所周知的端口,以便這些服務的客戶端知道將哪個端口用作目的地端口發送數據包時。

要回答你有關MAC地址類比的問題......端口號有點像操作系統中本地應用程序的地址,就像你的IP是你的操作系統或計算機的地址一樣互聯網或您的網絡接口卡的MAC地址是本地網絡上您的操作系統或計算機的地址(儘管實際上該網卡的地址完全準確,因爲計算機可以在不同的物理網絡上有多個網卡)。

TCP和UDP實際上是傳輸層協議,所以你可以說端口是這方面的通信端點,但是它們與IP地址(或其他協議,如果它們被封裝在別的東西中)一起工作。

+0

謝謝。區分端口和其端口號是否正確,就像網絡接口及其IP地址或MAC地址一樣?我的問題是端口號是否可以改變。 – Tim

+0

你的意思是沒有給端口分配端口號(考慮將IP地址分配給網絡接口)?端口號是否永遠固定在端口號上? – Tim