2024 软件水平测试:TCP 协议的部分解析(1)1
网络协议设计 ISO 提出了 OSI 分层网络模型,这种分层模型是理论上的,TCP/IP 最终实现了一个分层的协议模型,每一个层次对应一组网络协议完成一组特定的功能,该组网络协议被其下的层次复用和解复用
这就是分层模型的本质,最终全部的规律被编码到线缆或者电磁波
分层模型是很好理解的,然而对于每一层的协议设计却不是那么简单
TCP/IP 的漂亮之处在于:协议越往上层越简单
我们把网络定义为相互连接在一起的设备,网络的本质作用还是“端到端”的通信,然而希望相互通信的设备并不肯定要“直接”连接在一起,因此必定需要一些中间的设备负责转发数据,因此就把连接这些中间设备的线缆上跑的协议定义为链路层协议,实际上所谓链路其实就是始发与一个设备,通过一根线,终止于另一个设备
我们把一条链路称为“一跳”
因此一个端到端的网络包含了“许多跳”
TCP 和 IP 协议 终止于 IP 协议,我们已经可以完成一个端到端的通信,为何还需要 TCP 协议
这是一个问题,理解了这个问题,我们就能理解 TCP协议为何成了现在这个样子,为何如此“简单”,为何又如此简洁
正如其名字所展现的那样,TCP 的作用是传输掌握,也就是掌握端到端的传输,那为何这种掌握不在 IP 协议中实现的
答案很简洁,那就是这会增加 IP 协议的简单性,而 IP 协议需要的就是简洁
这是什么缘由造成的呢
首先我们熟悉一下为何 IP 协议是沙漏的细腰部分
它的下层是繁多的链路层协议,这些链路供应了相互截然不同且相差很远的语义,为了互联这些异构的网络,我们需要一个网络层协议起码要供应一些适配的功能,另外它必定不能供应太多的“保证性服务”,因为上层的保证性依靠下层的约束性更强的保证性,你永久无法在一个 100M 吞吐量的链路之上实现的 IP 协议保证 1000M 的吞吐量