最简单的socket模型
如何服务更多的用户?
可以通过以下方法简化记忆内存占用和网络带宽的单位及关系:
1. 内存占用单位
基础单位:
1 Byte (B) = 8 bits (b)
记法:"B > b" (1 Byte 包含更多信息)。进制规律(1 KB = 1024 B):
记法:"K-M-G-T"(每升一级乘 1024)。
1. KB:Kilobyte(千字节)
2. MB:Megabyte(百万字节)
3. GB:Gigabyte(十亿字节)
4. TB:Terabyte(万亿字节)
2. 网络带宽单位
基础单位:
记法:"b = 带宽小写;B = 存储大写"。
1. 1 bps:1 bit per second
2. 1 kbps:1 kilobit per second = 1000 bps(注意<font style="color:#DF2A3F;">带宽单位是十进制</font>,不是 1024)。
3. 1 Mbps = 1000 kbps = 1,000,000 bps。
3. 快速记忆对比
类型 | 单位 | 缩写 | 进制 |
---|---|---|---|
内存存储 | Byte (字节) | B | 1024 |
网络带宽 | bit (比特) | b | 1000 |
记住:
存储用 B(Byte),容量较大,按 1024 递增。
带宽用 b(bit),流量较小,按 1000 递增。
单位大写区分性质:B(存储);b(传输)。
多进程模型
多线程模型
I/O 多路复用
从一对一,为了服务更多用户,如何做呢?多对一。
- 多进程模型。多个客户端,对应一台服务器上的多个进程。一个客户端对应一个进程。
- 多线程模型。多个客户端,对应一台服务器上的一个进程的多个线程。一个客户端对应一个线程。
- 多路复用。多个客户端,对应一台服务器上的一个进程,但是不需要像多线程模型一样,开那么多个线程。只需要开一个线程就可以了。多个客户端对应这一个线程,这一个进程就可以。