路由器在 NAT 中保留记录多长时间?这些记录可以重复使用来转发来自其他主机的请求吗?

2023-11-24

有一个答案以简单的方式解释了路由器如何将请求从本地网络转换到外部网络并返回(https://superuser.com/questions/105838/how-does-router-know-where-to-forward-packet)什么不清楚 - NAT 中的记录保留多长时间?

例如,如果我向 25.34.11.56:3874 发送 UDP 请求,而我的本地端点是 192.168.1.21:54389,则路由器会重写请求数据包并向 NAT 添加一条记录。假设外部端点为 68.55.32.89:34535。然后收到我请求的计算机根据NAT记录响应68.55.32.89:34535并将数据包转发到本地192.168.1.21:54389。之后记录会发生什么?

如果 25.34.11.56:3874 决定在 10 或 100 分钟后向我的外部端点 68.55.32.89:34535 发送请求怎么办?还会被路由器转发到192.168.1.21:54389吗?

假设有另一台远程计算机,其端点为 55.43.77.98:8765。如果这台计算机向我的外部端点 68.55.32.89:34535 发送请求,会发生什么?它会被转发到本地 192.168.1.21:54389 还是会被路由器过滤掉,因为远程端点与最初用于第一个请求和 NAT 记录的 25.34.11.56:3874 不匹配?


这取决于。

根据第 4.3 节RFC 4787,NAT 的 UDP 超时不应小于 2 分钟(120 秒),选定的知名端口除外。但实际上,路由器倾向于使用较小的超时。例如,OpenWRT 14.07 使用的超时时间仅为 60 秒。

对于 TCP,超时可能要大得多,因为 TCP 连接通常由显式 FIN/FIN-ACK 交换终止。对于已建立的 TCP 连接,第 5 节RFC 5382指定超时不少于2小时4分钟(7204秒),OpenWRT使用7440秒。

关于第二个问题,大多数 NAT 维护特定于一对端点(套接字地址)的映射。如果 NAT 内的主机 A 向套接字地址 B 发送数据报,则映射将仅适用于 A 和 B 之间的通信 - NAT 外的其他主机 C 将无法使用该特定映射向 A 发送数据。 (一些所谓的实心锥体NAT 允许这样做,但这种情况相当罕见。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

路由器在 NAT 中保留记录多长时间?这些记录可以重复使用来转发来自其他主机的请求吗? 的相关文章

  • P2P网络游戏/应用程序:类似“战网”匹配服务器的不错选择

    我正在制作一个网络游戏 1v1 游戏中是 p2p 不需要游戏服务器 然而 为了让玩家能够 找到彼此 而不需要在另一种媒介中协调并输入IP地址 类似于网络游戏的现代时代 我需要有一个协调 匹配服务器 我无法使用常规网络托管 因为 客户端将使用
  • 如何使用 wampserver 在本地系统上将 URL 从“localhost”更改为其他内容?

    在 Windows 计算机上 有一个系统在本地 wampserver 上运行 但当应用程序在 localhost 上运行时 URL 却另有说明 虽然我希望基于目录结构的 URL 是这样的 http localhost pro include
  • 为什么 UDP 服务器中只有一个套接字?

    我正在准备考试 发现了这个问题 典型的 UDP 服务器可以使用单个套接字来实现 解释一下为什么 对于 TCP 驱动的服务器 我发现创建了两个套接字 一个用于所有客户端访问服务器 另一个用于每个客户端的特定 套接字 用于服务器和客户端之间的进
  • ASP.NET Core URL 重写

    我正在尝试将我的网站从 www 重定向到非 www 规则以及 http 到 https https example com https example com 在中间件中 我曾经在 web config 中进行这些重定向更改 例如
  • Drupal 6 无法构建菜单路由器和链接

    当我在 Drupal 中启用新菜单 例如 mymodule 时 Drupal 应该能够从 mymodule menu hook menu 获取菜单项 处理这些菜单项并将菜单项插入到 menu router 和 menu links 表中 然
  • Angular 2 重复标头

    使用时出现重复标头问题
  • 用.htaccess重写动态url结构

    我尝试将动态 URL 如下 重写为稍微不同的结构 要么不起作用 要么我不确定它是否正确 旧网址 URL 1 index php lang AAA zone BBB city CCC str DDD search EEE 新网址 URL 11
  • Magento 路由器 URL - 需要连字符的路径名称

    假设我使用自定义控制器 其 url 路径 前端名称为 customcategory 好吧 显然如果我有一个名为 TestController php 和indexAction的控制器文件 url 路径将是 customcategory te
  • angular2 使用 router.subscribe 来观察 url 变化

    我在用着router event subscribe angular router观察 url 变化以执行if虽然声明event subscribe工作正常 但我的问题是我怎样才能避免重复我的if声明只是为了在这些网址上显示标题 这可能是别
  • 为什么 Kademlia 使用 UDP?

    为什么Kademlia 分布式哈希表 http en wikipedia org wiki Kademlia使用 UDP 作为其网络传输协议 即使它不可靠 主要原因是您快速查询了许多以前从未建立过联系并且可能在查找过程中永远不会再看到的节点
  • Apache 重写 - 获取 PHP 中的原始 URL

    我在 nginx 或 Apache 中重写了这个地址 http domain com hello 到像这样的脚本 http domain com test php ref hell 如何在 PHP 中访问这个重写的 URL 因为 如果我使用
  • 路由是否会影响具有绑定源地址的套接字?

    假设我有两个网络接口 eth0有地址10 0 0 1 eth1有地址192 168 0 1 Using route or ip route add我已将其设置为路由 所有地址至eth0 1 2 3 4只为了eth1 所以数据包到1 2 3
  • 何时在 C 中使用 ntohs 和 ntohl?

    我很困惑何时使用 ntohs 和 ntohl 我知道当您对 uint16 t 和 ntohl uint32 t 使用 ntohs 时 但是那些具有 unsigned int 或指定了特定位数的数据 例如 u int16 t doff 4 又
  • Nodejs 在路由器页面中包含 socket.io

    我有一个 Express Node 应用程序 并且我试图通过不在 app js 中包含所有 socket io 内容来保持代码整洁 我不知道解决这个问题的最佳方法 这是我最初的想法 感觉不是最干净的 app js var express r
  • rewrite_mod 已启用,但 .htaccess 不起作用

    我在 Amazon EC2 的 ubuntu 12 04 中使用 apache 2 2 我使用启用了 mod rewrite sudo a2enmod rewrite 并能够看到 apache2ctl M 现在我编写了以下 htaccess
  • IIS 7 规范 URL 重定向

    我想让一个网站的地址中始终包含 www 并通过 IIS 重写强制执行 例如 test com 将变为 www test com 典型的重写规则示例是
  • C# 套接字数据报溢出

    我是 C 新手 我有一个关于udp套接字的小问题 我有一个聊天服务器 它接收特定结构的数据包 udp 数据报 为什么程序在套接字缓冲区已满时才接收数据 难道以后的一切就不应该失去吗 也许会出现数据包碎片 数据包结构 udp headers
  • 使用 asp.net 重写 URL。是否需要配置?

    我正在尝试在我的项目中启用重写的网址 这篇文章描述得很好 scottgu 的 url 重写 http weblogs asp net scottgu archive 2007 02 26 tip trick url rewriting wi
  • 用于实时传输协议的开源 .net C# 库

    net中有好的RTP开源库吗 我的目的是用于音频和视频同步问题并提高每秒帧数速率 我对 RTP 不太了解 但你可能想看看本文 http www codeproject com KB IP Using RTP in Multicasting
  • React:如何从react-router-dom通过链接传递道具?

    我正在努力通过title从道具到我的Dishes组件使用但找不到解决方案 有什么建议么 import Link from react router dom const Category title gt return title expor

随机推荐

  • 在 R 中绘制回归线

    我想在 R 中绘制一条简单的回归线 我已经输入了数据 但回归线似乎不正确 有人可以帮忙吗 x lt c 10 20 30 40 50 60 70 80 90 100 110 120 y lt c 10 18 25 29 30 28 25 2
  • Scipy sigmoid曲线拟合

    我有一些数据点 想找到一个拟合函数 我想累积高斯 sigmoid 函数会适合 但我真的不知道如何实现这一点 这就是我现在所拥有的 import numpy as np import pylab from scipy optimize imp
  • 来自 Alfresco 中 WebScript 的 HTTP 请求

    我正在使用 JS 控制器在 Alfresco 中编写 WebScript 并且想向本地 HTTP 资源发出 HTTP 请求 该资源是一个基于 Java 的应用程序 并为我提供了自己的 REST API 我的 WebScript 不是共享组件
  • 如何使用 Html Agility Pack 使请求超时

    我正在向当前离线 故意 的远程 Web 服务器发出请求 我想找出使请求超时的最佳方法 基本上 如果请求运行时间超过 X 毫秒 则退出请求并返回null回复 目前 网络请求只是坐在那里等待响应 我该如何最好地解决这个问题 这是当前的代码片段
  • 将 Rust 变量传递给期望能够修改它的 C 函数

    我正在编写一个安全的 Rust 层 通过它我可以调用 Rust 中的 C 库中的函数 我已经使用生成了不安全的绑定Rust 绑定根 但我对 Rust 和 C 在传递指针方面的工作方式之间的差异感到有点困惑 C 函数如下所示 bool ime
  • VSCode 的“打开文件夹时运行”任务中的“打开文件夹时”是什么意思?

    VSCode 去年添加了一项功能 打开文件夹时 自动运行任务 但是使用工作区时 打开文件夹时 是什么意思 具体来说 如果您打开一个工作区 将会 runOn folderOpen 任务运行 如果是这样 怎么办 我这么问是因为我将一个任务配置为
  • HTML5 向后兼容 XHTML 吗?

    简短的问题 我可以将现有 XHTML 1 0 网站的 DOCTYPE 更改为 HTML5 吗 这会导致任何问题吗 很长的故事 我们有一个用 ASP NET Webforms 编写的网站 由于它相当旧 默认的 DOCTYPE 设置为 XHTM
  • 使用他的 ClassType 来转换 TObject?

    我怎样才能让我的代码工作 我试图提出这个问题 但经过几次失败的尝试后 我认为你们通过查看代码会比阅读我的 解释 更快地发现问题 谢谢 setCtrlState memo1 edit1 button1 False procedure setC
  • 带参数的 Django 重定向()

    已经有人问过几个类似的问题 但在花了很长时间后我找不到问题的答案 在下面的代码中 当我使用参数 username 从 myView 重定向到 anotherView 时 它按预期工作正常 但我也需要在此重定向中包含 范围 参数 因为重定向后
  • Android 中强制通过扬声器输出声音

    Android 有没有办法强制通过手机扬声器输出 即使耳机已插入插孔 我知道必须有一种方法 因为当您打电话时 即使插孔中插入了耳机 您也可以让某人使用免提电话 您可以使用以下命令在系统范围内更改此设置AudioManager setSpea
  • oo问题-混合控制器逻辑和业务逻辑

    我不确定我是否使用 标准 术语 但这是我试图解决的一个基本的面向对象问题 我正在编写一个 Windows 窗体 我不需要表单事件处理程序中的逻辑 因此我只需从那里调用自定义对象 在自定义对象中 有两组逻辑 控制器 逻辑 决定需要完成什么以及
  • 编译器生成的默认构造函数会是公共的吗?

    当我写一个类的时候Widget java public class Widget int data String name 编译器生成的构造函数是public or default 公众会像 public class Widget int
  • HTML 中的方括号形成数组。只是传统的还是有意义的?

    我经常看到 特别是在 PHP 世界中 如果你想创建一个 FORM 数组 可以这样写
  • 如何将 Firebase 身份验证令牌传递给 webView 并在 Android 上注册通知

    我有一个 Firebase WebApp 它向用户提供信息 除了应用程序之外 我还需要通过 Firebase 云消息传递向使用 Android 应用程序的用户发送推送通知 目标 用户应该一次登录到应用程序 既可以注册通知 又可以通过 Web
  • Google 时间轴图表持续时间(以小时为单位)

    我正在使用 Google 时间线图表 即使持续时间超过一天 我也想以小时为单位显示持续时间 是否可以 谢谢 包含一千个样本的图像 展示了不同的行为1正如您所看到的 红色的持续时间是错误的 蓝色的持续时间是计算和打印的 没有配置选项更改工具提
  • 在哪里可以找到当前的 C 或 C++ 标准文档?

    这个问题的答案是社区努力 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 对于许多问题 答案似乎可以在 标准 中找到 然而 我们在哪里可以找到它呢 最好是在线 谷歌搜索有时会让人感到徒劳 尤其是对于 C 标准 因为它们淹没在编程论坛上
  • C 中的外部指针和静态指针

    您好 静态和外部指针的用法是什么 如果它们存在的话 为了回答您关于何时可以使用它们的问题 举几个简单的例子 静态指针可用于实现始终向程序返回相同缓冲区的函数 并在第一次调用时分配它 char GetBuffer static char bu
  • Java错误:应该在名为[重复]的文件中声明

    这个问题在这里已经有答案了 我对 Java 相当陌生 并试图弄清楚如何解决以下错误 读取错误 CalculatorWithMemory java 1 class Calculator is public should be declared
  • 如何找到最近的标记 leaflet.js

    我想知道是否真的有某种方法可以使用 leaflet js 找到我位置附近的标记 我首先想到的是存储我所在位置的纬度和经度 然后迭代一系列纬度和经度标记 将它们放入一个数组中 然后对该数组进行排序 我不确定这是否是一个好的选择 因为如果地图上
  • 路由器在 NAT 中保留记录多长时间?这些记录可以重复使用来转发来自其他主机的请求吗?

    有一个答案以简单的方式解释了路由器如何将请求从本地网络转换到外部网络并返回 https superuser com questions 105838 how does router know where to forward packet