1
missdeer 2021-04-19 07:18:49 +08:00 via Android
客户端侧不同连接不同端口
|
2
AngryPanda 2021-04-19 09:02:07 +08:00 1
开启多线程下载:
``` axel -n 20 https://mirrors.163.com/ubuntu-releases/20.10/ubuntu-20.10-live-server-amd64.iso ``` 另外开个终端看端口 `netstat -antp | grep axel`, 输出类似于: ``` tcp 0 0 192.168.0.101:50326 125.77.20.37:80 ESTABLISHED 18142/axel tcp 0 0 192.168.0.101:48718 183.146.17.167:80 ESTABLISHED 18142/axel tcp 0 0 192.168.0.101:56402 106.225.229.135:80 ESTABLISHED 18142/axel tcp 0 0 192.168.0.101:48720 183.146.17.167:80 ESTABLISHED 18142/axel tcp 0 0 192.168.0.101:52922 60.174.42.166:80 ESTABLISHED 18142/axel tcp 0 0 192.168.0.101:58068 183.146.17.165:80 ESTABLISHED 18142/axel tcp 0 0 192.168.0.101:50356 125.77.20.37:80 ESTABLISHED 18142/axel tcp 0 0 192.168.0.101:48712 183.146.17.167:80 ESTABLISHED 18142/axel tcp 0 0 192.168.0.101:58060 183.146.17.165:80 ESTABLISHED 18142/axel tcp 0 0 192.168.0.101:58094 183.146.17.165:80 ESTABLISHED 18142/axel tcp 0 0 192.168.0.101:50340 125.77.20.37:80 ESTABLISHED 18142/axel tcp 0 0 192.168.0.101:36068 183.146.17.166:80 ESTABLISHED 18142/axel tcp 0 0 192.168.0.101:33660 106.225.229.134:80 ESTABLISHED 18142/axel tcp 0 0 192.168.0.101:48234 125.77.20.38:80 ESTABLISHED 18142/axel tcp 0 0 192.168.0.101:50324 125.77.20.37:80 ESTABLISHED 18142/axel tcp 0 0 192.168.0.101:44112 60.174.42.167:80 ESTABLISHED 18142/axel tcp 0 0 192.168.0.101:53444 60.174.42.165:80 ESTABLISHED 18142/axel tcp 0 0 192.168.0.101:52910 60.174.42.166:80 ESTABLISHED 18142/axel tcp 0 0 192.168.0.101:33686 106.225.229.134:80 ESTABLISHED 18142/axel tcp 0 0 192.168.0.101:48242 125.77.20.38:80 ESTABLISHED 18142/axel ``` |
3
ebingtel 2021-04-19 09:02:30 +08:00
取决于用了几个连接……多连接的话,客户端是从多个端口发出请求
|
4
zongren 2021-04-19 09:18:50 +08:00
http 无状态,取决于你的 header 里有没有设备唯一标识
|
5
no1xsyzy 2021-04-19 09:25:19 +08:00
客户端用同一个端口能算是并发请求吗?
五元组唯一确定一个连接 |
6
jorneyr 2021-04-19 09:40:51 +08:00
每个连接在客户端都有自己独立的、唯一的、不冲突端口
|
7
abersheeran 2021-04-19 09:42:13 +08:00
多线程下载能提高速度的原因就是用了多个 TCP 信道。
|
8
ericls 2021-04-19 10:20:10 +08:00 via iPhone
看客户端的具体实现
|
9
ch2 2021-04-19 10:24:21 +08:00 via iPhone
多连接就是多端口,不开多连接就只有一个端口
|
10
caola 2021-04-19 10:25:12 +08:00
http2 应该是一个端口通道吧
|
11
est 2021-04-19 10:33:44 +08:00
这个情况可以讨论的
1. 如果客户端有多个 IP,一般不会来自同一个端口。但是可以做到 2. 如果服务器端有多个 IP,可以做到客户端来自同一个端口 3. 传输协议如果是 h2 之类的支持复用的,那么多半是来自同一个端口 |
12
zhengxiaowai 2021-04-19 13:42:16 +08:00
HTTP/1.1 只能是 ping-pong 模式,所以只能是多个链接。。。
|
13
newmlp 2021-04-19 13:48:11 +08:00
http1.1 肯定是多个端口,因为每个 tcp 链接算一个会话
|
14
ysc3839 2021-04-19 19:40:34 +08:00 via Android
一般口头上说的“多线程下载”其实指的是多连接下载,在这个语境下是从不同端口发出去的。
|
15
css3 2021-04-19 19:44:57 +08:00
顺着再请教下这个问题,多个线程下载同一个文件,是要把一个文件拆成多份吗?最后再合并成一个吗?
|