Skip to content

【计算机网络】I/O多路复用:select、poll、epoll #2

@TenYearsWay

Description

@TenYearsWay

最简单的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 多路复用

从一对一,为了服务更多用户,如何做呢?多对一。

  • 多进程模型。多个客户端,对应一台服务器上的多个进程。一个客户端对应一个进程。
  • 多线程模型。多个客户端,对应一台服务器上的一个进程的多个线程。一个客户端对应一个线程。
  • 多路复用。多个客户端,对应一台服务器上的一个进程,但是不需要像多线程模型一样,开那么多个线程。只需要开一个线程就可以了。多个客户端对应这一个线程,这一个进程就可以。

参考文章:小林coding 9.2 I/O 多路复用:select/poll/epoll

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions