[問答] 基礎網路問題 port 相關

作者: gowrite (gowrite)   2019-12-30 14:07:49
不好意思, 新手自學網路
最近自學到 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 等級的問題 , 謝謝
作者: birdy590 (Birdy)   2019-12-30 14:39:00
對面都是80/443 但local port不一樣啊
作者: armpaul (armpaul叮了一聲新簡訊)   2018-01-01 11:35:00
你可以安裝 Tomcat 看看 就知道 8080 port 跟 80 port 不同 通常開發環境都用 8080 port 你愛用哪個port都可以設定 先佔先贏 也請沿用大家習慣的用法不同作業系統 有不同的 the list of open ports 指令都列出來 自己可以觀察看看我有些 application 開發經驗 大概了解 http/httpsrequest 處理的方式 你也可以看看這方面的書
作者: ickatw (ickatw)   2018-01-02 08:38:00
這80.443那不是對方的port麼?你本地port只能被一個程式獨佔那是本地的port.是這樣理解?
作者: sses40416 (KevoTW)   2018-01-03 14:43:00
可以參考一下NAT
作者: sossospk (MartyMa)   2018-01-08 22:12:00
80/443 是你目標的 port 你本機是用其他 port 去連的 ,建議可以用鯊魚截封包,你會更清楚

Links booklink

Contact Us: admin [ a t ] ucptt.com