问题标签 [mss]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1420 浏览

winapi - 使用winsock在每个套接字上设置MSS?

听起来很疯狂,生活中有些情况需要手动配置 TCP 堆栈参数,例如 MSS。

我看到它可以按照描述在机器范围内完成,例如,here。但我需要一种基于每个 tcp-socket 配置它的方法。

0 投票
2 回答
2437 浏览

php - PHP 套接字类型和 TCP 窗口大小

所以这实际上是一个两部分的问题,第一部分导致第二部分。

我正在开发一个 PHP 服务器项目,我对创建套接字的所有不同方式有点困惑。我已经设法使用一种新方法创建了三个套接字。有谁知道这三种方法之间的根本区别(如果有的话)?

方法 1 使用 'socket_create'

方法 2 使用“fsockopen”

方法 3 使用'stream_socket_client'

虽然我不明白其中的区别,但我一直在探索所有三个选项,以寻找一种控制 TCP 窗口大小的方法。我试图通过我的 LAN 将数据包推送到客户端,该数据有效负载为 1460 字节,在查看数据包捕获后,我的数据包的 TCP 数据部分总是缩短为 1448 字节。有任何想法吗?

提前致谢!

0 投票
1 回答
3064 浏览

networking - 奇怪的 IPERF 观察:MSS 大小比指定的减小

我正在使用 IPERF 将一些数据包从一台 PC 发送到另一台 PC。在使用 IPERF 测试 MSS(最大段大小)时观察到以下情况。

发送 MSS = 20 字节的数据包:

我们预计上述命令将发送 MSS = 20 字节和
MTU = MSS + 40 字节 = 60 字节的数据包,但 IPERF 显示 MSS = 36 字节(MTU = 76 字节)。

我们看到 IPERF 总是发送大小比我们指定的少 12 字节的 MSS。

在这里我应该指出,我发送数据包的 PC 是一台 Linux 机器,而接收这些数据包的电脑是 Windows 机器。我们在 Linux 中使用 IPERF 命令生成数据包,而在 Windows 上,JPERF 正在运行,我们可以看到有关传入数据包的信息。

另一个重要的事情是,Windows 机器上的 JPERF 在收到我们发送的数据包后,显示如下: MSS 和 MTU 大小未知(操作系统不支持 TCP_MAXSEG?)

知道如何/为什么减少 MSS 吗?

0 投票
2 回答
2898 浏览

tcp - SYN 数据包中的 MSS 值是否固定?

我想知道如何在 SYN 数据包中设置 MSS?它是一个操作系统中的固定值,还是可以在同一操作系统中更改该值?我知道不同操作系统中的值是不同的。SYN中的MSS值也与硬件配置有关吗?谢谢。

0 投票
2 回答
1859 浏览

iphone - iOS SDK mms 视频流

基本上,我想使用 iOS SDK 流式传输和播放 MMS 视频。MPMovieplayer我可以使用MMS 或 RSTP流式传输一些视频,但不能流式传输。我对此进行了研究,但找不到明确的解决方案。有谁能够帮我?

我试过 VLC 移动:http: //wiki.videolan.org/MobileVLC Dropcam:https ://github.com/dropcam/dropcam_for_iphone

但我无法使用这些选项。

0 投票
2 回答
12768 浏览

linux - 减少 Linux 中套接字上的 TCP 最大段大小 (MSS)

在我们的服务器需要更新低资源传感器/跟踪设备的固件的特殊应用程序中,我们遇到了一个问题,即有时在接收新固件数据包的远程设备(客户端)中数据会丢失。连接是基于 GPRS 网络的 TCP/IP。这些设备使用 SIM900 GSM 芯片作为网络接口。

问题可能是由于设备接收到的数据过多。我们尝试通过减少发送包裹来减少流量,但有时仍然会发生错误。

我们联系了当地的 SIM900 芯片零售商,他们也负责提供技术支持,并可能联系芯片的中国制造商 (simcom)。他们说,首先我们应该尝试减少我们连接的 TCP MSS(最大段大小)。

在我们的服务器中,我做了以下事情:

运行上面的代码会导致:

如您所见,输出的第二行中的问题: setsockopt 返回“无效参数”。

为什么会这样?我阅读了有关设置 TCP_MAXSEG 的一些限制,但我没有遇到任何关于这种行为的报告。

谢谢,丹尼斯

0 投票
1 回答
518 浏览

tcp - TCP 文件传输窗口大小

我正在尝试对应用程序进行逆向工程,我需要帮助了解 TCP 窗口大小的工作原理。我的 MTU 是 1460 我的应用程序使用 TCP 将文件从 A 点传输到 B。我知道以下内容:

  • 文件被分成大小为 8K 的段
  • 每个段都被压缩
  • 然后每个段通过 TCP 发送到 B 点。文本文件的这些段大小可以是 148 字节,而 pdf 文件的大小可以是 6000 字节。

对于文本文件,我是否应该看到 148 段相互连接以形成一个大型 TCP 流?然后根据Window Size进行拆分?

任何帮助表示赞赏。

0 投票
2 回答
1814 浏览

java - 如何配置/减少 tcp 段大小

我需要通过 tcp 将数据从我的机器发送到远程服务器,并且我需要对数据进行分段(这是一个测试)。这就解释了我正在寻找一种将分段大小更改为较小数字的方法的原因。

我搜索了一下,发现我们可以使用 iptables 设置 MSS

然而,在更多的谷歌搜索之后,似乎该解决方案用于告诉服务器我的机器可以接受的 TCP 段大小,而不是在我的机器发送到服务器的 tcp 数据包/段上设置段大小。

我还了解了 MTU 以及如何更改它,但这似乎不是我想要的,因为我需要/想要在更高级别(在传输级别)切割我的数据。我的问题是 1)如何为我的机器发送的 TCP 段设置 MSS?2)是否可以使用Java来做到这一点?

抱歉这些新手问题。

0 投票
2 回答
16929 浏览

tcp - 如何计算 MSS

默认情况下,当我们说 TCP 以太网数据包 1460 和 MTU 的 MSS 是 1500 时。

MSS = MTU - 20(IP 标头)- 20(TCP 标头)= 1460

从上面计算的 TCP 标头options在 TCP 标头中没有任何内容。如果任何数据包包含optionTCP 标头中的值,它是否会减小 MSS 大小?

那么optionTCP 标头中的 MSS 大小将是多少

0 投票
0 回答
769 浏览

sql-server - 在 SQL Server 2008 中创建链接服务器不起作用:错误号:7303

这是我尝试创建新的链接服务器时从 SQL Server 收到的消息我尝试了很多但没有运气请帮忙

oPreProcessExecution(RunType runType, ExecutionMode& executionResult)

无法为链接服务器“MISYS_SBM11”初始化 OLE DB 提供程序“MSDASQL”的数据源对象。
链接服务器“MISYS_SBM11”的 OLE DB 提供程序“MSDASQL”返回消息“[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified”。(.Net SqlClient 数据提供者)

服务器名称:192.XX.X.XX\MISYSSBMSE
错误号:7303
严重性:16
状态:1
过程:sp_testlinkedserver
行号:1

节目地点:

在 Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction 操作,对象 execObject,数据集 fillDataSet,布尔 catchException)
在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(字符串 sqlCommand,ExecutionTypes executionType)