作者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/cn.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
1F:推 birdy590: 对面都是80/443 但local port不一样啊 12/30 14:39
2F:→ armpaul: 你可以安装 Tomcat 看看 就知道 8080 port 跟 80 port 不 01/01 11:35
3F:→ armpaul: 同 通常开发环境都用 8080 port 你爱用哪个port都可以设 01/01 11:36
4F:→ armpaul: 定 先占先赢 也请沿用大家习惯的用法 01/01 11:37
5F:→ armpaul: 不同作业系统 有不同的 the list of open ports 指令 01/01 11:57
6F:→ armpaul: 都列出来 自己可以观察看看 01/01 11:58
7F:→ armpaul: 我有些 application 开发经验 大概了解 http/https 01/01 12:07
8F:→ armpaul: request 处理的方式 你也可以看看这方面的书 01/01 12:08
9F:→ ickatw: 这80.443那不是对方的port麽?你本地port只能被一个程式独 01/02 08:38
10F:→ ickatw: 占那是本地的port.是这样理解? 01/02 08:38
11F:推 sses40416: 可以参考一下NAT 01/03 14:43
12F:→ sossospk: 80/443 是你目标的 port 你本机是用其他 port 去连的 , 01/08 22:12
13F:→ sossospk: 建议可以用鲨鱼截封包,你会更清楚 01/08 22:12