看板 Network 關於我們 聯絡資訊
※ 引述《prudent (prudent)》之銘言: : 如題 : 如果說同一台電腦上執行了使用相同 port 的網路程式 "通常" 同一個port不能被不同程式共用~ 更嚴謹一點講, 以 TCP 來說, 每一個 address/port pair 只能被 bind 一次 可以是單一address與某個特定port, 或是全部的address與某個port ex: 192.168.1.1:80 或 本機所有 *:80 如果想要特定的幾個address(非本機所有address), 那就要每個addr各別bind 若是 SCTP 的話, 就可以直接指定特某幾個addresses/port binding 一旦bind後就會被獨站, 因此不同程式不能共用相同的 addresses/port 不過理論上同一電腦上的不同address/port ex: 192.168.1.1:80 與 192.168.1.2:80 應可各別單獨被不同程式使用 (我沒試過, 不過應該可以) : 在系統上是如何辨別彼此的呢 : 收到的封包怎麼樣知道該丟給哪一個網路程式處理呢?? : 查書後,書上是寫說有紀錄一些 client 與 server 的訊息 應是以 source addr/port 與 dest addr/port 作辨別的依據 (我沒看到什麼書上有明確這麼寫, 但從 Linux 的 TCP 實作看起來是這樣 .__. 有誤還請其他高手指教) : 但是到底紀錄了什麼?? 以及紀錄在哪裡呢?? : 以下猜測 : 是記錄了 PID 相關的資訊嗎? 是紀錄在作業系統核心內嗎?? : 還是說記錄在封包哪面?? 系統自己利用 header 中的 saddr/port daddr/port 與系統內部維護的連線資訊來判斷~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.139.128.156