我是一位经验丰富的 C++ 套接字级程序员,但我不明白当套接字连接保持打开状态close
时 IP 网络级别会发生什么(与通过从代码中调用套接字上的函数关闭)。
我研究了 IP 标头,并试图了解让套接字打开是否对 IP 级别有任何影响。
在 TCP 级别,让套接字保持打开状态对我来说是有意义的,因为这可能意味着 TCP 标头中的“序列号”字段会继续增加。然而,这将是一个纯粹基于端点的实现,因此无法减少 TCP 数据包的传输时间。据我了解,保持连接打开通常意味着数据包在互联网上的端点之间的传输时间会减少。
问题是,让套接字连接保持打开状态在 IP 级别是否意味着什么?
我的最佳猜测是,如果套接字连接保持打开状态,则沿完整 IP 网络路径的中间网关将尝试在其映射表中留下一个条目,以便可以立即执行下一跳,而无需进行广播所有连接的网关,以确定下一跳。
(也许这种方式也避免了 DNS 查找的开销。)
我是否正确猜测“保持连接打开”对应于中间 IP 网关上保留的映射条目(这会加快数据包传输)?