[问答] 基础网络问题 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