不好意思, 新手自學網路
最近自學到 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 等級的問題 , 謝謝