1
1
第二种方法是NAT的工作原理。本地网络上的每个TCP/UDP客户端最多使用65535个端口(端口0除外)和一个专用IP。路由器只知道一个公共IP。由于两个客户端可能都有源端口300,它不能简单地用公共IP替换私有IP,这将导致出现冲突。因此,它取代了IP并“转换”端口(NAT:网络地址) 翻译 我不太清楚的是你曾经说过
但是你说
我想,您可能认为第二条语句的意思是,如果客户机请求ID 65536,它的ID可能仍然低于65535,而这些ID可能低至(比方说)20。客户机并不是以直接的顺序处理ID,对吗?所以你不能说,仅仅因为它现在请求65536,它可能有一些较小的值,但肯定不在1-1000范围内,对吗?它可能实际上保留了对20、90、2005和41238的引用,但仍然超过65535,这就是你的意思? 打 任何可能的数字(它将进行大跳跃)。如果在32位上应用一个神奇的转换函数,从中生成16位(+一个额外的字节),然后再将其转换回来是如此简单,那么我猜世界上的每种压缩方法都会使用它,因为它可以,无论32位的数字是什么,总是将其压缩到24位(16位+一个字节)。那会很神奇。不可能将32位打包成24位,也不可能将所有逻辑打包成如何将其转换回24位。您将需要一些外部存储,这使我们回到您的第二种方法。这是唯一有效的方法,它适用于32位数字范围内的每个数字。 |
2
1
我可以想出几个其他的选择:
索引中的大多数条目是否少于,比如50000?如果是这种情况,您可以直接映射这些值,并为其余的值使用与会话关联的映射。 如果持久化这样的会话数据是一个问题,并且客户端的数量相当少,那么可以启用客户端/会话关联并维护服务器本地的映射。 如果它不是web应用程序,则可以在客户机上维护地图。
|
3
0
你需要比65535多多少?您总是可以从“字节字段”中添加一些位作为ID的高阶位。仅2位将使您达到262143,3位将使您达到524287。 |
migo101 · 整数溢出就是那个恶魔吗? 2 年前 |
flyingbee · 如何只在一个div中创建滚动条 2 年前 |
Anna_B · 使用鼠标按下的持续时间进行滚动 2 年前 |
Sam Esmail · CSS深层嵌套溢出 6 年前 |
Bart F. W. · z索引似乎不起作用 6 年前 |
techguy2000 · css网格单元格内容溢出不工作 6 年前 |
DF_ · Flexbox增长容器,增长到一定高度,然后滚动 6 年前 |
sridesmet · 使用引导下拉菜单滚动挂起 6 年前 |