TCP/IP 特征
TCP/IP 具有使协议能够按照其标准化实现要求运行的特征。 这些特征可以与导致性能不佳的开发选择相结合。 这些 TCP/IP 特征对应用程序的影响取决于应用程序是事务性还是流式处理。
事务应用程序受建立和终止连接所需的开销影响。 例如,每次在以太网网络上建立连接时,必须发送大约 60 字节的三个数据包,交换需要大约一个 RTT。 发生连接终止时,将交换四个数据包。 这是针对每个连接;打开和关闭连接的应用程序通常会在每个匹配项上产生此开销。
TCP/IP 的另一个方面是 慢启动,每当建立连接时,就会出现此情况。 慢速启动是对接收这些段确认之前可以发送的数据段数的人为限制。 慢速启动旨在限制网络拥塞。 建立通过以太网建立连接时,无论接收器的窗口大小如何,由于启动缓慢,4 KB 传输最多可能需要 3-4 RTT。
称为 Nagle 算法的 TCP/IP 优化还可以限制连接上的数据传输速度。 Nagle Algorithm 旨在减少发送少量数据的应用程序(例如 Telnet)的协议开销,这些应用程序一次发送单个字符。 堆栈无需立即发送包含大量标头和少量数据的数据包,而是在继续作之前,会等待来自应用程序或确认的更多数据。
延迟确认(通常称为 延迟的 ACK)也设计为 TCP/IP,以便在从接收方应用程序传出返回数据时更有效地回退确认。 遗憾的是,如果此数据未传入,并且发送方正在等待确认,则每个发送的延迟大约为 200 毫秒。
关闭 TCP 连接后,启动关闭的节点上的连接资源将置于等待状态(称为 TIME-WAIT)中,以防网络中的重复数据包挥之不去的数据损坏。 这可确保两端都通过连接完成。 当应用程序频繁打开和关闭连接时,这可能会导致每个连接所需的资源耗尽,例如 RAM 和端口。
除了受延迟 ACK 和其他拥塞避免方案的影响外,流式处理应用程序还受接收端默认接收窗口大小过小的影响。
相关主题