Hi~ 想不到沒人回XD
當初小弟自學也有遇到同樣類似困惑
原來是我少看了一句話
相信你也是的
首先回答你的問題
答案是1
你的理解錯了
不過我猜你應該是少看了一句話
就是每個app運行時所開啟的80, 443 port
你看到每個常見的port 都是server端所開啟的port
不是client端的
今天我們user(使用者)打開瀏覽器上到某個網站
假設我今天上google好了
我就是client端, google是server端
server端開啟了443port 運行HTTPS服務
client端則會在大於1024以上的port隨機開啟一個port進行連線
通常是被稱作為Ephemeral ports(短暫開啟的port)
廣義上說1024~65535 port都算是Ephemeral ports
狹義一點來說Ephemeral ports有其他意思
並且在不不同的作業系統中(譬如不同Linux發行版,win XP,win 10..)
跟server端進行溝通時, client所可能會開啟的port range是不一樣的
所以你開了很多瀏覽器
開了很多很多很多的頁面
你的電腦的80 port其實都不會被開啟
而是在1024~65535之間開了很多個port
最後推薦一下
學習TCP/IP路上 可以學wireshark
wireshark是一個非常好用輔助學習的工具XD
他可以把很多理論具現化給你看 會比較好理解
封包是不會騙人的
※ 引述《gowrite (gowrite)》之銘言:
: 不好意思, 新手自學網路
: 最近自學到 TCP/IP stack
: 到 application 與 transportation layer 如何運作的地方
: 但是這邊有個地方 , 書上沒有講解 , google 也不知道如何描述這個問題
: 就是資料上都會說 , port 總數有 65536 個,
: TCP 會到這邊依照 port 編號 , 把不同的 pack 傳給各個 App ,
: 前段部分因為歷史的因素, 所以有被預設為某些服務 ,
: 例如 : 80 HTTP , 443 HTTPs 之類的
: 那我的問題是
: 照理說一個 port 只有一個 app 可以佔著使用
: 例如我開一個 HTTP server 一直 listening localhost:5500
: 那我要開第二個 server 就無法 listening port 5500
: 那為什麼我可以同時開 chrome 及 firefox 開很多頁面 ,
: 同時訪問很多 HTTP 或 HTTPs 的網頁??
: 照理說 同一個 80 port
: 應該只有一個 browser page 可以佔住來訪問一個 HTTP 的頁面對吧?
: 那同一個瀏覽器 , 開另一個新的 page 訪問另一個 HTTP 的頁面 ,
: 那這個新的 page 使用的也是 80 port 嗎?
: 這個問題不太理解 ,
: 所以想問下面哪一個想法比較接近???
: 1. 我整個理解錯誤了嗎?
: 整個網路運作不是我想得這樣
: 2. 所有 browser 所有的 page 在訪問 HTTP 的頁面的時候都是使用 80 port
: 但是每個頁面不同的流量是靠更上層的 application layer 來處理 ,
: 把不同 page 的流量再分給不同的 page
: 但是這邊延伸出一個問題 ,
: 就是不同的瀏覽器怎麼去辨識哪一個才是自己的流量封包
: 3. 還是其實 80 port 只會給開瀏覽器的第一個 page 使用,
: 但是第二個之後的新 page 就是隨機占用其它後段的 port 了,
: 例如隨機使用 port 10000 , 因此 HTTP 不會只使用 80 port , 是這樣嗎?
: 請問哪一個才對呢?
: 希望有版友可以幫忙解惑,
: 回答我這個網路 ABC 等級的問題 , 謝謝