
我偶然發現本文與我讀過的任何模棱兩可的文章不同,它指出我的
“電腦背面的鉛筆細網路電纜(或無線網路適配器)內部包含 65,536 個微觀路徑。”
我總是被告知連接埠只是一個數字(而不是電線),用於區分不同的虛擬連接,所以這兩種解釋如何共存?
- 另外,這並不意味著當連接埠不被使用時,某些網路電纜沒有被用來傳輸訊號,不是嗎?
文章還說
資料包需要在每個網路節點停止,並且:
- 找到一個開放的端口,
- 通過允許其通過該連接埠的識別測試,如果沒有,
- 移動到下一個連接埠並重試,直到允許通過收費站。
- 我認為資料包包含特定的目標端口,那麼為什麼它們會搜尋新的開放端口?
- 最後,通過身份測試需要什麼?
答案1
我總是被告知連接埠只是一個數字(而不是電線),用於區分不同的虛擬連接,那麼這兩種解釋如何共存?
你引用的段落內容很重隱喻。在傳輸層,連接埠是只是資料包中的數字;它們不是物理的。
物理層或「連結」層不知道任何事物關於 TCP/UDP 端口,也不關於 IP 位址 – 它僅將一系列位元從一端傳輸到另一端。
另外,這並不意味著當連接埠不被使用時,某些網路電纜沒有被用來傳輸訊號,不是嗎?
不會。在有線乙太網路中,只有四對電線-舊電纜中有兩對;絕對不是65536;它們都是同時使用的。
文章也說 <...> 。我認為資料包包含特定的目標端口,那麼為什麼它們會搜尋新的開放端口?
至此,文章慢慢跨越了「隱喻」和「牛逼「廢話」之間的界線。
TCP 連接埠號碼是在建立連線時指派的,並且僅由該連線的兩端使用。同時,路由發生在「網際網路」層,僅使用IP位址,而不關注IP封包中包含的資料或以任何方式修改它。
(唯一的例外是執行NAPT 時– 例如,透過您的家庭路由器,使多台電腦共用一個IP 位址。在這種情況下,您的電腦收到的封包可能具有與最初傳送的封包不同的TCP 或UDP 連接埠號碼.)
識別測試可能參考網路防火牆。但是,被防火牆規則阻止的資料包將不是「去尋找下一個連接埠」;它們只會被丟棄。
答案2
這篇文章寫得真厲害。它使用隱喻語言和「流行知識」來嘗試解釋網路概念。有 65,536 個可尋址端口,但它們並不作為物理光纖線存在,也不作為文章試圖描述的任何內容存在。可用連接埠的數量在某種程度上是任意得出的(16 位元整數在當時可能有意義),並且可能在 RFC 中進行了標準化。
我不是網路專家,但我很確定網路硬體(交換器等)使用防火牆類型的規則來確定特定連接埠上的流量是否應該沿著線路轉送(例如,您的 ISP 可以阻止流量)在Bittorrent 使用的連接埠上,或者您的家庭路由器可能會阻止該連接埠進行ping)。
答案3
“電腦背面的鉛筆細網路電纜(或無線網路適配器)內部包含 65,536 個微觀路徑。”
TCP 負責保持流量通過兩端的連接埠分開,並部分抽象序列介質上許多多路復用「連接」之一的概念。 TCP 使用「套接字」的概念,即來源 IP+連接埠和目標 IP+連接埠。同一介質上可能存在多個套接字,但另一端的 TCP/IP 堆疊會將它們分類,並且兩個套接字上的流量不會相互混合。所以,從某種意義上來說,它是一條途徑。
TCP 和 UDP 使用連接埠和套接字的概念。其他協議,例如較低層的IP,則沒有。並非所有從網路介面發出的內容都需要是 TCP 或 UDP。
資料包需要在每個網路節點停止,並且:
找到一個開放的端口,通過識別測試將允許其通過該端口,如果沒有,則移動到下一個端口並重試,直到允許其通過收費站。
這對我來說沒有意義。通常,當應用程式開啟套接字時,它可以指定一個連接埠(如果該連接埠正在使用,則套接字會開啟嘗試將失敗)或採用核心分配的連接埠(伺服器通常指定連接埠號,而伺服器的客戶端通常採用隨機內核分配的連接埠)。
也許上面描述的是高層協定的一部分。我需要更多背景才能完全理解上述陳述。