
我知道主機/電腦中將有多個連接埠用於我在網路上託管的每個服務。
但我想了解這些內部連接埠是什麼?
下面是我對網路連接埠的理解。如果我錯了請糾正我。添加細節以使其更加清晰。
它們可能是軟體構造,主要是作業系統網路元件內部的佇列/緩衝區,每當電腦上託管網路服務(Web 服務、檔案傳輸服務等)時就會動態建立。每個網路服務都將偵聽各自的連接埠(以接收資料),並且還可以存取寫入該連接埠(以發送資料)。 [就像有界緩衝區問題一樣]
當需要發送資料時—
網路服務(應用程式)將對作業系統進行系統呼叫(例如 send()),將資料寫入緩衝區並通知傳輸協定。這樣 TCP/UDP 協定就會從緩衝區中取出資料並將其分段,然後將其傳遞到網路堆疊。
當需要接收資料時-
當資料通過 NIC 到達主機時,將從作業系統中的某些低階網路元件讀取資料並向上傳遞網路堆疊。當作業系統的傳輸層元件讀取它時,它將資料放入與該特定連接埠號碼關聯的佇列中。以便偵聽該連接埠的應用程式(網路服務)可以讀取資料。
答案1
幾乎,但不完全正確。
插座是具有緩衝區的軟體構造(每個套接字都有單獨的發送和接收佇列)。對於 TCP,每個連線都使用單獨的套接字。
連接埠只是用於多路分解的數位標籤——幫助作業系統選擇哪個套接字(或哪個接收緩衝區)應該接收傳入的封包。
每個套接字都與多個參數相關聯——協定、本地和遠端位址以及本地和遠端連接埠——並且所有這些參數都在查找接收到的資料包時使用。 (當位址相同時,至少有一個連接埠必須不同。但如果位址不同,則多個套接字可以使用相同的連接埠。)