服务器系统设计缓冲区设计总结
发布时间
阅读量:
阅读量
为什么需要发送缓冲区和接收缓冲区
在网络层的数据发送过程中, 因为TCP窗口过小, 进而导致无法有效发送. 同时上层不断产生新的数据, 因此需要临时存储这些待发的数据. 以便等到socket再次具备可写能力时, 再次启动传输过程. 这样的临时存储区域被称作发送缓冲区.
对于接收缓冲区也是一样的道理,在接收到数据时(而不是立即处理),我们可以对这些数据进行解包处理。然而这样做存在明显的缺陷。具体来说:
理由一:除了少数通用的protocol标准外,在大多数情况下企业会选择定制化的protocol规范以适应其特定需求;这意味着对一个data packet内部的数据结构理解应当由应用层面来完成;不同领域的组织通常拥有各自的communication norm;其communication norm与其关联的具体领域相关;为了使network layer具备更高的通用性;从而使得network communication layer能够独立于business logic运作
理由二:即使了解了协议的具体格式,在TCP这种流式传输协议下,在某一次接收的数据量未必能达到完整传输包的大小。此时有必要设立一个专门的缓存区域,并在后续接收的数据总量达到或超过完整传输包所需的数据量时能够及时进行相应的处理。
理由二:即使了解了协议的具体格式,在TCP这种流式传输协议下,在某一次接收
全部评论 (0)
还没有任何评论哟~
