- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是一位经验丰富的 C++ 套接字级程序员,但我不明白当套接字连接保持打开状态(与通过调用 close
函数关闭)时,IP 网络级别会发生什么从代码内的套接字上)。
我研究了 IP header ,并试图了解让套接字保持打开状态是否会对 IP 级别产生任何影响。
在 TCP 级别,保持套接字打开对我来说可能有意义,因为这可能意味着 TCP header 中的“序列号”字段继续递增。然而,这将是纯粹基于端点的实现,因此无法减少 TCP 数据包的传输时间。据我了解,保持连接打开通常意味着数据包在互联网上端点之间的传输时间会减少。
问题是,在 IP 级别上保持套接字连接打开意味着什么吗?
我的最佳猜测是,如果套接字连接保持打开状态,则沿着完整 IP 网络路径的干预网关将尝试在其映射表中留下一个条目,以便可以立即执行下一跳,而无需执行任何操作向所有连接的网关广播以确定下一跳。
(或许通过这种方式也可以避免 DNS 查找的开销。)
我的猜测是否正确,“保持连接打开”对应于中间 IP 网关上保留的映射条目(这会加速数据包传输)?
最佳答案
直接回答:不会。
你的问题表明你没有完全理解TCP的目的,TCP是在两个主机之间建立数据流。记住这一点,保持连接打开的目的应该是显而易见的:如果关闭连接,流就会结束。
TCP 连接的状态在 IP 级别上不可见;它只与 TCP 相关。除 NAT 网关外,中间主机通常不跟踪经过它们的 TCP 连接的状态。 (在许多情况下,他们不可能这样做——大型路由器通过它们运行的连接比他们可能跟踪的要多得多。)
The best guess I have is that if a socket connection remains open, that intervening gateways along the complete IP network path will attempt to leave an entry in their mapping table so that the next hop can be executed immediately, without needing to do a broadcast to all connected gateways in order to determine the next hop.
这个猜测是错误的。路由器将具有某种算法,用于根据目标 IP、其内部保存的一组路由表来选择路由。阅读BGP有关如何在大型路由器上确定这一点的详细信息;在较小的路由器上,路由表通常由管理员定义。
关于sockets - 在IP层面, "leave the connection open"是否具有特定的技术含义——例如存储IP映射条目的中间网关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15457585/
LOOP 一词被描述为“解析所有未解析的 LEAVE 事件的目的地”。 (强调我的) 与 IF ... ELSE ... THEN 的前向引用数始终为 1 不同,LOOP 对 LEAVE 的数量没有限
我正在尝试实现 Kd 树以在 C++ 中执行最近邻和近似最近邻搜索。到目前为止,我遇到了最基本的 Kd 树的 2 个版本。 一种,数据存储在节点和叶子中,例如 here 一种,数据只存储在叶子中,例如
我没有清楚地理解 LEAVE 函数,它是这两条指令的浓缩: MOV ESP, EBP POP EBP 因此,MOV ESP, EBP 将 ESP 向下移动到 EBP 的级别(堆栈的开头)。 然后POP
我有外部路线:/posts 和 /about。 /posts 路由具有嵌套路由:/ 和 /pages/:pageNumber。 在嵌套路由(/ 和 /pages/:pageNumber)之间导航时,动
我正在尝试在 JavaFX 中设置一个复选框树,其中叶子绑定(bind)到其父级: 当选择父级时,它们也会被选择 无法单独更改。 我使用与 selectedProperty 的绑定(bind)来完成此
程序如下: main:BEGIN # make sure a game isnt already running SELECT COUNT(*), `winner` INTO @running, @w
使用什么模式将字符保留在字符串中的点之间“12395.KS_TH014.001239”,所以如果其动态变量,则只剩下“KS_TH014”。我尝试了模式“.\K.*?(?=.)”,但它在 mysql 中
我有如下例子中的触发器: BEFORE UPDATE ON icharts_user_stats FOR EACH ROW BEGIN IF (NEW.col1> OLD.col1 OR NE
我正在为 iOS 编写一个应用程序来阅读 PDF 文档并使用“Leaves”库。除了宽度为 1px 的白线外,一切都很酷,它会在您翻过页面时出现。有没有人遇到过这个?你是如何解决这个问题的? 最佳答案
我写了以下函数 window.onbeforeunload = function(){ return 'Are you sure you want to leave?'; }; 现在我希望当用户单
我的网站上有以下 href: a href="http://www.google.com" name="external" onclick="confirmExit(this.name) 如果用户不想
我只看到了另一个类似的问题 ( this one ),但我不知道如何将其应用到我的页面。我是网络开发新手,所以我使用了 this template索取联系表格。您可以在这里查看我的联系页面:http:
我正在为我的元素使用 animate.css 和 Angular.JS。我创建了一个代码笔,您可以在这里找到它:http://codepen.io/SassyCrafter/pen/NrRbmE .以
我在几个地方都见过它,例如Eclipse XML 自动格式化也可以做到这一点:在空元素的结束 /> 之前放置一个空格。 拥有 将被重新格式化为 你为什么要这样做?从 XML 的角度来看,它是等价的
题目地址:https://leetcode.com/problems/sum-of-left-leaves/open in new window Difficulty: Easy 题目大
我正在尝试反汇编一个包含简单功能的简单程序。这个程序是用 gcc 编译的,用于 32 位 x86 目标。 该函数通过调用指令调用。 在函数的最后,我看到一个ret指令,这是正常的,但也有一个leave
我在这里学习 Docker 教程 https://docs.docker.com/get-started/part3/ 当我在页面教程快结束时执行命令 docker swarm leave --for
这个问题已经有答案了: How to show a dialog to confirm that the user wishes to exit an Android Activity? (11 个回
因此,我编写了这一小段代码来尝试一些新的方法来进行图像交换以实现预加载,但我遇到了一些麻烦。 我的问题是,我有一个包含图像的容器,其中有一些填充和文本,但只有当有人滚动图像而不是容器时,才会激活翻转。
我在div上使用hover()来在用户将鼠标移到上方时显示信息面板,这在90%的情况下有效,但有时事件似乎无法正确触发。这似乎与您将鼠标移入或移出 div 的速度有关。 我设置了一个 jsfiddle
我是一名优秀的程序员,十分优秀!