理解服务器是如何区分 I/O 密集型和 CPU 密集型任务的。
Linux I/O 复用
I/O 复用虽然能同时监听多个文件描述符, 但它本身是阻塞的 。并且当多个文件描述符同时就绪时,如果不采取额外的措施,程序就只能按顺序依次处理其中的每个文件描述符,这使得服务器程序看起来像是串行工作的。要实现并发,只能使用多进程或多线程等编程手段。
Linux 服务器程序规范
Linux 高级 I/O 函数
Linux 提供的高级 IO 函数,虽然不常用,但能提供优异的性能。
使用 Wireshark 观察访问 Internet 上的 Web 服务器
使用 Wireshark 来抓取整个流程,以粗浅的理解 TCP/IP。
Linux 网络编程基础 API
熟悉网络编程基础 API,理解与 TCP/IP 协议栈的关系。
使用 Wireshark 观察 TCP 协议
正是 TCP 优秀的容错能力,才能够保证可靠的数据传输,不得不了解。
使用 Wireshark 观察 ARP 协议
ARP 协议(处于数据链路层)的工作原理是:
- 当前主机以广播的形式发送 ARP 请求,请求包中包含目标机器的 ip 地址
- 目标机收到请求后,会返回 ARP 应答,应答包中包含目标机器的 MAC 地址
使用 Wireshark 观察 DNS 协议
DNS 服务器是多个按层级分布的服务器系统,每个服务器负责对应的域名到 IP 地址的映射关系。
使用 Wireshark 观察 IP 协议
IP 协议是位于网络层的核心协议,需要理解。