作者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/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
※ 发信站: 批踢踢实业坊(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