2.3 网络分层下的优化指南
计算机网络的所有概念中,分层次的体系结构是最基本的概念。如图2-2所示,被广泛所知的分层模型有三种:第一是 OSI 网络七层模型,不过该模型并未被实际应用。第二是基于 TCP/IP 互联网的四层模型,但由于 TCP/IP 最下面的网络接口层并没有实质内容。所以介绍网络原理时,通常综合 OSI 和 TCP/IP 模型的优点,采用第三种五层协议的体系结构。
图2-2 计算机网络体系结构
2.3.1 网络分层简介
在本书的其他篇节中,出现的 L7、L4 等术语指的就 L7(应用层)、L4(传输层)。下面按照从上到下的顺序,以 OSI 模型为例,简单介绍各个分层的作用。
- 应用层(L7):该层的协议包括 HTTP、HTTPS、SSH 等。
- 表示层(L6):把数据转换为能与接收者的系统格式兼容并适合传输的格式。
- 会话层(L5):负责在数据传输中设置和维护节点的通信连接。
- 传输层(L4):对会话层及以上层提供端到端的传输服务,该层的代表协议为 TCP,如果为 TCP/IP 模型,该层还包括 UDP 协议。
- 网络层(L3):通过路由算法,为数据选择合适的路径,以实现网络中的互联功能,该层代表协议 IP。
- 数据链路层(L2):将数据组装成帧,然后按顺序传输,每一帧包括数据和必要的控制信息,该层代表协议包括 SDLC、HDLC、PPP 等。
- 物理层 (L1):利用传输介质为通信的两端物理连接,实现比特流的传输。
一般来说,数据链路层的数据单元被称为帧(frame),网络层的数据单元为称为数据包(data packet),而应用层一个完整的数据单元被称为报文(message),本书中并不区分这些严格的定义,只要是网络中的数据,统称为数据包。
2.3.2 网络分层优化指南
看似简单的一个 HTTP 请求响应,实际是这些分层一系列复杂的协作过程。对 HTTP 服务进行性能调优,可以尝试从不同层次的角度去思考与实践。例如在应用层考虑两大指标:TPS(每秒事务数)和 QPS(每秒查询数)和报文的平均大小。如果希望提升握手或者对称加密的性能优化时,需要 TLS 安全层去讨论性能优化。对 RTT(网络时延)进行优化时,本质上是站在传输层来思考的,就需要考虑网卡的吞吐量、整个主机的BPS