作者gowrite (gowrite)
看板MIS
標題Fw: [問答] 基礎網路問題 port 相關
時間Mon Dec 30 14:12:50 2019
※ [本文轉錄自 Network 看板 #1U2PGtJJ ]
作者: gowrite (gowrite) 看板: Network
標題: [問答] 基礎網路問題 port 相關
時間: Mon Dec 30 14:07:49 2019
不好意思, 新手自學網路
最近自學到 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 等級的問題 , 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.227.179.163 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Network/M.1577686071.A.4D3.html
※ 編輯: gowrite (61.227.179.163 臺灣), 12/30/2019 14:08:44
※ 編輯: gowrite (61.227.179.163 臺灣), 12/30/2019 14:12:01
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 轉錄者: gowrite (61.227.179.163 臺灣), 12/30/2019 14:12:50
1F:推 goodga: 你又不是Server 你是client 開網頁... 12/30 14:15
2F:→ tomsawyer: 因為你通常是用4xxxx 以上的亂數port去連的 12/30 14:38
3F:→ fonzae: netstat 12/30 14:41
4F:→ slash66: 你搞錯了,建議你用Wireshark跑個http封包看一下就知道了 12/30 15:48
5F:→ slash66: ,可以多瞭解網路封包的傳輸方式跟內容,這實際上比較有 12/30 15:48
6F:→ slash66: 幫助 12/30 15:48
7F:推 kenwufederer: Client 連線不是用80 443… 12/30 16:21
8F:→ Klauhal: client用萬位數的port去連server的80/443 12/30 17:35
9F:推 EVGA: L4的port和L3的ip address一樣,有source和destination之分 12/30 18:22
10F:→ EVGA: Client用source 49152~65535 desitination 80, Server則反 12/30 18:25
11F:推 chang505: netstat 你就懂了 12/30 18:32
12F:→ eaegg: 會不會是THREADING? 12/30 23:26
13F:→ axuiolji: 因為你是client,同樓上說的,妳是用隨機port號去連線We 12/31 06:22
14F:→ axuiolji: bServer的 12/31 06:22
15F:→ eric00169: 用TCP VIEW打開看一下就知道問題了 12/31 08:42
16F:推 saitoh: source port看os與設定不同,不一定是49512開始 12/31 11:27
17F:→ Weky: 自學不是唸書就好 你實作一下就有答案 12/31 12:41
18F:推 yoyo178134: 再者 http 這種無狀態協議 跑完也就關掉了 要持續連結 01/14 18:52
19F:→ yoyo178134: 就得再開其他協議 01/14 18:52